diff --git a/drivers/rknand/rk_ftl_arm_v7.S b/drivers/rknand/rk_ftl_arm_v7.S index b16e02e93b..ff3d230ed4 100644 --- a/drivers/rknand/rk_ftl_arm_v7.S +++ b/drivers/rknand/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: 2018-09-5 + * date: 2019-01-07 */ .arch armv7-a .eabi_attribute 20, 1 @@ -179,6 +179,38 @@ FlashSetRandomizer: .word .LANCHOR5 .word .LANCHOR6 .size FlashSetRandomizer, .-FlashSetRandomizer + .section .text.FlashBlockAlignInit,"ax",%progbits + .align 1 + .global FlashBlockAlignInit + .syntax unified + .thumb + .thumb_func + .fpu softvfp + .type FlashBlockAlignInit, %function +FlashBlockAlignInit: + @ args = 0, pretend = 0, frame = 0 + @ frame_needed = 0, uses_anonymous_args = 0 + @ link register save eliminated. + cmp r0, #256 + ldr r3, .L44 + bls .L40 + mov r2, #512 +.L43: + str r2, [r3] + bx lr +.L40: + cmp r0, #128 + bhi .L42 + str r0, [r3] + bx lr +.L42: + mov r2, #256 + b .L43 +.L45: + .align 2 +.L44: + .word .LANCHOR3 + .size FlashBlockAlignInit, .-FlashBlockAlignInit .section .text.FlashReadCmd,"ax",%progbits .align 1 .global FlashReadCmd @@ -193,7 +225,7 @@ FlashReadCmd: @ link register save eliminated. push {r4, r5} lsrs r2, r1, #16 - ldr r4, .L40 + ldr r4, .L47 ldr r3, [r4, r0, lsl #3] add r4, r4, r0, lsl #3 ldrb r4, [r4, #4] @ zero_extendqisi2 @@ -211,9 +243,9 @@ FlashReadCmd: str r2, [r3, #2056] pop {r4, r5} b FlashSetRandomizer -.L41: +.L48: .align 2 -.L40: +.L47: .word .LANCHOR6 .size FlashReadCmd, .-FlashReadCmd .section .text.FlashReadDpDataOutCmd,"ax",%progbits @@ -228,10 +260,10 @@ FlashReadDpDataOutCmd: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r2, .L46 + ldr r2, .L53 push {r4, r5, r6} uxtb r6, r1 - ldr r4, .L46+4 + ldr r4, .L53+4 lsrs r5, r1, #8 ldr r3, [r2, r0, lsl #3] add r2, r2, r0, lsl #3 @@ -241,7 +273,7 @@ FlashReadDpDataOutCmd: lsr r4, r1, #16 lsl r2, r2, #8 add r3, r3, r2 - bne .L43 + bne .L50 movs r2, #6 str r2, [r3, #2056] movs r2, #0 @@ -250,12 +282,12 @@ FlashReadDpDataOutCmd: str r6, [r3, #2052] str r5, [r3, #2052] str r4, [r3, #2052] -.L45: +.L52: movs r2, #224 str r2, [r3, #2056] pop {r4, r5, r6} b FlashSetRandomizer -.L43: +.L50: movs r2, #0 str r2, [r3, #2056] str r2, [r3, #2052] @@ -267,73 +299,13 @@ FlashReadDpDataOutCmd: str r4, [r3, #2056] str r2, [r3, #2052] str r2, [r3, #2052] - b .L45 -.L47: - .align 2 -.L46: - .word .LANCHOR6 - .word .LANCHOR7 - .size FlashReadDpDataOutCmd, .-FlashReadDpDataOutCmd - .section .text.flash_enter_slc_mode,"ax",%progbits - .align 1 - .global flash_enter_slc_mode - .syntax unified - .thumb - .thumb_func - .fpu softvfp - .type flash_enter_slc_mode, %function -flash_enter_slc_mode: - @ args = 0, pretend = 0, frame = 0 - @ frame_needed = 0, uses_anonymous_args = 0 - @ link register save eliminated. - ldr r3, .L53 - ldrb r3, [r3] @ zero_extendqisi2 - cbz r3, .L48 - ldr r3, .L53+4 - ldr r2, [r3, r0, lsl #3] - add r3, r3, r0, lsl #3 - ldrb r3, [r3, #4] @ zero_extendqisi2 - add r3, r2, r3, lsl #8 - movs r2, #218 - str r2, [r3, #2056] -.L48: - bx lr + b .L52 .L54: .align 2 .L53: - .word .LANCHOR8 .word .LANCHOR6 - .size flash_enter_slc_mode, .-flash_enter_slc_mode - .section .text.flash_exit_slc_mode,"ax",%progbits - .align 1 - .global flash_exit_slc_mode - .syntax unified - .thumb - .thumb_func - .fpu softvfp - .type flash_exit_slc_mode, %function -flash_exit_slc_mode: - @ args = 0, pretend = 0, frame = 0 - @ frame_needed = 0, uses_anonymous_args = 0 - @ link register save eliminated. - ldr r3, .L60 - ldrb r3, [r3] @ zero_extendqisi2 - cbz r3, .L55 - ldr r3, .L60+4 - ldr r2, [r3, r0, lsl #3] - add r3, r3, r0, lsl #3 - ldrb r3, [r3, #4] @ zero_extendqisi2 - add r3, r2, r3, lsl #8 - movs r2, #223 - str r2, [r3, #2056] -.L55: - bx lr -.L61: - .align 2 -.L60: - .word .LANCHOR8 - .word .LANCHOR6 - .size flash_exit_slc_mode, .-flash_exit_slc_mode + .word .LANCHOR7 + .size FlashReadDpDataOutCmd, .-FlashReadDpDataOutCmd .section .text.FlashProgFirstCmd,"ax",%progbits .align 1 .global FlashProgFirstCmd @@ -348,7 +320,7 @@ FlashProgFirstCmd: @ link register save eliminated. push {r4, r5} lsrs r2, r1, #16 - ldr r4, .L63 + ldr r4, .L56 ldr r3, [r4, r0, lsl #3] add r4, r4, r0, lsl #3 ldrb r4, [r4, #4] @ zero_extendqisi2 @@ -365,9 +337,9 @@ FlashProgFirstCmd: str r2, [r3, #2052] pop {r4, r5} b FlashSetRandomizer -.L64: +.L57: .align 2 -.L63: +.L56: .word .LANCHOR6 .size FlashProgFirstCmd, .-FlashProgFirstCmd .section .text.FlashEraseCmd,"ax",%progbits @@ -382,12 +354,12 @@ FlashEraseCmd: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 push {r4, lr} - ldr r4, .L70 + ldr r4, .L63 ldr r3, [r4, r0, lsl #3] add r4, r4, r0, lsl #3 ldrb r0, [r4, #4] @ zero_extendqisi2 lsls r0, r0, #8 - cbz r2, .L66 + cbz r2, .L59 adds r2, r3, r0 movs r4, #96 str r4, [r2, #2056] @@ -397,10 +369,10 @@ FlashEraseCmd: str r4, [r2, #2052] lsrs r4, r1, #16 str r4, [r2, #2052] - ldr r2, .L70+4 + ldr r2, .L63+4 ldr r2, [r2] add r1, r1, r2 -.L66: +.L59: add r3, r3, r0 movs r2, #96 str r2, [r3, #2056] @@ -413,9 +385,9 @@ FlashEraseCmd: str r1, [r3, #2052] str r2, [r3, #2056] pop {r4, pc} -.L71: +.L64: .align 2 -.L70: +.L63: .word .LANCHOR6 .word .LANCHOR3 .size FlashEraseCmd, .-FlashEraseCmd @@ -433,11 +405,11 @@ FlashProgDpSecondCmd: @ link register save eliminated. push {r4, r5} lsrs r2, r1, #16 - ldr r4, .L73 + ldr r4, .L66 ldr r3, [r4, r0, lsl #3] add r4, r4, r0, lsl #3 ldrb r5, [r4, #4] @ zero_extendqisi2 - ldr r4, .L73+4 + ldr r4, .L66+4 ldrb r4, [r4, #11] @ zero_extendqisi2 add r3, r3, r5, lsl #8 str r4, [r3, #2056] @@ -451,9 +423,9 @@ FlashProgDpSecondCmd: str r2, [r3, #2052] pop {r4, r5} b FlashSetRandomizer -.L74: +.L67: .align 2 -.L73: +.L66: .word .LANCHOR6 .word .LANCHOR7 .size FlashProgDpSecondCmd, .-FlashProgDpSecondCmd @@ -469,7 +441,7 @@ FlashProgSecondCmd: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L76 + ldr r3, .L69 ldr r2, [r3, r0, lsl #3] add r3, r3, r0, lsl #3 ldrb r3, [r3, #4] @ zero_extendqisi2 @@ -477,9 +449,9 @@ FlashProgSecondCmd: movs r2, #16 str r2, [r3, #2056] bx lr -.L77: +.L70: .align 2 -.L76: +.L69: .word .LANCHOR6 .size FlashProgSecondCmd, .-FlashProgSecondCmd .section .text.FlashProgDpFirstCmd,"ax",%progbits @@ -494,8 +466,8 @@ FlashProgDpFirstCmd: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L79 - ldr r1, .L79+4 + ldr r3, .L72 + ldr r1, .L72+4 ldr r2, [r3, r0, lsl #3] add r3, r3, r0, lsl #3 ldrb r1, [r1, #10] @ zero_extendqisi2 @@ -503,9 +475,9 @@ FlashProgDpFirstCmd: add r3, r2, r3, lsl #8 str r1, [r3, #2056] bx lr -.L80: +.L73: .align 2 -.L79: +.L72: .word .LANCHOR6 .word .LANCHOR7 .size FlashProgDpFirstCmd, .-FlashProgDpFirstCmd @@ -522,7 +494,7 @@ FlashReadStatus: @ frame_needed = 0, uses_anonymous_args = 0 push {r3, r4, r5, lr} movs r2, #112 - ldr r3, .L82 + ldr r3, .L75 ldr r5, [r3, r0, lsl #3] add r3, r3, r0, lsl #3 movs r0, #80 @@ -534,42 +506,42 @@ FlashReadStatus: bl udelay ldr r0, [r5, r4] pop {r3, r4, r5, pc} -.L83: +.L76: .align 2 -.L82: +.L75: .word .LANCHOR6 .size FlashReadStatus, .-FlashReadStatus - .section .text.JSHash,"ax",%progbits + .section .text.js_hash,"ax",%progbits .align 1 - .global JSHash + .global js_hash .syntax unified .thumb .thumb_func .fpu softvfp - .type JSHash, %function -JSHash: + .type js_hash, %function +js_hash: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L87 + ldr r3, .L80 add r1, r1, r0 push {r4, lr} -.L85: +.L78: cmp r0, r1 - bne .L86 + bne .L79 mov r0, r3 pop {r4, pc} -.L86: +.L79: lsrs r2, r3, #2 ldrb r4, [r0], #1 @ zero_extendqisi2 add r2, r2, r3, lsl #5 add r2, r2, r4 eors r3, r3, r2 - b .L85 -.L88: + b .L78 +.L81: .align 2 -.L87: +.L80: .word 1204201446 - .size JSHash, .-JSHash + .size js_hash, .-js_hash .section .text.FlashLoadIdbInfo,"ax",%progbits .align 1 .global FlashLoadIdbInfo @@ -612,54 +584,54 @@ ToshibaSetRRPara: @ frame_needed = 0, uses_anonymous_args = 0 push {r3, r4, r5, r6, r7, r8, r10, lr} add r7, r1, r1, lsl #2 - ldr r10, .L99+12 + ldr r10, .L92+12 mov r5, r0 mov r6, r1 movs r4, #0 - ldr r8, .L99+16 -.L92: + ldr r8, .L92+16 +.L85: ldrb r3, [r10] @ zero_extendqisi2 cmp r4, r3 - bcc .L96 + bcc .L89 pop {r3, r4, r5, r6, r7, r8, r10, pc} -.L96: +.L89: movs r3, #85 movs r0, #200 str r3, [r5, #8] ldrsb r3, [r4, r8] str r3, [r5, #4] bl udelay - ldr r3, .L99 + ldr r3, .L92 ldrb r3, [r3] @ zero_extendqisi2 cmp r3, #34 - bne .L93 + bne .L86 adds r3, r4, r7 add r3, r3, r8 -.L98: +.L91: ldrsb r3, [r3, #5] -.L97: +.L90: str r3, [r5] adds r4, r4, #1 - b .L92 -.L93: + b .L85 +.L86: cmp r3, #35 - bne .L95 - ldr r3, .L99+4 + bne .L88 + ldr r3, .L92+4 adds r2, r4, r7 add r3, r3, r2 - b .L98 -.L95: - ldr r3, .L99+8 + b .L91 +.L88: + ldr r3, .L92+8 ldrsb r3, [r3, r6] - b .L97 -.L100: + b .L90 +.L93: .align 2 -.L99: +.L92: + .word .LANCHOR9 .word .LANCHOR10 .word .LANCHOR11 .word .LANCHOR12 - .word .LANCHOR13 - .word .LANCHOR9 + .word .LANCHOR8 .size ToshibaSetRRPara, .-ToshibaSetRRPara .section .text.SamsungSetRRPara,"ax",%progbits .align 1 @@ -674,18 +646,18 @@ SamsungSetRRPara: @ frame_needed = 0, uses_anonymous_args = 0 push {r3, r4, r5, r6, r7, r8, r10, lr} mov r6, r0 - ldr r7, .L104 + ldr r7, .L97 movs r4, #0 mov r10, #161 - ldr r8, .L104+4 + ldr r8, .L97+4 add r1, r7, r1, lsl #2 adds r5, r1, #3 -.L102: +.L95: ldrb r3, [r8] @ zero_extendqisi2 cmp r4, r3 - bcc .L103 + bcc .L96 pop {r3, r4, r5, r6, r7, r8, r10, pc} -.L103: +.L96: movs r3, #0 str r10, [r6, #8] str r3, [r6] @@ -696,12 +668,12 @@ SamsungSetRRPara: ldrsb r3, [r5, #1]! str r3, [r6] bl udelay - b .L102 -.L105: + b .L95 +.L98: .align 2 -.L104: - .word .LANCHOR14 +.L97: .word .LANCHOR13 + .word .LANCHOR12 .size SamsungSetRRPara, .-SamsungSetRRPara .global __aeabi_uidiv .global __aeabi_uidivmod @@ -718,17 +690,17 @@ LogAddr2PhyAddr: @ frame_needed = 0, uses_anonymous_args = 0 push {r0, r1, r4, r5, r6, r7, r8, r10, fp, lr} mov r6, r3 - ldr r3, .L111 + ldr r3, .L104 mov r8, r1 mov r7, r2 mov r5, r0 ldrh r4, [r3, #14] ldrh r3, [r3, #12] smulbb r4, r4, r3 - ldr r3, .L111+4 + ldr r3, .L104+4 ldrh fp, [r3] uxth r4, r4 - ldr r3, .L111+8 + ldr r3, .L104+8 ldrb r3, [r3] @ zero_extendqisi2 cmp r3, #1 ldr r3, [r0, #4] @@ -751,14 +723,14 @@ LogAddr2PhyAddr: cmp r8, #1 uxth r1, r1 ubfx r3, r3, #0, #10 - bne .L108 - ldr r2, .L111+12 + bne .L101 + ldr r2, .L104+12 ldrb r2, [r2] @ zero_extendqisi2 - cbnz r2, .L108 - ldr r2, .L111+16 + cbnz r2, .L101 + ldr r2, .L104+16 ldrh r3, [r2, r3, lsl #1] -.L108: - ldr r2, .L111+20 +.L101: + ldr r2, .L104+20 ldr r2, [r2, r10, lsl #2] mla r1, fp, r1, r2 add r1, r1, r3 @@ -766,27 +738,27 @@ LogAddr2PhyAddr: str r1, [r7] str r10, [r6] cmp r3, #1 - bls .L110 + bls .L103 ldr r0, [r5, #4] ldr r3, [r5, #40] add r0, r0, #1024 subs r3, r0, r3 rsbs r0, r3, #0 adcs r0, r0, r3 -.L109: +.L102: add sp, sp, #8 @ sp needed pop {r4, r5, r6, r7, r8, r10, fp, pc} -.L110: +.L103: movs r0, #0 - b .L109 -.L112: + b .L102 +.L105: .align 2 -.L111: - .word .LANCHOR15 +.L104: + .word .LANCHOR14 .word .LANCHOR3 .word .LANCHOR1 - .word .LANCHOR8 + .word .LANCHOR15 .word .LANCHOR16 .word .LANCHOR17 .size LogAddr2PhyAddr, .-LogAddr2PhyAddr @@ -801,56 +773,56 @@ LogAddr2PhyAddr: FlashReadStatusEN: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L125 + ldr r3, .L118 push {r4, r5, r6, lr} ldr r5, [r3, r0, lsl #3] add r3, r3, r0, lsl #3 ldrb r4, [r3, #4] @ zero_extendqisi2 - ldr r3, .L125+4 + ldr r3, .L118+4 ldr r3, [r3] ldrb r3, [r3, #8] @ zero_extendqisi2 cmp r3, #2 lsl r3, r4, #8 add r4, r4, #8 - bne .L114 - ldr r0, .L125+8 - cbnz r2, .L115 + bne .L107 + ldr r0, .L118+8 + cbnz r2, .L108 ldrb r2, [r0, #13] @ zero_extendqisi2 -.L124: +.L117: add r3, r3, r5 str r2, [r3, #2056] ldrb r0, [r0, #15] @ zero_extendqisi2 - cbz r0, .L119 + cbz r0, .L112 add r6, r5, r4, lsl #8 movs r2, #0 -.L118: +.L111: cmp r2, r0 - bcc .L120 -.L119: + bcc .L113 +.L112: lsls r4, r4, #8 movs r0, #80 bl udelay ldr r0, [r5, r4] uxtb r0, r0 pop {r4, r5, r6, pc} -.L115: +.L108: ldrb r2, [r0, #14] @ zero_extendqisi2 - b .L124 -.L120: + b .L117 +.L113: lsls r3, r2, #3 adds r2, r2, #1 lsr r3, r1, r3 uxtb r3, r3 str r3, [r6, #4] - b .L118 -.L114: + b .L111 +.L107: add r3, r3, r5 movs r2, #112 str r2, [r3, #2056] - b .L119 -.L126: + b .L112 +.L119: .align 2 -.L125: +.L118: .word .LANCHOR6 .word .LANCHOR18 .word .LANCHOR7 @@ -870,16 +842,16 @@ FlashWaitReadyEN: mov r4, r0 mov r5, r1 mov r6, r2 -.L131: +.L124: mov r2, r6 mov r1, r5 mov r0, r4 bl FlashReadStatusEN cmp r0, #255 mov r3, r0 - beq .L131 + beq .L124 lsls r3, r3, #25 - bpl .L131 + bpl .L124 pop {r4, r5, r6, pc} .size FlashWaitReadyEN, .-FlashWaitReadyEN .section .text.NandcReadDontCaseBusyEn,"ax",%progbits @@ -908,16 +880,16 @@ NandcGetChipIf: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r2, .L136 + ldr r2, .L129 add r3, r2, r0, lsl #3 ldr r0, [r2, r0, lsl #3] ldrb r3, [r3, #4] @ zero_extendqisi2 adds r3, r3, #8 add r0, r0, r3, lsl #8 bx lr -.L137: +.L130: .align 2 -.L136: +.L129: .word .LANCHOR6 .size NandcGetChipIf, .-NandcGetChipIf .section .text.NandcSetDdrPara,"ax",%progbits @@ -932,16 +904,16 @@ NandcSetDdrPara: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L139 + ldr r3, .L132 ldr r2, [r3] lsls r3, r0, #8 orr r0, r3, r0, lsl #16 orr r0, r0, #1 str r0, [r2, #304] bx lr -.L140: +.L133: .align 2 -.L139: +.L132: .word .LANCHOR19 .size NandcSetDdrPara, .-NandcSetDdrPara .section .text.NandcSetDdrDiv,"ax",%progbits @@ -956,14 +928,14 @@ NandcSetDdrDiv: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L142 + ldr r3, .L135 orr r0, r0, #16640 ldr r3, [r3] str r0, [r3, #344] bx lr -.L143: +.L136: .align 2 -.L142: +.L135: .word .LANCHOR19 .size NandcSetDdrDiv, .-NandcSetDdrDiv .section .text.NandcSetDdrMode,"ax",%progbits @@ -978,20 +950,20 @@ NandcSetDdrMode: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L147 + ldr r3, .L140 ldr r2, [r3] ldr r3, [r2] - cbnz r0, .L145 + cbnz r0, .L138 bfi r3, r0, #13, #1 -.L146: +.L139: str r3, [r2] bx lr -.L145: +.L138: orr r3, r3, #253952 - b .L146 -.L148: + b .L139 +.L141: .align 2 -.L147: +.L140: .word .LANCHOR19 .size NandcSetDdrMode, .-NandcSetDdrMode .section .text.NandcSetMode,"ax",%progbits @@ -1006,16 +978,16 @@ NandcSetMode: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L156 + ldr r3, .L149 ands r1, r0, #6 ldr r2, [r3] ldr r3, [r2] - beq .L150 + beq .L143 lsls r1, r0, #29 movw r1, #16641 str r1, [r2, #344] orr r3, r3, #24576 - ldr r1, .L156+4 + ldr r1, .L149+4 bfc r3, #15, #1 orr r3, r3, #196608 it mi @@ -1025,16 +997,16 @@ NandcSetMode: str r1, [r2, #308] movs r1, #39 str r1, [r2, #308] -.L152: +.L145: str r3, [r2] movs r0, #0 bx lr -.L150: +.L143: bfi r3, r1, #13, #1 - b .L152 -.L157: + b .L145 +.L150: .align 2 -.L156: +.L149: .word .LANCHOR19 .word 1710595 .size NandcSetMode, .-NandcSetMode @@ -1050,7 +1022,7 @@ NandcFlashCs: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L159 + ldr r3, .L152 movs r2, #1 ldr r1, [r3, r0, lsl #3] add r0, r3, r0, lsl #3 @@ -1060,9 +1032,9 @@ NandcFlashCs: bfi r3, r2, #0, #8 str r3, [r1] bx lr -.L160: +.L153: .align 2 -.L159: +.L152: .word .LANCHOR6 .size NandcFlashCs, .-NandcFlashCs .section .text.NandcFlashDeCs,"ax",%progbits @@ -1077,16 +1049,16 @@ NandcFlashDeCs: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L162 + ldr r3, .L155 ldr r2, [r3, r0, lsl #3] ldr r3, [r2] bfc r3, #0, #8 bfc r3, #17, #1 str r3, [r2] bx lr -.L163: +.L156: .align 2 -.L162: +.L155: .word .LANCHOR6 .size NandcFlashDeCs, .-NandcFlashDeCs .section .text.HynixSetRRPara,"ax",%progbits @@ -1101,27 +1073,28 @@ HynixSetRRPara: @ args = 0, pretend = 0, frame = 8 @ frame_needed = 0, uses_anonymous_args = 0 push {r0, r1, r4, r5, r6, r7, r8, r10, fp, lr} - mov r7, r3 - ldr r3, .L171 + mov r6, r3 + ldr r3, .L166 mov r5, r0 - mov r6, r1 + mov r7, r1 mov r10, r2 - ldr r4, .L171+4 ldr r3, [r3] ldrb r3, [r3, #19] @ zero_extendqisi2 cmp r3, #6 - bne .L165 - movs r3, #20 - add r3, r3, r0, lsl #6 - add r3, r3, r7, lsl #2 -.L170: + bne .L158 + movs r4, #20 + add r4, r4, r0, lsl #6 + add r3, r4, r6, lsl #2 +.L164: + ldr r4, .L166+4 +.L165: add r4, r4, r3 -.L166: - ldr r3, .L171+8 +.L159: + ldr r3, .L166+8 mov r0, r5 - subs r6, r6, #1 + subs r7, r7, #1 subs r4, r4, #1 - add r6, r6, r10 + add r7, r7, r10 ldr r8, [r3, r5, lsl #3] add r3, r3, r5, lsl #3 ldrb fp, [r3, #4] @ zero_extendqisi2 @@ -1132,35 +1105,42 @@ HynixSetRRPara: str r3, [r0, #2056] add r3, r10, #-1 mov r10, r0 -.L168: - cmp r3, r6 - bne .L169 +.L162: + cmp r3, r7 + bne .L163 movs r3, #22 add r8, r8, fp str r3, [r8, #2056] mov r0, r5 bl NandcFlashDeCs - ldr r3, .L171+12 - strb r7, [r3, r5] + ldr r3, .L166+12 + strb r6, [r3, r5] add sp, sp, #8 @ sp needed pop {r4, r5, r6, r7, r8, r10, fp, pc} -.L165: +.L158: cmp r3, #7 - bne .L167 + bne .L160 + movs r4, #28 movs r3, #160 - movs r2, #28 - smlabb r2, r3, r0, r2 - movs r3, #10 - smlabb r3, r3, r7, r2 - b .L170 -.L167: - adds r3, r7, #2 - add r3, r3, r0, lsl #3 + smlabb r3, r3, r0, r4 + movs r4, #10 + smlabb r3, r4, r6, r3 + b .L164 +.L160: + cmp r3, #8 + bne .L161 + add r4, r6, r6, lsl #2 + ldr r3, .L166+16 + b .L165 +.L161: + adds r4, r6, #2 + add r3, r4, r0, lsl #3 + ldr r4, .L166+4 add r4, r4, r3, lsl #3 adds r4, r4, #4 - b .L166 -.L169: + b .L159 +.L163: ldrb r2, [r3, #1]! @ zero_extendqisi2 movs r0, #200 str r2, [r10, #2052] @@ -1169,14 +1149,15 @@ HynixSetRRPara: ldrsb r2, [r4, #1]! ldr r3, [sp, #4] str r2, [r10, #2048] - b .L168 -.L172: + b .L162 +.L167: .align 2 -.L171: +.L166: .word .LANCHOR18 .word .LANCHOR20 .word .LANCHOR6 .word .LANCHOR21 + .word .LANCHOR20+28 .size HynixSetRRPara, .-HynixSetRRPara .section .text.FlashSetReadRetryDefault,"ax",%progbits .align 1 @@ -1189,35 +1170,35 @@ HynixSetRRPara: FlashSetReadRetryDefault: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L179 + ldr r3, .L174 push {r4, r5, r6, lr} ldr r3, [r3] ldrb r3, [r3, #19] @ zero_extendqisi2 subs r3, r3, #1 - cmp r3, #6 - bhi .L173 - ldr r5, .L179+4 + cmp r3, #7 + bhi .L168 + ldr r5, .L174+4 movs r4, #0 adds r6, r5, #4 -.L176: - ldr r3, .L179+8 +.L171: + ldr r3, .L174+8 uxtb r0, r4 ldrb r3, [r3, r4, lsl #3] @ zero_extendqisi2 cmp r3, #173 - bne .L175 + bne .L170 movs r3, #0 mov r2, r6 ldrb r1, [r5, #1] @ zero_extendqisi2 bl HynixSetRRPara -.L175: +.L170: adds r4, r4, #1 cmp r4, #4 - bne .L176 -.L173: + bne .L171 +.L168: pop {r4, r5, r6, pc} -.L180: +.L175: .align 2 -.L179: +.L174: .word .LANCHOR18 .word .LANCHOR20 .word .LANCHOR22 @@ -1233,17 +1214,17 @@ FlashSetReadRetryDefault: FlashWaitCmdDone: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r2, .L188 + ldr r2, .L183 lsls r3, r0, #4 push {r4, r5, r6, lr} mov r6, r0 adds r4, r2, r3 ldr r1, [r4, #8] - cbz r1, .L183 + cbz r1, .L178 ldrb r5, [r2, r3] @ zero_extendqisi2 mov r0, r5 bl NandcFlashCs - ldr r3, .L188+4 + ldr r3, .L183+4 mov r0, r5 ldr r1, [r4, #4] ldr r2, [r3, r6, lsl #2] @@ -1260,15 +1241,15 @@ FlashWaitCmdDone: str r1, [r3] movs r3, #0 str r3, [r4, #8] - cbz r2, .L183 + cbz r2, .L178 str r1, [r2] str r3, [r4, #12] -.L183: +.L178: movs r0, #0 pop {r4, r5, r6, pc} -.L189: +.L184: .align 2 -.L188: +.L183: .word .LANCHOR23 .word .LANCHOR17 .size FlashWaitCmdDone, .-FlashWaitCmdDone @@ -1288,6 +1269,45 @@ NandcDelayns: movs r0, #0 pop {r3, pc} .size NandcDelayns, .-NandcDelayns + .section .text.NandcWaitFlashReadyNoDelay,"ax",%progbits + .align 1 + .global NandcWaitFlashReadyNoDelay + .syntax unified + .thumb + .thumb_func + .fpu softvfp + .type NandcWaitFlashReadyNoDelay, %function +NandcWaitFlashReadyNoDelay: + @ args = 0, pretend = 0, frame = 8 + @ frame_needed = 0, uses_anonymous_args = 0 + ldr r3, .L191 + push {r0, r1, r2, r4, r5, lr} + ldr r4, .L191+4 + ldr r5, [r3, r0, lsl #3] +.L188: + ldr r3, [r5] + str r3, [sp, #4] + ldr r3, [sp, #4] + lsls r3, r3, #22 + bmi .L189 + movs r0, #10 + bl udelay + subs r4, r4, #1 + bne .L188 + mov r0, #-1 +.L186: + add sp, sp, #12 + @ sp needed + pop {r4, r5, pc} +.L189: + movs r0, #0 + b .L186 +.L192: + .align 2 +.L191: + .word .LANCHOR6 + .word 100000 + .size NandcWaitFlashReadyNoDelay, .-NandcWaitFlashReadyNoDelay .section .text.NandcWaitFlashReady,"ax",%progbits .align 1 .global NandcWaitFlashReady @@ -1299,31 +1319,33 @@ NandcDelayns: NandcWaitFlashReady: @ args = 0, pretend = 0, frame = 8 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L196 push {r0, r1, r2, r4, r5, lr} - ldr r4, .L196+4 + ldr r3, .L198 + ldr r4, .L198+4 ldr r5, [r3, r0, lsl #3] -.L193: - movs r0, #100 + movs r0, #150 bl udelay +.L195: ldr r3, [r5] str r3, [sp, #4] ldr r3, [sp, #4] lsls r3, r3, #22 - bmi .L194 + bmi .L196 + movs r0, #10 + bl udelay subs r4, r4, #1 - bne .L193 + bne .L195 mov r0, #-1 -.L191: +.L193: add sp, sp, #12 @ sp needed pop {r4, r5, pc} -.L194: - movs r0, #0 - b .L191 -.L197: - .align 2 .L196: + movs r0, #0 + b .L193 +.L199: + .align 2 +.L198: .word .LANCHOR6 .word 100000 .size NandcWaitFlashReady, .-NandcWaitFlashReady @@ -1338,7 +1360,7 @@ NandcWaitFlashReady: FlashReset: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L199 + ldr r3, .L201 push {r4, r5, r6, lr} mov r4, r0 ldr r5, [r3, r0, lsl #3] @@ -1353,11 +1375,114 @@ FlashReset: mov r0, r4 pop {r4, r5, r6, lr} b NandcFlashDeCs -.L200: +.L202: .align 2 -.L199: +.L201: .word .LANCHOR6 .size FlashReset, .-FlashReset + .section .text.flash_enter_slc_mode,"ax",%progbits + .align 1 + .global flash_enter_slc_mode + .syntax unified + .thumb + .thumb_func + .fpu softvfp + .type flash_enter_slc_mode, %function +flash_enter_slc_mode: + @ args = 0, pretend = 0, frame = 0 + @ frame_needed = 0, uses_anonymous_args = 0 + push {r3, r4, r5, lr} + mov r5, r0 + ldr r3, .L205 + ldrb r3, [r3] @ zero_extendqisi2 + cbz r3, .L203 + bl NandcFlashCs + ldr r3, .L205+4 + movs r0, #100 + ldr r4, [r3, r5, lsl #3] + add r3, r3, r5, lsl #3 + ldrb r3, [r3, #4] @ zero_extendqisi2 + add r4, r4, r3, lsl #8 + movs r3, #239 + str r3, [r4, #2056] + movs r3, #145 + str r3, [r4, #2052] + bl udelay + movs r3, #0 + movs r2, #1 + str r3, [r4, #2048] + movs r0, #100 + str r2, [r4, #2048] + str r3, [r4, #2048] + str r3, [r4, #2048] + bl udelay + mov r0, r5 + bl NandcWaitFlashReadyNoDelay + movs r3, #218 + mov r0, r5 + str r3, [r4, #2056] + pop {r3, r4, r5, lr} + b NandcWaitFlashReady +.L203: + pop {r3, r4, r5, pc} +.L206: + .align 2 +.L205: + .word .LANCHOR15 + .word .LANCHOR6 + .size flash_enter_slc_mode, .-flash_enter_slc_mode + .section .text.flash_exit_slc_mode,"ax",%progbits + .align 1 + .global flash_exit_slc_mode + .syntax unified + .thumb + .thumb_func + .fpu softvfp + .type flash_exit_slc_mode, %function +flash_exit_slc_mode: + @ args = 0, pretend = 0, frame = 0 + @ frame_needed = 0, uses_anonymous_args = 0 + push {r3, r4, r5, lr} + mov r5, r0 + ldr r3, .L209 + ldrb r3, [r3] @ zero_extendqisi2 + cbz r3, .L207 + bl NandcFlashCs + ldr r3, .L209+4 + movs r0, #100 + ldr r4, [r3, r5, lsl #3] + add r3, r3, r5, lsl #3 + ldrb r3, [r3, #4] @ zero_extendqisi2 + add r4, r4, r3, lsl #8 + movs r3, #239 + str r3, [r4, #2056] + movs r3, #145 + str r3, [r4, #2052] + bl udelay + movs r3, #2 + movs r0, #100 + str r3, [r4, #2048] + movs r3, #1 + str r3, [r4, #2048] + movs r3, #0 + str r3, [r4, #2048] + str r3, [r4, #2048] + bl udelay + mov r0, r5 + bl NandcWaitFlashReadyNoDelay + movs r3, #223 + mov r0, r5 + str r3, [r4, #2056] + pop {r3, r4, r5, lr} + b NandcWaitFlashReady +.L207: + pop {r3, r4, r5, pc} +.L210: + .align 2 +.L209: + .word .LANCHOR15 + .word .LANCHOR6 + .size flash_exit_slc_mode, .-flash_exit_slc_mode .section .text.FlashEraseBlock,"ax",%progbits .align 1 .global FlashEraseBlock @@ -1402,7 +1527,7 @@ FlashEraseBlock: FlashSetInterfaceMode: @ args = 0, pretend = 0, frame = 8 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L230 + ldr r3, .L240 mov ip, #128 push {r0, r1, r4, r5, r6, r7, r8, r10, fp, lr} movs r5, #0 @@ -1413,39 +1538,39 @@ FlashSetInterfaceMode: ldrb r3, [r3] @ zero_extendqisi2 and r2, r3, #4 and r3, r3, #1 - str r2, [sp] + str r2, [sp, #4] mov r2, r5 - str r3, [sp, #4] -.L212: - ldr r3, .L230+4 + str r3, [sp] +.L222: + ldr r3, .L240+4 ldrb r4, [r5, r3] @ zero_extendqisi2 cmp r4, #152 - beq .L203 + beq .L213 cmp r4, #69 - beq .L203 + beq .L213 cmp r4, #173 - beq .L203 + beq .L213 cmp r4, #44 - bne .L204 -.L203: - ldr r3, .L230+8 + bne .L214 +.L213: + ldr r3, .L240+8 cmp r0, #1 ldr r1, [r5, r3] add r3, r3, r5 ldrb r3, [r3, #4] @ zero_extendqisi2 - bne .L205 - ldr r6, [sp, #4] - cbz r6, .L204 + bne .L215 + ldr r6, [sp] + cbz r6, .L214 lsls r3, r3, #8 cmp r4, #173 add fp, r1, r3 str r7, [fp, #2056] - bne .L206 + bne .L216 str r0, [fp, #2052] -.L229: +.L239: str r2, [fp, #2048] - b .L210 -.L206: + b .L220 +.L216: cmp r4, #44 ittet eq moveq r4, #5 @@ -1454,45 +1579,45 @@ FlashSetInterfaceMode: streq r4, [fp, #2048] it ne strne r0, [fp, #2048] -.L210: +.L220: add r3, r3, r1 str r2, [r3, #2048] str r2, [r3, #2048] str r2, [r3, #2048] -.L204: +.L214: adds r5, r5, #8 cmp r5, #32 - bne .L212 + bne .L222 movs r0, #0 bl NandcWaitFlashReady movs r0, #0 add sp, sp, #8 @ sp needed pop {r4, r5, r6, r7, r8, r10, fp, pc} -.L205: - ldr r6, [sp] +.L215: + ldr r6, [sp, #4] cmp r6, #0 - beq .L204 + beq .L214 lsls r3, r3, #8 cmp r4, #173 add fp, r1, r3 str r7, [fp, #2056] - bne .L209 + bne .L219 str lr, [fp, #2052] str r10, [fp, #2048] - b .L210 -.L209: + b .L220 +.L219: cmp r4, #44 - bne .L211 + bne .L221 str lr, [fp, #2052] str r8, [fp, #2048] - b .L210 -.L211: + b .L220 +.L221: str ip, [fp, #2052] - b .L229 -.L231: + b .L239 +.L241: .align 2 -.L230: +.L240: .word .LANCHOR24 .word .LANCHOR22 .word .LANCHOR6 @@ -1517,21 +1642,21 @@ SandiskSetRRPara: str r3, [r0, #4] movs r0, #200 bl udelay - ldr r3, .L238 + ldr r3, .L248 add r4, r4, r4, lsl #2 - ldr r6, .L238+4 + ldr r6, .L248+4 movs r2, #0 - ldr r7, .L238+8 + ldr r7, .L248+8 ldrb r1, [r3] @ zero_extendqisi2 - ldr r3, .L238+12 + ldr r3, .L248+12 ldrb r0, [r3] @ zero_extendqisi2 -.L233: +.L243: cmp r2, r1 - bcc .L236 + bcc .L246 movs r0, #0 pop {r3, r4, r5, r6, r7, lr} b NandcWaitFlashReady -.L236: +.L246: adds r3, r2, r4 cmp r0, #67 ite eq @@ -1540,14 +1665,14 @@ SandiskSetRRPara: ldrsb r3, [r3, #5] adds r2, r2, #1 str r3, [r5] - b .L233 -.L239: + b .L243 +.L249: .align 2 -.L238: - .word .LANCHOR13 - .word .LANCHOR11 - .word .LANCHOR9 +.L248: + .word .LANCHOR12 .word .LANCHOR10 + .word .LANCHOR8 + .word .LANCHOR9 .size SandiskSetRRPara, .-SandiskSetRRPara .section .text.micron_auto_read_calibration_config,"ax",%progbits .align 1 @@ -1564,7 +1689,7 @@ micron_auto_read_calibration_config: mov r5, r0 mov r6, r1 bl NandcWaitFlashReady - ldr r0, .L241 + ldr r0, .L251 ldr r4, [r0, r5, lsl #3] add r0, r0, r5, lsl #3 ldrb r3, [r0, #4] @ zero_extendqisi2 @@ -1581,9 +1706,9 @@ micron_auto_read_calibration_config: str r3, [r4, #2048] str r3, [r4, #2048] pop {r4, r5, r6, pc} -.L242: +.L252: .align 2 -.L241: +.L251: .word .LANCHOR6 .size micron_auto_read_calibration_config, .-micron_auto_read_calibration_config .section .text.FlashEraseSLc2KBlocks,"ax",%progbits @@ -1599,19 +1724,19 @@ FlashEraseSLc2KBlocks: @ frame_needed = 0, uses_anonymous_args = 0 push {r4, r5, r6, r7, r8, r10, lr} mov r7, r1 - ldr r8, .L253+12 + ldr r8, .L263+12 sub sp, sp, #20 mov r5, r0 movs r6, #0 - ldr r10, .L253+16 -.L244: + ldr r10, .L263+16 +.L254: cmp r6, r7 - bne .L249 + bne .L259 movs r0, #0 add sp, sp, #20 @ sp needed pop {r4, r5, r6, r7, r8, r10, pc} -.L249: +.L259: subs r3, r7, r6 add r2, sp, #8 uxtb r3, r3 @@ -1623,17 +1748,17 @@ FlashEraseSLc2KBlocks: ldr r3, [sp, #12] ldrb r2, [r8] @ zero_extendqisi2 cmp r2, r3 - bhi .L245 + bhi .L255 mov r3, #-1 str r3, [r5] -.L246: +.L256: adds r6, r6, #1 adds r5, r5, #36 - b .L244 -.L245: + b .L254 +.L255: ldrb r4, [r10, r3] @ zero_extendqisi2 lsls r3, r3, #4 - ldr r2, .L253 + ldr r2, .L263 mov r0, r4 strb r4, [r2, r3] bl NandcWaitFlashReady @@ -1648,7 +1773,7 @@ FlashEraseSLc2KBlocks: ldr r1, [sp, #8] mov r0, r4 bl FlashReadStatus - ldr r3, .L253+4 + ldr r3, .L263+4 sbfx r0, r0, #0, #1 str r0, [r5] movs r2, #0 @@ -1668,17 +1793,17 @@ FlashEraseSLc2KBlocks: strmi r3, [r5] ldr r3, [r5] adds r3, r3, #1 - bne .L248 + bne .L258 ldr r1, [sp, #8] - ldr r0, .L253+8 + ldr r0, .L263+8 bl printf -.L248: +.L258: mov r0, r4 bl NandcFlashDeCs - b .L246 -.L254: + b .L256 +.L264: .align 2 -.L253: +.L263: .word .LANCHOR23 .word .LANCHOR3 .word .LC1 @@ -1696,41 +1821,41 @@ FlashEraseSLc2KBlocks: FlashEraseBlocks: @ args = 0, pretend = 0, frame = 16 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L286 + ldr r3, .L296 push {r4, r5, r6, r7, r8, r10, fp, lr} mov r8, r0 sub sp, sp, #24 mov fp, r1 mov r7, r2 ldrb r4, [r3] @ zero_extendqisi2 - cbnz r4, .L256 - ldr r10, .L286+8 -.L257: - cmp r4, r7 - bcc .L266 - ldr r5, .L286+4 - movs r4, #0 - ldr r6, .L286+8 + cbnz r4, .L266 + ldr r10, .L296+8 .L267: - ldr r3, .L286+12 + cmp r4, r7 + bcc .L276 + ldr r5, .L296+4 + movs r4, #0 + ldr r6, .L296+8 +.L277: + ldr r3, .L296+12 ldrb r3, [r3] @ zero_extendqisi2 cmp r4, r3 - bcc .L269 - ldr r3, .L286+16 + bcc .L279 + ldr r3, .L296+16 ldr r3, [r3] cmp r3, #0 - bne .L270 -.L271: + bne .L280 +.L281: movs r0, #0 - b .L255 -.L256: + b .L265 +.L266: mov r1, r2 bl FlashEraseSLc2KBlocks -.L255: +.L265: add sp, sp, #24 @ sp needed pop {r4, r5, r6, r7, r8, r10, fp, pc} -.L266: +.L276: movs r5, #36 add r2, sp, #16 muls r5, r4, r5 @@ -1743,29 +1868,29 @@ FlashEraseBlocks: str r3, [sp] add r3, sp, #20 bl LogAddr2PhyAddr - ldr r3, .L286+12 + ldr r3, .L296+12 mov r6, r0 ldr r0, [sp, #20] ldrb r3, [r3] @ zero_extendqisi2 cmp r3, r0 - bhi .L259 + bhi .L269 mov r3, #-1 str r3, [r8, r5] -.L260: +.L270: adds r4, r4, #1 - b .L257 -.L259: - ldr r3, .L286+20 + b .L267 +.L269: + ldr r3, .L296+20 ldrb r3, [r3] @ zero_extendqisi2 cmp r3, #0 add r3, r10, r0, lsl #4 it eq moveq r6, #0 ldr r3, [r3, #8] - cbz r3, .L262 + cbz r3, .L272 uxtb r0, r0 bl FlashWaitCmdDone -.L262: +.L272: ldr r1, [sp, #20] ldr r0, [sp, #12] lsls r2, r1, #4 @@ -1775,25 +1900,25 @@ FlashEraseBlocks: str r0, [r3, #12] ldr r0, [sp, #16] str r0, [r3, #4] - cbz r6, .L263 + cbz r6, .L273 adds r5, r5, #36 add r5, r5, r8 str r5, [r3, #12] -.L263: - ldr r3, .L286+24 +.L273: + ldr r3, .L296+24 ldrb r5, [r3, r1] @ zero_extendqisi2 mov r0, r5 strb r5, [r10, r2] bl NandcFlashCs cmp fp, #1 mov r0, r5 - bne .L264 - ldr r3, .L286+4 + bne .L274 + ldr r3, .L296+4 ldrb r3, [r3] @ zero_extendqisi2 - cbz r3, .L264 + cbz r3, .L274 bl flash_enter_slc_mode -.L265: - ldr r3, .L286+28 +.L275: + ldr r3, .L296+28 mov r0, r5 ldr r2, [sp, #20] add r4, r4, r6 @@ -1809,43 +1934,43 @@ FlashEraseBlocks: bl FlashEraseCmd mov r0, r5 bl NandcFlashDeCs - b .L260 -.L264: + b .L270 +.L274: bl flash_exit_slc_mode - b .L265 -.L269: + b .L275 +.L279: uxtb r0, r4 bl FlashWaitCmdDone cmp fp, #1 - bne .L268 + bne .L278 ldrb r3, [r5] @ zero_extendqisi2 - cbz r3, .L268 + cbz r3, .L278 lsls r3, r4, #4 ldrb r0, [r6, r3] @ zero_extendqisi2 bl flash_exit_slc_mode -.L268: +.L278: adds r4, r4, #1 - b .L267 -.L270: - ldr r3, .L286+32 + b .L277 +.L280: + ldr r3, .L296+32 ldrb r3, [r3] @ zero_extendqisi2 cmp r3, #69 - bne .L271 + bne .L281 movs r3, #0 movs r2, #36 mov r1, r3 -.L272: +.L282: cmp r3, r7 - beq .L271 + beq .L281 mul r0, r2, r3 adds r3, r3, #1 str r1, [r8, r0] - b .L272 -.L287: + b .L282 +.L297: .align 2 -.L286: +.L296: .word .LANCHOR1 - .word .LANCHOR8 + .word .LANCHOR15 .word .LANCHOR23 .word .LANCHOR25 .word .LANCHOR28 @@ -1867,7 +1992,7 @@ FlashReadDpCmd: @ frame_needed = 0, uses_anonymous_args = 0 push {r3, r4, r5, r6, r7, r8, r10, lr} mov r5, r2 - ldr r3, .L292 + ldr r3, .L302 mov r6, r1 uxtb lr, r1 mov r7, r0 @@ -1876,7 +2001,7 @@ FlashReadDpCmd: ldr r10, [r3, r0, lsl #3] add r3, r3, r0, lsl #3 ldrb r4, [r3, #4] @ zero_extendqisi2 - ldr r3, .L292+4 + ldr r3, .L302+4 ldrb r2, [r3, #16] @ zero_extendqisi2 lsls r4, r4, #8 ldrb ip, [r3, #8] @ zero_extendqisi2 @@ -1885,7 +2010,7 @@ FlashReadDpCmd: cmp r2, #1 lsr r2, r6, #16 str ip, [r4, #2056] - bne .L289 + bne .L299 mov r10, #0 str r10, [r4, #2052] str r10, [r4, #2052] @@ -1897,7 +2022,7 @@ FlashReadDpCmd: str r10, [r4, #2056] str r10, [r4, #2052] str r10, [r4, #2052] -.L291: +.L301: lsrs r3, r5, #8 lsrs r5, r5, #16 str r8, [r4, #2052] @@ -1909,15 +2034,15 @@ FlashReadDpCmd: mov r0, r7 pop {r3, r4, r5, r6, r7, r8, r10, lr} b FlashSetRandomizer -.L289: +.L299: str lr, [r4, #2052] str r1, [r4, #2052] str r2, [r4, #2052] str r3, [r4, #2056] - b .L291 -.L293: + b .L301 +.L303: .align 2 -.L292: +.L302: .word .LANCHOR6 .word .LANCHOR7 .size FlashReadDpCmd, .-FlashReadDpCmd @@ -1936,38 +2061,38 @@ FlashDeInit: movs r0, #0 bl NandcWaitFlashReady bl FlashSetReadRetryDefault - ldr r3, .L303 - ldr r2, [r3] - ldr r3, .L303+4 - cmp r2, r3 - bne .L295 + ldr r3, .L314 + ldr r0, [r3] + cbz r0, .L305 movs r0, #0 bl flash_enter_slc_mode -.L295: - ldr r4, .L303+8 +.L306: + ldr r4, .L314+4 ldrb r3, [r4] @ zero_extendqisi2 - cbz r3, .L296 - ldr r3, .L303+12 + cbz r3, .L307 + ldr r3, .L314+8 ldrb r3, [r3] @ zero_extendqisi2 lsls r3, r3, #31 - bpl .L296 + bpl .L307 movs r0, #1 bl FlashSetInterfaceMode movs r0, #1 bl NandcSetMode movs r3, #0 strb r3, [r4] -.L296: - ldr r3, .L303+16 +.L307: + ldr r3, .L314+12 movs r0, #0 ldr r3, [r3] str r0, [r3, #336] pop {r4, pc} -.L304: +.L305: + bl flash_exit_slc_mode + b .L306 +.L315: .align 2 -.L303: +.L314: .word .LANCHOR29 - .word 1446522928 .word .LANCHOR30 .word .LANCHOR24 .word .LANCHOR6 @@ -1984,13 +2109,13 @@ NandcRandmzSel: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L306 + ldr r3, .L317 ldr r3, [r3, r0, lsl #3] str r1, [r3, #336] bx lr -.L307: +.L318: .align 2 -.L306: +.L317: .word .LANCHOR6 .size NandcRandmzSel, .-NandcRandmzSel .section .text.NandcTimeCfg,"ax",%progbits @@ -2005,23 +2130,23 @@ NandcTimeCfg: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L313 + ldr r3, .L324 cmp r0, #35 ldr r3, [r3] - bhi .L309 + bhi .L320 movw r2, #4193 -.L312: +.L323: str r2, [r3, #4] bx lr -.L309: +.L320: cmp r0, #99 ite hi movwhi r2, #8322 movwls r2, #4225 - b .L312 -.L314: + b .L323 +.L325: .align 2 -.L313: +.L324: .word .LANCHOR19 .size NandcTimeCfg, .-NandcTimeCfg .section .text.FlashTimingCfg,"ax",%progbits @@ -2036,12 +2161,12 @@ FlashTimingCfg: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L316 + ldr r3, .L327 ldrb r0, [r3, #21] @ zero_extendqisi2 b NandcTimeCfg -.L317: +.L328: .align 2 -.L316: +.L327: .word .LANCHOR31 .size FlashTimingCfg, .-FlashTimingCfg .section .text.NandcBchSel,"ax",%progbits @@ -2055,7 +2180,7 @@ FlashTimingCfg: NandcBchSel: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L326 + ldr r3, .L337 movs r1, #0 push {r4, lr} movs r4, #16 @@ -2063,32 +2188,32 @@ NandcBchSel: ldr r2, [r3] mov r3, #1 str r3, [r2, #8] - ldr r3, .L326+4 + ldr r3, .L337+4 str r0, [r3] mov r3, r1 bfi r3, r4, #8, #8 bfi r3, r1, #18, #1 - bne .L319 -.L322: + bne .L330 +.L333: bfc r3, #4, #1 -.L320: +.L331: orr r3, r3, #1 str r3, [r2, #12] pop {r4, pc} -.L319: +.L330: cmp r0, #24 - bne .L321 + bne .L332 orr r3, r3, #16 - b .L320 -.L321: + b .L331 +.L332: cmp r0, #40 orr r3, r3, #262144 orr r3, r3, #16 - bne .L320 - b .L322 -.L327: + bne .L331 + b .L333 +.L338: .align 2 -.L326: +.L337: .word .LANCHOR19 .word .LANCHOR32 .size NandcBchSel, .-NandcBchSel @@ -2104,12 +2229,12 @@ FlashBchSel: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L329 + ldr r3, .L340 strb r0, [r3] b NandcBchSel -.L330: +.L341: .align 2 -.L329: +.L340: .word .LANCHOR33 .size FlashBchSel, .-FlashBchSel .section .text.NandCIrqEnable,"ax",%progbits @@ -2211,7 +2336,7 @@ NandcSendDumpDataStart: @ link register save eliminated. ldr r2, [r0, #16] sub sp, sp, #8 - ldr r3, .L338 + ldr r3, .L349 str r2, [sp, #4] ldr r2, [sp, #4] bfc r2, #2, #1 @@ -2224,9 +2349,9 @@ NandcSendDumpDataStart: add sp, sp, #8 @ sp needed bx lr -.L339: +.L350: .align 2 -.L338: +.L349: .word 538969130 .size NandcSendDumpDataStart, .-NandcSendDumpDataStart .section .text.NandcSendDumpDataDone,"ax",%progbits @@ -2242,12 +2367,12 @@ NandcSendDumpDataDone: @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. sub sp, sp, #8 -.L341: +.L352: ldr r3, [r0, #8] str r3, [sp, #4] ldr r3, [sp, #4] lsls r3, r3, #11 - bpl .L341 + bpl .L352 add sp, sp, #8 @ sp needed bx lr @@ -2270,12 +2395,12 @@ NandcXferStart: str r2, [sp, #4] ldr fp, [sp, #56] cmp r1, #0 - bne .L358 + bne .L369 adds r5, fp, #0 it ne movne r5, #1 -.L345: - ldr r1, .L363 +.L356: + ldr r1, .L374 movs r4, #0 ldr r6, [r1, r0, lsl #3] add r1, r1, r0, lsl #3 @@ -2293,29 +2418,29 @@ NandcXferStart: orr r4, r4, #536870912 orr r4, r4, #1024 bfi r4, r3, #4, #1 - ldr r3, .L363+4 + ldr r3, .L374+4 ldr r3, [r3] cmp r3, #3 - bls .L346 + bls .L357 ldr r3, [r6, #16] str r3, [sp, #20] ldr r3, [sp, #20] bfc r3, #2, #1 str r3, [sp, #20] cmp r5, #0 - beq .L347 - ldr r5, .L363+8 + beq .L358 + ldr r5, .L374+8 cmp r7, #0 - bne .L348 -.L356: + bne .L359 +.L367: ldr r2, [sp, #4] adds r2, r2, #1 asrs r2, r2, #1 bfi r4, r2, #22, #6 cmp fp, #0 - beq .L349 + beq .L360 mov r0, fp -.L350: +.L361: ldr r3, [r5, #4] add r1, r0, #63 ubfx r10, r4, #22, #5 @@ -2366,10 +2491,10 @@ NandcXferStart: ldr r3, [sp, #20] orr r3, r3, #1 str r3, [sp, #20] -.L347: +.L358: ldr r3, [sp, #20] str r3, [r6, #16] -.L346: +.L357: str r8, [r6, #12] str r4, [r6, #8] orr r4, r4, #4 @@ -2377,11 +2502,11 @@ NandcXferStart: add sp, sp, #24 @ sp needed pop {r4, r5, r6, r7, r8, r10, fp, pc} -.L358: +.L369: movs r5, #1 - b .L345 -.L348: - ldr r3, .L363+12 + b .L356 +.L359: + ldr r3, .L374+12 movs r1, #0 ldr lr, [r5, #4] mov r0, r1 @@ -2395,34 +2520,34 @@ NandcXferStart: lsrs r3, r3, #1 str r3, [sp, #12] ldr r3, [sp, #60] -.L352: +.L363: ldr r2, [sp, #12] cmp r0, r2 - bcs .L356 + bcs .L367 ldr r2, [sp, #60] bic r10, r1, #3 - cbz r2, .L353 + cbz r2, .L364 ldrh ip, [r3] adds r3, r3, #4 ldrh r2, [r3, #-2] orr ip, ip, r2, lsl #16 str ip, [lr, r10] -.L354: +.L365: ldr r2, [sp, #8] adds r0, r0, #1 add r1, r1, r2 - b .L352 -.L353: + b .L363 +.L364: mov r2, #-1 str r2, [lr, r10] - b .L354 -.L349: - ldr r3, .L363+8 + b .L365 +.L360: + ldr r3, .L374+8 ldr r0, [r3] - b .L350 -.L364: + b .L361 +.L375: .align 2 -.L363: +.L374: .word .LANCHOR6 .word .LANCHOR34 .word .LANCHOR35 @@ -2439,75 +2564,75 @@ NandcXferStart: NandcXferComp: @ args = 0, pretend = 0, frame = 8 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L393 + ldr r3, .L404 push {r0, r1, r4, lr} ldr r1, [r3, r0, lsl #3] - ldr r3, .L393+4 + ldr r3, .L404+4 ldr r0, [r3] cmp r0, #3 - bls .L386 + bls .L397 ldr r3, [r1, #16] lsls r2, r3, #29 - bpl .L386 + bpl .L397 ldr r3, [r1, #16] tst r3, #2 ldr r3, [r1, #8] str r3, [sp] - beq .L373 -.L369: + beq .L384 +.L380: ldr r2, [r1, #28] ldr r3, [sp] ubfx r2, r2, #16, #5 ubfx r3, r3, #22, #6 cmp r2, r3 - bge .L370 + bge .L381 cmp r0, #5 - bls .L369 + bls .L380 ldr r3, [r1] str r3, [sp, #4] ldr r3, [sp, #4] lsls r3, r3, #18 - bpl .L369 + bpl .L380 ldr r3, [sp, #4] lsls r4, r3, #14 - bpl .L369 -.L370: - ldr r3, .L393+8 + bpl .L380 +.L381: + ldr r3, .L404+8 movs r2, #0 str r2, [r3, #24] -.L365: +.L376: add sp, sp, #8 @ sp needed pop {r4, pc} -.L374: +.L385: ldr r3, [r1, #8] str r3, [sp] -.L373: +.L384: ldr r3, [sp] lsls r2, r3, #11 - bpl .L374 - ldr r4, .L393+12 + bpl .L385 + ldr r4, .L404+12 ldr r2, [r4] - cbz r2, .L375 + cbz r2, .L386 mov r0, r1 bl NandcSendDumpDataStart -.L375: +.L386: ldr r3, [r4] cmp r3, #0 - beq .L370 + beq .L381 mov r0, r1 bl NandcSendDumpDataDone - b .L370 -.L386: + b .L381 +.L397: ldr r3, [r1, #8] str r3, [sp] ldr r3, [sp] lsls r3, r3, #11 - bpl .L386 - b .L365 -.L394: + bpl .L397 + b .L376 +.L405: .align 2 -.L393: +.L404: .word .LANCHOR6 .word .LANCHOR34 .word .LANCHOR35 @@ -2527,17 +2652,17 @@ Ftl_log2: @ link register save eliminated. movs r1, #0 movs r2, #1 -.L396: +.L407: cmp r2, r0 uxth r3, r1 add r1, r1, #1 - bls .L397 + bls .L408 subs r0, r3, #1 uxth r0, r0 bx lr -.L397: +.L408: lsls r2, r2, #1 - b .L396 + b .L407 .size Ftl_log2, .-Ftl_log2 .section .text.FtlPrintInfo,"ax",%progbits .align 1 @@ -2565,31 +2690,31 @@ FtlSysBlkNumInit: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L400 + ldr r3, .L411 cmp r0, #24 it cc movcc r0, #24 - ldr r2, .L400+4 + ldr r2, .L411+4 str r0, [r3] - ldr r3, .L400+8 + ldr r3, .L411+8 ldrh r3, [r3] muls r3, r0, r3 str r3, [r2] - ldr r2, .L400+12 + ldr r2, .L411+12 ldrh r2, [r2] subs r0, r2, r0 - ldr r2, .L400+16 + ldr r2, .L411+16 strh r0, [r2] @ movhi movs r0, #0 - ldr r2, .L400+20 + ldr r2, .L411+20 ldr r2, [r2] subs r3, r2, r3 - ldr r2, .L400+24 + ldr r2, .L411+24 str r3, [r2] bx lr -.L401: +.L412: .align 2 -.L400: +.L411: .word .LANCHOR37 .word .LANCHOR39 .word .LANCHOR38 @@ -2614,122 +2739,118 @@ FtlConstantsInit: mov r10, r0 ldrh r7, [r0, #8] sub sp, sp, #24 - ldr r3, .L429 - ldr r1, .L429+4 - ldrh r6, [r10, #14] - ldr r2, .L429+8 + ldr r3, .L440 + ldrh r2, [r0, #10] + ldrh r6, [r0, #14] strh r7, [r3] @ movhi - ldrh r3, [r0, #10] - ldrh r0, [r0, #12] - strh r6, [r1] @ movhi - str r1, [sp, #20] - ldr r1, .L429+12 - ldr r4, .L429+16 - strh r0, [r2] @ movhi - movs r2, #0 - strh r3, [r4] @ movhi + ldrh r3, [r0, #12] + ldr r0, .L440+4 + ldr r1, .L440+8 + ldr r4, .L440+12 + strh r6, [r0] @ movhi + str r0, [sp, #20] + ldr r0, .L440+16 + strh r3, [r1] @ movhi + movs r1, #0 + strh r2, [r4] @ movhi str r4, [sp, #8] -.L403: - strb r2, [r2, r1] - adds r2, r2, #1 - cmp r2, #32 - bne .L403 - ldrh r1, [r10, #14] - ldrh r2, [r10, #20] - cmp r2, r1, lsr #8 - bcs .L404 - uxtb r8, r0 - lsl r2, r8, #1 - uxtb r2, r2 - str r2, [sp, #4] - subs r2, r3, #1 - muls r2, r0, r2 - str r2, [sp, #12] - movs r2, #0 -.L405: - cmp r2, r0 - bcs .L407 +.L414: + strb r1, [r1, r0] + adds r1, r1, #1 + cmp r1, #32 + bne .L414 + ldrh r0, [r10, #14] + ldrh r1, [r10, #20] + cmp r1, r0, lsr #8 + bcs .L415 + uxtb r8, r3 + lsl r1, r8, #1 + uxtb r1, r1 + str r1, [sp, #4] + subs r1, r2, #1 + muls r1, r3, r1 + str r1, [sp, #12] + movs r1, #0 +.L416: + cmp r1, r3 + bcs .L418 ldr r4, [sp, #12] - sub fp, r2, r0 - uxtb r1, r2 - adds r5, r2, r4 - ldr r4, .L429+12 + sub fp, r1, r3 + uxtb r0, r1 + adds r5, r1, r4 + ldr r4, .L440+16 add r4, r4, r5 movs r5, #0 mov lr, r4 - ldr r4, .L429+12 + ldr r4, .L440+16 mov ip, r5 add fp, fp, r4 - b .L408 -.L406: - add r4, r8, r1 - strb r1, [fp, r5] + b .L419 +.L417: + add r4, r8, r0 + strb r0, [fp, r5] str r4, [sp, #16] add ip, ip, #1 ldrb r4, [sp, #16] @ zero_extendqisi2 strb r4, [lr, r5] ldr r4, [sp, #4] - add r1, r1, r4 - uxtb r1, r1 -.L408: - cmp ip, r3 - add r5, r5, r0 - bcc .L406 - adds r2, r2, #1 - b .L405 -.L407: - ldr r2, [sp, #8] - lsls r3, r3, #1 + add r0, r0, r4 + uxtb r0, r0 +.L419: + cmp ip, r2 + add r5, r5, r3 + bcc .L417 + adds r1, r1, #1 + b .L416 +.L418: + ldr r1, [sp, #8] + lsls r2, r2, #1 lsrs r6, r6, #1 - strh r3, [r2] @ movhi - ldr r3, .L429+4 - strh r6, [r3] @ movhi -.L404: - ldr r3, .L429+20 + strh r2, [r1] @ movhi + ldr r2, .L440+4 + strh r6, [r2] @ movhi +.L415: + ldr r1, .L440+20 movs r2, #5 cmp r7, #1 - mov r1, #0 - strh r2, [r3] @ movhi - ldr r2, .L429+24 + mov r0, #0 + strh r2, [r1] @ movhi + ldr r2, .L440+24 it eq - strheq r7, [r3] @ movhi - ldr r3, .L429+28 - strh r1, [r2] @ movhi - mov r1, #4352 - strh r1, [r3] @ movhi - ldr r1, .L429+32 - ldrb r1, [r1] @ zero_extendqisi2 - str r1, [sp, #4] - cbz r1, .L410 - mov r1, #384 - strh r1, [r3] @ movhi -.L410: - ldr r3, [sp, #8] + strheq r7, [r1] @ movhi + ldr r1, .L440+28 + strh r0, [r2] @ movhi + mov r0, #4352 + strh r0, [r1] @ movhi + ldr r0, .L440+32 + ldrb r0, [r0] @ zero_extendqisi2 + str r0, [sp, #4] + cbz r0, .L421 + mov r0, #384 + strh r0, [r1] @ movhi +.L421: str r2, [sp, #16] - ldr fp, .L429+120 - ldrh r5, [r3] - ldr r3, .L429+36 - ldr r8, .L429+124 - smulbb r5, r5, r0 - uxth r5, r5 - strh r5, [r3] @ movhi - ldr r3, [sp, #20] - ldrh r4, [r3] - ldr r3, .L429+40 - smulbb r0, r0, r4 - uxth r0, r0 - strh r0, [r3] @ movhi - bl Ftl_log2 - ldr r3, .L429+44 + ldr r2, [sp, #8] + ldr r1, .L440+36 ldrh r6, [r10, #16] - ldrh r1, [r10, #18] - strh r0, [r3] @ movhi - ldr r3, .L429+48 - smulbb r0, r5, r6 + ldrh r5, [r2] + ldr r2, [sp, #20] + ldr fp, .L440+116 + ldr r8, .L440+120 + smulbb r5, r5, r3 + ldrh r4, [r2] strh r6, [fp] @ movhi + uxth r5, r5 + smulbb r3, r3, r4 + strh r5, [r1] @ movhi + smulbb r0, r5, r6 + ldr r1, .L440+40 + strh r3, [r1] @ movhi + ldrh r1, [r10, #18] + ldr r3, .L440+44 str r1, [sp, #12] strh r1, [r3] @ movhi - ldr r3, .L429+52 + ldr r3, .L440+48 strh r0, [r3] @ movhi ldrh r3, [r10, #20] mov r0, r3 @@ -2738,9 +2859,9 @@ FtlConstantsInit: bl Ftl_log2 ldr r3, [sp, #8] mov r7, r0 - ldr ip, .L429+128 + ldr ip, .L440+124 cmp r4, #1024 - ldr lr, .L429+132 + ldr lr, .L440+128 ldr r2, [sp, #16] strh r0, [ip] @ movhi lsl r0, r3, #9 @@ -2748,15 +2869,15 @@ FtlConstantsInit: uxth r0, r0 strh r0, [lr] @ movhi lsr r0, r0, #8 - ldr lr, .L429+136 + ldr lr, .L440+132 mul r1, r3, r1 strh r0, [lr] @ movhi ldrh lr, [r10, #26] mov r10, ip - ldr r0, .L429+56 + ldr r0, .L440+52 strh lr, [r0] @ movhi mul lr, r4, r5 - ldr r0, .L429+60 + ldr r0, .L440+56 str lr, [r0] itt hi uxtbhi r0, r4 @@ -2766,16 +2887,16 @@ FtlConstantsInit: muls r2, r5, r2 muls r2, r3, r2 muls r6, r2, r6 - ldr r2, .L429+64 + ldr r2, .L440+60 asrs r6, r6, #11 str r6, [r2] - ldr r6, .L429+28 + ldr r6, .L440+28 ldrh r0, [r6] lsls r0, r0, #3 bl __aeabi_idiv uxth r0, r0 mov r3, r6 - ldr r6, .L429+68 + ldr r6, .L440+64 cmp r0, #4 itt ls movls r2, #4 @@ -2783,22 +2904,22 @@ FtlConstantsInit: ldr r2, [sp, #4] it hi strhhi r0, [r6] @ movhi - cbz r2, .L414 + cbz r2, .L425 mov r2, #640 strh r2, [r3] @ movhi -.L414: +.L425: ldrh r3, [r3] lsls r4, r4, #6 - ldr r2, .L429+72 + ldr r2, .L440+68 mov r1, r5 ldrh r0, [r6] asrs r3, r3, r7 adds r7, r7, #9 asrs r4, r4, r7 - ldr r7, .L429+76 + ldr r7, .L440+72 adds r3, r3, #2 strh r3, [r2] @ movhi - ldr r3, .L429+80 + ldr r3, .L440+76 strh r4, [r3] @ movhi uxth r4, r4 mul r3, r4, r5 @@ -2806,9 +2927,9 @@ FtlConstantsInit: str r3, [r7] bl __aeabi_uidiv uxtah r0, r4, r0 - ldr r4, .L429+84 + ldr r4, .L440+80 cmp r5, #1 - ldr r5, .L429+88 + ldr r5, .L440+84 it eq addeq r0, r0, #4 str r0, [r4] @@ -2816,10 +2937,10 @@ FtlConstantsInit: bl FtlSysBlkNumInit ldr r2, [r4] movs r0, #24 - ldr r3, .L429+92 + ldr r3, .L440+88 ldrb r5, [r5] @ zero_extendqisi2 str r2, [r3] - ldr r3, .L429+96 + ldr r3, .L440+92 ldr r2, [r3] ldrh r3, [fp] lsls r2, r2, #2 @@ -2827,14 +2948,14 @@ FtlConstantsInit: ldrh r2, [r10] adds r2, r2, #9 lsrs r3, r3, r2 - ldr r2, .L429+100 + ldr r2, .L440+96 adds r3, r3, #2 uxth r3, r3 strh r3, [r2] @ movhi - ldr r2, .L429+104 + ldr r2, .L440+100 strh r0, [r2] @ movhi movs r0, #0 - ldr r2, .L429+108 + ldr r2, .L440+104 str r0, [r2] ldrh r0, [r6] adds r2, r0, #3 @@ -2842,17 +2963,17 @@ FtlConstantsInit: ldr r2, [r7] adds r4, r2, #3 str r4, [r7] - cbz r5, .L417 + cbz r5, .L428 adds r2, r2, #5 adds r0, r0, #4 strh r0, [r6] @ movhi -.L428: +.L439: str r2, [r7] -.L418: - ldr r1, .L429+112 +.L429: + ldr r1, .L440+108 movs r2, #0 strh r2, [r1] @ movhi - ldr r2, .L429+116 + ldr r2, .L440+112 ldrh r0, [r2] lsrs r2, r0, #3 add r2, r2, r0, lsl #1 @@ -2867,49 +2988,48 @@ FtlConstantsInit: add sp, sp, #24 @ sp needed pop {r4, r5, r6, r7, r8, r10, fp, pc} -.L417: +.L428: cmp r4, #7 - bhi .L418 + bhi .L429 movs r2, #8 - b .L428 -.L430: + b .L439 +.L441: .align 2 -.L429: +.L440: .word .LANCHOR44 .word .LANCHOR41 .word .LANCHOR46 - .word .LANCHOR47 .word .LANCHOR45 + .word .LANCHOR47 .word .LANCHOR48 .word .LANCHOR49 .word .LANCHOR50 .word .LANCHOR1 .word .LANCHOR38 .word .LANCHOR51 - .word .LANCHOR52 + .word .LANCHOR53 .word .LANCHOR54 - .word .LANCHOR55 - .word .LANCHOR60 + .word .LANCHOR59 .word .LANCHOR43 + .word .LANCHOR60 .word .LANCHOR61 .word .LANCHOR62 - .word .LANCHOR63 - .word .LANCHOR65 .word .LANCHOR64 + .word .LANCHOR63 .word .LANCHOR37 - .word .LANCHOR8 - .word .LANCHOR66 + .word .LANCHOR15 + .word .LANCHOR65 .word .LANCHOR42 + .word .LANCHOR66 .word .LANCHOR67 .word .LANCHOR68 .word .LANCHOR69 - .word .LANCHOR70 .word .LANCHOR40 - .word .LANCHOR53 + .word .LANCHOR52 + .word .LANCHOR55 .word .LANCHOR56 .word .LANCHOR57 .word .LANCHOR58 - .word .LANCHOR59 .size FtlConstantsInit, .-FtlConstantsInit .section .text.IsBlkInVendorPart,"ax",%progbits .align 1 @@ -2923,32 +3043,32 @@ IsBlkInVendorPart: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L438 + ldr r3, .L449 ldrh r3, [r3] - cbz r3, .L437 - ldr r3, .L438+4 - ldr r2, .L438+8 + cbz r3, .L448 + ldr r3, .L449+4 + ldr r2, .L449+8 ldr r3, [r3] ldrh r2, [r2] add r2, r3, r2, lsl #1 -.L433: +.L444: cmp r3, r2 - bne .L434 -.L437: + bne .L445 +.L448: movs r0, #0 bx lr -.L434: +.L445: ldrh r1, [r3], #2 cmp r0, r1 - bne .L433 + bne .L444 movs r0, #1 bx lr -.L439: +.L450: .align 2 -.L438: +.L449: + .word .LANCHOR70 .word .LANCHOR71 - .word .LANCHOR72 - .word .LANCHOR62 + .word .LANCHOR61 .size IsBlkInVendorPart, .-IsBlkInVendorPart .section .text.FtlGetCap,"ax",%progbits .align 1 @@ -2962,13 +3082,13 @@ FtlGetCap: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L441 + ldr r3, .L452 ldr r0, [r3] bx lr -.L442: +.L453: .align 2 -.L441: - .word .LANCHOR69 +.L452: + .word .LANCHOR68 .size FtlGetCap, .-FtlGetCap .section .text.FtlGetCapacity,"ax",%progbits .align 1 @@ -2982,13 +3102,13 @@ FtlGetCapacity: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L444 + ldr r3, .L455 ldr r0, [r3] bx lr -.L445: +.L456: .align 2 -.L444: - .word .LANCHOR69 +.L455: + .word .LANCHOR68 .size FtlGetCapacity, .-FtlGetCapacity .section .text.ftl_get_density,"ax",%progbits .align 1 @@ -3002,13 +3122,13 @@ ftl_get_density: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L447 + ldr r3, .L458 ldr r0, [r3] bx lr -.L448: +.L459: .align 2 -.L447: - .word .LANCHOR69 +.L458: + .word .LANCHOR68 .size ftl_get_density, .-ftl_get_density .section .text.FtlGetLpn,"ax",%progbits .align 1 @@ -3022,13 +3142,13 @@ FtlGetLpn: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L450 + ldr r3, .L461 ldr r0, [r3] bx lr -.L451: +.L462: .align 2 -.L450: - .word .LANCHOR73 +.L461: + .word .LANCHOR72 .size FtlGetLpn, .-FtlGetLpn .section .text.FtlGetCurEraseBlock,"ax",%progbits .align 1 @@ -3042,16 +3162,16 @@ FtlGetCurEraseBlock: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r2, .L453 - ldr r3, .L453+4 + ldr r2, .L464 + ldr r3, .L464+4 ldr r0, [r2] ldrh r3, [r3] muls r0, r3, r0 bx lr -.L454: +.L465: .align 2 -.L453: - .word .LANCHOR74 +.L464: + .word .LANCHOR73 .word .LANCHOR38 .size FtlGetCurEraseBlock, .-FtlGetCurEraseBlock .section .text.FtlGetAllBlockNum,"ax",%progbits @@ -3066,15 +3186,15 @@ FtlGetAllBlockNum: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r2, .L456 - ldr r3, .L456+4 + ldr r2, .L467 + ldr r3, .L467+4 ldrh r0, [r2] ldrh r3, [r3] muls r0, r3, r0 bx lr -.L457: +.L468: .align 2 -.L456: +.L467: .word .LANCHOR38 .word .LANCHOR41 .size FtlGetAllBlockNum, .-FtlGetAllBlockNum @@ -3089,14 +3209,14 @@ FtlGetAllBlockNum: FtlBbmMapBadBlock: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L459 + ldr r3, .L470 push {r0, r1, r2, r4, r5, r6, r7, lr} mov r5, r0 ldrh r4, [r3] mov r1, r4 bl __aeabi_uidiv mov r1, r4 - ldr r4, .L459+4 + ldr r4, .L470+4 uxth r6, r0 mov r0, r5 bl __aeabi_uidivmod @@ -3113,7 +3233,7 @@ FtlBbmMapBadBlock: mov r2, r6 str r0, [sp] mov r1, r5 - ldr r0, .L459+8 + ldr r0, .L470+8 bl printf ldrh r3, [r4, #6] movs r0, #0 @@ -3122,11 +3242,11 @@ FtlBbmMapBadBlock: add sp, sp, #12 @ sp needed pop {r4, r5, r6, r7, pc} -.L460: +.L471: .align 2 -.L459: +.L470: .word .LANCHOR51 - .word .LANCHOR75 + .word .LANCHOR74 .word .LC2 .size FtlBbmMapBadBlock, .-FtlBbmMapBadBlock .section .text.FtlBbmIsBadBlock,"ax",%progbits @@ -3140,7 +3260,7 @@ FtlBbmMapBadBlock: FtlBbmIsBadBlock: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L462 + ldr r3, .L473 push {r4, r5, r6, lr} mov r6, r0 ldrh r5, [r3] @@ -3150,7 +3270,7 @@ FtlBbmIsBadBlock: uxth r4, r1 mov r1, r5 bl __aeabi_uidiv - ldr r3, .L462+4 + ldr r3, .L473+4 uxth r0, r0 lsrs r2, r4, #5 and r4, r4, #31 @@ -3160,11 +3280,11 @@ FtlBbmIsBadBlock: lsrs r0, r0, r4 and r0, r0, #1 pop {r4, r5, r6, pc} -.L463: +.L474: .align 2 -.L462: +.L473: .word .LANCHOR51 - .word .LANCHOR75 + .word .LANCHOR74 .size FtlBbmIsBadBlock, .-FtlBbmIsBadBlock .section .text.FtlBbtInfoPrint,"ax",%progbits .align 1 @@ -3193,12 +3313,12 @@ V2P_block: @ frame_needed = 0, uses_anonymous_args = 0 push {r3, r4, r5, r6, r7, lr} mov r5, r1 - ldr r3, .L466 + ldr r3, .L477 mov r7, r0 ldrh r6, [r3] mov r1, r6 bl __aeabi_uidiv - ldr r3, .L466+4 + ldr r3, .L477+4 smulbb r5, r6, r5 mov r1, r6 ldrh r4, [r3] @@ -3209,9 +3329,9 @@ V2P_block: add r0, r0, r4 uxth r0, r0 pop {r3, r4, r5, r6, r7, pc} -.L467: +.L478: .align 2 -.L466: +.L477: .word .LANCHOR46 .word .LANCHOR51 .size V2P_block, .-V2P_block @@ -3226,11 +3346,11 @@ V2P_block: P2V_plane: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L469 + ldr r3, .L480 push {r4, r5, r6, lr} mov r6, r0 ldrh r5, [r3] - ldr r3, .L469+4 + ldr r3, .L480+4 ldrh r1, [r3] bl __aeabi_uidiv smulbb r4, r0, r5 @@ -3240,9 +3360,9 @@ P2V_plane: add r1, r1, r4 uxth r0, r1 pop {r4, r5, r6, pc} -.L470: +.L481: .align 2 -.L469: +.L480: .word .LANCHOR46 .word .LANCHOR51 .size P2V_plane, .-P2V_plane @@ -3258,18 +3378,18 @@ P2V_block_in_plane: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 push {r3, lr} - ldr r3, .L472 + ldr r3, .L483 ldrh r1, [r3] bl __aeabi_uidivmod - ldr r3, .L472+4 + ldr r3, .L483+4 uxth r0, r1 ldrh r1, [r3] bl __aeabi_uidiv uxth r0, r0 pop {r3, pc} -.L473: +.L484: .align 2 -.L472: +.L483: .word .LANCHOR51 .word .LANCHOR46 .size P2V_block_in_plane, .-P2V_block_in_plane @@ -3286,14 +3406,14 @@ ftl_cmp_data_ver: @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. cmp r0, r1 - bls .L475 + bls .L486 subs r0, r0, r1 cmp r0, #-2147483648 ite hi movhi r0, #0 movls r0, #1 bx lr -.L475: +.L486: subs r0, r1, r0 cmp r0, #-2147483648 ite ls @@ -3313,15 +3433,15 @@ FtlFreeSysBlkQueueEmpty: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L478 + ldr r3, .L489 ldrh r0, [r3, #6] clz r0, r0 lsrs r0, r0, #5 bx lr -.L479: +.L490: .align 2 -.L478: - .word .LANCHOR76 +.L489: + .word .LANCHOR75 .size FtlFreeSysBlkQueueEmpty, .-FtlFreeSysBlkQueueEmpty .section .text.FtlFreeSysBlkQueueFull,"ax",%progbits .align 1 @@ -3335,16 +3455,16 @@ FtlFreeSysBlkQueueFull: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L481 + ldr r3, .L492 ldrh r0, [r3, #6] sub r3, r0, #1024 rsbs r0, r3, #0 adcs r0, r0, r3 bx lr -.L482: +.L493: .align 2 -.L481: - .word .LANCHOR76 +.L492: + .word .LANCHOR75 .size FtlFreeSysBlkQueueFull, .-FtlFreeSysBlkQueueFull .section .text.FtlFreeSysBlkQueueIn,"ax",%progbits .align 1 @@ -3363,17 +3483,17 @@ FtlFreeSysBlkQueueIn: push {r4, r5, r6, lr} mov r5, r0 cmp r3, r2 - bhi .L483 - ldr r4, .L492 + bhi .L494 + ldr r4, .L503 ldrh r3, [r4, #6] cmp r3, #1024 - beq .L483 - cbz r1, .L485 - ldr r3, .L492+4 + beq .L494 + cbz r1, .L496 + ldr r3, .L503+4 ldr r3, [r3] - cbnz r3, .L485 + cbnz r3, .L496 bl P2V_block_in_plane - ldr r3, .L492+8 + ldr r3, .L503+8 mov r6, r0 movs r2, #1 mov r1, r2 @@ -3381,16 +3501,16 @@ FtlFreeSysBlkQueueIn: lsls r3, r5, #10 str r3, [r0, #4] bl FlashEraseBlocks - ldr r3, .L492+12 + ldr r3, .L503+12 ldr r2, [r3] ldrh r3, [r2, r6, lsl #1] adds r3, r3, #1 strh r3, [r2, r6, lsl #1] @ movhi - ldr r2, .L492+16 + ldr r2, .L503+16 ldr r3, [r2] adds r3, r3, #1 str r3, [r2] -.L485: +.L496: ldrh r3, [r4, #6] adds r3, r3, #1 strh r3, [r4, #6] @ movhi @@ -3400,16 +3520,16 @@ FtlFreeSysBlkQueueIn: ubfx r3, r3, #0, #10 strh r5, [r4, r2, lsl #1] @ movhi strh r3, [r4, #4] @ movhi -.L483: +.L494: pop {r4, r5, r6, pc} -.L493: +.L504: .align 2 -.L492: +.L503: + .word .LANCHOR75 .word .LANCHOR76 .word .LANCHOR77 .word .LANCHOR78 .word .LANCHOR79 - .word .LANCHOR80 .size FtlFreeSysBlkQueueIn, .-FtlFreeSysBlkQueueIn .section .text.FtlFreeSysBLkSort,"ax",%progbits .align 1 @@ -3422,28 +3542,28 @@ FtlFreeSysBlkQueueIn: FtlFreeSysBLkSort: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L503 + ldr r3, .L514 push {r4, r5, r6, lr} ldrh r2, [r3, #6] - cbz r2, .L494 - ldr r2, .L503+4 + cbz r2, .L505 + ldr r2, .L514+4 movs r6, #0 ldrh r1, [r3, #2] mov r5, r6 ldrh r4, [r2, #28] ldrh r2, [r3, #4] and r4, r4, #31 -.L496: +.L507: uxth r0, r6 adds r6, r6, #1 cmp r4, r0 - bgt .L497 - cbz r5, .L494 + bgt .L508 + cbz r5, .L505 strh r1, [r3, #2] @ movhi strh r2, [r3, #4] @ movhi -.L494: +.L505: pop {r4, r5, r6, pc} -.L497: +.L508: adds r0, r1, #4 adds r1, r1, #1 ldrh r5, [r3, r0, lsl #1] @@ -3453,12 +3573,12 @@ FtlFreeSysBLkSort: movs r5, #1 add r2, r2, r5 ubfx r2, r2, #0, #10 - b .L496 -.L504: + b .L507 +.L515: .align 2 -.L503: - .word .LANCHOR76 - .word .LANCHOR81 +.L514: + .word .LANCHOR75 + .word .LANCHOR80 .size FtlFreeSysBLkSort, .-FtlFreeSysBLkSort .section .text.FtlFreeSysBlkQueueOut,"ax",%progbits .align 1 @@ -3472,12 +3592,12 @@ FtlFreeSysBlkQueueOut: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 push {r3, r4, r5, r6, r7, r8, r10, lr} - ldr r4, .L515 + ldr r4, .L526 mov r6, r4 -.L506: +.L517: ldrh r1, [r4, #6] cmp r1, #0 - beq .L507 + beq .L518 ldrh r3, [r4, #2] subs r1, r1, #1 strh r1, [r4, #6] @ movhi @@ -3486,67 +3606,67 @@ FtlFreeSysBlkQueueOut: ubfx r3, r3, #0, #10 ldrh r5, [r4, r2, lsl #1] strh r3, [r4, #2] @ movhi - ldr r3, .L515+4 + ldr r3, .L526+4 ldr r10, [r3] cmp r10, #0 - bne .L508 - ldr r8, .L515+28 + bne .L519 + ldr r8, .L526+28 mov r0, r5 bl P2V_block_in_plane mov r7, r0 lsls r3, r5, #10 ldr r0, [r8] str r3, [r0, #4] - ldr r3, .L515+8 + ldr r3, .L526+8 ldrb r3, [r3] @ zero_extendqisi2 - cbz r3, .L509 + cbz r3, .L520 movs r2, #1 mov r1, r10 bl FlashEraseBlocks -.L509: +.L520: movs r2, #1 ldr r0, [r8] mov r1, r2 bl FlashEraseBlocks - ldr r3, .L515+12 + ldr r3, .L526+12 ldr r2, [r3] ldrh r3, [r2, r7, lsl #1] adds r3, r3, #1 strh r3, [r2, r7, lsl #1] @ movhi - ldr r2, .L515+16 + ldr r2, .L526+16 ldr r3, [r2] adds r3, r3, #1 str r3, [r2] -.L508: +.L519: subs r3, r5, #1 movw r2, #65533 uxth r3, r3 cmp r3, r2 - bls .L511 + bls .L522 ldrh r2, [r6, #6] mov r1, r5 - ldr r0, .L515+20 + ldr r0, .L526+20 bl printf - b .L506 -.L507: - ldr r0, .L515+24 + b .L517 +.L518: + ldr r0, .L526+24 bl printf -.L510: - b .L510 -.L511: +.L521: + b .L521 +.L522: mov r0, r5 pop {r3, r4, r5, r6, r7, r8, r10, pc} -.L516: +.L527: .align 2 -.L515: +.L526: + .word .LANCHOR75 .word .LANCHOR76 - .word .LANCHOR77 - .word .LANCHOR8 + .word .LANCHOR15 + .word .LANCHOR78 .word .LANCHOR79 - .word .LANCHOR80 .word .LC4 .word .LC3 - .word .LANCHOR78 + .word .LANCHOR77 .size FtlFreeSysBlkQueueOut, .-FtlFreeSysBlkQueueOut .section .text.test_node_in_list,"ax",%progbits .align 1 @@ -3559,35 +3679,35 @@ FtlFreeSysBlkQueueOut: test_node_in_list: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L522 + ldr r3, .L533 push {r4, r5, lr} movw r5, #65535 ldr r2, [r0] ldr r4, [r3] subs r3, r2, r4 asrs r0, r3, #1 - ldr r3, .L522+4 + ldr r3, .L533+4 muls r3, r0, r3 movs r0, #6 uxth r3, r3 -.L519: +.L530: cmp r3, r1 - beq .L520 + beq .L531 ldrh r3, [r2] cmp r3, r5 - beq .L521 + beq .L532 mla r2, r0, r3, r4 - b .L519 -.L520: + b .L530 +.L531: movs r0, #1 pop {r4, r5, pc} -.L521: +.L532: movs r0, #0 pop {r4, r5, pc} -.L523: +.L534: .align 2 -.L522: - .word .LANCHOR82 +.L533: + .word .LANCHOR81 .word -1431655765 .size test_node_in_list, .-test_node_in_list .section .text.insert_data_list,"ax",%progbits @@ -3602,11 +3722,11 @@ insert_data_list: @ args = 0, pretend = 0, frame = 16 @ frame_needed = 0, uses_anonymous_args = 0 push {r0, r1, r2, r3, r4, r5, r6, r7, r8, r10, fp, lr} - ldr r3, .L540 + ldr r3, .L551 ldrh lr, [r3] cmp lr, r0 - bls .L526 - ldr r3, .L540+4 + bls .L537 + ldr r3, .L551+4 movs r5, #6 ldr r4, [r3] mul r3, r5, r0 @@ -3616,109 +3736,109 @@ insert_data_list: movw r3, #65535 strh r3, [r1, #2] @ movhi strh r3, [r4, r2] @ movhi - ldr r3, .L540+8 + ldr r3, .L551+8 ldr ip, [r3] cmp ip, #0 - bne .L527 -.L539: + bne .L538 +.L550: str r1, [r3] -.L526: +.L537: movs r0, #0 add sp, sp, #16 @ sp needed pop {r4, r5, r6, r7, r8, r10, fp, pc} -.L527: - ldr r3, .L540+12 +.L538: + ldr r3, .L551+12 lsls r2, r0, #1 ldr r3, [r3] str r3, [sp, #8] ldrh r6, [r3, r0, lsl #1] ldrh r3, [r1, #4] - cbz r3, .L537 + cbz r3, .L548 mul fp, r3, r6 -.L528: +.L539: sub r3, ip, r4 asrs r6, r3, #1 - ldr r3, .L540+16 + ldr r3, .L551+16 muls r3, r6, r3 - ldr r6, .L540+20 + ldr r6, .L551+20 ldr r8, [r6] movs r6, #0 uxth r3, r3 add r2, r8, r2 str r2, [sp, #12] mov r2, ip -.L535: +.L546: adds r6, r6, #1 uxth r6, r6 cmp lr, r6 - bcc .L526 + bcc .L537 cmp r3, r0 - beq .L526 + beq .L537 ldr r7, [sp, #8] lsl r10, r3, #1 ldrh r7, [r7, r3, lsl #1] mov r5, r7 ldrh r7, [r2, #4] - cbz r7, .L538 + cbz r7, .L549 muls r7, r5, r7 -.L530: +.L541: cmp fp, r7 - bne .L531 + bne .L542 ldr r5, [sp, #12] ldrh r10, [r8, r10] ldrh r7, [r5] cmp r10, r7 - bcc .L533 -.L532: + bcc .L544 +.L543: ldr r5, [sp, #4] cmp r2, ip strh r3, [r4, r5] @ movhi ldrh r3, [r2, #2] strh r3, [r1, #2] @ movhi - bne .L536 + bne .L547 strh r0, [r2, #2] @ movhi - ldr r3, .L540+8 - b .L539 -.L537: + ldr r3, .L551+8 + b .L550 +.L548: mov fp, #-1 - b .L528 -.L538: + b .L539 +.L549: mov r7, #-1 - b .L530 -.L531: - bcc .L532 -.L533: + b .L541 +.L542: + bcc .L543 +.L544: ldrh r7, [r2] movw r5, #65535 cmp r7, r5 - bne .L534 + bne .L545 strh r3, [r1, #2] @ movhi strh r0, [r2] @ movhi - ldr r3, .L540+24 - b .L539 -.L534: + ldr r3, .L551+24 + b .L550 +.L545: movs r3, #6 mla r2, r3, r7, r4 mov r3, r7 - b .L535 -.L536: + b .L546 +.L547: ldrh r1, [r2, #2] movs r3, #6 muls r3, r1, r3 strh r0, [r4, r3] @ movhi strh r0, [r2, #2] @ movhi - b .L526 -.L541: + b .L537 +.L552: .align 2 -.L540: +.L551: .word .LANCHOR40 + .word .LANCHOR81 .word .LANCHOR82 .word .LANCHOR83 - .word .LANCHOR84 .word -1431655765 - .word .LANCHOR79 - .word .LANCHOR85 + .word .LANCHOR78 + .word .LANCHOR84 .size insert_data_list, .-insert_data_list .section .text.INSERT_DATA_LIST,"ax",%progbits .align 1 @@ -3733,31 +3853,31 @@ INSERT_DATA_LIST: @ frame_needed = 0, uses_anonymous_args = 0 push {r3, lr} bl insert_data_list - ldr r2, .L544 + ldr r2, .L555 ldrh r3, [r2] adds r3, r3, #1 uxth r3, r3 strh r3, [r2] @ movhi - ldr r2, .L544+4 + ldr r2, .L555+4 ldrh r2, [r2] cmp r2, r3 - bcs .L542 - ldr r1, .L544+8 + bcs .L553 + ldr r1, .L555+8 movs r2, #210 - ldr r0, .L544+12 + ldr r0, .L555+12 bl printf - ldr r1, .L544+16 - ldr r0, .L544+20 + ldr r1, .L555+16 + ldr r0, .L555+20 pop {r3, lr} b printf -.L542: +.L553: pop {r3, pc} -.L545: +.L556: .align 2 -.L544: - .word .LANCHOR86 +.L555: + .word .LANCHOR85 .word .LANCHOR40 - .word .LANCHOR87 + .word .LANCHOR86 .word .LC5 .word .LC6 .word .LC7 @@ -3776,48 +3896,48 @@ insert_free_list: movw r1, #65535 push {r4, r5, r6, r7, r8, r10, fp, lr} cmp r0, r1 - beq .L547 - ldr r3, .L553 + beq .L558 + ldr r3, .L564 mov r10, #6 mul r7, r10, r0 ldr r4, [r3] - ldr r3, .L553+4 + ldr r3, .L564+4 adds r5, r4, r7 ldr r6, [r3] mov lr, r3 strh r1, [r5, #2] @ movhi strh r1, [r4, r7] @ movhi - cbnz r6, .L548 + cbnz r6, .L559 str r5, [r3] -.L547: +.L558: movs r0, #0 pop {r4, r5, r6, r7, r8, r10, fp, pc} -.L548: - ldr r3, .L553+8 +.L559: + ldr r3, .L564+8 subs r2, r6, r4 mov fp, r1 ldr ip, [r3] asrs r3, r2, #1 - ldr r2, .L553+12 + ldr r2, .L564+12 ldrh r8, [ip, r0, lsl #1] muls r2, r3, r2 mov r3, r6 uxth r2, r2 -.L551: +.L562: ldrh r1, [ip, r2, lsl #1] cmp r1, r8 - bcs .L549 + bcs .L560 ldrh r1, [r3] cmp r1, fp - bne .L550 + bne .L561 strh r2, [r5, #2] @ movhi strh r0, [r3] @ movhi - b .L547 -.L550: + b .L558 +.L561: mla r3, r10, r1, r4 mov r2, r1 - b .L551 -.L549: + b .L562 +.L560: ldrh r1, [r3, #2] cmp r3, r6 strh r1, [r5, #2] @ movhi @@ -3832,13 +3952,13 @@ insert_free_list: itt ne strhne r0, [r4, r2] @ movhi strhne r0, [r3, #2] @ movhi - b .L547 -.L554: + b .L558 +.L565: .align 2 -.L553: - .word .LANCHOR82 - .word .LANCHOR88 - .word .LANCHOR79 +.L564: + .word .LANCHOR81 + .word .LANCHOR87 + .word .LANCHOR78 .word -1431655765 .size insert_free_list, .-insert_free_list .section .text.INSERT_FREE_LIST,"ax",%progbits @@ -3854,31 +3974,31 @@ INSERT_FREE_LIST: @ frame_needed = 0, uses_anonymous_args = 0 push {r3, lr} bl insert_free_list - ldr r2, .L557 + ldr r2, .L568 ldrh r3, [r2] adds r3, r3, #1 uxth r3, r3 strh r3, [r2] @ movhi - ldr r2, .L557+4 + ldr r2, .L568+4 ldrh r2, [r2] cmp r2, r3 - bcs .L555 - ldr r1, .L557+8 + bcs .L566 + ldr r1, .L568+8 movs r2, #203 - ldr r0, .L557+12 + ldr r0, .L568+12 bl printf - ldr r1, .L557+16 - ldr r0, .L557+20 + ldr r1, .L568+16 + ldr r0, .L568+20 pop {r3, lr} b printf -.L555: +.L566: pop {r3, pc} -.L558: +.L569: .align 2 -.L557: - .word .LANCHOR89 +.L568: + .word .LANCHOR88 .word .LANCHOR40 - .word .LANCHOR90 + .word .LANCHOR89 .word .LC5 .word .LC6 .word .LC7 @@ -3896,7 +4016,7 @@ List_remove_node: @ frame_needed = 0, uses_anonymous_args = 0 push {r4, r5, r6, r7, r8, lr} movs r6, #6 - ldr r5, .L565 + ldr r5, .L576 muls r6, r1, r6 movw r3, #65535 mov r8, r0 @@ -3904,23 +4024,23 @@ List_remove_node: adds r4, r7, r6 ldrh r2, [r4, #2] cmp r2, r3 - bne .L560 + bne .L571 ldr r3, [r0] cmp r4, r3 - beq .L560 - ldr r1, .L565+4 + beq .L571 + ldr r1, .L576+4 mov r2, #386 - ldr r0, .L565+8 + ldr r0, .L576+8 bl printf - ldr r1, .L565+12 - ldr r0, .L565+16 + ldr r1, .L576+12 + ldr r0, .L576+16 bl printf -.L560: +.L571: ldr r3, [r8] movw r1, #65535 cmp r4, r3 ldrh r3, [r7, r6] - bne .L561 + bne .L572 cmp r3, r1 ittee ne ldrne r0, [r5] @@ -3931,24 +4051,24 @@ List_remove_node: mlane r3, r2, r3, r0 strne r3, [r8] strhne r1, [r3, #2] @ movhi -.L563: +.L574: movw r3, #65535 movs r0, #0 strh r3, [r7, r6] @ movhi strh r3, [r4, #2] @ movhi pop {r4, r5, r6, r7, r8, pc} -.L561: +.L572: cmp r3, r1 ldrh r1, [r4, #2] - bne .L564 + bne .L575 cmp r1, r3 - beq .L563 + beq .L574 movs r2, #6 ldr r0, [r5] muls r1, r2, r1 strh r3, [r0, r1] @ movhi - b .L563 -.L564: + b .L574 +.L575: ldr r0, [r5] movs r2, #6 mla r5, r2, r3, r0 @@ -3956,12 +4076,12 @@ List_remove_node: ldrh r1, [r4, #2] muls r2, r1, r2 strh r3, [r0, r2] @ movhi - b .L563 -.L566: + b .L574 +.L577: .align 2 -.L565: - .word .LANCHOR82 - .word .LANCHOR91 +.L576: + .word .LANCHOR81 + .word .LANCHOR90 .word .LC5 .word .LC6 .word .LC7 @@ -3979,15 +4099,15 @@ List_pop_index_node: @ frame_needed = 0, uses_anonymous_args = 0 ldr r3, [r0] push {r4, r5, r6, lr} - cbz r3, .L573 - ldr r2, .L574 + cbz r3, .L584 + ldr r2, .L585 movw r5, #65535 movs r6, #6 ldr r2, [r2] -.L569: - cbnz r1, .L570 -.L572: - ldr r4, .L574+4 +.L580: + cbnz r1, .L581 +.L583: + ldr r4, .L585+4 subs r3, r3, r2 asrs r3, r3, #1 muls r4, r3, r4 @@ -3995,21 +4115,21 @@ List_pop_index_node: bl List_remove_node uxth r0, r4 pop {r4, r5, r6, pc} -.L570: +.L581: ldrh r4, [r3] cmp r4, r5 - beq .L572 + beq .L583 subs r1, r1, #1 mla r3, r6, r4, r2 uxth r1, r1 - b .L569 -.L573: + b .L580 +.L584: movw r0, #65535 pop {r4, r5, r6, pc} -.L575: +.L586: .align 2 -.L574: - .word .LANCHOR82 +.L585: + .word .LANCHOR81 .word -1431655765 .size List_pop_index_node, .-List_pop_index_node .section .text.List_get_gc_head_node,"ax",%progbits @@ -4023,39 +4143,39 @@ List_pop_index_node: List_get_gc_head_node: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L582 + ldr r3, .L593 push {r4, lr} ldr r3, [r3] - cbz r3, .L581 - ldr r2, .L582+4 + cbz r3, .L592 + ldr r2, .L593+4 movs r4, #6 ldr r1, [r2] movw r2, #65535 -.L578: - cbz r0, .L579 +.L589: + cbz r0, .L590 ldrh r3, [r3] cmp r3, r2 - bne .L580 -.L581: + bne .L591 +.L592: movw r0, #65535 pop {r4, pc} -.L580: +.L591: subs r0, r0, #1 mla r3, r4, r3, r1 uxth r0, r0 - b .L578 -.L579: - ldr r0, .L582+8 + b .L589 +.L590: + ldr r0, .L593+8 subs r3, r3, r1 asrs r3, r3, #1 muls r3, r0, r3 uxth r0, r3 pop {r4, pc} -.L583: +.L594: .align 2 -.L582: - .word .LANCHOR83 +.L593: .word .LANCHOR82 + .word .LANCHOR81 .word -1431655765 .size List_get_gc_head_node, .-List_get_gc_head_node .section .text.List_update_data_list,"ax",%progbits @@ -4069,64 +4189,64 @@ List_get_gc_head_node: List_update_data_list: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L595 + ldr r3, .L606 push {r4, r5, r6, r7, r8, r10, fp, lr} mov r4, r0 ldrh r3, [r3] cmp r3, r0 - beq .L586 - ldr r3, .L595+4 + beq .L597 + ldr r3, .L606+4 ldrh r3, [r3] cmp r3, r0 - beq .L586 - ldr r3, .L595+8 + beq .L597 + ldr r3, .L606+8 ldrh r3, [r3] cmp r3, r0 - beq .L586 - ldr r7, .L595+12 + beq .L597 + ldr r7, .L606+12 movs r6, #6 - ldr r3, .L595+16 + ldr r3, .L606+16 muls r6, r0, r6 ldr fp, [r7] ldr r3, [r3] add r10, fp, r6 cmp r10, r3 - beq .L586 - ldr r3, .L595+20 + beq .L597 + ldr r3, .L606+20 ldrh r5, [r10, #4] ldr r2, [r3] mov r8, r3 ldrh r2, [r2, r0, lsl #1] cmp r5, #0 - beq .L593 + beq .L604 muls r5, r2, r5 -.L588: +.L599: ldrh r3, [r10, #2] movw r2, #65535 cmp r3, r2 - bne .L589 + bne .L600 ldrh r2, [fp, r6] cmp r2, r3 - bne .L589 - ldr r1, .L595+24 + bne .L600 + ldr r1, .L606+24 mov r2, #504 - ldr r0, .L595+28 + ldr r0, .L606+28 bl printf - ldr r1, .L595+32 - ldr r0, .L595+36 + ldr r1, .L606+32 + ldr r0, .L606+36 bl printf -.L589: +.L600: ldrh r3, [r10, #2] movw r2, #65535 cmp r3, r2 - bne .L590 + bne .L601 ldrh r2, [fp, r6] cmp r2, r3 - beq .L586 -.L590: + beq .L597 +.L601: movs r2, #6 muls r2, r3, r2 - ldr r3, .L595+40 + ldr r3, .L606+40 asrs r1, r2, #1 muls r3, r1, r3 ldr r1, [r8] @@ -4134,54 +4254,54 @@ List_update_data_list: ldr r1, [r7] add r2, r2, r1 ldrh r3, [r2, #4] - cbz r3, .L594 + cbz r3, .L605 muls r3, r0, r3 -.L591: +.L602: cmp r5, r3 - bcs .L586 - ldr r5, .L595+44 + bcs .L597 + ldr r5, .L606+44 mov r1, r4 - ldr r0, .L595+16 + ldr r0, .L606+16 bl List_remove_node ldrh r3, [r5] - cbnz r3, .L592 - ldr r1, .L595+24 + cbnz r3, .L603 + ldr r1, .L606+24 movw r2, #515 - ldr r0, .L595+28 + ldr r0, .L606+28 bl printf - ldr r1, .L595+32 - ldr r0, .L595+36 + ldr r1, .L606+32 + ldr r0, .L606+36 bl printf -.L592: +.L603: ldrh r3, [r5] mov r0, r4 subs r3, r3, #1 strh r3, [r5] @ movhi bl INSERT_DATA_LIST -.L586: +.L597: movs r0, #0 pop {r4, r5, r6, r7, r8, r10, fp, pc} -.L593: +.L604: mov r5, #-1 - b .L588 -.L594: + b .L599 +.L605: mov r3, #-1 - b .L591 -.L596: + b .L602 +.L607: .align 2 -.L595: +.L606: + .word .LANCHOR91 .word .LANCHOR92 .word .LANCHOR93 - .word .LANCHOR94 + .word .LANCHOR81 .word .LANCHOR82 .word .LANCHOR83 - .word .LANCHOR84 - .word .LANCHOR95 + .word .LANCHOR94 .word .LC5 .word .LC6 .word .LC7 .word -1431655765 - .word .LANCHOR86 + .word .LANCHOR85 .size List_update_data_list, .-List_update_data_list .section .text.ftl_map_blk_alloc_new_blk,"ax",%progbits .align 1 @@ -4199,16 +4319,16 @@ ftl_map_blk_alloc_new_blk: push {r3, r4, r5, r6, r7, lr} mov r4, r0 movs r3, #0 -.L598: +.L609: uxth r5, r3 cmp r5, r1 - bcs .L601 + bcs .L612 mov r7, r2 adds r3, r3, #1 ldrh r6, [r7] adds r2, r2, #2 cmp r6, #0 - bne .L598 + bne .L609 bl FtlFreeSysBlkQueueOut subs r3, r0, #1 movw r2, #65533 @@ -4216,14 +4336,14 @@ ftl_map_blk_alloc_new_blk: mov r1, r0 strh r0, [r7] @ movhi cmp r3, r2 - bls .L599 - ldr r3, .L605 - ldr r0, .L605+4 + bls .L610 + ldr r3, .L616 + ldr r0, .L616+4 ldrh r2, [r3, #6] bl printf -.L600: - b .L600 -.L599: +.L611: + b .L611 +.L610: ldr r3, [r4, #28] strh r6, [r4, #2] @ movhi strh r5, [r4] @ movhi @@ -4232,26 +4352,26 @@ ftl_map_blk_alloc_new_blk: ldrh r3, [r4, #8] adds r3, r3, #1 strh r3, [r4, #8] @ movhi -.L601: +.L612: ldrh r3, [r4, #10] cmp r3, r5 - bhi .L603 - ldr r1, .L605+8 + bhi .L614 + ldr r1, .L616+8 movw r2, #629 - ldr r0, .L605+12 + ldr r0, .L616+12 bl printf - ldr r1, .L605+16 - ldr r0, .L605+20 + ldr r1, .L616+16 + ldr r0, .L616+20 bl printf -.L603: +.L614: movs r0, #0 pop {r3, r4, r5, r6, r7, pc} -.L606: +.L617: .align 2 -.L605: - .word .LANCHOR76 +.L616: + .word .LANCHOR75 .word .LC8 - .word .LANCHOR96 + .word .LANCHOR95 .word .LC5 .word .LC6 .word .LC7 @@ -4269,86 +4389,86 @@ select_l2p_ram_region: @ frame_needed = 0, uses_anonymous_args = 0 push {r3, r4, r5, r6, r7, lr} movs r1, #0 - ldr r3, .L617 + ldr r3, .L628 movs r0, #12 movw r5, #65535 ldrh r2, [r3] - ldr r3, .L617+4 + ldr r3, .L628+4 ldr r3, [r3] -.L608: +.L619: uxth r4, r1 cmp r4, r2 - bcc .L610 + bcc .L621 mov r4, r2 movs r1, #0 mov r6, #-2147483648 movs r7, #12 -.L611: +.L622: uxth r5, r1 cmp r5, r2 - bcc .L613 + bcc .L624 cmp r4, r2 - bcc .L609 - ldr r1, .L617+8 + bcc .L620 + ldr r1, .L628+8 mov r4, r2 mov r0, #-1 ldrh r7, [r1] movs r1, #0 -.L614: +.L625: uxth r5, r1 cmp r5, r2 - bcc .L616 + bcc .L627 cmp r4, r2 - bcc .L609 - movw r2, #855 - ldr r1, .L617+12 - ldr r0, .L617+16 + bcc .L620 + movw r2, #859 + ldr r1, .L628+12 + ldr r0, .L628+16 bl printf - ldr r1, .L617+20 - ldr r0, .L617+24 + ldr r1, .L628+20 + ldr r0, .L628+24 bl printf - b .L609 -.L610: + b .L620 +.L621: adds r1, r1, #1 mla r6, r0, r1, r3 ldrh r6, [r6, #-12] cmp r6, r5 - bne .L608 -.L609: + bne .L619 +.L620: mov r0, r4 pop {r3, r4, r5, r6, r7, pc} -.L613: +.L624: mla r0, r7, r1, r3 ldr r0, [r0, #4] cmp r0, #0 - blt .L612 + blt .L623 cmp r6, r0 itt hi movhi r6, r0 movhi r4, r5 -.L612: +.L623: adds r1, r1, #1 - b .L611 -.L616: + b .L622 +.L627: ldr r6, [r3, #4] cmp r0, r6 - bls .L615 + bls .L626 ldrh ip, [r3] cmp ip, r7 itt ne movne r0, r6 movne r4, r5 -.L615: +.L626: adds r1, r1, #1 adds r3, r3, #12 - b .L614 -.L618: + b .L625 +.L629: .align 2 -.L617: - .word .LANCHOR68 +.L628: + .word .LANCHOR67 + .word .LANCHOR96 .word .LANCHOR97 .word .LANCHOR98 - .word .LANCHOR99 .word .LC5 .word .LC6 .word .LC7 @@ -4364,49 +4484,49 @@ select_l2p_ram_region: FtlUpdateVaildLpn: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r2, .L629 + ldr r2, .L640 push {r4, r5, r6, lr} mov r1, r2 ldrh r3, [r2] cmp r3, #4 - bhi .L620 - cbnz r0, .L620 + bhi .L631 + cbnz r0, .L631 adds r3, r3, #1 strh r3, [r2] @ movhi pop {r4, r5, r6, pc} -.L620: +.L631: movs r3, #0 - ldr r0, .L629+4 + ldr r0, .L640+4 strh r3, [r1] @ movhi movw r6, #65535 - ldr r1, .L629+8 + ldr r1, .L640+8 ldrh r4, [r0] mov r0, r3 - ldr r2, .L629+12 + ldr r2, .L640+12 ldr r1, [r1] str r3, [r2] add r4, r1, r4, lsl #1 -.L621: +.L632: cmp r1, r4 - bne .L623 - cbz r3, .L619 + bne .L634 + cbz r3, .L630 str r0, [r2] -.L619: +.L630: pop {r4, r5, r6, pc} -.L623: +.L634: ldrh r5, [r1], #2 cmp r5, r6 itt ne addne r0, r0, r5 movne r3, #1 - b .L621 -.L630: + b .L632 +.L641: .align 2 -.L629: - .word .LANCHOR100 +.L640: + .word .LANCHOR99 .word .LANCHOR40 - .word .LANCHOR84 - .word .LANCHOR101 + .word .LANCHOR83 + .word .LANCHOR100 .size FtlUpdateVaildLpn, .-FtlUpdateVaildLpn .section .text.ftl_set_blk_mode,"ax",%progbits .align 1 @@ -4421,10 +4541,10 @@ ftl_set_blk_mode: @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. mov r3, r0 - cbz r1, .L632 + cbz r1, .L643 b ftl_set_blk_mode.part.10 -.L632: - ldr r2, .L633 +.L643: + ldr r2, .L644 lsrs r0, r0, #5 and r3, r3, #31 ldr r1, [r2] @@ -4434,9 +4554,9 @@ ftl_set_blk_mode: bic r2, r2, r3 str r2, [r1, r0, lsl #2] bx lr -.L634: +.L645: .align 2 -.L633: +.L644: .word .LANCHOR0 .size ftl_set_blk_mode, .-ftl_set_blk_mode .section .text.ftl_get_blk_mode,"ax",%progbits @@ -4451,7 +4571,7 @@ ftl_get_blk_mode: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L636 + ldr r3, .L647 lsrs r2, r0, #5 and r0, r0, #31 ldr r3, [r3] @@ -4459,9 +4579,9 @@ ftl_get_blk_mode: lsr r0, r3, r0 and r0, r0, #1 bx lr -.L637: +.L648: .align 2 -.L636: +.L647: .word .LANCHOR0 .size ftl_get_blk_mode, .-ftl_get_blk_mode .section .text.ftl_sb_update_avl_pages,"ax",%progbits @@ -4479,14 +4599,14 @@ ftl_sb_update_avl_pages: push {r4, r5, r6, lr} strh r3, [r0, #4] @ movhi movw r6, #65535 - ldr r3, .L645 + ldr r3, .L656 ldrh r4, [r3] add r3, r0, r2, lsl #1 adds r3, r3, #14 -.L639: +.L650: cmp r2, r4 - bcc .L641 - ldr r3, .L645+4 + bcc .L652 + ldr r3, .L656+4 add r5, r0, #16 movw r6, #65535 ldrh r3, [r3] @@ -4494,12 +4614,12 @@ ftl_sb_update_avl_pages: subs r1, r3, r1 movs r3, #0 uxth r1, r1 -.L642: +.L653: uxth r2, r3 cmp r4, r2 - bhi .L644 + bhi .L655 pop {r4, r5, r6, pc} -.L641: +.L652: ldrh r5, [r3, #2]! adds r2, r2, #1 uxth r2, r2 @@ -4508,8 +4628,8 @@ ftl_sb_update_avl_pages: ldrhne r5, [r0, #4] addne r5, r5, #1 strhne r5, [r0, #4] @ movhi - b .L639 -.L644: + b .L650 +.L655: ldrh r2, [r5], #2 adds r3, r3, #1 cmp r2, r6 @@ -4517,12 +4637,12 @@ ftl_sb_update_avl_pages: ldrhne r2, [r0, #4] addne r2, r2, r1 strhne r2, [r0, #4] @ movhi - b .L642 -.L646: + b .L653 +.L657: .align 2 -.L645: +.L656: .word .LANCHOR38 - .word .LANCHOR53 + .word .LANCHOR52 .size ftl_sb_update_avl_pages, .-ftl_sb_update_avl_pages .section .text.make_superblock,"ax",%progbits .align 1 @@ -4535,44 +4655,44 @@ ftl_sb_update_avl_pages: make_superblock: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L660 + ldr r3, .L671 ldrh r2, [r0] push {r4, r5, r6, r7, r8, r10, fp, lr} mov r4, r0 ldrh r3, [r3] cmp r2, r3 - bcc .L648 - ldr r1, .L660+4 - mov r2, #2544 - ldr r0, .L660+8 + bcc .L659 + ldr r1, .L671+4 + movw r2, #2575 + ldr r0, .L671+8 bl printf - ldr r1, .L660+12 - ldr r0, .L660+16 + ldr r1, .L671+12 + ldr r0, .L671+16 bl printf -.L648: - ldr r3, .L660+20 +.L659: + ldr r3, .L671+20 add r6, r4, #16 - ldr r10, .L660+40 + ldr r10, .L671+40 movw r7, #65535 movs r5, #0 ldrh r8, [r3] strh r5, [r4, #4] @ movhi strb r5, [r4, #7] -.L649: +.L660: uxth r3, r5 cmp r8, r3 - bhi .L651 - ldr r2, .L660+24 + bhi .L662 + ldr r2, .L671+24 ldrb r3, [r4, #7] @ zero_extendqisi2 ldrh r2, [r2] smulbb r3, r3, r2 strh r3, [r4, #4] @ movhi movs r3, #0 strb r3, [r4, #9] - ldr r3, .L660+28 + ldr r3, .L671+28 ldr r3, [r3] - cbz r3, .L652 - ldr r3, .L660+32 + cbz r3, .L663 + ldr r3, .L671+32 ldrh r2, [r4] ldr r3, [r3] ldrh r3, [r3, r2, lsl #1] @@ -4580,43 +4700,43 @@ make_superblock: itt ls movls r3, #1 strbls r3, [r4, #9] -.L652: - ldr r3, .L660+36 +.L663: + ldr r3, .L671+36 ldrb r3, [r3] @ zero_extendqisi2 - cbz r3, .L653 + cbz r3, .L664 movs r3, #1 strb r3, [r4, #9] -.L653: +.L664: movs r0, #0 pop {r4, r5, r6, r7, r8, r10, fp, pc} -.L651: +.L662: ldrh r1, [r4] ldrb r0, [r10, r5] @ zero_extendqisi2 bl V2P_block strh r7, [r6] @ movhi mov fp, r0 bl FtlBbmIsBadBlock - cbnz r0, .L650 + cbnz r0, .L661 strh fp, [r6] @ movhi ldrb r3, [r4, #7] @ zero_extendqisi2 adds r3, r3, #1 strb r3, [r4, #7] -.L650: +.L661: adds r5, r5, #1 adds r6, r6, #2 - b .L649 -.L661: + b .L660 +.L672: .align 2 -.L660: +.L671: .word .LANCHOR40 - .word .LANCHOR102 + .word .LANCHOR101 .word .LC5 .word .LC6 .word .LC7 .word .LANCHOR38 - .word .LANCHOR53 + .word .LANCHOR52 .word .LANCHOR28 - .word .LANCHOR79 + .word .LANCHOR78 .word .LANCHOR1 .word .LANCHOR47 .size make_superblock, .-make_superblock @@ -4633,49 +4753,49 @@ update_multiplier_value: @ frame_needed = 0, uses_anonymous_args = 0 push {r3, r4, r5, r6, r7, r8, r10, lr} movs r5, #0 - ldr r3, .L668 + ldr r3, .L679 mov r6, r0 mov r4, r5 - ldr r10, .L668+12 + ldr r10, .L679+12 ldrh r7, [r3] - ldr r3, .L668+4 + ldr r3, .L679+4 ldrh r8, [r3] -.L663: +.L674: uxth r3, r5 cmp r7, r3 - bhi .L665 - cbz r4, .L667 + bhi .L676 + cbz r4, .L678 mov r1, r4 mov r0, #32768 bl __aeabi_idiv -.L666: - ldr r3, .L668+8 +.L677: + ldr r3, .L679+8 movs r2, #6 ldr r3, [r3] mla r6, r2, r6, r3 strh r0, [r6, #4] @ movhi movs r0, #0 pop {r3, r4, r5, r6, r7, r8, r10, pc} -.L665: +.L676: mov r1, r6 ldrb r0, [r10, r5] @ zero_extendqisi2 bl V2P_block bl FtlBbmIsBadBlock - cbnz r0, .L664 + cbnz r0, .L675 add r4, r4, r8 uxth r4, r4 -.L664: +.L675: adds r5, r5, #1 - b .L663 -.L667: + b .L674 +.L678: mov r0, r4 - b .L666 -.L669: + b .L677 +.L680: .align 2 -.L668: +.L679: .word .LANCHOR38 - .word .LANCHOR53 - .word .LANCHOR82 + .word .LANCHOR52 + .word .LANCHOR81 .word .LANCHOR47 .size update_multiplier_value, .-update_multiplier_value .section .text.GetFreeBlockMinEraseCount,"ax",%progbits @@ -4690,28 +4810,28 @@ GetFreeBlockMinEraseCount: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L673 + ldr r3, .L684 ldr r0, [r3] - cbz r0, .L671 - ldr r3, .L673+4 + cbz r0, .L682 + ldr r3, .L684+4 ldr r3, [r3] subs r0, r0, r3 - ldr r3, .L673+8 + ldr r3, .L684+8 asrs r0, r0, #1 muls r0, r3, r0 - ldr r3, .L673+12 + ldr r3, .L684+12 ldr r3, [r3] uxth r0, r0 ldrh r0, [r3, r0, lsl #1] -.L671: +.L682: bx lr -.L674: +.L685: .align 2 -.L673: - .word .LANCHOR88 - .word .LANCHOR82 +.L684: + .word .LANCHOR87 + .word .LANCHOR81 .word -1431655765 - .word .LANCHOR79 + .word .LANCHOR78 .size GetFreeBlockMinEraseCount, .-GetFreeBlockMinEraseCount .section .text.GetFreeBlockMaxEraseCount,"ax",%progbits .align 1 @@ -4724,11 +4844,11 @@ GetFreeBlockMinEraseCount: GetFreeBlockMaxEraseCount: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L683 + ldr r3, .L694 push {r4, r5, r6, lr} ldr r3, [r3] - cbz r3, .L681 - ldr r2, .L683+4 + cbz r3, .L692 + ldr r2, .L694+4 movs r5, #6 movw r6, #65535 ldrh r2, [r2] @@ -4737,42 +4857,42 @@ GetFreeBlockMaxEraseCount: cmp r0, r2 it gt uxthgt r0, r2 - ldr r2, .L683+8 + ldr r2, .L694+8 ldr r1, [r2] - ldr r2, .L683+12 + ldr r2, .L694+12 subs r3, r3, r1 asrs r3, r3, #1 muls r3, r2, r3 movs r2, #0 uxth r3, r3 -.L678: +.L689: uxth r4, r2 cmp r0, r4 - bls .L680 + bls .L691 mul r4, r5, r3 adds r2, r2, #1 ldrh r4, [r1, r4] cmp r4, r6 - bne .L682 -.L680: - ldr r2, .L683+16 + bne .L693 +.L691: + ldr r2, .L694+16 ldr r2, [r2] ldrh r0, [r2, r3, lsl #1] pop {r4, r5, r6, pc} -.L682: +.L693: mov r3, r4 - b .L678 -.L681: + b .L689 +.L692: mov r0, r3 pop {r4, r5, r6, pc} -.L684: +.L695: .align 2 -.L683: +.L694: + .word .LANCHOR87 .word .LANCHOR88 - .word .LANCHOR89 - .word .LANCHOR82 + .word .LANCHOR81 .word -1431655765 - .word .LANCHOR79 + .word .LANCHOR78 .size GetFreeBlockMaxEraseCount, .-GetFreeBlockMaxEraseCount .section .text.free_data_superblock,"ax",%progbits .align 1 @@ -4788,19 +4908,19 @@ free_data_superblock: movw r2, #65535 push {r3, lr} cmp r0, r2 - beq .L686 - ldr r2, .L687 + beq .L697 + ldr r2, .L698 movs r1, #0 ldr r2, [r2] strh r1, [r2, r0, lsl #1] @ movhi bl INSERT_FREE_LIST -.L686: +.L697: movs r0, #0 pop {r3, pc} -.L688: +.L699: .align 2 -.L687: - .word .LANCHOR84 +.L698: + .word .LANCHOR83 .size free_data_superblock, .-free_data_superblock .section .text.FtlGcBufInit,"ax",%progbits .align 1 @@ -4815,54 +4935,54 @@ FtlGcBufInit: @ frame_needed = 0, uses_anonymous_args = 0 push {r0, r1, r4, r5, r6, r7, r8, r10, fp, lr} movs r3, #0 - ldr r1, .L694 + ldr r1, .L705 mov fp, #1 - ldr r2, .L694+4 + ldr r2, .L705+4 ldr r5, [r1] - ldr r1, .L694+8 + ldr r1, .L705+8 str r3, [r2] - ldr r2, .L694+12 + ldr r2, .L705+12 mov r0, r5 ldr r1, [r1] ldrh r2, [r2] str r1, [sp, #4] - ldr r1, .L694+16 + ldr r1, .L705+16 ldrh r1, [r1] str r1, [sp] - ldr r1, .L694+20 + ldr r1, .L705+20 ldr r10, [r1] - ldr r1, .L694+24 + ldr r1, .L705+24 ldrh r7, [r1] - ldr r1, .L694+28 + ldr r1, .L705+28 ldr r4, [r1] movs r1, #12 mla r1, r2, r1, r1 adds r4, r4, #8 add r8, r5, r1 mov r1, r3 -.L690: +.L701: adds r0, r0, #12 ldr r6, [sp] cmp r0, r8 add ip, r3, r7 add r4, r4, #36 add lr, r1, r6 - bne .L691 - ldr r3, .L694+32 + bne .L702 + ldr r3, .L705+32 mov lr, #12 mov r8, #0 ldr r0, [r3] - ldr r3, .L694+8 + ldr r3, .L705+8 ldr r4, [r3] - ldr r3, .L694+20 + ldr r3, .L705+20 ldr ip, [r3] -.L692: +.L703: cmp r2, r0 - bcc .L693 + bcc .L704 add sp, sp, #8 @ sp needed pop {r4, r5, r6, r7, r8, r10, fp, pc} -.L691: +.L702: bic r1, r1, #3 bic r3, r3, #3 mov r6, r1 @@ -4876,8 +4996,8 @@ FtlGcBufInit: str r3, [r4, #-32] mov r3, ip str r6, [r4, #-36] - b .L690 -.L693: + b .L701 +.L704: ldr r3, [sp] mul r10, lr, r2 muls r3, r2, r3 @@ -4892,19 +5012,19 @@ FtlGcBufInit: bic r3, r3, #3 add r3, r3, ip str r3, [r1, #4] - b .L692 -.L695: + b .L703 +.L706: .align 2 -.L694: - .word .LANCHOR104 +.L705: .word .LANCHOR103 - .word .LANCHOR105 + .word .LANCHOR102 + .word .LANCHOR104 .word .LANCHOR38 + .word .LANCHOR57 + .word .LANCHOR105 .word .LANCHOR58 .word .LANCHOR106 - .word .LANCHOR59 .word .LANCHOR107 - .word .LANCHOR108 .size FtlGcBufInit, .-FtlGcBufInit .section .text.FtlGcBufFree,"ax",%progbits .align 1 @@ -4917,43 +5037,43 @@ FtlGcBufInit: FtlGcBufFree: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L703 + ldr r3, .L714 mov ip, #12 push {r4, r5, r6, r7, r8, r10, fp, lr} movs r4, #0 mov fp, #36 mov lr, r4 ldr r7, [r3] - ldr r3, .L703+4 + ldr r3, .L714+4 ldr r5, [r3] -.L697: +.L708: uxth r3, r4 cmp r1, r3 - bls .L696 + bls .L707 mla r8, fp, r3, r0 movs r2, #0 -.L698: +.L709: uxth r3, r2 cmp r7, r3 - bls .L699 + bls .L710 mul r3, ip, r3 ldr r6, [r8, #8] adds r2, r2, #1 add r10, r5, r3 ldr r3, [r5, r3] cmp r3, r6 - bne .L698 + bne .L709 str lr, [r10, #8] -.L699: +.L710: adds r4, r4, #1 - b .L697 -.L696: + b .L708 +.L707: pop {r4, r5, r6, r7, r8, r10, fp, pc} -.L704: +.L715: .align 2 -.L703: - .word .LANCHOR108 - .word .LANCHOR104 +.L714: + .word .LANCHOR107 + .word .LANCHOR103 .size FtlGcBufFree, .-FtlGcBufFree .section .text.FtlGcBufAlloc,"ax",%progbits .align 1 @@ -4966,45 +5086,45 @@ FtlGcBufFree: FtlGcBufAlloc: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L712 + ldr r3, .L723 movs r2, #0 push {r4, r5, r6, r7, r8, r10, lr} mov ip, #12 movs r7, #1 mov lr, #36 ldr r4, [r3] - ldr r3, .L712+4 + ldr r3, .L723+4 ldr r5, [r3] -.L706: +.L717: uxth r8, r2 cmp r1, r8 - bhi .L710 + bhi .L721 pop {r4, r5, r6, r7, r8, r10, pc} -.L710: +.L721: mov r10, #0 -.L707: +.L718: uxth r3, r10 cmp r4, r3 - bls .L708 + bls .L719 mla r3, ip, r3, r5 add r10, r10, #1 ldr r6, [r3, #8] cmp r6, #0 - bne .L707 + bne .L718 mla r8, lr, r8, r0 str r7, [r3, #8] ldr r6, [r3] ldr r3, [r3, #4] str r6, [r8, #8] str r3, [r8, #12] -.L708: +.L719: adds r2, r2, #1 - b .L706 -.L713: + b .L717 +.L724: .align 2 -.L712: - .word .LANCHOR108 - .word .LANCHOR104 +.L723: + .word .LANCHOR107 + .word .LANCHOR103 .size FtlGcBufAlloc, .-FtlGcBufAlloc .section .text.IsBlkInGcList,"ax",%progbits .align 1 @@ -5018,27 +5138,27 @@ IsBlkInGcList: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L719 - ldr r2, .L719+4 + ldr r3, .L730 + ldr r2, .L730+4 ldr r3, [r3] ldrh r2, [r2] add r2, r3, r2, lsl #1 -.L715: +.L726: cmp r3, r2 - bne .L717 + bne .L728 movs r0, #0 bx lr -.L717: +.L728: ldrh r1, [r3], #2 cmp r1, r0 - bne .L715 + bne .L726 movs r0, #1 bx lr -.L720: +.L731: .align 2 -.L719: +.L730: + .word .LANCHOR108 .word .LANCHOR109 - .word .LANCHOR110 .size IsBlkInGcList, .-IsBlkInGcList .section .text.FtlGcUpdatePage,"ax",%progbits .align 1 @@ -5053,35 +5173,35 @@ FtlGcUpdatePage: @ frame_needed = 0, uses_anonymous_args = 0 push {r3, r4, r5, r6, r7, lr} mov r5, r0 - ldr r4, .L725 + ldr r4, .L736 ubfx r0, r0, #10, #16 mov r6, r1 mov r7, r2 bl P2V_block_in_plane - ldr r3, .L725+4 + ldr r3, .L736+4 ldrh r1, [r4] ldr r2, [r3] movs r3, #0 -.L722: +.L733: uxth ip, r3 cmp ip, r1 - bcc .L724 - bne .L723 + bcc .L735 + bne .L734 strh r0, [r2, ip, lsl #1] @ movhi ldrh r3, [r4] adds r3, r3, #1 strh r3, [r4] @ movhi - b .L723 -.L724: + b .L734 +.L735: adds r3, r3, #1 add ip, r2, r3, lsl #1 ldrh ip, [ip, #-2] cmp ip, r0 - bne .L722 -.L723: - ldr r2, .L725+8 + bne .L733 +.L734: + ldr r2, .L736+8 movs r0, #12 - ldr r1, .L725+12 + ldr r1, .L736+12 ldrh r3, [r2] ldr r1, [r1] muls r0, r3, r0 @@ -5092,13 +5212,13 @@ FtlGcUpdatePage: str r5, [r1, r0] strh r3, [r2] @ movhi pop {r3, r4, r5, r6, r7, pc} -.L726: +.L737: .align 2 -.L725: - .word .LANCHOR110 +.L736: .word .LANCHOR109 + .word .LANCHOR108 + .word .LANCHOR110 .word .LANCHOR111 - .word .LANCHOR112 .size FtlGcUpdatePage, .-FtlGcUpdatePage .section .text.FtlGcRefreshOpenBlock,"ax",%progbits .align 1 @@ -5111,52 +5231,52 @@ FtlGcUpdatePage: FtlGcRefreshOpenBlock: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr ip, .L732+12 + ldr ip, .L743+12 push {r4, r5, r6, r7, lr} ldrh lr, [ip] cmp lr, r0 - beq .L728 - ldr r6, .L732 + beq .L739 + ldr r6, .L743 ldrh r7, [r6] cmp r0, r7 - beq .L728 - ldr r4, .L732+4 + beq .L739 + ldr r4, .L743+4 ldrh r5, [r4] cmp r0, r5 - beq .L728 - ldr r2, .L732+8 + beq .L739 + ldr r2, .L743+8 ldrh r1, [r2] cmp r0, r1 - beq .L728 + beq .L739 movw r3, #65535 cmp lr, r3 - bne .L729 + bne .L740 strh r0, [ip] @ movhi -.L728: +.L739: movs r0, #0 pop {r4, r5, r6, r7, pc} -.L729: +.L740: cmp r7, r3 - bne .L730 + bne .L741 strh r0, [r6] @ movhi - b .L728 -.L730: + b .L739 +.L741: cmp r5, r3 - bne .L731 + bne .L742 strh r0, [r4] @ movhi - b .L728 -.L731: + b .L739 +.L742: cmp r1, r3 it eq strheq r0, [r2] @ movhi - b .L728 -.L733: + b .L739 +.L744: .align 2 -.L732: +.L743: + .word .LANCHOR113 .word .LANCHOR114 .word .LANCHOR115 - .word .LANCHOR116 - .word .LANCHOR113 + .word .LANCHOR112 .size FtlGcRefreshOpenBlock, .-FtlGcRefreshOpenBlock .section .text.FtlGcRefreshBlock,"ax",%progbits .align 1 @@ -5169,55 +5289,55 @@ FtlGcRefreshOpenBlock: FtlGcRefreshBlock: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr ip, .L744+12 + ldr ip, .L755+12 push {r4, r5, r6, r7, lr} ldrh lr, [ip] cmp lr, r0 - beq .L742 - ldr r6, .L744 + beq .L753 + ldr r6, .L755 ldrh r7, [r6] cmp r0, r7 - beq .L742 - ldr r4, .L744+4 + beq .L753 + ldr r4, .L755+4 ldrh r5, [r4] cmp r0, r5 - beq .L742 - ldr r2, .L744+8 + beq .L753 + ldr r2, .L755+8 ldrh r1, [r2] cmp r0, r1 - beq .L742 + beq .L753 movw r3, #65535 cmp lr, r3 - bne .L736 + bne .L747 strh r0, [ip] @ movhi -.L742: +.L753: movs r0, #0 pop {r4, r5, r6, r7, pc} -.L736: +.L747: cmp r7, r3 - bne .L737 + bne .L748 strh r0, [r6] @ movhi - b .L742 -.L737: + b .L753 +.L748: cmp r5, r3 - bne .L738 + bne .L749 strh r0, [r4] @ movhi - b .L742 -.L738: + b .L753 +.L749: cmp r1, r3 - bne .L743 + bne .L754 strh r0, [r2] @ movhi - b .L742 -.L743: + b .L753 +.L754: mov r0, #-1 pop {r4, r5, r6, r7, pc} -.L745: +.L756: .align 2 -.L744: +.L755: + .word .LANCHOR113 .word .LANCHOR114 .word .LANCHOR115 - .word .LANCHOR116 - .word .LANCHOR113 + .word .LANCHOR112 .size FtlGcRefreshBlock, .-FtlGcRefreshBlock .section .text.FtlGcMarkBadPhyBlk,"ax",%progbits .align 1 @@ -5235,48 +5355,48 @@ FtlGcMarkBadPhyBlk: bl P2V_block_in_plane mov r5, r0 bl FtlGcRefreshBlock - ldr r3, .L754 + ldr r3, .L765 ldr r3, [r3] - cbz r3, .L747 - ldr r3, .L754+4 + cbz r3, .L758 + ldr r3, .L765+4 ldr r2, [r3] ldrh r3, [r2, r5, lsl #1] cmp r3, #39 itt hi subhi r3, r3, #40 strhhi r3, [r2, r5, lsl #1] @ movhi -.L747: - ldr r2, .L754+8 +.L758: + ldr r2, .L765+8 movs r1, #0 - ldr r5, .L754+12 + ldr r5, .L765+12 ldrh r3, [r2] -.L748: +.L759: uxth r0, r1 cmp r3, r0 - bhi .L750 + bhi .L761 cmp r3, #15 itttt ls addls r1, r3, #1 strhls r1, [r2] @ movhi - ldrls r2, .L754+12 + ldrls r2, .L765+12 strhls r4, [r2, r3, lsl #1] @ movhi - b .L749 -.L750: + b .L760 +.L761: adds r1, r1, #1 add r0, r5, r1, lsl #1 ldrh r0, [r0, #-2] cmp r0, r4 - bne .L748 -.L749: + bne .L759 +.L760: movs r0, #0 pop {r3, r4, r5, pc} -.L755: +.L766: .align 2 -.L754: +.L765: .word .LANCHOR28 - .word .LANCHOR79 + .word .LANCHOR78 + .word .LANCHOR116 .word .LANCHOR117 - .word .LANCHOR118 .size FtlGcMarkBadPhyBlk, .-FtlGcMarkBadPhyBlk .section .text.FtlGcReFreshBadBlk,"ax",%progbits .align 1 @@ -5289,22 +5409,22 @@ FtlGcMarkBadPhyBlk: FtlGcReFreshBadBlk: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L762 + ldr r3, .L773 push {r4, lr} ldrh r3, [r3] - cbz r3, .L757 - ldr r2, .L762+4 + cbz r3, .L768 + ldr r2, .L773+4 ldrh r1, [r2] movw r2, #65535 cmp r1, r2 - bne .L757 - ldr r4, .L762+8 + bne .L768 + ldr r4, .L773+8 ldrh r2, [r4] cmp r2, r3 itt cs movcs r3, #0 strhcs r3, [r4] @ movhi - ldr r3, .L762+12 + ldr r3, .L773+12 ldrh r2, [r4] ldrh r0, [r3, r2, lsl #1] bl P2V_block_in_plane @@ -5312,16 +5432,16 @@ FtlGcReFreshBadBlk: ldrh r3, [r4] adds r3, r3, #1 strh r3, [r4] @ movhi -.L757: +.L768: movs r0, #0 pop {r4, pc} -.L763: +.L774: .align 2 -.L762: - .word .LANCHOR117 - .word .LANCHOR113 - .word .LANCHOR119 +.L773: + .word .LANCHOR116 + .word .LANCHOR112 .word .LANCHOR118 + .word .LANCHOR117 .size FtlGcReFreshBadBlk, .-FtlGcReFreshBadBlk .section .text.flash_boot_enter_slc_mode,"ax",%progbits .align 1 @@ -5335,18 +5455,18 @@ flash_boot_enter_slc_mode: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L766 + ldr r3, .L777 ldr r2, [r3] - ldr r3, .L766+4 + ldr r3, .L777+4 cmp r2, r3 - bne .L764 + bne .L775 b flash_enter_slc_mode -.L764: +.L775: bx lr -.L767: +.L778: .align 2 -.L766: - .word .LANCHOR29 +.L777: + .word .LANCHOR119 .word 1446522928 .size flash_boot_enter_slc_mode, .-flash_boot_enter_slc_mode .section .text.flash_boot_exit_slc_mode,"ax",%progbits @@ -5361,18 +5481,18 @@ flash_boot_exit_slc_mode: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L770 + ldr r3, .L781 ldr r2, [r3] - ldr r3, .L770+4 + ldr r3, .L781+4 cmp r2, r3 - bne .L768 + bne .L779 b flash_exit_slc_mode -.L768: +.L779: bx lr -.L771: +.L782: .align 2 -.L770: - .word .LANCHOR29 +.L781: + .word .LANCHOR119 .word 1446522928 .size flash_boot_exit_slc_mode, .-flash_boot_exit_slc_mode .section .text.FW_FlashBlockErase.constprop.41,"ax",%progbits @@ -5385,27 +5505,28 @@ flash_boot_exit_slc_mode: FW_FlashBlockErase.constprop.41: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L773 - push {r4, lr} + push {r3, r4, r5, lr} mov r4, r0 + ldr r3, .L784 movs r0, #0 ldr r3, [r3] - ldrb r1, [r3, #9] @ zero_extendqisi2 + ldrb r5, [r3, #9] @ zero_extendqisi2 bl flash_boot_enter_slc_mode mov r0, r4 + mov r1, r5 bl __aeabi_uidiv movs r2, #0 mov r1, r0 mov r0, r2 bl FlashEraseBlock - mov r1, r0 + mov r4, r0 movs r0, #0 bl flash_boot_exit_slc_mode - uxtb r0, r1 - pop {r4, pc} -.L774: + uxtb r0, r4 + pop {r3, r4, r5, pc} +.L785: .align 2 -.L773: +.L784: .word .LANCHOR18 .size FW_FlashBlockErase.constprop.41, .-FW_FlashBlockErase.constprop.41 .section .text.ftl_memset,"ax",%progbits @@ -5435,54 +5556,54 @@ BuildFlashLsbPageTable: @ frame_needed = 0, uses_anonymous_args = 0 push {r4, lr} mov r4, r1 - cbnz r0, .L777 - ldr r3, .L814 -.L778: + cbnz r0, .L788 + ldr r3, .L828 +.L789: strh r0, [r3, r0, lsl #1] @ movhi adds r0, r0, #1 cmp r0, #256 - bne .L778 -.L784: + bne .L789 +.L795: movs r1, #255 mov r2, #1024 - ldr r0, .L814+4 + ldr r0, .L828+4 uxth r4, r4 bl ftl_memset - ldr r1, .L814 + ldr r1, .L828 movs r3, #0 - ldr r0, .L814+4 -.L779: + ldr r0, .L828+4 +.L790: uxth r2, r3 cmp r4, r2 - bhi .L801 + bhi .L814 pop {r4, pc} -.L777: +.L788: cmp r0, #1 - bne .L780 - ldr r1, .L814 + bne .L791 + ldr r1, .L828 movs r3, #0 -.L783: +.L794: cmp r3, #3 uxth r2, r3 - bls .L781 + bls .L792 tst r2, #1 ite ne movne r0, #3 moveq r0, #2 rsb r2, r0, r2, lsl #1 uxth r2, r2 -.L781: +.L792: strh r2, [r1, r3, lsl #1] @ movhi adds r3, r3, #1 cmp r3, #256 - bne .L783 - b .L784 -.L780: + bne .L794 + b .L795 +.L791: cmp r0, #2 - bne .L785 - ldr r1, .L814 + bne .L796 + ldr r1, .L828 movs r2, #0 -.L787: +.L798: uxth r3, r2 cmp r2, #1 ittt hi @@ -5492,34 +5613,34 @@ BuildFlashLsbPageTable: strh r3, [r1, r2, lsl #1] @ movhi adds r2, r2, #1 cmp r2, #256 - bne .L787 - b .L784 -.L785: + bne .L798 + b .L795 +.L796: cmp r0, #3 - bne .L788 - ldr r1, .L814 + bne .L799 + ldr r1, .L828 movs r3, #0 -.L791: +.L802: cmp r3, #5 uxth r2, r3 - bls .L789 + bls .L800 tst r2, #1 ite ne movne r0, #5 moveq r0, #4 rsb r2, r0, r2, lsl #1 uxth r2, r2 -.L789: +.L800: strh r2, [r1, r3, lsl #1] @ movhi adds r3, r3, #1 cmp r3, #256 - bne .L791 - b .L784 -.L788: + bne .L802 + b .L795 +.L799: cmp r0, #4 mov r3, #0 - bne .L792 - ldr r2, .L814 + bne .L803 + ldr r2, .L828 strh r3, [r2] @ movhi movs r3, #1 strh r3, [r2, #2] @ movhi @@ -5534,7 +5655,7 @@ BuildFlashLsbPageTable: movs r3, #8 strh r0, [r2, #8] @ movhi strh r3, [r2, #14]! @ movhi -.L794: +.L805: tst r3, #1 ite ne movne r1, #7 @@ -5544,56 +5665,75 @@ BuildFlashLsbPageTable: uxth r3, r3 strh r1, [r2, #2]! @ movhi cmp r3, #256 - bne .L794 - b .L784 -.L792: + bne .L805 + b .L795 +.L803: cmp r0, #5 - bne .L795 - ldr r2, .L814 -.L796: + bne .L806 + ldr r2, .L828 +.L807: strh r3, [r2, r3, lsl #1] @ movhi adds r3, r3, #1 cmp r3, #16 - bne .L796 - ldr r2, .L814+8 -.L797: + bne .L807 + ldr r2, .L828+8 +.L808: strh r3, [r2, #2]! @ movhi adds r3, r3, #2 uxth r3, r3 cmp r3, #496 - bne .L797 - b .L784 -.L795: + bne .L808 + b .L795 +.L806: cmp r0, #6 - bne .L784 - ldr r0, .L814 + bne .L809 + ldr r0, .L828 mov r1, r3 -.L800: +.L812: cmp r1, #5 uxth r2, r1 - bls .L798 + bls .L810 tst r2, #1 ite ne movne r2, #12 moveq r2, #10 subs r2, r3, r2 uxth r2, r2 -.L798: +.L810: strh r2, [r0, r1, lsl #1] @ movhi adds r1, r1, #1 cmp r1, #256 add r3, r3, #3 uxth r3, r3 - bne .L800 - b .L784 -.L801: + bne .L812 + b .L795 +.L809: + cmp r0, #9 + bne .L795 + ldr r2, .L828 + movw r1, #509 + strh r3, [r2] @ movhi + movs r3, #1 + strh r3, [r2, #2] @ movhi + mov r3, r2 + movs r2, #2 + strh r2, [r3, #4]! @ movhi + movs r2, #3 +.L813: + strh r2, [r3, #2]! @ movhi + adds r2, r2, #2 + uxth r2, r2 + cmp r2, r1 + bne .L813 + b .L795 +.L814: ldrh r2, [r1, r3, lsl #1] adds r3, r3, #1 strh r2, [r0, r2, lsl #1] @ movhi - b .L779 -.L815: + b .L790 +.L829: .align 2 -.L814: +.L828: .word .LANCHOR16 .word .LANCHOR120 .word .LANCHOR16+30 @@ -5609,127 +5749,115 @@ BuildFlashLsbPageTable: FlashDieInfoInit: @ args = 0, pretend = 0, frame = 8 @ frame_needed = 0, uses_anonymous_args = 0 + ldr r3, .L844 push {r0, r1, r4, r5, r6, r7, r8, r10, fp, lr} - movs r3, #0 - ldr r2, .L834 - ldr r4, .L834+4 - strb r3, [r2] - str r2, [sp] - strb r3, [r4] - ldr r3, .L834+8 - ldr r7, .L834+12 - ldrh r3, [r3, #10] - cmp r3, #256 - bls .L817 - mov r3, #512 -.L833: + movs r4, #0 + ldr r5, .L844+4 + ldr fp, .L844+36 + ldrh r0, [r3, #10] + strb r4, [r5] + strb r4, [fp] + bl FlashBlockAlignInit movs r2, #8 - movs r1, #0 - ldr r0, .L834+16 - movs r6, #0 - str r3, [r7] + mov r1, r4 + ldr r0, .L844+8 bl ftl_memset movs r2, #32 - movs r1, #0 - ldr r0, .L834+20 + mov r1, r4 + ldr r0, .L844+12 bl ftl_memset movs r2, #128 - movs r1, #0 - ldr r0, .L834+24 + mov r1, r4 + ldr r0, .L844+16 bl ftl_memset - ldr r3, .L834+28 - ldr fp, .L834+36 - ldr r5, [r3] - ldr r3, .L834+16 - ldrb r10, [r5] @ zero_extendqisi2 - add r8, r5, #1 -.L821: - mov r2, r10 - add r1, fp, r6, lsl #3 - mov r0, r8 + ldr r3, .L844+20 + ldr r10, .L844+32 + ldr r6, [r3] + ldr r3, .L844+8 + ldrb r8, [r6] @ zero_extendqisi2 + adds r7, r6, #1 +.L832: + mov r2, r8 + add r1, r10, r4, lsl #3 + mov r0, r7 str r3, [sp, #4] bl FlashMemCmp8 ldr r3, [sp, #4] - cbnz r0, .L820 - ldrb r2, [r4] @ zero_extendqisi2 - ldr r1, .L834+20 - strb r6, [r3, r2] + cbnz r0, .L831 + ldrb r2, [r5] @ zero_extendqisi2 + ldr r1, .L844+12 + strb r4, [r3, r2] str r0, [r1, r2, lsl #2] adds r1, r2, #1 - strb r1, [r4] -.L820: - adds r6, r6, #1 - cmp r6, #4 - bne .L821 - ldrb r3, [r4] @ zero_extendqisi2 - ldr r2, [sp] - strb r3, [r2] - ldrb r3, [r5, #8] @ zero_extendqisi2 + strb r1, [r5] +.L831: + adds r4, r4, #1 + cmp r4, #4 + bne .L832 + ldrb r3, [r5] @ zero_extendqisi2 + strb r3, [fp] + ldrb r3, [r6, #8] @ zero_extendqisi2 cmp r3, #2 - beq .L822 -.L826: - ldrh r2, [r5, #14] - ldrb r3, [r4] @ zero_extendqisi2 + beq .L833 +.L837: + ldrh r2, [r6, #14] + ldrb r3, [r5] @ zero_extendqisi2 smulbb r3, r3, r2 - ldrb r2, [r5, #13] @ zero_extendqisi2 + ldrb r2, [r6, #13] @ zero_extendqisi2 smulbb r3, r3, r2 - ldr r2, .L834+32 + ldr r2, .L844+24 strh r3, [r2] @ movhi add sp, sp, #8 @ sp needed pop {r4, r5, r6, r7, r8, r10, fp, pc} -.L817: - cmp r3, #128 - it hi - movhi r3, #256 - b .L833 -.L822: - ldr fp, [r7] - movs r6, #0 - ldr r7, .L834+20 - ldr r3, .L834+16 -.L825: - str r3, [sp] - mov r2, r10 - ldr r3, .L834+36 - mov r0, r8 - add r1, r3, r6, lsl #3 +.L833: + ldr r3, .L844+28 + movs r4, #0 + ldr r10, .L844+12 + ldr fp, [r3] + ldr r3, .L844+8 +.L836: + str r3, [sp, #4] + mov r2, r8 + ldr r3, .L844+32 + mov r0, r7 + add r1, r3, r4, lsl #3 bl FlashMemCmp8 - ldr r3, [sp] - cbnz r0, .L823 - ldrh r2, [r5, #14] - ldrb r1, [r4] @ zero_extendqisi2 + ldr r3, [sp, #4] + cbnz r0, .L834 + ldrh r2, [r6, #14] + ldrb r1, [r5] @ zero_extendqisi2 and r0, r2, #65280 - ldrb r2, [r5, #13] @ zero_extendqisi2 + ldrb r2, [r6, #13] @ zero_extendqisi2 mul r2, fp, r2 muls r2, r0, r2 - str r2, [r7, r1, lsl #2] - ldrb r0, [r5, #23] @ zero_extendqisi2 - cbz r0, .L824 + str r2, [r10, r1, lsl #2] + ldrb r0, [r6, #23] @ zero_extendqisi2 + cbz r0, .L835 lsls r2, r2, #1 - str r2, [r7, r1, lsl #2] -.L824: - adds r2, r1, #1 - strb r6, [r3, r1] - strb r2, [r4] -.L823: - adds r6, r6, #1 - cmp r6, #4 - bne .L825 - b .L826 + str r2, [r10, r1, lsl #2] .L835: - .align 2 + adds r2, r1, #1 + strb r4, [r3, r1] + strb r2, [r5] .L834: - .word .LANCHOR121 - .word .LANCHOR25 + adds r4, r4, #1 + cmp r4, #4 + bne .L836 + b .L837 +.L845: + .align 2 +.L844: .word .LANCHOR31 - .word .LANCHOR3 + .word .LANCHOR25 .word .LANCHOR26 .word .LANCHOR17 .word .LANCHOR23 .word .LANCHOR18 .word .LANCHOR122 + .word .LANCHOR3 .word .LANCHOR22 + .word .LANCHOR121 .size FlashDieInfoInit, .-FlashDieInfoInit .section .text.ReadFlashInfo,"ax",%progbits .align 1 @@ -5747,10 +5875,10 @@ ReadFlashInfo: movs r1, #0 mov r4, r0 bl ftl_memset - ldr r3, .L839 + ldr r3, .L849 movs r2, #0 ldr r1, [r3] - ldr r3, .L839+4 + ldr r3, .L849+4 ldrb r0, [r1, #9] @ zero_extendqisi2 ldr r3, [r3] smulbb r3, r3, r0 @@ -5758,10 +5886,10 @@ ReadFlashInfo: strb r3, [r4, #4] lsrs r3, r3, #8 strb r3, [r4, #5] - ldr r3, .L839+8 + ldr r3, .L849+8 ldrb r3, [r3] @ zero_extendqisi2 strb r3, [r4, #7] - ldr r3, .L839+12 + ldr r3, .L849+12 ldrb r5, [r3] @ zero_extendqisi2 strb r5, [r4] ldrb r5, [r3, #1] @ zero_extendqisi2 @@ -5775,32 +5903,32 @@ ReadFlashInfo: movs r3, #32 strb r3, [r4, #8] ldrb r3, [r1, #7] @ zero_extendqisi2 - ldr r0, .L839+16 + ldr r0, .L849+16 strb r2, [r4, #10] strb r3, [r4, #9] - ldr r3, .L839+20 + ldr r3, .L849+20 ldrb r1, [r3] @ zero_extendqisi2 mov r3, r2 -.L837: +.L847: uxtb r2, r3 cmp r1, r2 - bhi .L838 + bhi .L848 pop {r4, r5, r6, pc} -.L838: +.L848: ldrb r2, [r3, r0] @ zero_extendqisi2 adds r3, r3, #1 ldrb r6, [r4, #10] @ zero_extendqisi2 lsl r2, r5, r2 orrs r2, r2, r6 strb r2, [r4, #10] - b .L837 -.L840: + b .L847 +.L850: .align 2 -.L839: +.L849: .word .LANCHOR18 .word .LANCHOR3 .word .LANCHOR33 - .word .LANCHOR69 + .word .LANCHOR68 .word .LANCHOR26 .word .LANCHOR25 .size ReadFlashInfo, .-ReadFlashInfo @@ -5815,35 +5943,35 @@ ReadFlashInfo: FtlBbt2Bitmap: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L847 + ldr r3, .L857 push {r4, r5, r6, r7, r8, lr} mov r5, r0 - ldr r7, .L847+4 + ldr r7, .L857+4 mov r6, r1 subs r4, r5, #2 addw r5, r5, #1022 ldrh r2, [r3] movs r1, #0 - ldr r8, .L847+20 + ldr r8, .L857+20 mov r0, r6 lsls r2, r2, #2 bl ftl_memset -.L844: +.L854: ldrh r3, [r4, #2] movw r2, #65535 cmp r3, r2 - beq .L841 + beq .L851 ldrh r2, [r7] cmp r2, r3 - bhi .L843 + bhi .L853 mov r1, r8 movs r2, #79 - ldr r0, .L847+8 + ldr r0, .L857+8 bl printf - ldr r1, .L847+12 - ldr r0, .L847+16 + ldr r1, .L857+12 + ldr r0, .L857+16 bl printf -.L843: +.L853: ldrh r3, [r4, #2]! movs r2, #1 cmp r5, r4 @@ -5853,12 +5981,12 @@ FtlBbt2Bitmap: ldr r2, [r6, r1, lsl #2] orr r2, r2, r3 str r2, [r6, r1, lsl #2] - bne .L844 -.L841: + bne .L854 +.L851: pop {r4, r5, r6, r7, r8, pc} -.L848: +.L858: .align 2 -.L847: +.L857: .word .LANCHOR123 .word .LANCHOR51 .word .LC5 @@ -5878,7 +6006,7 @@ FtlBbtMemInit: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r0, .L850 + ldr r0, .L860 movw r3, #65535 movs r2, #16 movs r1, #255 @@ -5887,10 +6015,10 @@ FtlBbtMemInit: strh r3, [r0, #6] @ movhi adds r0, r0, #12 b ftl_memset -.L851: +.L861: .align 2 -.L850: - .word .LANCHOR75 +.L860: + .word .LANCHOR74 .size FtlBbtMemInit, .-FtlBbtMemInit .section .text.FtlFreeSysBlkQueueInit,"ax",%progbits .align 1 @@ -5903,7 +6031,7 @@ FtlBbtMemInit: FtlFreeSysBlkQueueInit: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L853 + ldr r3, .L863 mov r2, #2048 push {r4, lr} movs r4, #0 @@ -5916,10 +6044,10 @@ FtlFreeSysBlkQueueInit: bl ftl_memset mov r0, r4 pop {r4, pc} -.L854: +.L864: .align 2 -.L853: - .word .LANCHOR76 +.L863: + .word .LANCHOR75 .size FtlFreeSysBlkQueueInit, .-FtlFreeSysBlkQueueInit .section .text.ftl_free_no_use_map_blk,"ax",%progbits .align 1 @@ -5943,12 +6071,12 @@ ftl_free_no_use_map_blk: mov r0, r5 bl ftl_memset movs r3, #0 -.L856: +.L866: ldrh r1, [r4, #6] uxth r2, r3 cmp r1, r2 - bhi .L860 - ldr r3, .L875 + bhi .L870 + ldr r3, .L885 movs r6, #0 mov r10, r6 ldrh r2, [r3] @@ -5956,59 +6084,59 @@ ftl_free_no_use_map_blk: strh r2, [r5, r3, lsl #1] @ movhi mov r2, r6 ldrh fp, [r5] -.L861: +.L871: ldrh r3, [r4, #10] uxth ip, r6 cmp r3, ip - bhi .L865 + bhi .L875 mov r0, r10 add sp, sp, #8 @ sp needed pop {r4, r5, r6, r7, r8, r10, fp, pc} -.L860: +.L870: uxth r2, r3 ldr r1, [r6, r2, lsl #2] movs r2, #0 ubfx r1, r1, #10, #16 -.L857: +.L867: ldrh ip, [r4, #10] uxth r0, r2 cmp ip, r0 - bhi .L859 + bhi .L869 adds r3, r3, #1 - b .L856 -.L859: + b .L866 +.L869: uxth r0, r2 ldrh ip, [r7, r0, lsl #1] cmp ip, r1 - bne .L858 - cbz r1, .L858 + bne .L868 + cbz r1, .L868 ldrh ip, [r5, r0, lsl #1] add ip, ip, #1 strh ip, [r5, r0, lsl #1] @ movhi -.L858: +.L868: adds r2, r2, #1 - b .L857 -.L865: + b .L867 +.L875: uxth r1, r6 ldrh r3, [r5, r1, lsl #1] lsl r8, r1, #1 cmp fp, r3 - bls .L862 + bls .L872 ldrh r0, [r7, r1, lsl #1] add r8, r8, r7 - cbnz r0, .L863 -.L864: + cbnz r0, .L873 +.L874: adds r6, r6, #1 - b .L861 -.L862: + b .L871 +.L872: cmp r3, #0 - bne .L864 + bne .L874 ldrh r0, [r7, r1, lsl #1] add r8, r8, r7 cmp r0, #0 - beq .L864 -.L866: + beq .L874 +.L876: movs r1, #1 str r2, [sp, #4] bl FtlFreeSysBlkQueueIn @@ -6017,17 +6145,17 @@ ftl_free_no_use_map_blk: ldrh r3, [r4, #8] subs r3, r3, #1 strh r3, [r4, #8] @ movhi - b .L864 -.L863: + b .L874 +.L873: mov r10, ip mov fp, r3 cmp r3, #0 - beq .L866 - b .L864 -.L876: + beq .L876 + b .L874 +.L886: .align 2 -.L875: - .word .LANCHOR54 +.L885: + .word .LANCHOR53 .size ftl_free_no_use_map_blk, .-ftl_free_no_use_map_blk .section .text.FtlL2PDataInit,"ax",%progbits .align 1 @@ -6042,14 +6170,14 @@ FtlL2PDataInit: @ frame_needed = 0, uses_anonymous_args = 0 push {r4, r5, r6, r7, r8, lr} movs r1, #0 - ldr r5, .L880 - ldr r4, .L880+4 + ldr r5, .L890 + ldr r4, .L890+4 ldr r2, [r5] - ldr r7, .L880+8 - ldr r6, .L880+12 + ldr r7, .L890+8 + ldr r6, .L890+12 ldr r0, [r4] lsls r2, r2, #1 - ldr r8, .L880+44 + ldr r8, .L890+44 bl ftl_memset ldrh r3, [r7] movs r1, #255 @@ -6057,7 +6185,7 @@ FtlL2PDataInit: ldr r0, [r8] muls r2, r3, r2 bl ftl_memset - ldr r3, .L880+16 + ldr r3, .L890+16 movw r0, #65535 ldrh r1, [r6] ldr ip, [r8] @@ -6068,55 +6196,55 @@ FtlL2PDataInit: adds r1, r2, r3 movs r3, #0 mov lr, r3 -.L878: +.L888: adds r2, r2, #12 adds r6, r3, r7 cmp r2, r1 - bne .L879 - ldr r3, .L880+20 + bne .L889 + ldr r3, .L890+20 ldr r2, [r5] strh r0, [r3, #2] @ movhi strh r2, [r3, #10] @ movhi movw r2, #61634 strh r2, [r3, #4] @ movhi - ldr r2, .L880+24 + ldr r2, .L890+24 strh r0, [r3] @ movhi ldrh r2, [r2] strh r2, [r3, #8] @ movhi - ldr r2, .L880+28 + ldr r2, .L890+28 ldrh r2, [r2] strh r2, [r3, #6] @ movhi - ldr r2, .L880+32 + ldr r2, .L890+32 ldr r2, [r2] str r2, [r3, #12] - ldr r2, .L880+36 + ldr r2, .L890+36 ldr r2, [r2] str r2, [r3, #16] ldr r2, [r4] str r2, [r3, #20] - ldr r2, .L880+40 + ldr r2, .L890+40 ldr r2, [r2] str r2, [r3, #24] pop {r4, r5, r6, r7, r8, pc} -.L879: +.L889: bic r3, r3, #3 str lr, [r2, #-8] add r3, r3, ip strh r0, [r2, #-12] @ movhi str r3, [r2, #-4] mov r3, r6 - b .L878 -.L881: + b .L888 +.L891: .align 2 -.L880: - .word .LANCHOR65 +.L890: + .word .LANCHOR64 .word .LANCHOR125 - .word .LANCHOR58 - .word .LANCHOR68 - .word .LANCHOR97 + .word .LANCHOR57 + .word .LANCHOR67 + .word .LANCHOR96 .word .LANCHOR127 .word .LANCHOR128 - .word .LANCHOR67 + .word .LANCHOR66 .word .LANCHOR129 .word .LANCHOR130 .word .LANCHOR131 @@ -6135,57 +6263,57 @@ FtlVariablesInit: @ frame_needed = 0, uses_anonymous_args = 0 push {r3, r4, r5, lr} movs r4, #0 - ldr r3, .L883 + ldr r3, .L893 movw r2, #65535 mov r1, r4 - ldr r5, .L883+4 + ldr r5, .L893+4 str r4, [r3] - ldr r3, .L883+8 + ldr r3, .L893+8 strh r2, [r3] @ movhi mov r2, #-1 - ldr r3, .L883+12 + ldr r3, .L893+12 str r4, [r3] - ldr r3, .L883+16 + ldr r3, .L893+16 str r4, [r3] - ldr r3, .L883+20 + ldr r3, .L893+20 str r2, [r3] - ldr r3, .L883+24 + ldr r3, .L893+24 str r4, [r3] - ldr r3, .L883+28 + ldr r3, .L893+28 strh r4, [r3] @ movhi - ldr r3, .L883+32 + ldr r3, .L893+32 ldrh r2, [r3] - ldr r3, .L883+36 + ldr r3, .L893+36 lsls r2, r2, #1 ldr r0, [r3] bl ftl_memset ldrh r2, [r5] mov r1, r4 - ldr r3, .L883+40 + ldr r3, .L893+40 lsls r2, r2, #1 ldr r0, [r3] bl ftl_memset ldrh r2, [r5] mov r1, r4 - ldr r3, .L883+44 + ldr r3, .L893+44 lsls r2, r2, #1 ldr r0, [r3] bl ftl_memset mov r1, r4 movs r2, #48 - ldr r0, .L883+48 + ldr r0, .L893+48 bl ftl_memset mov r2, #512 mov r1, r4 - ldr r0, .L883+52 + ldr r0, .L893+52 bl ftl_memset bl FtlGcBufInit bl FtlL2PDataInit mov r0, r4 pop {r3, r4, r5, pc} -.L884: +.L894: .align 2 -.L883: +.L893: .word .LANCHOR132 .word .LANCHOR41 .word .LANCHOR133 @@ -6193,12 +6321,12 @@ FtlVariablesInit: .word .LANCHOR135 .word .LANCHOR136 .word .LANCHOR28 + .word .LANCHOR70 + .word .LANCHOR61 .word .LANCHOR71 - .word .LANCHOR62 - .word .LANCHOR72 - .word .LANCHOR79 + .word .LANCHOR78 .word .LANCHOR137 - .word .LANCHOR81 + .word .LANCHOR80 .word .LANCHOR138 .size FtlVariablesInit, .-FtlVariablesInit .section .text.SupperBlkListInit,"ax",%progbits @@ -6212,11 +6340,11 @@ FtlVariablesInit: SupperBlkListInit: @ args = 0, pretend = 0, frame = 24 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L896 + ldr r3, .L906 movs r2, #6 push {r4, r5, r6, r7, r8, r10, fp, lr} movs r1, #0 - ldr r6, .L896+4 + ldr r6, .L906+4 sub sp, sp, #24 movs r4, #0 ldrh r3, [r3] @@ -6226,39 +6354,39 @@ SupperBlkListInit: mov r10, r6 muls r2, r3, r2 bl ftl_memset - ldr r3, .L896+8 - ldr r2, .L896+12 - ldr r1, .L896+16 + ldr r3, .L906+8 + ldr r2, .L906+12 + ldr r1, .L906+16 str r4, [r3] - ldr r3, .L896+20 + ldr r3, .L906+20 strh r4, [r2] @ movhi strh r4, [r1] @ movhi str r4, [r3] - ldr r3, .L896+24 + ldr r3, .L906+24 str r2, [sp, #8] str r4, [r3] - ldr r3, .L896+28 + ldr r3, .L906+28 mov fp, r3 strh r4, [r3] @ movhi -.L886: - ldr r3, .L896+32 +.L896: + ldr r3, .L906+32 sxth r7, r4 ldrh r3, [r3] cmp r7, r3 - bge .L893 - ldr r3, .L896+36 + bge .L903 + ldr r3, .L906+36 uxth r1, r4 str r1, [sp, #12] ldrh r2, [r3] - ldr r3, .L896+40 + ldr r3, .L906+40 ldrh r3, [r3] str r3, [sp, #4] movs r3, #0 mov r6, r3 - b .L894 -.L888: + b .L904 +.L898: str r3, [sp, #20] - ldr r3, .L896+44 + ldr r3, .L906+44 ldr r1, [sp, #12] str r2, [sp, #16] ldrb r0, [r3, r0] @ zero_extendqisi2 @@ -6266,101 +6394,101 @@ SupperBlkListInit: bl FtlBbmIsBadBlock ldr r2, [sp, #16] ldr r3, [sp, #20] - cbnz r0, .L887 + cbnz r0, .L897 ldr r1, [sp, #4] add r6, r6, r1 sxth r6, r6 -.L887: +.L897: adds r3, r3, #1 -.L894: +.L904: sxth r0, r3 cmp r0, r2 - blt .L888 + blt .L898 lsls r3, r7, #1 - cbz r6, .L889 + cbz r6, .L899 mov r1, r6 str r3, [sp, #4] mov r0, #32768 bl __aeabi_idiv ldr r3, [sp, #4] sxth r6, r0 -.L890: +.L900: ldr r2, [r10] add r3, r3, r7 add r2, r2, r3, lsl #1 - ldr r3, .L896+48 + ldr r3, .L906+48 strh r6, [r2, #4] @ movhi ldrh r3, [r3] cmp r7, r3 - beq .L891 - ldr r3, .L896+52 + beq .L901 + ldr r3, .L906+52 ldrh r3, [r3] cmp r7, r3 - beq .L891 - ldr r3, .L896+56 + beq .L901 + ldr r3, .L906+56 ldrh r3, [r3] cmp r7, r3 - beq .L891 - ldr r3, .L896+60 + beq .L901 + ldr r3, .L906+60 uxth r0, r4 ldr r3, [r3] ldrh r3, [r3, r7, lsl #1] - cbnz r3, .L892 + cbnz r3, .L902 add r8, r8, #1 uxth r8, r8 bl INSERT_FREE_LIST -.L891: +.L901: adds r4, r4, #1 - b .L886 -.L889: - ldr r2, .L896+60 + b .L896 +.L899: + ldr r2, .L906+60 movw r1, #65535 ldr r2, [r2] strh r1, [r2, r7, lsl #1] @ movhi - b .L890 -.L892: + b .L900 +.L902: adds r5, r5, #1 uxth r5, r5 bl INSERT_DATA_LIST - b .L891 -.L893: + b .L901 +.L903: ldr r2, [sp, #8] strh r8, [fp] @ movhi strh r5, [r2] @ movhi add r5, r5, r8 cmp r3, r5 - bge .L895 - ldr r1, .L896+64 - movw r2, #2614 - ldr r0, .L896+68 + bge .L905 + ldr r1, .L906+64 + movw r2, #2645 + ldr r0, .L906+68 bl printf - ldr r1, .L896+72 - ldr r0, .L896+76 + ldr r1, .L906+72 + ldr r0, .L906+76 bl printf -.L895: +.L905: movs r0, #0 add sp, sp, #24 @ sp needed pop {r4, r5, r6, r7, r8, r10, fp, pc} -.L897: +.L907: .align 2 -.L896: +.L906: .word .LANCHOR41 - .word .LANCHOR82 - .word .LANCHOR88 - .word .LANCHOR86 - .word .LANCHOR139 - .word .LANCHOR83 + .word .LANCHOR81 + .word .LANCHOR87 .word .LANCHOR85 - .word .LANCHOR89 + .word .LANCHOR139 + .word .LANCHOR82 + .word .LANCHOR84 + .word .LANCHOR88 .word .LANCHOR40 .word .LANCHOR38 - .word .LANCHOR53 + .word .LANCHOR52 .word .LANCHOR47 + .word .LANCHOR91 .word .LANCHOR92 .word .LANCHOR93 - .word .LANCHOR94 - .word .LANCHOR84 + .word .LANCHOR83 .word .LANCHOR140 .word .LC5 .word .LC6 @@ -6377,16 +6505,16 @@ SupperBlkListInit: FtlGcPageVarInit: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r2, .L899 + ldr r2, .L909 movs r3, #0 push {r4, lr} movs r1, #255 - ldr r4, .L899+4 + ldr r4, .L909+4 strh r3, [r2] @ movhi - ldr r2, .L899+8 + ldr r2, .L909+8 strh r3, [r2] @ movhi ldrh r2, [r4] - ldr r3, .L899+12 + ldr r3, .L909+12 lsls r2, r2, #1 ldr r0, [r3] bl ftl_memset @@ -6394,19 +6522,19 @@ FtlGcPageVarInit: movs r2, #12 movs r1, #255 muls r2, r3, r2 - ldr r3, .L899+16 + ldr r3, .L909+16 ldr r0, [r3] bl ftl_memset pop {r4, lr} b FtlGcBufInit -.L900: +.L910: .align 2 -.L899: - .word .LANCHOR110 - .word .LANCHOR55 - .word .LANCHOR111 +.L909: .word .LANCHOR109 - .word .LANCHOR112 + .word .LANCHOR54 + .word .LANCHOR110 + .word .LANCHOR108 + .word .LANCHOR111 .size FtlGcPageVarInit, .-FtlGcPageVarInit .section .text.idb_init,"ax",%progbits .align 1 @@ -6422,13 +6550,13 @@ idb_init: push {r3, lr} mov r2, #262144 movs r1, #0 - ldr r0, .L902 + ldr r0, .L912 bl ftl_memset movs r0, #0 pop {r3, pc} -.L903: +.L913: .align 2 -.L902: +.L912: .word idb_buf .size idb_init, .-idb_init .section .text.ftl_memcpy,"ax",%progbits @@ -6458,13 +6586,13 @@ FlashReadIdbData: @ frame_needed = 0, uses_anonymous_args = 0 push {r3, lr} mov r2, #2048 - ldr r1, .L906 + ldr r1, .L916 bl ftl_memcpy movs r0, #0 pop {r3, pc} -.L907: +.L917: .align 2 -.L906: +.L916: .word .LANCHOR141 .size FlashReadIdbData, .-FlashReadIdbData .section .text.FlashLoadPhyInfoInRam,"ax",%progbits @@ -6480,58 +6608,61 @@ FlashLoadPhyInfoInRam: @ frame_needed = 0, uses_anonymous_args = 0 push {r4, r5, r6, r7, r8, lr} movs r6, #0 - ldr r7, .L916 - ldr r5, .L916+4 -.L911: + ldr r7, .L926 + ldr r5, .L926+4 +.L921: ldrb r2, [r7, #-1] @ zero_extendqisi2 mov r1, r5 mov r0, r7 lsl r8, r6, #5 bl FlashMemCmp8 mov r4, r0 - cbnz r0, .L909 - ldr r5, .L916+8 + cbnz r0, .L919 + ldr r5, .L926+8 mov r3, r4 - ldr r2, .L916+12 + ldr r2, .L926+12 add r5, r5, r8 ldrb r0, [r5, #22] @ zero_extendqisi2 mov r1, r2 -.L910: +.L920: lsls r6, r3, #5 ldrb r6, [r6, r2] @ zero_extendqisi2 cmp r6, r0 - beq .L913 + beq .L923 adds r3, r3, #1 cmp r3, #4 - bne .L910 -.L913: + bne .L920 +.L923: + ldr r6, .L926+16 add r1, r1, r3, lsl #5 movs r2, #32 - ldr r0, .L916+16 + ldr r0, .L926+20 bl ftl_memcpy movs r2, #32 mov r1, r5 - ldr r0, .L916+20 + mov r0, r6 bl ftl_memcpy - b .L908 -.L909: + ldrh r0, [r6, #10] + bl FlashBlockAlignInit + b .L918 +.L919: adds r6, r6, #1 adds r7, r7, #32 - cmp r6, #77 - bne .L911 + cmp r6, #81 + bne .L921 mov r4, #-1 -.L908: +.L918: mov r0, r4 pop {r4, r5, r6, r7, r8, pc} -.L917: +.L927: .align 2 -.L916: +.L926: .word .LANCHOR142+1 .word .LANCHOR22 .word .LANCHOR142 .word .LANCHOR143 - .word .LANCHOR7 .word .LANCHOR31 + .word .LANCHOR7 .size FlashLoadPhyInfoInRam, .-FlashLoadPhyInfoInRam .section .text.ftl_memcpy32,"ax",%progbits .align 1 @@ -6546,15 +6677,15 @@ ftl_memcpy32: @ frame_needed = 0, uses_anonymous_args = 0 movs r3, #0 push {r4, lr} -.L919: +.L929: cmp r3, r2 - bne .L920 + bne .L930 pop {r4, pc} -.L920: +.L930: ldr r4, [r1, r3, lsl #2] str r4, [r0, r3, lsl #2] adds r3, r3, #1 - b .L919 + b .L929 .size ftl_memcpy32, .-ftl_memcpy32 .section .text.NandcCopy1KB,"ax",%progbits .align 1 @@ -6574,15 +6705,15 @@ NandcCopy1KB: add r6, r0, #512 add r0, r2, r4, lsl #9 ldr r5, [sp, #16] - bne .L922 - cbz r3, .L923 + bne .L932 + cbz r3, .L933 lsls r1, r3, #30 - bne .L924 + bne .L934 mov r2, #256 mov r1, r3 bl ftl_memcpy32 -.L923: - cbz r5, .L921 +.L933: + cbz r5, .L931 ldrb r2, [r5, #1] @ zero_extendqisi2 lsrs r4, r4, #1 ldrb r3, [r5] @ zero_extendqisi2 @@ -6595,21 +6726,21 @@ NandcCopy1KB: orr r3, r3, r2, lsl #24 str r3, [r6, r4] pop {r4, r5, r6, pc} -.L924: +.L934: mov r2, #1024 mov r1, r3 bl ftl_memcpy - b .L923 -.L922: - cbz r3, .L927 + b .L933 +.L932: + cbz r3, .L937 lsls r2, r3, #30 - bne .L928 + bne .L938 mov r1, r0 mov r2, #256 mov r0, r3 bl ftl_memcpy32 -.L927: - cbz r5, .L921 +.L937: + cbz r5, .L931 lsrs r4, r4, #1 add r4, r4, r4, lsl #1 lsls r4, r4, #4 @@ -6621,14 +6752,14 @@ NandcCopy1KB: lsrs r3, r3, #24 strb r2, [r5, #2] strb r3, [r5, #3] -.L921: +.L931: pop {r4, r5, r6, pc} -.L928: +.L938: mov r1, r0 mov r2, #1024 mov r0, r3 bl ftl_memcpy - b .L927 + b .L937 .size NandcCopy1KB, .-NandcCopy1KB .section .text.NandcXferData,"ax",%progbits .align 1 @@ -6643,7 +6774,7 @@ NandcXferData: @ frame_needed = 0, uses_anonymous_args = 0 push {r4, r5, r6, r7, r8, r10, fp, lr} mov r7, r3 - ldr r3, .L975 + ldr r3, .L985 sub sp, sp, #96 mov r6, r0 mov r10, r2 @@ -6651,14 +6782,14 @@ NandcXferData: ldr r5, [r3, r0, lsl #3] lsls r3, r7, #26 ldr r4, [sp, #128] - bne .L940 - cbnz r4, .L941 + bne .L950 + cbnz r4, .L951 add r4, sp, #32 movs r2, #64 movs r1, #255 add r0, sp, #32 bl ftl_memset -.L941: +.L951: movs r3, #0 mov r2, r10 ldr r1, [sp, #12] @@ -6670,10 +6801,10 @@ NandcXferData: bl NandcXferComp ldr r3, [sp, #12] cmp r3, #0 - bne .L965 - ldr r2, .L975+4 + bne .L975 + ldr r2, .L985+4 lsr r0, r10, #1 - ldr ip, .L975+12 + ldr ip, .L985+12 ldr r3, [r2] cmp r3, #25 ldr r3, [sp, #12] @@ -6681,31 +6812,31 @@ NandcXferData: movcc r7, #64 movcs r7, #128 mov r1, r3 -.L944: +.L954: cmp r1, r0 add r4, r4, #4 add r6, r7, r3 - bcc .L945 - ldr r3, .L975+8 + bcc .L955 + ldr r3, .L985+8 lsr r4, r10, #2 ldr r0, [r2] movs r2, #0 mov r8, r2 ldr r1, [r3] -.L946: +.L956: cmp r2, r4 - bcs .L942 - cbnz r0, .L952 -.L942: + bcs .L952 + cbnz r0, .L962 +.L952: movs r3, #0 str r3, [r5, #16] -.L953: - ldr r3, .L975+8 +.L963: + ldr r3, .L985+8 ldr r3, [r3] cmp r3, #5 - bls .L939 + bls .L949 ldr r3, [sp, #12] - cbnz r3, .L939 + cbnz r3, .L949 ldr r3, [r5] and r2, r3, #139264 cmp r2, #139264 @@ -6713,12 +6844,12 @@ NandcXferData: moveq r8, #-1 orreq r3, r3, #131072 streq r3, [r5] -.L939: +.L949: mov r0, r8 add sp, sp, #96 @ sp needed pop {r4, r5, r6, r7, r8, r10, fp, pc} -.L945: +.L955: bic lr, r3, #3 ldr r3, [ip, #4] adds r1, r1, #1 @@ -6731,20 +6862,20 @@ NandcXferData: strb lr, [r4, #-2] strb r3, [r4, #-1] mov r3, r6 - b .L944 -.L952: + b .L954 +.L962: add r3, r2, #8 ldr r3, [r5, r3, lsl #2] str r3, [sp, #28] ldr r3, [sp, #28] lsls r6, r3, #29 - bmi .L968 + bmi .L978 ldr r3, [sp, #28] ubfx r3, r3, #15, #1 cmp r3, #0 - bne .L968 + bne .L978 cmp r1, #5 - bls .L948 + bls .L958 ldr r6, [sp, #28] ldr r3, [sp, #28] ubfx r6, r6, #3, #5 @@ -6765,18 +6896,18 @@ NandcXferData: ite hi ubfxhi r6, r6, #27, #1 ubfxls r6, r6, #29, #1 -.L974: +.L984: orr r3, r3, r6, lsl #5 -.L950: +.L960: cmp r8, r3 it cc movcc r8, r3 -.L947: +.L957: adds r2, r2, #1 - b .L946 -.L948: + b .L956 +.L958: cmp r1, #3 - bls .L950 + bls .L960 ldr r6, [sp, #28] ldr r3, [sp, #28] ubfx r6, r6, #3, #5 @@ -6797,33 +6928,33 @@ NandcXferData: ite hi ubfxhi r6, r6, #28, #1 ubfxls r6, r6, #30, #1 - b .L974 -.L968: + b .L984 +.L978: mov r8, #-1 - b .L947 -.L965: + b .L957 +.L975: mov r8, #0 - b .L942 -.L940: + b .L952 +.L950: ldr r3, [sp, #12] cmp r3, #1 - bne .L954 + bne .L964 cmp r4, #0 mov r8, #0 ite ne movne r3, #4 moveq r3, #0 str r3, [sp, #16] -.L955: +.L965: cmp r8, r10 - bcc .L957 + bcc .L967 mov r8, #0 - b .L953 -.L957: + b .L963 +.L967: and fp, r8, #3 - cbz r7, .L970 + cbz r7, .L980 add r3, r7, r8, lsl #9 -.L956: +.L966: str r4, [sp] mov r2, fp movs r1, #1 @@ -6842,11 +6973,11 @@ NandcXferData: bl NandcXferComp ldr r3, [sp, #16] add r4, r4, r3 - b .L955 -.L970: + b .L965 +.L980: mov r3, r7 - b .L956 -.L954: + b .L966 +.L964: mov r8, #0 movs r2, #2 mov r3, r8 @@ -6862,16 +6993,16 @@ NandcXferData: movne r3, #4 moveq r3, r8 str r3, [sp, #20] -.L958: +.L968: cmp r4, r10 - bcs .L953 + bcs .L963 mov r0, r6 adds r4, r4, #2 bl NandcXferComp ldr r3, [r5, #32] cmp r10, r4 str r3, [sp, #28] - bls .L959 + bls .L969 movs r3, #0 movs r2, #2 str r3, [sp, #4] @@ -6880,10 +7011,10 @@ NandcXferData: mov r0, r6 and r3, r4, #3 bl NandcXferStart -.L959: +.L969: ldr r3, [sp, #28] lsls r3, r3, #29 - bmi .L971 + bmi .L981 ldr r3, [sp, #28] ldr r2, [sp, #28] ubfx r3, r3, #3, #5 @@ -6892,7 +7023,7 @@ NandcXferData: cmp r8, r3 it cc movcc r8, r3 -.L960: +.L970: ldr r3, [sp, #16] cmp r7, #0 sub r2, r4, #2 @@ -6909,13 +7040,13 @@ NandcXferData: ldr r2, [sp, #20] add r3, r3, r2 str r3, [sp, #16] - b .L958 -.L971: + b .L968 +.L981: mov r8, #-1 - b .L960 -.L976: + b .L970 +.L986: .align 2 -.L975: +.L985: .word .LANCHOR6 .word .LANCHOR32 .word .LANCHOR34 @@ -6934,21 +7065,21 @@ FlashReadRawPage: @ frame_needed = 0, uses_anonymous_args = 0 push {r0, r1, r4, r5, r6, r7, r8, lr} mov r8, r3 - ldr r3, .L979 + ldr r3, .L989 mov r6, r1 mov r7, r2 mov r4, r0 ldrb r5, [r3, #9] @ zero_extendqisi2 - cbnz r0, .L978 - ldr r3, .L979+4 - ldr r2, .L979+8 + cbnz r0, .L988 + ldr r3, .L989+4 + ldr r2, .L989+8 ldrb r3, [r3] @ zero_extendqisi2 ldr r0, [r2] muls r0, r3, r0 cmp r0, r1 it hi movhi r5, #4 -.L978: +.L988: mov r0, r4 bl NandcWaitFlashReady mov r0, r4 @@ -6971,9 +7102,9 @@ FlashReadRawPage: add sp, sp, #8 @ sp needed pop {r4, r5, r6, r7, r8, pc} -.L980: +.L990: .align 2 -.L979: +.L989: .word .LANCHOR31 .word .LANCHOR2 .word .LANCHOR3 @@ -6991,7 +7122,7 @@ FlashDdrTunningRead: @ frame_needed = 0, uses_anonymous_args = 0 push {r4, r5, r6, r7, r8, r10, fp, lr} mov r7, r3 - ldr r3, .L1006 + ldr r3, .L1016 sub sp, sp, #24 str r0, [sp, #8] ldr r3, [r3] @@ -6999,7 +7130,7 @@ FlashDdrTunningRead: str r2, [sp, #4] ldr r3, [r3, #304] str r3, [sp, #20] - ldr r3, .L1006+4 + ldr r3, .L1016+4 ldr r3, [r3] cmp r3, #8 ldr r3, [sp, #56] @@ -7007,9 +7138,9 @@ FlashDdrTunningRead: movcc fp, #6 movcs fp, #12 cmp r3, #0 - beq .L995 + beq .L1005 movs r0, #1 - ldr r4, .L1006+8 + ldr r4, .L1016+8 bl FlashSetInterfaceMode movs r0, #1 bl NandcSetMode @@ -7026,37 +7157,37 @@ FlashDdrTunningRead: ldrb r0, [r4] @ zero_extendqisi2 bl NandcSetMode adds r3, r6, #1 - bne .L984 -.L993: + bne .L994 +.L1003: mov r6, #-1 -.L981: +.L991: mov r0, r6 add sp, sp, #24 @ sp needed pop {r4, r5, r6, r7, r8, r10, fp, pc} -.L984: +.L994: mov r2, r6 ldr r1, [sp, #12] - ldr r0, .L1006+12 + ldr r0, .L1016+12 bl printf - ldr r2, .L1006+16 + ldr r2, .L1016+16 ldr r3, [r2] adds r3, r3, #1 cmp r3, #2048 - bcs .L986 + bcs .L996 str r3, [r2] - b .L981 -.L986: + b .L991 +.L996: movs r7, #0 str r7, [r2] str r7, [sp, #4] -.L983: +.L993: mov r10, #0 mov r8, #-1 mov r5, r10 mov r4, r10 str r10, [sp, #16] -.L991: +.L1001: uxtb r0, fp bl NandcSetDdrPara mov r3, r7 @@ -7066,72 +7197,72 @@ FlashDdrTunningRead: bl FlashReadRawPage adds r3, r6, #1 cmp r0, r3 - bhi .L987 - cmp r0, #2 bhi .L997 + cmp r0, #2 + bhi .L1007 adds r4, r4, #1 cmp r4, #9 - bls .L997 + bls .L1007 mov r3, r5 mov r6, r0 sub r5, fp, r4 mov r8, #0 -.L989: +.L999: ldr r2, [sp, #16] cmp r4, r2 it ls movls r5, r3 -.L990: - cbz r5, .L992 +.L1000: + cbz r5, .L1002 mov r1, r5 - ldr r0, .L1006+20 + ldr r0, .L1016+20 bl printf uxtb r0, r5 bl NandcSetDdrPara -.L992: +.L1002: cmp r8, #0 - beq .L981 + beq .L991 ldr r2, [sp, #12] ldr r1, [sp, #8] - ldr r0, .L1006+24 + ldr r0, .L1016+24 bl printf ldr r3, [sp, #56] cmp r3, #0 - beq .L993 + beq .L1003 ldr r3, [sp, #20] ubfx r0, r3, #8, #8 bl NandcSetDdrPara - b .L981 -.L995: + b .L991 +.L1005: mov r6, #1024 - b .L983 -.L987: + b .L993 +.L997: ldr r3, [sp, #16] cmp r4, r3 - bls .L998 + bls .L1008 cmp r4, #7 sub r5, r10, r4 - bhi .L990 + bhi .L1000 str r4, [sp, #16] -.L998: +.L1008: movs r4, #0 - b .L988 -.L997: + b .L998 +.L1007: mov r8, #0 mov r10, fp mov r6, r0 mov r7, r8 str r8, [sp, #4] -.L988: +.L998: add fp, fp, #2 cmp fp, #69 - bls .L991 + bls .L1001 mov r3, r5 mov r5, r10 - b .L989 -.L1007: + b .L999 +.L1017: .align 2 -.L1006: +.L1016: .word .LANCHOR19 .word .LANCHOR34 .word .LANCHOR24 @@ -7159,16 +7290,16 @@ FlashReadPage: bl FlashReadRawPage adds r2, r0, #1 mov r4, r0 - bne .L1009 - ldr r10, .L1027+20 + bne .L1019 + ldr r10, .L1037+20 ldrb fp, [r10] @ zero_extendqisi2 cmp fp, #0 - bne .L1010 -.L1012: - ldr r3, .L1027 + bne .L1020 +.L1022: + ldr r3, .L1037 ldrb r3, [r3] @ zero_extendqisi2 - cbz r3, .L1009 - ldr r3, .L1027+4 + cbz r3, .L1019 + ldr r3, .L1037+4 mov r1, r6 mov r2, r7 mov r0, r5 @@ -7180,16 +7311,16 @@ FlashReadPage: bl FlashDdrTunningRead adds r1, r0, #1 mov r4, r0 - beq .L1013 - ldr r3, .L1027+8 + beq .L1023 + ldr r3, .L1037+8 ldrb r3, [r3] @ zero_extendqisi2 cmp r0, r3, lsr #1 - bls .L1009 -.L1013: + bls .L1019 +.L1023: ubfx r0, r10, #8, #8 bl NandcSetDdrPara - b .L1009 -.L1010: + b .L1019 +.L1020: movs r3, #0 mov r2, r7 strb r3, [r10] @@ -7199,15 +7330,15 @@ FlashReadPage: bl FlashReadRawPage adds r3, r0, #1 strb fp, [r10] - beq .L1012 + beq .L1022 mov r4, r0 -.L1009: - ldr r10, .L1027+24 +.L1019: + ldr r10, .L1037+24 ldr fp, [r10] cmp fp, #0 - beq .L1008 + beq .L1018 adds r2, r4, #1 - bne .L1008 + bne .L1018 mov r3, r8 mov r2, r7 mov r1, r6 @@ -7217,13 +7348,13 @@ FlashReadPage: mov r4, r0 mov r1, r0 mov r2, r5 - ldr r0, .L1027+12 + ldr r0, .L1037+12 bl printf adds r3, r4, #1 - bne .L1008 - ldr r3, .L1027+16 + bne .L1018 + ldr r3, .L1037+16 ldrb r3, [r3] @ zero_extendqisi2 - cbz r3, .L1008 + cbz r3, .L1018 mov r0, r5 bl flash_enter_slc_mode ldr r4, [r10] @@ -7235,19 +7366,19 @@ FlashReadPage: mov r4, r0 mov r0, r5 bl flash_exit_slc_mode -.L1008: +.L1018: mov r0, r4 add sp, sp, #8 @ sp needed pop {r4, r5, r6, r7, r8, r10, fp, pc} -.L1028: +.L1038: .align 2 -.L1027: +.L1037: .word .LANCHOR30 .word .LANCHOR19 .word .LANCHOR33 .word .LC12 - .word .LANCHOR8 + .word .LANCHOR15 .word .LANCHOR5 .word .LANCHOR145 .size FlashReadPage, .-FlashReadPage @@ -7264,7 +7395,7 @@ FlashDdrParaScan: @ frame_needed = 0, uses_anonymous_args = 0 push {r0, r1, r4, r5, r6, r7, r8, lr} mov r6, r0 - ldr r4, .L1040 + ldr r4, .L1050 movs r5, #0 mov r7, r1 ldrb r0, [r4] @ zero_extendqisi2 @@ -7282,33 +7413,33 @@ FlashDdrParaScan: mov r8, r0 mov r1, r7 mov r0, r6 - ldr r5, .L1040+4 + ldr r5, .L1050+4 bl FlashReadRawPage adds r0, r0, #1 - beq .L1030 + beq .L1040 cmp r8, #-1 - bne .L1031 -.L1030: + bne .L1041 +.L1040: ldrb r3, [r4] @ zero_extendqisi2 lsls r3, r3, #31 - bpl .L1031 + bpl .L1041 movs r0, #1 bl FlashSetInterfaceMode movs r0, #1 bl NandcSetMode movs r3, #0 -.L1039: +.L1049: movs r0, #0 strb r3, [r5] add sp, sp, #8 @ sp needed pop {r4, r5, r6, r7, r8, pc} -.L1031: - movs r3, #1 - b .L1039 .L1041: + movs r3, #1 + b .L1049 +.L1051: .align 2 -.L1040: +.L1050: .word .LANCHOR24 .word .LANCHOR30 .size FlashDdrParaScan, .-FlashDdrParaScan @@ -7326,7 +7457,7 @@ FlashLoadPhyInfo: push {r4, r5, r6, r7, r8, r10, fp, lr} movs r3, #60 sub sp, sp, #24 - ldr fp, .L1057+8 + ldr fp, .L1066+32 movs r4, #0 movs r7, #4 strb r3, [sp, #20] @@ -7335,25 +7466,25 @@ FlashLoadPhyInfo: movs r3, #24 strb r3, [sp, #22] movs r3, #16 - ldr r1, .L1057 - mov r0, r4 strb r3, [sp, #23] + mov r0, r4 + ldr r3, [fp] mov r6, #-1 - ldrh r3, [fp, #10] - ldr r8, .L1057+36 - ldr r5, .L1057+4 + ldr r8, .L1066+36 + ldr r10, .L1066+40 str r3, [sp, #4] - ldr r3, [r1] - str r4, [r8] + ldr r5, .L1066 + ldr r3, [r8] + str r4, [r10] str r3, [r5] bl flash_enter_slc_mode - mov r10, r1 - str r8, [sp, #12] -.L1043: + str r10, [sp, #12] + mov r10, r8 +.L1053: mov r8, #0 adds r3, r4, #1 str r3, [sp, #8] -.L1045: +.L1055: add r3, sp, #20 ldrb r0, [r3, r8] @ zero_extendqisi2 bl FlashBchSel @@ -7363,95 +7494,96 @@ FlashLoadPhyInfo: mov r0, r3 bl FlashReadRawPage adds r0, r0, #1 - bne .L1044 + bne .L1054 movs r3, #0 ldr r2, [r10] ldr r1, [sp, #8] mov r0, r3 bl FlashReadRawPage adds r0, r0, #1 - bne .L1044 + bne .L1054 add r8, r8, #1 cmp r8, #4 - bne .L1045 -.L1046: + bne .L1055 +.L1056: ldr r3, [sp, #4] subs r7, r7, #1 add r4, r4, r3 - bne .L1043 + bne .L1053 mov r0, r7 - b .L1056 -.L1047: + b .L1065 +.L1057: movw r1, #2036 add r0, r8, #12 - bl JSHash + bl js_hash ldr r3, [r8, #8] cmp r3, r0 - bne .L1053 + bne .L1063 + ldr r6, .L1066+4 movs r2, #32 add r1, r8, #160 - ldr r0, .L1057+8 + mov r0, r6 bl ftl_memcpy ldr r1, [r5] movs r2, #32 - ldr r0, .L1057+12 + ldr r0, .L1066+8 adds r1, r1, #192 bl ftl_memcpy ldr r1, [r5] mov r2, #852 - ldr r0, .L1057+16 + ldr r0, .L1066+12 adds r1, r1, #224 bl ftl_memcpy + ldrh r0, [r6, #10] + bl FlashBlockAlignInit ldr r6, [r5] mov r0, r4 - ldr r3, .L1057+20 - ldrh r1, [fp, #10] + ldr r3, .L1066+16 + ldr r1, [fp] ldr r2, [r6, #1076] strb r2, [r3] ldr r3, [sp, #12] str r4, [r3] bl __aeabi_uidiv - ldr r3, .L1057+24 - adds r2, r0, #1 - cbz r0, .L1049 -.L1055: - str r2, [r3] + ldr r3, .L1066+20 + adds r0, r0, #1 + cmp r0, #1 + itte ls + movls r2, #2 + strls r2, [r3] + strhi r0, [r3] ldrh r2, [r6, #14] movs r6, #0 - ldr r3, .L1057+28 + ldr r3, .L1066+24 strb r2, [r3] - b .L1046 -.L1049: - movs r2, #2 - b .L1055 -.L1053: + b .L1056 +.L1063: mov r6, #-1 - b .L1046 -.L1044: + b .L1056 +.L1054: ldr r8, [r5] - ldr r2, .L1057+32 + ldr r2, .L1066+28 ldr r3, [r8] cmp r3, r2 - bne .L1046 + bne .L1056 cmp r6, #0 - bne .L1047 - ldrh r1, [fp, #10] + bne .L1057 + ldr r1, [fp] mov r0, r4 bl __aeabi_uidiv - ldr r3, .L1057+24 + ldr r3, .L1066+20 adds r0, r0, #1 str r0, [r3] mov r0, r6 -.L1056: +.L1065: bl flash_exit_slc_mode mov r0, r6 add sp, sp, #24 @ sp needed pop {r4, r5, r6, r7, r8, r10, fp, pc} -.L1058: +.L1067: .align 2 -.L1057: - .word .LANCHOR147 +.L1066: .word .LANCHOR146 .word .LANCHOR31 .word .LANCHOR7 @@ -7460,6 +7592,8 @@ FlashLoadPhyInfo: .word .LANCHOR149 .word .LANCHOR150 .word 1312902724 + .word .LANCHOR3 + .word .LANCHOR147 .word .LANCHOR148 .size FlashLoadPhyInfo, .-FlashLoadPhyInfo .section .text.ToshibaReadRetrial,"ax",%progbits @@ -7480,8 +7614,8 @@ ToshibaReadRetrial: mov fp, r3 str r1, [sp, #20] bl NandcWaitFlashReady - ldr r3, .L1086 - ldr r2, .L1086+4 + ldr r3, .L1095 + ldr r2, .L1095+4 ldr r4, [r3, r6, lsl #3] add r3, r3, r6, lsl #3 str r2, [sp, #16] @@ -7491,83 +7625,83 @@ ToshibaReadRetrial: subs r3, r3, #67 add r5, r4, r5, lsl #8 cmp r3, #1 - bls .L1076 - ldr r3, .L1086+8 + bls .L1085 + ldr r3, .L1095+8 ldrb r3, [r3] @ zero_extendqisi2 - cbz r3, .L1077 + cbz r3, .L1086 movs r0, #0 bl NandcSetDdrMode movs r3, #1 -.L1077: +.L1086: str r3, [sp, #8] add r3, r4, r7, lsl #8 movs r2, #92 str r2, [r3, #2056] movs r2, #197 str r2, [r3, #2056] -.L1060: +.L1069: mov r8, #1 mov r3, #-1 str r3, [sp, #4] -.L1062: - ldr r3, .L1086+12 +.L1071: + ldr r3, .L1095+12 ldrb r3, [r3] @ zero_extendqisi2 adds r3, r3, #1 cmp r8, r3 - bcc .L1071 + bcc .L1080 ldr r10, [sp, #4] -.L1070: +.L1079: ldr r3, [sp, #16] movs r1, #0 mov r0, r5 ldrb r2, [r3] @ zero_extendqisi2 subs r2, r2, #67 cmp r2, #1 - bhi .L1072 + bhi .L1081 bl SandiskSetRRPara -.L1073: +.L1082: add r4, r4, r7, lsl #8 movs r2, #255 str r2, [r4, #2056] - ldr r2, .L1086+16 + ldr r2, .L1095+16 ldrb r2, [r2] @ zero_extendqisi2 add r2, r2, r2, lsl #1 cmp r10, r2, asr #2 - bcc .L1074 + bcc .L1083 cmp r10, #-1 it ne movne r10, #256 -.L1074: +.L1083: mov r0, r6 bl NandcWaitFlashReady ldr r3, [sp, #8] - cbz r3, .L1059 + cbz r3, .L1068 movs r0, #4 bl NandcSetDdrMode -.L1059: +.L1068: mov r0, r10 add sp, sp, #24 @ sp needed pop {r4, r5, r6, r7, r8, r10, fp, pc} -.L1076: +.L1085: movs r3, #0 str r3, [sp, #8] - b .L1060 -.L1071: + b .L1069 +.L1080: ldr r3, [sp, #16] mov r0, r5 uxtb r1, r8 ldrb r3, [r3] @ zero_extendqisi2 subs r3, r3, #67 cmp r3, #1 - bhi .L1063 + bhi .L1072 bl SandiskSetRRPara -.L1064: +.L1073: ldr r3, [sp, #16] ldrb r3, [r3] @ zero_extendqisi2 cmp r3, #34 - bne .L1065 - ldr r3, .L1086+12 + bne .L1074 + ldr r3, .L1095+12 ldrb r3, [r3] @ zero_extendqisi2 subs r3, r3, #3 cmp r8, r3 @@ -7575,14 +7709,14 @@ ToshibaReadRetrial: addeq r3, r4, r7, lsl #8 moveq r2, #179 streq r2, [r3, #2056] -.L1065: +.L1074: add r3, r4, r7, lsl #8 movs r2, #38 str r2, [r3, #2056] movs r2, #93 str r2, [r3, #2056] ldr r3, [sp, #8] - cbz r3, .L1066 + cbz r3, .L1075 movs r0, #4 bl NandcSetDdrMode mov r3, fp @@ -7593,10 +7727,10 @@ ToshibaReadRetrial: mov r10, r0 movs r0, #0 bl NandcSetDdrMode -.L1067: +.L1076: cmp r10, #-1 - beq .L1068 - ldr r2, .L1086+16 + beq .L1077 + ldr r2, .L1095+16 ldr r3, [sp, #4] ldrb r2, [r2] @ zero_extendqisi2 cmp r3, #-1 @@ -7605,31 +7739,31 @@ ToshibaReadRetrial: str r3, [sp, #4] add r2, r2, r2, lsl #1 cmp r10, r2, asr #2 - bcc .L1070 + bcc .L1079 mov fp, #0 str fp, [sp, #12] -.L1068: +.L1077: add r8, r8, #1 - b .L1062 -.L1063: + b .L1071 +.L1072: bl ToshibaSetRRPara - b .L1064 -.L1066: + b .L1073 +.L1075: mov r3, fp ldr r2, [sp, #12] ldr r1, [sp, #20] mov r0, r6 bl FlashReadRawPage mov r10, r0 - b .L1067 -.L1072: + b .L1076 +.L1081: bl ToshibaSetRRPara - b .L1073 -.L1087: + b .L1082 +.L1096: .align 2 -.L1086: +.L1095: .word .LANCHOR6 - .word .LANCHOR10 + .word .LANCHOR9 .word .LANCHOR30 .word .LANCHOR151 .word .LANCHOR33 @@ -7652,35 +7786,35 @@ SamsungReadRetrial: mov fp, r1 movs r6, #1 bl NandcWaitFlashReady - ldr r2, .L1101 + ldr r2, .L1110 mov r4, #-1 add r3, r2, r7, lsl #3 ldrb r5, [r3, #4] @ zero_extendqisi2 add r3, r5, #8 ldr r5, [r2, r7, lsl #3] add r5, r5, r3, lsl #8 -.L1089: - ldr r3, .L1101+4 +.L1098: + ldr r3, .L1110+4 ldrb r3, [r3] @ zero_extendqisi2 adds r3, r3, #1 cmp r6, r3 - bcc .L1093 -.L1092: + bcc .L1102 +.L1101: movs r1, #0 mov r0, r5 bl SamsungSetRRPara - ldr r3, .L1101+8 + ldr r3, .L1110+8 ldrb r3, [r3] @ zero_extendqisi2 add r3, r3, r3, lsl #1 cmp r4, r3, asr #2 - bcc .L1088 + bcc .L1097 adds r3, r4, #1 it ne movne r4, #256 -.L1088: +.L1097: mov r0, r4 pop {r4, r5, r6, r7, r8, r10, fp, pc} -.L1093: +.L1102: uxtb r1, r6 mov r0, r5 bl SamsungSetRRPara @@ -7690,26 +7824,26 @@ SamsungReadRetrial: mov r0, r7 bl FlashReadRawPage adds r2, r0, #1 - beq .L1090 - ldr r3, .L1101+8 + beq .L1099 + ldr r3, .L1110+8 cmp r4, #-1 it eq moveq r4, r0 ldrb r3, [r3] @ zero_extendqisi2 add r3, r3, r3, lsl #1 cmp r0, r3, asr #2 - bcc .L1096 + bcc .L1105 mov r8, #0 mov r10, r8 -.L1090: +.L1099: adds r6, r6, #1 - b .L1089 -.L1096: + b .L1098 +.L1105: mov r4, r0 - b .L1092 -.L1102: + b .L1101 +.L1111: .align 2 -.L1101: +.L1110: .word .LANCHOR6 .word .LANCHOR151 .word .LANCHOR33 @@ -7727,28 +7861,28 @@ MicronReadRetrial: @ frame_needed = 0, uses_anonymous_args = 0 push {r4, r5, r6, r7, r8, r10, fp, lr} mov r7, r3 - ldr r3, .L1128 + ldr r3, .L1137 sub sp, sp, #40 mov r5, r0 str r2, [sp, #16] ldrb r2, [r3] @ zero_extendqisi2 - ldr r3, .L1128+4 + ldr r3, .L1137+4 str r1, [sp, #28] ldrb r3, [r3] @ zero_extendqisi2 cmp r3, #0 - bne .L1104 + bne .L1113 add r2, r2, r2, lsl #1 asrs r3, r2, #2 -.L1127: -.L1105: +.L1136: +.L1114: mov r8, #0 str r3, [sp, #12] mov r6, r8 -.L1115: +.L1124: mov r0, r5 mov r10, #0 bl NandcWaitFlashReady - ldr r3, .L1128+8 + ldr r3, .L1137+8 mov r4, #-1 ldr r2, [r3, r5, lsl #3] add r3, r3, r5, lsl #3 @@ -7756,12 +7890,12 @@ MicronReadRetrial: str r2, [sp, #24] lsl r3, fp, #8 str r3, [sp, #32] -.L1106: - ldr r3, .L1128+12 +.L1115: + ldr r3, .L1137+12 ldrb r3, [r3] @ zero_extendqisi2 cmp r10, r3 - bcc .L1110 -.L1109: + bcc .L1119 +.L1118: ldr r3, [sp, #24] movs r0, #200 add fp, r3, fp, lsl #8 @@ -7776,7 +7910,7 @@ MicronReadRetrial: cmp r4, r3 str r6, [fp, #2048] str r6, [fp, #2048] - bcc .L1111 + bcc .L1120 adds r1, r4, #1 mov r3, r10 it ne @@ -7784,26 +7918,26 @@ MicronReadRetrial: ldr r2, [sp, #28] str r4, [sp] mov r1, r10 - ldr r0, .L1128+16 + ldr r0, .L1137+16 bl printf cmp r8, #0 - bne .L1113 - ldr r3, .L1128+4 + bne .L1122 + ldr r3, .L1137+4 ldrb r3, [r3] @ zero_extendqisi2 cmp r3, #0 - beq .L1103 + beq .L1112 adds r2, r4, #1 - bne .L1103 + bne .L1112 movs r1, #3 mov r0, r5 bl micron_auto_read_calibration_config mov r8, #1 - b .L1115 -.L1104: - ldr r3, .L1128+20 + b .L1124 +.L1113: + ldr r3, .L1137+20 smull r2, r3, r2, r3 - b .L1127 -.L1110: + b .L1136 +.L1119: ldr r2, [sp, #32] movs r0, #200 ldr r3, [sp, #24] @@ -7828,48 +7962,48 @@ MicronReadRetrial: mov r3, r7 bl FlashReadRawPage adds r3, r0, #1 - beq .L1107 + beq .L1116 ldr r3, [sp, #12] cmp r4, #-1 it eq moveq r4, r0 cmp r0, r3 - bcc .L1117 + bcc .L1126 movs r7, #0 str r7, [sp, #16] -.L1107: +.L1116: ldr r10, [sp, #20] - b .L1106 -.L1117: + b .L1115 +.L1126: movs r7, #0 mov r4, r0 str r7, [sp, #16] - b .L1109 -.L1113: + b .L1118 +.L1122: movs r1, #0 mov r0, r5 bl micron_auto_read_calibration_config adds r3, r4, #1 it ne movne r4, #256 -.L1103: +.L1112: mov r0, r4 add sp, sp, #40 @ sp needed pop {r4, r5, r6, r7, r8, r10, fp, pc} -.L1111: +.L1120: cmp r8, #0 - beq .L1103 + beq .L1112 movs r1, #0 mov r0, r5 bl micron_auto_read_calibration_config mov r4, #256 - b .L1103 -.L1129: + b .L1112 +.L1138: .align 2 -.L1128: +.L1137: .word .LANCHOR33 - .word .LANCHOR8 + .word .LANCHOR15 .word .LANCHOR6 .word .LANCHOR151 .word .LC13 @@ -7887,55 +8021,57 @@ HynixReadRetrial: @ args = 0, pretend = 0, frame = 8 @ frame_needed = 0, uses_anonymous_args = 0 push {r0, r1, r4, r5, r6, r7, r8, r10, fp, lr} - mov fp, r2 - ldr r4, .L1147 + mov r10, r3 + ldr r4, .L1156 mov r8, #0 mov r6, #-1 - mov r10, r3 + mov fp, r2 mov r7, r0 str r1, [sp, #4] - ldrb r2, [r4, #2] @ zero_extendqisi2 - adds r3, r4, r0 - ldrb r5, [r3, #12] @ zero_extendqisi2 - str r2, [sp] - ldr r2, .L1147+4 - ldr r2, [r2] - ldrb r2, [r2, #19] @ zero_extendqisi2 - cmp r2, #7 - it eq - ldrbeq r5, [r3, #20] @ zero_extendqisi2 + ldrb r3, [r4, #2] @ zero_extendqisi2 + adds r2, r4, r0 + ldrb r5, [r2, #12] @ zero_extendqisi2 + str r3, [sp] + ldr r3, .L1156+4 + ldr r3, [r3] + ldrb r3, [r3, #19] @ zero_extendqisi2 + subs r3, r3, #7 + cmp r3, #1 + it ls + ldrbls r5, [r2, #20] @ zero_extendqisi2 bl NandcWaitFlashReady -.L1132: +.L1141: ldr r3, [sp] cmp r8, r3 - bcc .L1137 -.L1136: - ldr r3, .L1147+4 + bcc .L1146 +.L1145: + ldr r3, .L1156+4 add r4, r4, r7 ldr r3, [r3] ldrb r3, [r3, #19] @ zero_extendqisi2 - cmp r3, #7 - ldr r3, .L1147+8 - ite eq - strbeq r5, [r4, #20] - strbne r5, [r4, #12] + subs r3, r3, #7 + cmp r3, #1 + ldr r3, .L1156+8 + ite ls + strbls r5, [r4, #20] + strbhi r5, [r4, #12] ldrb r3, [r3] @ zero_extendqisi2 add r3, r3, r3, lsl #1 cmp r6, r3, asr #2 - bcc .L1130 + bcc .L1139 adds r3, r6, #1 it ne movne r6, #256 -.L1130: +.L1139: mov r0, r6 add sp, sp, #8 @ sp needed pop {r4, r5, r6, r7, r8, r10, fp, pc} -.L1137: +.L1146: ldr r3, [sp] adds r5, r5, #1 uxtb r5, r5 - ldr r2, .L1147+12 + ldr r2, .L1156+12 ldrb r1, [r4, #1] @ zero_extendqisi2 mov r0, r7 cmp r3, r5 @@ -7949,26 +8085,26 @@ HynixReadRetrial: mov r0, r7 bl FlashReadRawPage adds r2, r0, #1 - beq .L1134 - ldr r3, .L1147+8 + beq .L1143 + ldr r3, .L1156+8 cmp r6, #-1 it eq moveq r6, r0 ldrb r3, [r3] @ zero_extendqisi2 add r3, r3, r3, lsl #1 cmp r0, r3, asr #2 - bcc .L1141 + bcc .L1150 mov r10, #0 mov fp, r10 -.L1134: +.L1143: add r8, r8, #1 - b .L1132 -.L1141: + b .L1141 +.L1150: mov r6, r0 - b .L1136 -.L1148: + b .L1145 +.L1157: .align 2 -.L1147: +.L1156: .word .LANCHOR20 .word .LANCHOR18 .word .LANCHOR33 @@ -7987,24 +8123,24 @@ FlashProgPage: @ frame_needed = 0, uses_anonymous_args = 0 push {r0, r1, r4, r5, r6, r7, r8, lr} mov r8, r3 - ldr r3, .L1152 + ldr r3, .L1161 mov r5, r1 mov r7, r2 mov r4, r0 ldrb r6, [r3, #9] @ zero_extendqisi2 - cbnz r0, .L1150 - ldr r3, .L1152+4 - ldr r2, .L1152+8 + cbnz r0, .L1159 + ldr r3, .L1161+4 + ldr r2, .L1161+8 ldrb r3, [r3] @ zero_extendqisi2 ldr r1, [r2] muls r1, r3, r1 cmp r1, r5 - bls .L1150 - ldr r3, .L1152+12 + bls .L1159 + ldr r3, .L1161+12 ldrb r3, [r3] @ zero_extendqisi2 - cbnz r3, .L1151 + cbnz r3, .L1160 subs r6, r6, #2 -.L1150: +.L1159: mov r0, r4 bl NandcWaitFlashReady mov r0, r4 @@ -8033,12 +8169,12 @@ FlashProgPage: add sp, sp, #8 @ sp needed pop {r4, r5, r6, r7, r8, pc} -.L1151: +.L1160: movs r6, #4 - b .L1150 -.L1153: + b .L1159 +.L1162: .align 2 -.L1152: +.L1161: .word .LANCHOR31 .word .LANCHOR2 .word .LANCHOR3 @@ -8056,13 +8192,14 @@ FlashSavePhyInfo: @ args = 0, pretend = 0, frame = 8 @ frame_needed = 0, uses_anonymous_args = 0 push {r0, r1, r4, r5, r6, r7, r8, r10, fp, lr} - ldr r7, .L1163 - ldr r4, .L1163+4 + ldr r7, .L1172 + ldr r4, .L1172+4 ldr r3, [r7] - ldr r10, .L1163+60 - ldr r8, .L1163+64 + ldr r10, .L1172+56 + ldr fp, .L1172+60 str r3, [r4] - ldr r3, .L1163+8 + ldr r3, .L1172+8 + ldr r8, .L1172+64 ldrb r0, [r3] @ zero_extendqisi2 bl FlashBchSel mov r2, #2048 @@ -8071,60 +8208,58 @@ FlashSavePhyInfo: bl ftl_memset ldr r0, [r4] movs r2, #32 - ldr r3, .L1163+12 - ldr r1, .L1163+16 + ldr r3, .L1172+12 + ldr r1, .L1172+16 str r10, [r0] adds r0, r0, #16 ldrb r3, [r3] @ zero_extendqisi2 strh r3, [r0, #-4] @ movhi - ldr r3, .L1163+20 + ldr r3, .L1172+20 ldrb r3, [r3] @ zero_extendqisi2 strh r3, [r0, #-2] @ movhi - ldr r3, .L1163+24 + ldr r3, .L1172+24 ldrb r3, [r3] @ zero_extendqisi2 str r3, [r0, #1060] bl ftl_memcpy ldr r0, [r4] movs r2, #8 - ldr r1, .L1163+28 + ldr r1, .L1172+28 adds r0, r0, #80 bl ftl_memcpy ldr r0, [r4] movs r2, #32 - ldr r1, .L1163+32 + ldr r1, .L1172+32 adds r0, r0, #96 bl ftl_memcpy ldr r0, [r4] movs r2, #32 - ldr r1, .L1163+36 + ldr r1, .L1172+36 adds r0, r0, #160 bl ftl_memcpy ldr r0, [r4] movs r2, #32 - ldr r1, .L1163+40 + ldr r1, .L1172+40 adds r0, r0, #192 bl ftl_memcpy ldr r0, [r4] mov r2, #852 - ldr r1, .L1163+44 + ldr r1, .L1172+44 adds r0, r0, #224 bl ftl_memcpy ldr r5, [r4] movw r1, #2036 add r0, r5, #12 - bl JSHash - ldr r1, .L1163+48 + bl js_hash mov r3, #1592 - str r3, [r5, #4] str r0, [r5, #8] - movs r0, #0 - ldr r3, [r1] + str r3, [r5, #4] movs r5, #0 + ldr r3, [fp] mov r6, r5 + movs r0, #0 str r3, [r4] bl flash_enter_slc_mode - mov fp, r1 -.L1157: +.L1166: ldr r1, [r8] movs r2, #0 mov r0, r2 @@ -8151,35 +8286,35 @@ FlashSavePhyInfo: bl FlashReadRawPage adds r0, r0, #1 add r2, r6, #1 - beq .L1155 + beq .L1164 ldr r3, [r4] ldr r1, [r3] cmp r1, r10 - bne .L1155 + bne .L1164 add r0, r3, #12 movw r1, #2036 str r2, [sp, #4] str r3, [sp] - bl JSHash + bl js_hash ldr r3, [sp] ldr r2, [sp, #4] ldr r3, [r3, #8] cmp r3, r0 - bne .L1155 - ldr r3, .L1163+52 + bne .L1164 + ldr r3, .L1172+48 cmp r5, #1 str r2, [r3] ldr r3, [r8] mul r6, r6, r3 - ldr r3, .L1163+56 + ldr r3, .L1172+52 str r6, [r3] - beq .L1158 + beq .L1167 movs r5, #1 -.L1155: +.L1164: cmp r2, #4 mov r6, r2 - bne .L1157 -.L1156: + bne .L1166 +.L1165: movs r0, #0 bl flash_exit_slc_mode clz r0, r5 @@ -8188,12 +8323,12 @@ FlashSavePhyInfo: add sp, sp, #8 @ sp needed pop {r4, r5, r6, r7, r8, r10, fp, pc} -.L1158: +.L1167: movs r5, #2 - b .L1156 -.L1164: + b .L1165 +.L1173: .align 2 -.L1163: +.L1172: .word .LANCHOR147 .word .LANCHOR146 .word .LANCHOR152 @@ -8206,10 +8341,10 @@ FlashSavePhyInfo: .word .LANCHOR31 .word .LANCHOR7 .word .LANCHOR20 - .word .LANCHOR153 .word .LANCHOR149 .word .LANCHOR148 .word 1312902724 + .word .LANCHOR153 .word .LANCHOR3 .size FlashSavePhyInfo, .-FlashSavePhyInfo .section .text.FlashReadIdbDataRaw,"ax",%progbits @@ -8221,64 +8356,58 @@ FlashSavePhyInfo: .fpu softvfp .type FlashReadIdbDataRaw, %function FlashReadIdbDataRaw: - @ 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, r10, fp, lr} + push {r0, r1, r2, r3, r4, r5, r6, r7, r8, r10, fp, lr} movs r3, #60 - sub sp, sp, #24 - ldr r2, .L1177 - mov r10, r0 - strb r3, [sp, #20] + strb r3, [sp, #12] movs r3, #40 - strb r3, [sp, #21] + mov r10, r0 + strb r3, [sp, #13] movs r3, #24 - strb r3, [sp, #22] + strb r3, [sp, #14] movs r3, #16 - strb r3, [sp, #23] - ldr r3, .L1177+4 - ldr r1, [r2] - str r2, [sp, #8] + strb r3, [sp, #15] + ldr r3, .L1192 ldrb r3, [r3] @ zero_extendqisi2 + str r3, [sp] + ldr r3, .L1192+4 + ldr r2, [r3] str r3, [sp, #4] - ldr r3, .L1177+8 - cmp r1, r3 - str r3, [sp, #12] - bne .L1166 + cbz r2, .L1175 movs r0, #0 bl flash_enter_slc_mode -.L1166: +.L1175: mov r7, #-1 movs r4, #2 mov r2, #2048 movs r1, #0 mov r0, r10 bl ftl_memset -.L1167: - ldr r3, .L1177+12 +.L1176: + ldr r3, .L1192+8 ldrb r3, [r3] @ zero_extendqisi2 cmp r4, r3 - bcc .L1172 -.L1171: - ldr r0, [sp, #4] + bcc .L1181 +.L1180: + ldr r0, [sp] bl FlashBchSel - ldr r3, [sp, #8] - ldr r2, [sp, #12] + ldr r3, [sp, #4] ldr r3, [r3] - cmp r3, r2 - bne .L1165 + cbz r3, .L1174 movs r0, #0 bl flash_exit_slc_mode -.L1165: +.L1174: mov r0, r7 - add sp, sp, #24 + add sp, sp, #16 @ sp needed pop {r4, r5, r6, r7, r8, r10, fp, pc} -.L1172: - ldr r5, .L1177+16 +.L1181: + ldr r5, .L1192+12 movs r6, #0 - ldr fp, .L1177+32 -.L1169: - add r3, sp, #20 + ldr fp, .L1192+28 +.L1178: + add r3, sp, #12 ldrb r8, [r6, r3] @ zero_extendqisi2 mov r0, r8 bl FlashBchSel @@ -8289,47 +8418,46 @@ FlashReadIdbDataRaw: muls r1, r4, r1 bl FlashReadRawPage adds r0, r0, #1 - bne .L1168 + bne .L1177 adds r6, r6, #1 cmp r6, #4 - bne .L1169 -.L1170: + bne .L1178 +.L1179: adds r4, r4, #1 - b .L1167 -.L1175: + b .L1176 +.L1184: movs r7, #0 - b .L1171 -.L1168: + b .L1180 +.L1177: ldr r3, [r5] ldr r2, [r3] - ldr r3, .L1177+20 + ldr r3, .L1192+16 cmp r2, r3 - bne .L1170 + bne .L1179 mov r1, r8 - ldr r0, .L1177+24 + ldr r0, .L1192+20 bl printf mov r2, #2048 ldr r1, [r5] mov r0, r10 bl ftl_memcpy ldr r3, [r5] - ldr r2, .L1177+12 + ldr r2, .L1192+8 ldr r3, [r3, #512] strb r3, [r2] - ldr r3, .L1177+28 + ldr r3, .L1192+24 ldr r2, [r3] cmp r4, r2 - bcs .L1175 + bcs .L1184 str r4, [r3] movs r7, #0 bl FlashSavePhyInfo - b .L1170 -.L1178: + b .L1179 +.L1193: .align 2 -.L1177: - .word .LANCHOR29 +.L1192: .word .LANCHOR33 - .word 1446522928 + .word .LANCHOR29 .word .LANCHOR2 .word .LANCHOR147 .word -52655045 @@ -8348,70 +8476,71 @@ FlashReadIdbDataRaw: FlashPageProgMsbFFData: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - push {r3, r4, r5, r6, r7, r8, r10, lr} + ldr r3, .L1210 + push {r4, r5, r6, r7, r8, r10, fp, lr} + mov r7, r0 + mov r8, r1 mov r4, r2 - ldr r5, .L1189 - mov r6, r0 - mov r7, r1 - ldr r3, [r5] - ldrb r2, [r3, #19] @ zero_extendqisi2 - ldr r3, .L1189+4 ldrb r3, [r3] @ zero_extendqisi2 - cbz r3, .L1180 - ldr r3, .L1189+8 - ldr r1, [r3] - ldr r3, .L1189+12 - cmp r1, r3 - beq .L1179 -.L1180: - subs r3, r2, #5 + cbz r3, .L1195 + ldr r3, .L1210+4 + ldr r3, [r3] + cmp r3, #0 + bne .L1194 +.L1195: + ldr r5, .L1210+8 + ldr r3, [r5] + ldrb r6, [r3, #19] @ zero_extendqisi2 + subs r3, r6, #5 uxtb r3, r3 cmp r3, #30 - bhi .L1181 - ldr r2, .L1189+16 + bhi .L1196 + ldr r2, .L1210+12 lsr r3, r2, r3 lsls r3, r3, #31 - bmi .L1183 - pop {r3, r4, r5, r6, r7, r8, r10, pc} -.L1184: - ldrh r2, [r10, r4, lsl #1] + bmi .L1198 + pop {r4, r5, r6, r7, r8, r10, fp, pc} +.L1201: + ldrh r2, [fp, r4, lsl #1] movw r3, #65535 cmp r2, r3 - bne .L1179 + bne .L1194 + cmp r6, #8 mov r2, #32768 - movs r1, #255 - ldr r0, [r8] + ite eq + moveq r1, #0 + movne r1, #255 + ldr r0, [r10] bl ftl_memset - adds r1, r4, r7 + ldr r3, [r10] + add r1, r4, r8 adds r4, r4, #1 + mov r0, r7 uxth r4, r4 - movs r3, #0 - ldr r2, [r8] - mov r0, r6 + mov r2, r3 bl FlashProgPage -.L1185: +.L1202: ldr r3, [r5] ldrh r3, [r3, #10] cmp r3, r4 - bhi .L1184 - pop {r3, r4, r5, r6, r7, r8, r10, pc} -.L1181: - cmp r2, #68 - bne .L1179 -.L1183: - ldr r10, .L1189+20 - ldr r8, .L1189+24 - b .L1185 -.L1179: - pop {r3, r4, r5, r6, r7, r8, r10, pc} -.L1190: + bhi .L1201 + pop {r4, r5, r6, r7, r8, r10, fp, pc} +.L1196: + cmp r6, #68 + bne .L1194 +.L1198: + ldr fp, .L1210+16 + ldr r10, .L1210+20 + b .L1202 +.L1194: + pop {r4, r5, r6, r7, r8, r10, fp, pc} +.L1211: .align 2 -.L1189: - .word .LANCHOR18 - .word .LANCHOR8 +.L1210: + .word .LANCHOR15 .word .LANCHOR29 - .word 1446522928 - .word 1073758215 + .word .LANCHOR18 + .word 1073758223 .word .LANCHOR120 .word .LANCHOR153 .size FlashPageProgMsbFFData, .-FlashPageProgMsbFFData @@ -8432,45 +8561,45 @@ idb_write_data: push {r4, r5, r6, r7, r8, r10, fp, lr} cmp r2, #63 sub sp, sp, #104 - bls .L1192 + bls .L1213 cmp r0, #576 - bcs .L1193 - ldr r2, .L1244 + bcs .L1214 + ldr r2, .L1265 cmp r0, #64 mov r4, #1 str r4, [r2] - bhi .L1194 + bhi .L1215 rsb r0, r0, #64 subs r2, r3, r0 add r1, r1, r0, lsl #9 - ldr r0, .L1244+4 + ldr r0, .L1265+4 lsls r2, r2, #9 -.L1243: +.L1264: bl ftl_memcpy -.L1232: +.L1253: movs r0, #0 add sp, sp, #104 @ sp needed pop {r4, r5, r6, r7, r8, r10, fp, pc} -.L1194: +.L1215: rsb r2, r0, #576 subs r0, r0, #64 cmp r2, r3 it cs movcs r2, r3 - ldr r3, .L1244+4 + ldr r3, .L1265+4 lsls r2, r2, #9 add r0, r3, r0, lsl #9 - b .L1243 -.L1192: + b .L1264 +.L1213: cmp r0, #576 - bcc .L1232 -.L1193: - ldr r3, .L1244 + bcc .L1253 +.L1214: + ldr r3, .L1265 ldr r3, [r3] cmp r3, #0 - beq .L1232 - ldr r3, .L1244+8 + beq .L1253 + ldr r3, .L1265+8 ldr r2, [r3] ldrb r3, [r2, #9] @ zero_extendqisi2 ldrh r2, [r2, #10] @@ -8480,14 +8609,14 @@ idb_write_data: addw r0, r3, #511 str r3, [sp, #8] bl __aeabi_uidiv - ldr r1, .L1244+4 + ldr r1, .L1265+4 movs r3, #0 str r0, [sp, #20] movw r2, #65535 mov r0, r1 -.L1198: +.L1219: ldr r4, [r1, r2, lsl #2] - cbnz r4, .L1196 + cbnz r4, .L1217 ldr r4, [r1, r3, lsl #2] adds r3, r3, #1 cmp r3, #4096 @@ -8496,13 +8625,13 @@ idb_write_data: str r4, [r1, r2, lsl #2] subs r2, r2, #1 cmp r2, #4096 - bne .L1198 -.L1196: + bne .L1219 +.L1217: ldr r1, [r0, r2, lsl #2] mov r3, #512 - ldr r0, .L1244+12 + ldr r0, .L1265+12 bl printf - ldr r3, .L1244+16 + ldr r3, .L1265+16 ldr r2, [sp, #8] ldr r3, [r3] str r3, [sp, #16] @@ -8513,35 +8642,35 @@ idb_write_data: mul r4, r3, r2 movs r3, #0 str r3, [sp, #12] -.L1199: +.L1220: ldr r3, [sp, #16] cmp r3, #15 - bls .L1216 + bls .L1237 ldr r3, [sp, #12] - cbnz r3, .L1218 + cbnz r3, .L1239 mov r1, r3 - ldr r0, .L1244+20 + ldr r0, .L1265+20 bl printf -.L1218: - ldr r3, .L1244 +.L1239: + ldr r3, .L1265 movs r2, #0 str r2, [r3] - b .L1232 -.L1245: + b .L1253 +.L1266: .align 2 -.L1244: +.L1265: .word .LANCHOR154 .word idb_buf .word .LANCHOR18 .word .LC15 .word .LANCHOR149 .word .LC17 -.L1216: +.L1237: mov r2, #512 movs r1, #0 - ldr r0, .L1246 + ldr r0, .L1267 bl memset - ldr r3, .L1246+4 + ldr r3, .L1267+4 mov r0, r4 ldr r3, [r3] ldrb fp, [r3, #9] @ zero_extendqisi2 @@ -8550,61 +8679,61 @@ idb_write_data: smulbb r5, r5, fp uxth r5, r5 cmp r5, #512 - bcs .L1200 + bcs .L1221 adds r0, r5, r4 bl FW_FlashBlockErase.constprop.41 -.L1200: - ldr r7, .L1246+8 +.L1221: + ldr r7, .L1267+8 mov r1, r5 - ldr r10, .L1246+36 + ldr r10, .L1267+36 mov r0, r4 bl __aeabi_uidivmod mov r6, r1 subs r3, r4, r1 str r3, [sp, #24] -.L1204: +.L1225: lsrs r2, r6, #2 - beq .L1201 - ldr r0, .L1246+12 + beq .L1222 + ldr r0, .L1267+12 adds r1, r2, #1 - ldr r3, .L1246+16 + ldr r3, .L1267+16 ldrb r0, [r0] @ zero_extendqisi2 ldrh r3, [r3, r1, lsl #1] - cbz r0, .L1202 + cbz r0, .L1223 ldr r0, [r10] - ldr r5, .L1246+20 + ldr r5, .L1267+20 cmp r0, r5 it eq moveq r3, r1 -.L1202: +.L1223: add r3, r3, #1073741824 subs r3, r3, #1 lsls r3, r3, #2 str r3, [sp, #40] -.L1201: +.L1222: movw r3, #61424 str r3, [sp, #44] - ldr r3, .L1246+16 + ldr r3, .L1267+16 ldrh r5, [r3, r2, lsl #1] - ldr r3, .L1246+12 + ldr r3, .L1267+12 ldrb r3, [r3] @ zero_extendqisi2 - cbz r3, .L1203 + cbz r3, .L1224 ldr r3, [r10] - ldr r1, .L1246+20 + ldr r1, .L1267+20 cmp r3, r1 it eq moveq r5, r2 -.L1203: +.L1224: ldr r3, [sp, #24] adds r6, r6, #4 - ldr r2, .L1246+24 - ldr r8, .L1246+4 + ldr r2, .L1267+24 + ldr r8, .L1267+4 mla r3, r5, fp, r3 adds r5, r5, #1 uxth r5, r5 str r3, [sp, #32] ldrb r3, [r2] @ zero_extendqisi2 - ldr r2, .L1246+28 + ldr r2, .L1267+28 str r3, [sp, #28] ldrb r0, [r2] @ zero_extendqisi2 bl FlashBchSel @@ -8632,12 +8761,12 @@ idb_write_data: mov r1, r0 movs r0, #0 bl FlashPageProgMsbFFData - ldr r3, .L1246+32 + ldr r3, .L1267+32 cmp r7, r3 - bne .L1204 + bne .L1225 ldr r3, [r8] mov r0, r4 - ldr r7, .L1246 + ldr r7, .L1267 movs r6, #0 ldrb r8, [r3, #9] @ zero_extendqisi2 ldrh r1, [r3, #10] @@ -8649,47 +8778,47 @@ idb_write_data: subs r3, r4, r1 str r3, [sp, #28] ubfx r5, r5, #2, #2 -.L1205: +.L1226: cmp r6, #512 - bcs .L1212 - ldr r1, .L1246+12 + bcs .L1233 + ldr r1, .L1267+12 rsb r3, r5, #4 uxth r3, r3 - ldr r2, .L1246+16 + ldr r2, .L1267+16 ldrb r1, [r1] @ zero_extendqisi2 str r3, [sp, #24] add r3, r10, r6 lsrs r3, r3, #2 ldrh r2, [r2, r3, lsl #1] - cbz r1, .L1206 - ldr r1, .L1246+36 - ldr r0, .L1246+20 + cbz r1, .L1227 + ldr r1, .L1267+36 + ldr r0, .L1267+20 ldr r1, [r1] cmp r1, r0 it eq moveq r2, r3 -.L1206: +.L1227: ldr r3, [sp, #28] add r5, r5, r3 - ldr r3, .L1246+24 + ldr r3, .L1267+24 mla r5, r2, r8, r5 ldrb r3, [r3] @ zero_extendqisi2 str r3, [sp, #32] - ldr r3, .L1246+4 + ldr r3, .L1267+4 ldr r3, [r3] ldrb fp, [r3, #9] @ zero_extendqisi2 - ldr r3, .L1246+40 + ldr r3, .L1267+40 ldrh r2, [r3, #26] - ldr r3, .L1246+44 + ldr r3, .L1267+44 ldr r3, [r3] muls r3, r2, r3 mul r3, fp, r3 cmp r5, r3 - bcs .L1207 - ldr r3, .L1246+28 + bcs .L1228 + ldr r3, .L1267+28 ldrb r0, [r3] @ zero_extendqisi2 bl FlashBchSel -.L1207: +.L1228: movs r0, #0 bl flash_boot_enter_slc_mode mov r1, fp @@ -8703,11 +8832,11 @@ idb_write_data: bl FlashReadPage adds r3, r0, #1 mov r5, r0 - bne .L1208 - ldr r3, .L1246+28 + bne .L1229 + ldr r3, .L1267+28 ldrb r3, [r3] @ zero_extendqisi2 cmp r3, #40 - beq .L1208 + beq .L1229 movs r0, #40 bl FlashBchSel add r3, sp, #40 @@ -8716,7 +8845,7 @@ idb_write_data: movs r0, #0 bl FlashReadPage mov r5, r0 -.L1208: +.L1229: movs r0, #0 bl flash_boot_exit_slc_mode ldr r0, [sp, #32] @@ -8725,74 +8854,74 @@ idb_write_data: mov r5, #-1 it ne movne r5, #0 - cbz r5, .L1209 -.L1212: - ldr r3, .L1246+8 + cbz r5, .L1230 +.L1233: + ldr r3, .L1267+8 movs r5, #0 - ldr r6, .L1246 -.L1210: + ldr r6, .L1267 +.L1231: mov r7, r3 ldr r1, [r6, r5, lsl #2] ldr r2, [r7] adds r3, r3, #4 cmp r1, r2 - beq .L1213 + beq .L1234 mov r2, #512 movs r1, #0 - ldr r0, .L1246 + ldr r0, .L1267 bl memset str r5, [sp] mov r1, r4 ldr r3, [r7] ldr r2, [r6, r5, lsl #2] - ldr r0, .L1246+48 + ldr r0, .L1267+48 bl printf mov r0, r4 bl FW_FlashBlockErase.constprop.41 ldr r3, [sp, #20] cmp r3, #1 - bls .L1214 + bls .L1235 ldr r3, [sp, #8] adds r0, r3, r4 bl FW_FlashBlockErase.constprop.41 -.L1214: +.L1235: ldr r3, [sp, #16] ldr r2, [sp, #20] add r3, r3, r2 str r3, [sp, #16] ldr r3, [sp, #36] add r4, r4, r3 - b .L1199 -.L1209: + b .L1220 +.L1230: ldr r3, [sp, #24] add r6, r6, r3 add r7, r7, r3, lsl #9 uxth r6, r6 - b .L1205 -.L1213: + b .L1226 +.L1234: adds r5, r5, #1 cmp r5, #65536 - bne .L1210 + bne .L1231 ldr r3, [sp, #12] adds r3, r3, #1 cmp r3, #5 str r3, [sp, #12] - bls .L1214 - b .L1218 -.L1247: + bls .L1235 + b .L1239 +.L1268: .align 2 -.L1246: +.L1267: .word gp_flash_check_buf .word .LANCHOR18 .word idb_buf - .word .LANCHOR8 + .word .LANCHOR15 .word .LANCHOR16 .word 1446522928 .word .LANCHOR33 .word .LANCHOR152 .word idb_buf+262144 - .word .LANCHOR29 - .word .LANCHOR15 + .word .LANCHOR119 + .word .LANCHOR14 .word .LANCHOR3 .word .LC16 .size idb_write_data, .-idb_write_data @@ -8822,11 +8951,11 @@ rknand_get_clk_rate: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r0, .L1250 + ldr r0, .L1271 bx lr -.L1251: +.L1272: .align 2 -.L1250: +.L1271: .word 148000000 .size rknand_get_clk_rate, .-rknand_get_clk_rate .section .text.ftl_malloc,"ax",%progbits @@ -8857,9 +8986,9 @@ NandcInit: @ frame_needed = 0, uses_anonymous_args = 0 push {r3, r4, r5, lr} movs r2, #1 - ldr r3, .L1255 + ldr r3, .L1276 movs r4, #0 - ldr r5, .L1255+4 + ldr r5, .L1276+4 str r2, [r3, #12] movs r2, #2 str r2, [r3, #20] @@ -8869,8 +8998,8 @@ NandcInit: str r0, [r3, #16] str r2, [r3, #28] str r0, [r3, #24] - ldr r3, .L1255+8 - ldr r2, .L1255+12 + ldr r3, .L1276+8 + ldr r2, .L1276+12 str r0, [r3] ldr r3, [r0] and r3, r3, #253952 @@ -8879,7 +9008,7 @@ NandcInit: str r1, [r2] orr r3, r3, #256 ldr r2, [r0, #352] - ldr r1, .L1255+16 + ldr r1, .L1276+16 ubfx r2, r2, #16, #4 str r2, [r1] ldr r2, [r0, #352] @@ -8895,25 +9024,25 @@ NandcInit: str r3, [r0, #4] movw r3, #8322 str r3, [r0, #344] - ldr r3, .L1255+20 + ldr r3, .L1276+20 str r3, [r0, #304] mov r0, #36864 bl ftl_malloc - ldr r3, .L1255+24 + ldr r3, .L1276+24 str r0, [r3] - ldr r3, .L1255+28 + ldr r3, .L1276+28 str r0, [r3] add r0, r0, #32768 str r0, [r3, #4] str r4, [r3, #24] - ldr r3, .L1255+32 + ldr r3, .L1276+32 str r4, [r3] pop {r3, r4, r5, pc} -.L1256: +.L1277: .align 2 -.L1255: +.L1276: .word .LANCHOR6 - .word .LANCHOR29 + .word .LANCHOR119 .word .LANCHOR19 .word .LANCHOR155 .word .LANCHOR34 @@ -8933,114 +9062,114 @@ NandcInit: FtlMemInit: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L1262 + ldr r3, .L1283 push {r4, r5, r6, r7, r8, r10, fp, lr} movs r4, #0 - ldr r2, .L1262+4 + ldr r2, .L1283+4 movs r6, #12 strh r4, [r3] @ movhi - ldr r3, .L1262+8 - ldr r5, .L1262+12 - ldr r10, .L1262+304 + ldr r3, .L1283+8 + ldr r5, .L1283+12 + ldr r10, .L1283+304 str r4, [r3] - ldr r3, .L1262+16 - ldr r8, .L1262+308 - ldr fp, .L1262+312 + ldr r3, .L1283+16 + ldr r8, .L1283+308 + ldr fp, .L1283+312 str r4, [r3] - ldr r3, .L1262+20 + ldr r3, .L1283+20 str r4, [r3] - ldr r3, .L1262+24 + ldr r3, .L1283+24 str r4, [r3] - ldr r3, .L1262+28 + ldr r3, .L1283+28 str r4, [r3] - ldr r3, .L1262+32 + ldr r3, .L1283+32 str r4, [r3] - ldr r3, .L1262+36 + ldr r3, .L1283+36 str r4, [r3] - ldr r3, .L1262+40 + ldr r3, .L1283+40 str r4, [r3] - ldr r3, .L1262+44 + ldr r3, .L1283+44 str r4, [r3] - ldr r3, .L1262+48 + ldr r3, .L1283+48 str r4, [r3] - ldr r3, .L1262+52 + ldr r3, .L1283+52 str r4, [r3] - ldr r3, .L1262+56 + ldr r3, .L1283+56 str r4, [r3] - ldr r3, .L1262+60 + ldr r3, .L1283+60 str r4, [r3] - ldr r3, .L1262+64 + ldr r3, .L1283+64 str r4, [r3] - ldr r3, .L1262+68 + ldr r3, .L1283+68 str r4, [r3] - ldr r3, .L1262+72 + ldr r3, .L1283+72 str r4, [r3] - ldr r3, .L1262+76 + ldr r3, .L1283+76 str r4, [r3] movw r3, #65535 str r3, [r2] - ldr r2, .L1262+80 + ldr r2, .L1283+80 str r4, [r2] - ldr r2, .L1262+84 + ldr r2, .L1283+84 str r4, [r2] - ldr r2, .L1262+88 + ldr r2, .L1283+88 str r4, [r2] - ldr r2, .L1262+92 + ldr r2, .L1283+92 strh r3, [r2] @ movhi - ldr r2, .L1262+96 + ldr r2, .L1283+96 strh r3, [r2] @ movhi - ldr r2, .L1262+100 + ldr r2, .L1283+100 strh r3, [r2] @ movhi - ldr r2, .L1262+104 + ldr r2, .L1283+104 strh r3, [r2] @ movhi movs r2, #32 - ldr r3, .L1262+108 + ldr r3, .L1283+108 strh r2, [r3] @ movhi movs r2, #128 - ldr r3, .L1262+112 + ldr r3, .L1283+112 strh r2, [r3] @ movhi - ldr r3, .L1262+116 + ldr r3, .L1283+116 strh r4, [r3] @ movhi - ldr r3, .L1262+120 + ldr r3, .L1283+120 strh r4, [r3] @ movhi - ldr r3, .L1262+124 + ldr r3, .L1283+124 strh r4, [r3] @ movhi - ldr r3, .L1262+128 + ldr r3, .L1283+128 strh r4, [r3] @ movhi ldrh r0, [r5] lsls r0, r0, #1 bl ftl_malloc - ldr r3, .L1262+132 + ldr r3, .L1283+132 str r0, [r3] ldrh r0, [r5] movs r5, #36 muls r0, r6, r0 bl ftl_malloc - ldr r3, .L1262+136 + ldr r3, .L1283+136 str r0, [r3] ldrh r3, [r10] muls r5, r3, r5 lsls r7, r5, #2 mov r0, r7 bl ftl_malloc - ldr r3, .L1262+140 + ldr r3, .L1283+140 str r0, [r3] mov r0, r5 bl ftl_malloc - ldr r3, .L1262+144 + ldr r3, .L1283+144 str r0, [r3] mov r0, r7 bl ftl_malloc - ldr r3, .L1262+148 - ldr r7, .L1262+152 + ldr r3, .L1283+148 + ldr r7, .L1283+152 str r0, [r3] mov r0, r5 bl ftl_malloc - ldr r3, .L1262+156 + ldr r3, .L1283+156 str r0, [r3] mov r0, r5 bl ftl_malloc - ldr r3, .L1262+160 + ldr r3, .L1283+160 ldrh r5, [r7] str r0, [r3] ldrh r3, [r10] @@ -9049,157 +9178,157 @@ FtlMemInit: adds r3, r3, #1 str r3, [r8] bl ftl_malloc - ldr r3, .L1262+164 + ldr r3, .L1283+164 str r0, [r3] mov r0, r5 bl ftl_malloc - ldr r3, .L1262+168 + ldr r3, .L1283+168 str r0, [r3] mov r0, r5 bl ftl_malloc - ldr r3, .L1262+172 + ldr r3, .L1283+172 str r0, [r3] ldr r0, [r8] muls r0, r5, r0 bl ftl_malloc - ldr r3, .L1262+176 + ldr r3, .L1283+176 str r0, [r3] mov r0, r5 bl ftl_malloc - ldr r3, .L1262+180 + ldr r3, .L1283+180 str r0, [r3] mov r0, r5 bl ftl_malloc - ldr r3, .L1262+184 + ldr r3, .L1283+184 str r0, [r3] ldr r0, [r8] muls r0, r6, r0 bl ftl_malloc - ldr r3, .L1262+188 + ldr r3, .L1283+188 ldrh r5, [r10] - ldr r10, .L1262+316 + ldr r10, .L1283+316 str r0, [r3] ldrh r3, [fp] muls r5, r3, r5 mov r0, r5 bl ftl_malloc - ldr r3, .L1262+192 + ldr r3, .L1283+192 str r0, [r3] lsls r0, r5, #2 - ldr r5, .L1262+196 + ldr r5, .L1283+196 bl ftl_malloc - ldr r3, .L1262+200 + ldr r3, .L1283+200 str r0, [r3] ldrh r3, [fp] ldr r0, [r8] - ldr r8, .L1262+320 + ldr r8, .L1283+320 muls r0, r3, r0 bl ftl_malloc - ldr r3, .L1262+204 + ldr r3, .L1283+204 str r0, [r3] ldrh r0, [r5] lsls r0, r0, #1 uxth r0, r0 strh r0, [r8] @ movhi bl ftl_malloc - ldr r3, .L1262+208 + ldr r3, .L1283+208 str r0, [r3] ldrh r3, [r8] - ldr r0, .L1262+212 + ldr r0, .L1283+212 addw r3, r3, #547 lsrs r3, r3, #9 and r0, r0, r3, lsl #9 strh r3, [r8] @ movhi bl ftl_malloc - ldr r3, .L1262+216 + ldr r3, .L1283+216 str r0, [r3] adds r0, r0, #32 - ldr r3, .L1262+220 + ldr r3, .L1283+220 str r0, [r3] ldrh r0, [r5] lsls r0, r0, #1 bl ftl_malloc - ldr r3, .L1262+224 + ldr r3, .L1283+224 str r0, [r3] ldr r3, [r10] lsl r8, r3, #1 mov r0, r8 bl ftl_malloc - ldr r3, .L1262+228 + ldr r3, .L1283+228 str r0, [r3] mov r0, r8 bl ftl_malloc - ldr r3, .L1262+232 - ldr r8, .L1262+324 + ldr r3, .L1283+232 + ldr r8, .L1283+324 str r0, [r3] ldrh r0, [r5] lsrs r0, r0, #3 adds r0, r0, #4 bl ftl_malloc - ldr r3, .L1262+236 + ldr r3, .L1283+236 str r0, [r3] ldrh r0, [r8] lsls r0, r0, #1 bl ftl_malloc - ldr r3, .L1262+240 + ldr r3, .L1283+240 str r0, [r3] ldrh r0, [r8] lsls r0, r0, #1 bl ftl_malloc - ldr r3, .L1262+244 + ldr r3, .L1283+244 str r0, [r3] ldrh r0, [r8] - ldr r8, .L1262+328 + ldr r8, .L1283+328 lsls r0, r0, #2 bl ftl_malloc - ldr r3, .L1262+248 + ldr r3, .L1283+248 str r0, [r3] ldrh r0, [r8] lsls r0, r0, #2 bl ftl_malloc ldrh r2, [r8] mov r1, r4 - ldr r3, .L1262+252 + ldr r3, .L1283+252 lsls r2, r2, #2 str r0, [r3] bl ftl_memset - ldr r3, .L1262+256 + ldr r3, .L1283+256 ldrh r4, [r3] lsls r4, r4, #2 mov r0, r4 bl ftl_malloc - ldr r3, .L1262+260 + ldr r3, .L1283+260 str r0, [r3] mov r0, r4 bl ftl_malloc - ldr r3, .L1262+264 - ldr r4, .L1262+268 + ldr r3, .L1283+264 + ldr r4, .L1283+268 str r0, [r3] ldr r0, [r10] lsls r0, r0, #2 bl ftl_malloc - ldr r3, .L1262+272 + ldr r3, .L1283+272 str r0, [r3] ldrh r0, [r4] muls r0, r6, r0 - ldr r6, .L1262+276 + ldr r6, .L1283+276 bl ftl_malloc - ldr r3, .L1262+280 + ldr r3, .L1283+280 str r0, [r3] ldrh r3, [r4] ldrh r0, [r7] muls r0, r3, r0 bl ftl_malloc - ldr r3, .L1262+284 + ldr r3, .L1283+284 str r0, [r3] movs r0, #6 ldrh r3, [r5] - ldr r5, .L1262+288 + ldr r5, .L1283+288 muls r0, r3, r0 bl ftl_malloc - ldr r3, .L1262+292 + ldr r3, .L1283+292 str r0, [r3] - ldr r3, .L1262+296 + ldr r3, .L1283+296 ldrh r0, [r3] ldrh r3, [r6] adds r0, r0, #31 @@ -9210,19 +9339,19 @@ FtlMemInit: bl ftl_malloc ldrh r1, [r5] movs r2, #1 - ldr r3, .L1262+300 + ldr r3, .L1283+300 ldrh r6, [r6] lsls r1, r1, #2 mov r4, r3 str r0, [r4, #28]! - b .L1263 -.L1264: + b .L1284 +.L1285: .align 2 -.L1262: +.L1283: .word .LANCHOR139 .word .LANCHOR173 .word .LANCHOR157 - .word .LANCHOR55 + .word .LANCHOR54 .word .LANCHOR158 .word .LANCHOR159 .word .LANCHOR160 @@ -9234,102 +9363,102 @@ FtlMemInit: .word .LANCHOR166 .word .LANCHOR167 .word .LANCHOR168 - .word .LANCHOR80 + .word .LANCHOR79 .word .LANCHOR169 .word .LANCHOR170 .word .LANCHOR171 .word .LANCHOR172 .word .LANCHOR174 .word .LANCHOR175 - .word .LANCHOR74 + .word .LANCHOR73 + .word .LANCHOR112 .word .LANCHOR113 .word .LANCHOR114 .word .LANCHOR115 - .word .LANCHOR116 .word .LANCHOR176 .word .LANCHOR177 .word .LANCHOR178 - .word .LANCHOR117 + .word .LANCHOR116 .word .LANCHOR179 - .word .LANCHOR119 - .word .LANCHOR109 - .word .LANCHOR112 + .word .LANCHOR118 + .word .LANCHOR108 + .word .LANCHOR111 .word .LANCHOR180 .word .LANCHOR181 .word .LANCHOR182 - .word .LANCHOR58 - .word .LANCHOR78 - .word .LANCHOR107 + .word .LANCHOR57 + .word .LANCHOR77 + .word .LANCHOR106 .word .LANCHOR183 .word .LANCHOR184 .word .LANCHOR185 - .word .LANCHOR105 + .word .LANCHOR104 .word .LANCHOR186 .word .LANCHOR187 - .word .LANCHOR104 + .word .LANCHOR103 .word .LANCHOR188 .word .LANCHOR41 .word .LANCHOR189 - .word .LANCHOR106 + .word .LANCHOR105 .word .LANCHOR137 .word 33553920 .word .LANCHOR191 - .word .LANCHOR79 - .word .LANCHOR84 + .word .LANCHOR78 + .word .LANCHOR83 .word .LANCHOR129 .word .LANCHOR125 .word .LANCHOR0 - .word .LANCHOR72 + .word .LANCHOR71 .word .LANCHOR192 .word .LANCHOR193 .word .LANCHOR194 - .word .LANCHOR67 + .word .LANCHOR66 .word .LANCHOR131 .word .LANCHOR195 - .word .LANCHOR68 + .word .LANCHOR67 .word .LANCHOR130 .word .LANCHOR45 - .word .LANCHOR97 + .word .LANCHOR96 .word .LANCHOR126 .word .LANCHOR123 - .word .LANCHOR82 + .word .LANCHOR81 .word .LANCHOR51 - .word .LANCHOR75 + .word .LANCHOR74 .word .LANCHOR38 - .word .LANCHOR108 - .word .LANCHOR59 - .word .LANCHOR65 + .word .LANCHOR107 + .word .LANCHOR58 + .word .LANCHOR64 .word .LANCHOR190 + .word .LANCHOR61 .word .LANCHOR62 - .word .LANCHOR63 -.L1263: +.L1284: mov r0, r1 -.L1258: +.L1279: cmp r2, r6 - bcc .L1259 + bcc .L1280 add r3, r3, r2, lsl #2 - ldr r2, .L1265 + ldr r2, .L1286 movs r1, #0 adds r3, r3, #24 -.L1260: +.L1281: cmp r3, r2 - bne .L1261 + bne .L1282 movs r0, #0 pop {r4, r5, r6, r7, r8, r10, fp, pc} -.L1259: +.L1280: ldr r5, [r3, #28] adds r2, r2, #1 add r5, r5, r0 add r0, r0, r1 str r5, [r4, #4]! - b .L1258 -.L1261: + b .L1279 +.L1282: str r1, [r3, #4]! - b .L1260 -.L1266: + b .L1281 +.L1287: .align 2 -.L1265: - .word .LANCHOR75+56 +.L1286: + .word .LANCHOR74+56 .size FtlMemInit, .-FtlMemInit .section .text.ftl_free,"ax",%progbits .align 1 @@ -9428,13 +9557,13 @@ rk_ftl_get_capacity: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L1273 + ldr r3, .L1294 ldr r0, [r3] bx lr -.L1274: +.L1295: .align 2 -.L1273: - .word .LANCHOR69 +.L1294: + .word .LANCHOR68 .size rk_ftl_get_capacity, .-rk_ftl_get_capacity .section .text.rknand_print_hex,"ax",%progbits .align 1 @@ -9449,51 +9578,51 @@ rknand_print_hex: @ frame_needed = 0, uses_anonymous_args = 0 push {r4, r5, r6, r7, r8, r10, fp, lr} movs r5, #0 - ldr r7, .L1284 + ldr r7, .L1305 mov fp, r0 mov r6, r1 mov r8, r2 mov r10, r3 mov r4, r5 -.L1276: +.L1297: cmp r4, r10 - bne .L1282 - ldr r1, .L1284+4 - ldr r0, .L1284+8 + bne .L1303 + ldr r1, .L1305+4 + ldr r0, .L1305+8 pop {r4, r5, r6, r7, r8, r10, fp, lr} b printf -.L1282: - cbnz r5, .L1277 +.L1303: + cbnz r5, .L1298 mov r2, r4 mov r1, fp - ldr r0, .L1284+12 + ldr r0, .L1305+12 bl printf -.L1277: +.L1298: cmp r8, #4 - bne .L1278 + bne .L1299 ldr r1, [r6, r4, lsl #2] -.L1283: +.L1304: mov r0, r7 adds r5, r5, #1 bl printf cmp r5, #15 - bls .L1281 + bls .L1302 movs r5, #0 - ldr r1, .L1284+4 - ldr r0, .L1284+8 + ldr r1, .L1305+4 + ldr r0, .L1305+8 bl printf -.L1281: +.L1302: adds r4, r4, #1 - b .L1276 -.L1278: + b .L1297 +.L1299: cmp r8, #2 ite eq ldrsheq r1, [r6, r4, lsl #1] ldrbne r1, [r6, r4] @ zero_extendqisi2 - b .L1283 -.L1285: + b .L1304 +.L1306: .align 2 -.L1284: +.L1305: .word .LC19 .word .LC20 .word .LC7 @@ -9512,7 +9641,7 @@ HynixGetReadRetryDefault: @ frame_needed = 0, uses_anonymous_args = 0 push {r4, r5, r6, r7, r8, r10, fp, lr} movs r3, #172 - ldr r5, .L1385 + ldr r5, .L1425 cmp r0, #2 mov r1, #173 mov r2, #174 @@ -9524,18 +9653,19 @@ HynixGetReadRetryDefault: strb r1, [r5, #5] strb r2, [r5, #6] strb r3, [r5, #7] - bne .L1287 + bne .L1308 movs r3, #167 - movs r2, #247 + mov fp, #7 strb r3, [r5, #4] - ldr r3, .L1385+4 + movs r2, #247 + ldr r3, .L1425+4 strb r2, [r3, #17] -.L1343: - mov r10, #7 - b .L1379 -.L1287: +.L1418: + mov r10, #4 + b .L1309 +.L1308: cmp r0, #3 - bne .L1289 + bne .L1310 movs r3, #176 strb r3, [r5, #4] movs r3, #177 @@ -9551,31 +9681,31 @@ HynixGetReadRetryDefault: movs r3, #182 strb r3, [r5, #10] movs r3, #183 -.L1380: - mov r10, #8 +.L1419: + mov fp, #8 strb r3, [r5, #11] - mov fp, r10 -.L1288: + mov r10, fp +.L1309: subs r3, r4, #1 cmp r3, #1 - bhi .L1293 + bhi .L1315 mov r8, #0 -.L1294: - ldr r3, .L1385+8 +.L1316: + ldr r3, .L1425+8 ldrb r2, [r3] @ zero_extendqisi2 uxtb r3, r8 cmp r2, r3 - bhi .L1300 -.L1301: - ldr r3, .L1385 - strb fp, [r3, #1] - strb r10, [r3, #2] + bhi .L1322 +.L1323: + ldr r3, .L1425 + strb r10, [r3, #1] + strb fp, [r3, #2] add sp, sp, #56 @ sp needed pop {r4, r5, r6, r7, r8, r10, fp, pc} -.L1289: +.L1310: cmp r0, #4 - bne .L1290 + bne .L1311 movs r0, #204 strb r1, [r5, #9] strb r0, [r5, #4] @@ -9588,12 +9718,12 @@ HynixGetReadRetryDefault: movs r0, #205 strb r0, [r5, #8] strb r2, [r5, #10] - b .L1380 -.L1290: + b .L1419 +.L1311: cmp r0, #5 - bne .L1291 + bne .L1312 movs r3, #56 - mov r10, #8 + mov fp, #8 strb r3, [r5, #4] movs r3, #57 strb r3, [r5, #5] @@ -9601,14 +9731,12 @@ HynixGetReadRetryDefault: strb r3, [r5, #6] movs r3, #59 strb r3, [r5, #7] -.L1379: - mov fp, #4 - b .L1288 -.L1291: + b .L1418 +.L1312: cmp r0, #6 - bne .L1292 + bne .L1313 movs r3, #14 - mov r10, #12 + mov fp, #12 strb r3, [r5, #4] movs r3, #15 strb r3, [r5, #5] @@ -9616,12 +9744,12 @@ HynixGetReadRetryDefault: strb r3, [r5, #6] movs r3, #17 strb r3, [r5, #7] - b .L1379 -.L1292: + b .L1418 +.L1313: cmp r0, #7 - bne .L1343 + bne .L1314 movs r3, #176 - mov r10, #12 + mov fp, #12 strb r3, [r5, #4] movs r3, #177 strb r3, [r5, #5] @@ -9641,13 +9769,31 @@ HynixGetReadRetryDefault: strb r3, [r5, #12] movs r3, #213 strb r3, [r5, #13] - mov fp, #10 - b .L1288 -.L1300: - ldr r2, .L1385+12 + mov r10, #10 + b .L1309 +.L1314: + cmp r0, #8 + mov r3, #7 + bne .L1373 + strb r3, [r5, #5] + movs r3, #9 + movs r2, #6 + strb r3, [r5, #7] + movs r3, #10 + strb r2, [r5, #4] + strb r0, [r5, #6] + mov fp, #50 + strb r3, [r5, #8] + mov r10, #5 + b .L1309 +.L1373: + mov fp, r3 + b .L1418 +.L1322: + ldr r2, .L1425+12 movs r6, #0 ldrb r2, [r2, r3] @ zero_extendqisi2 - ldr r3, .L1385+16 + ldr r3, .L1425+16 ldr r7, [r3, r2, lsl #3] add r4, r5, r2, lsl #6 add r3, r3, r2, lsl #3 @@ -9656,41 +9802,41 @@ HynixGetReadRetryDefault: ldrb r3, [r3, #4] @ zero_extendqisi2 add r7, r7, r3, lsl #8 addw r3, r7, #2056 -.L1295: +.L1317: adds r1, r5, r6 str r2, [r3] ldrb r1, [r1, #4] @ zero_extendqisi2 movs r0, #80 - str r2, [sp, #8] - str r3, [sp, #4] + str r2, [sp, #4] + str r3, [sp] str r1, [r7, #2052] bl udelay ldr r1, [r7, #2048] - ldr r3, [sp, #4] - ldr r2, [sp, #8] + ldr r3, [sp] + ldr r2, [sp, #4] strb r1, [r4, r6] adds r6, r6, #1 uxtb r1, r6 - cmp fp, r1 - bhi .L1295 - ldr r7, .L1385+4 + cmp r10, r1 + bhi .L1317 + ldr r7, .L1425+4 mov r1, r4 movs r2, #0 -.L1298: +.L1320: movs r3, #1 adds r6, r7, r2 -.L1297: +.L1319: ldrb r0, [r6, r3, lsl #2] @ zero_extendqisi2 ldrb ip, [r1] @ zero_extendqisi2 add r0, r0, ip strb r0, [r1, r3, lsl #3] adds r3, r3, #1 cmp r3, #7 - bne .L1297 + bne .L1319 adds r2, r2, #1 adds r1, r1, #1 cmp r2, #4 - bne .L1298 + bne .L1320 movs r3, #0 add r8, r8, #1 strb r3, [r4, #16] @@ -9700,359 +9846,435 @@ HynixGetReadRetryDefault: strb r3, [r4, #48] strb r3, [r4, #41] strb r3, [r4, #49] - b .L1294 -.L1293: + b .L1316 +.L1315: subs r3, r4, #3 - cmp r3, #4 - bhi .L1301 - smulbb r3, r10, fp - asrs r2, r3, #2 + cmp r3, #5 + bhi .L1323 + smulbb r3, fp, r10 + asrs r2, r3, #1 lsls r3, r3, #4 - str r3, [sp, #52] - lsls r3, r2, #3 - str r2, [sp, #12] str r3, [sp, #48] lsls r3, r2, #2 + str r2, [sp, #12] + str r3, [sp, #44] + lsls r3, r2, #1 str r3, [sp, #32] movs r3, #0 -.L1384: +.L1424: str r3, [sp, #28] ldrb r3, [sp, #28] @ zero_extendqisi2 str r3, [sp, #16] - ldr r3, .L1385+8 + ldr r3, .L1425+8 ldr r2, [sp, #16] ldrb r3, [r3] @ zero_extendqisi2 cmp r3, r2 - bls .L1301 + bls .L1323 ldr r2, [sp, #16] - ldr r3, .L1385+12 + ldr r3, .L1425+12 ldrb r8, [r3, r2] @ zero_extendqisi2 - ldr r3, .L1385+16 + ldr r3, .L1425+16 mov r0, r8 ldr r2, [r3, r8, lsl #3] add r3, r3, r8, lsl #3 ldrb r3, [r3, #4] @ zero_extendqisi2 - str r2, [sp, #4] - str r3, [sp, #8] + str r2, [sp] + str r3, [sp, #4] mov r3, r2 - ldr r2, [sp, #8] - add r3, r3, r2, lsl #8 - movs r2, #255 - str r2, [r3, #2056] + ldr r2, [sp, #4] + add r5, r3, r2, lsl #8 + movs r3, #255 + str r3, [r5, #2056] bl NandcWaitFlashReady - ldr r1, .L1385 cmp r4, #7 - it eq - moveq r3, #160 - ldr r2, [sp, #8] - itete eq - mlaeq r1, r3, r8, r1 - addne r1, r1, r8, lsl #6 - addeq r3, r1, #28 - addne r3, r1, #20 - str r3, [sp, #36] + bne .L1325 + ldr r3, .L1425 + movs r0, #160 + mla r0, r0, r8, r3 + add r3, r0, #28 +.L1420: + ldr r2, [sp, #4] cmp r4, #4 - ldr r3, [sp, #4] + str r3, [sp, #20] + ldr r3, [sp] add r3, r3, r2, lsl #8 mov r2, #54 str r2, [r3, #2056] - bne .L1305 + bne .L1328 movs r2, #255 str r2, [r3, #2052] movs r2, #64 str r2, [r3, #2048] movs r2, #204 -.L1382: +.L1421: str r2, [r3, #2052] movs r2, #77 - b .L1383 -.L1305: + b .L1422 +.L1325: + cmp r4, #8 + beq .L1327 + ldr r0, .L1425 + add r0, r0, r8, lsl #6 + add r3, r0, #20 + b .L1420 +.L1426: + .align 2 +.L1425: + .word .LANCHOR20 + .word .LANCHOR196 + .word .LANCHOR25 + .word .LANCHOR26 + .word .LANCHOR6 +.L1328: subs r2, r4, #5 cmp r2, #1 - bhi .L1307 - ldr r2, .L1385 + bhi .L1330 + ldr r2, .L1427 ldrb r2, [r2, #4] @ zero_extendqisi2 str r2, [r3, #2052] movs r2, #82 -.L1383: +.L1422: str r2, [r3, #2048] +.L1329: + ldr r2, [sp, #4] cmp r4, #6 - ldr r3, [sp, #4] - mov r0, r8 - ldr r2, [sp, #8] - add r5, r3, r2, lsl #8 - mov r3, #22 - ldr r2, [sp, #8] - str r3, [r5, #2056] - mov r3, #23 - str r3, [r5, #2056] - mov r3, #4 - str r3, [r5, #2056] - mov r3, #25 - str r3, [r5, #2056] - mov r3, #0 - str r3, [r5, #2056] - str r3, [r5, #2052] - str r3, [r5, #2052] + ldr r3, [sp] + add r3, r3, r2, lsl #8 + 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] it eq - moveq r3, #31 - str r3, [r5, #2052] - movs r3, #2 - str r3, [r5, #2052] - movs r3, #0 - str r3, [r5, #2052] - ldr r3, [sp, #4] + moveq r2, #31 + str r2, [r3, #2052] + movs r2, #2 + str r2, [r3, #2052] + movs r2, #0 + str r2, [r3, #2052] +.L1372: + ldr r2, [sp, #4] + mov r0, r8 + ldr r3, [sp] add r3, r3, r2, lsl #8 movs r2, #48 str r2, [r3, #2056] bl NandcWaitFlashReady subs r3, r4, #5 cmp r3, #1 - str r3, [sp, #40] - bls .L1344 + str r3, [sp, #36] + bls .L1375 + cmp r4, #8 + beq .L1375 cmp r4, #7 ite eq moveq r2, #32 movne r2, #2 -.L1310: - ldr r3, .L1385+20 +.L1333: + ldr r3, .L1427+4 subs r2, r2, #1 + ldm sp, {r5, r6} ldr r3, [r3] + add r5, r5, r6, lsl #8 subs r1, r3, #1 uxtab r2, r3, r2 mov r0, r1 -.L1311: - ldr r6, [r5, #2048] - strb r6, [r0, #1]! - cmp r2, r0 - bne .L1311 - cmp r4, #7 - bne .L1312 + str r5, [sp, #8] +.L1334: + ldr r5, [sp, #8] + ldr r5, [r5, #2048] + strb r5, [r0, #1]! + cmp r0, r2 + bne .L1334 + cmp r4, #8 + bne .L1335 movs r2, #0 -.L1314: +.L1337: ldrb r0, [r3, r2, lsl #2] @ zero_extendqisi2 uxtb r1, r2 - cmp r0, #12 - beq .L1313 + cmp r0, #50 + beq .L1336 add r0, r3, r2, lsl #2 ldrb r0, [r0, #1] @ zero_extendqisi2 - cmp r0, #10 - beq .L1313 + cmp r0, #5 + beq .L1336 adds r2, r2, #1 cmp r2, #8 - bne .L1314 -.L1315: + bne .L1337 +.L1338: movs r1, #0 - ldr r0, .L1385+24 + ldr r0, .L1427+8 bl printf -.L1317: - b .L1317 -.L1307: +.L1340: + b .L1340 +.L1330: + cmp r4, #7 + bne .L1329 movs r2, #174 str r2, [r3, #2052] movs r2, #0 str r2, [r3, #2048] movs r2, #176 - b .L1382 -.L1344: + b .L1421 +.L1375: movs r2, #16 - b .L1310 -.L1386: - .align 2 -.L1385: - .word .LANCHOR20 - .word .LANCHOR196 - .word .LANCHOR25 - .word .LANCHOR26 - .word .LANCHOR6 - .word .LANCHOR147 - .word .LC21 -.L1313: + b .L1333 +.L1336: cmp r1, #6 - bhi .L1315 -.L1316: - ldr r3, .L1387 - ldr lr, [r3] - mov r3, lr -.L1321: - ldr r1, [sp, #52] - sub r2, r3, lr - cmp r1, r2 - bgt .L1322 - ldr r3, .L1387 + bhi .L1338 +.L1339: + ldr r3, .L1427+4 + ldr r2, [r3] + mov r3, r2 +.L1349: + ldr r0, [sp, #48] + subs r1, r3, r2 + cmp r1, r0 + blt .L1350 + ldr r3, .L1427+4 ldr r1, [r3] ldr r3, [sp, #32] adds r0, r1, r3 movs r3, #8 -.L1324: - mov r7, r0 - movs r6, #0 -.L1323: - ldr r2, [r7] - adds r6, r6, #1 - mvns r2, r2 - str r2, [r7], #4 - ldr r2, [sp, #12] - cmp r2, r6 - bgt .L1323 - ldr r2, [sp, #48] +.L1352: + mov r6, r0 + movs r5, #0 +.L1351: + ldrh r7, [r6] + adds r5, r5, #1 + mvns r7, r7 + strh r7, [r6], #2 @ movhi + ldr r7, [sp, #12] + cmp r7, r5 + bgt .L1351 + ldr r5, [sp, #44] subs r3, r3, #1 - add r0, r0, r2 - bne .L1324 - str r1, [sp, #20] + add r0, r0, r5 + bne .L1352 + mov r7, r1 str r3, [sp, #24] -.L1330: - movs r0, #0 - mov r2, r0 -.L1329: +.L1358: + movs r5, #0 + mov r0, r5 +.L1357: movs r3, #1 mov ip, #0 - lsl r7, r3, r2 + lsl r6, r3, r0 movs r3, #16 - str r3, [sp, #44] + str r3, [sp, #40] + mov lr, r6 mov r6, r7 - ldr r7, [sp, #20] -.L1327: - ldr r3, [r7] - bics r3, r6, r3 +.L1355: + ldrh r3, [r6] + str r3, [sp, #52] + ldr r3, [sp, #52] + bics r3, lr, r3 ldr r3, [sp, #32] it eq addeq ip, ip, #1 - add r7, r7, r3 - ldr r3, [sp, #44] + add r6, r6, r3 + ldr r3, [sp, #40] subs r3, r3, #1 - str r3, [sp, #44] - bne .L1327 + str r3, [sp, #40] + bne .L1355 cmp ip, #8 - add r2, r2, #1 - itt hi - movhi r3, r6 - orrhi r0, r0, r3 - cmp r2, #32 - bne .L1329 - ldr r3, [sp, #20] - str r0, [r3], #4 - str r3, [sp, #20] + add r0, r0, #1 + ittt hi + movhi r3, lr + orrhi r5, r5, r3 + uxthhi r5, r5 + cmp r0, #16 + bne .L1357 ldr r3, [sp, #24] + strh r5, [r7], #2 @ movhi adds r3, r3, #1 str r3, [sp, #24] - ldr r2, [sp, #24] + ldr r0, [sp, #24] ldr r3, [sp, #12] - cmp r3, r2 - bgt .L1330 - subs r2, r1, #4 - add r0, r1, #28 + cmp r3, r0 + bgt .L1358 + subs r0, r1, #4 + add r5, r1, #28 movs r3, #0 -.L1333: - ldr r6, [r2, #4]! - cbnz r6, .L1332 +.L1361: + ldr r6, [r0, #4]! + cbnz r6, .L1360 adds r3, r3, #1 -.L1332: - cmp r0, r2 - bne .L1333 +.L1360: + cmp r5, r0 + bne .L1361 cmp r3, #7 - ble .L1334 - ldr r0, .L1387+4 + ble .L1362 + ldr r0, .L1427+12 mov r3, #1024 movs r2, #1 bl rknand_print_hex movs r1, #0 - ldr r0, .L1387+8 + ldr r0, .L1427+8 bl printf +.L1363: + b .L1363 .L1335: - b .L1335 -.L1312: + cmp r4, #7 + bne .L1341 + movs r2, #0 +.L1343: + ldrb r0, [r3, r2, lsl #2] @ zero_extendqisi2 + uxtb r1, r2 + cmp r0, #12 + beq .L1342 + add r0, r3, r2, lsl #2 + ldrb r0, [r0, #1] @ zero_extendqisi2 + cmp r0, #10 + beq .L1342 + adds r2, r2, #1 + cmp r2, #8 + bne .L1343 +.L1344: + movs r1, #0 + ldr r0, .L1427+8 + bl printf +.L1345: + b .L1345 +.L1342: + cmp r1, #6 + bls .L1339 + b .L1344 +.L1341: cmp r4, #6 - bne .L1316 + bne .L1339 adds r3, r3, #7 -.L1318: +.L1346: ldrb r2, [r1, #1]! @ zero_extendqisi2 cmp r2, #12 - beq .L1316 + beq .L1339 ldrb r2, [r1, #8] @ zero_extendqisi2 cmp r2, #4 - beq .L1316 - cmp r3, r1 - bne .L1318 + beq .L1339 + cmp r1, r3 + bne .L1346 movs r1, #0 - ldr r0, .L1387+8 + ldr r0, .L1427+8 bl printf -.L1320: - b .L1320 -.L1322: - ldr r2, [r5, #2048] - strb r2, [r3], #1 - b .L1321 -.L1334: +.L1348: + b .L1348 +.L1350: + ldr r1, [sp, #8] + ldr r1, [r1, #2048] + strb r1, [r3], #1 + b .L1349 +.L1362: cmp r4, #6 - beq .L1346 + beq .L1377 cmp r4, #7 + beq .L1378 + cmp r4, #8 ite eq - moveq ip, #10 - movne ip, #8 -.L1336: - add r3, fp, #-1 - ldr r1, [sp, #36] + moveq r6, #5 + movne r6, #8 +.L1364: + add r3, r10, #-1 + ldr r0, [sp, #20] uxtb r3, r3 - movs r0, #0 + movs r5, #0 adds r3, r3, #1 -.L1337: - mov r7, r1 - mov r2, lr -.L1338: - ldrb r6, [r2], #1 @ zero_extendqisi2 - strb r6, [r7], #1 - sub r6, r2, lr - uxtb r6, r6 - cmp fp, r6 - bhi .L1338 - adds r0, r0, #1 - add lr, lr, r3 - cmp r10, r0 - add r1, r1, ip - bgt .L1337 - ldr r3, [sp, #4] +.L1365: + mov ip, r0 + mov r1, r2 +.L1366: + ldrb r7, [r1], #1 @ zero_extendqisi2 + strb r7, [ip], #1 + subs r7, r1, r2 + uxtb r7, r7 + cmp r10, r7 + bhi .L1366 + adds r5, r5, #1 + add r2, r2, r3 + cmp fp, r5 + add r0, r0, r6 + bgt .L1365 + ldr r3, [sp] mov r0, r8 - ldr r2, [sp, #8] - add r6, r3, r2, lsl #8 + ldr r2, [sp, #4] + add r5, r3, r2, lsl #8 movs r3, #255 - str r3, [r6, #2056] + str r3, [r5, #2056] bl NandcWaitFlashReady - ldr r3, [sp, #40] + ldr r3, [sp, #36] cmp r3, #1 - bhi .L1340 + bhi .L1368 movs r3, #54 + ldr r2, [sp, #8] + str r3, [r5, #2056] mov r1, #-1 - str r3, [r6, #2056] - ldr r3, .L1387+12 + ldr r3, .L1427 ldr r0, [sp, #16] ldrb r3, [r3, #4] @ zero_extendqisi2 - str r3, [r5, #2052] + str r3, [r2, #2052] movs r3, #0 - str r3, [r5, #2048] + str r3, [r2, #2048] movs r3, #22 - str r3, [r6, #2056] + str r3, [r5, #2056] bl FlashReadCmd -.L1341: +.L1369: mov r0, r8 bl NandcWaitFlashReady ldr r3, [sp, #28] adds r3, r3, #1 - b .L1384 -.L1346: - mov ip, #4 - b .L1336 -.L1340: - movs r3, #56 - str r3, [r6, #2056] - b .L1341 -.L1388: + b .L1424 +.L1377: + movs r6, #4 + b .L1364 +.L1378: + movs r6, #10 + b .L1364 +.L1368: + cmp r4, #8 + ite eq + moveq r3, #190 + movne r3, #56 + str r3, [r5, #2056] + b .L1369 +.L1327: + movs r3, #120 + movs r2, #23 + str r3, [r5, #2056] + movs r3, #0 + str r3, [r5, #2052] + movs r1, #25 + str r3, [r5, #2052] + str r3, [r5, #2052] + str r2, [r5, #2056] + movs r2, #4 + str r2, [r5, #2056] + str r1, [r5, #2056] + movs r1, #218 + str r1, [r5, #2056] + movs r1, #21 + str r3, [r5, #2056] + str r3, [r5, #2052] + str r3, [r5, #2052] + str r1, [r5, #2052] + str r2, [r5, #2052] + str r3, [r5, #2052] + ldr r3, .L1427+16 + str r3, [sp, #20] + b .L1372 +.L1428: .align 2 -.L1387: - .word .LANCHOR147 - .word .LC22 - .word .LC21 +.L1427: .word .LANCHOR20 + .word .LANCHOR147 + .word .LC21 + .word .LC22 + .word .LANCHOR20+28 .size HynixGetReadRetryDefault, .-HynixGetReadRetryDefault .section .text.FlashGetReadRetryDefault,"ax",%progbits .align 1 @@ -10067,76 +10289,76 @@ FlashGetReadRetryDefault: @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. mov r3, r0 - cbz r0, .L1389 + cbz r0, .L1429 subs r2, r0, #1 - cmp r2, #6 - bhi .L1391 + cmp r2, #7 + bhi .L1431 b HynixGetReadRetryDefault -.L1391: +.L1431: cmp r0, #49 - bne .L1392 - ldr r0, .L1412 + bne .L1432 + ldr r0, .L1452 movs r2, #64 - ldr r1, .L1412+4 + ldr r1, .L1452+4 strb r3, [r0] movs r3, #4 strb r3, [r0, #1] movs r3, #15 strb r3, [r0, #2] -.L1410: +.L1450: adds r0, r0, #4 b ftl_memcpy -.L1392: +.L1432: cmp r0, #33 - beq .L1393 + beq .L1433 sub r2, r0, #65 cmp r2, #1 - bhi .L1394 -.L1393: - ldr r0, .L1412 + bhi .L1434 +.L1433: + ldr r0, .L1452 strb r3, [r0] movs r3, #4 -.L1411: +.L1451: strb r3, [r0, #1] movs r3, #7 strb r3, [r0, #2] movs r2, #45 - ldr r1, .L1412+8 - b .L1410 -.L1394: + ldr r1, .L1452+8 + b .L1450 +.L1434: cmp r0, #34 - beq .L1395 + beq .L1435 cmp r0, #67 - bne .L1396 -.L1395: - ldr r0, .L1412 + bne .L1436 +.L1435: + ldr r0, .L1452 strb r3, [r0] movs r3, #5 - b .L1411 -.L1396: + b .L1451 +.L1436: cmp r0, #35 - beq .L1397 + beq .L1437 cmp r0, #68 - bne .L1389 -.L1397: - ldr r0, .L1412 + bne .L1429 +.L1437: + ldr r0, .L1452 movs r2, #95 - ldr r1, .L1412+12 + ldr r1, .L1452+12 strb r3, [r0] movs r3, #5 strb r3, [r0, #1] movs r3, #17 strb r3, [r0, #2] - b .L1410 -.L1389: + b .L1450 +.L1429: bx lr -.L1413: +.L1453: .align 2 -.L1412: +.L1452: .word .LANCHOR20 - .word .LANCHOR14 - .word .LANCHOR9 - .word .LANCHOR11 + .word .LANCHOR13 + .word .LANCHOR8 + .word .LANCHOR10 .size FlashGetReadRetryDefault, .-FlashGetReadRetryDefault .section .text.FlashInit,"ax",%progbits .align 1 @@ -10155,28 +10377,28 @@ FlashInit: mov r0, #32768 movs r5, #0 bl ftl_malloc - ldr r3, .L1507 - ldr r10, .L1507+132 - ldr r8, .L1507+136 + ldr r3, .L1554 + ldr r10, .L1554+120 + ldr r8, .L1554+124 str r0, [r3] mov r0, #32768 bl ftl_malloc - ldr r3, .L1507+4 - ldr r6, .L1507+8 - ldr r7, .L1507+12 + ldr r3, .L1554+4 + ldr r6, .L1554+8 + ldr r7, .L1554+12 str r0, [r3] mov r0, #4096 bl ftl_malloc - ldr r3, .L1507+16 + ldr r3, .L1554+16 str r0, [r3] mov r0, #32768 bl ftl_malloc - ldr r3, .L1507+20 + ldr r3, .L1554+20 str r0, [r3] mov r0, #4096 bl ftl_malloc - ldr r3, .L1507+24 - ldr r2, .L1507+28 + ldr r3, .L1554+24 + ldr r2, .L1554+28 strb r5, [r8] str r0, [r3] movs r3, #50 @@ -10184,32 +10406,33 @@ FlashInit: mov r0, r4 strb r3, [r2] movs r2, #128 - ldr r3, .L1507+32 - ldr r4, .L1507+36 + ldr r3, .L1554+32 + ldr r4, .L1554+36 strb r5, [r7] str r5, [r3] - ldr r3, .L1507+40 + ldr r3, .L1554+40 str r2, [r3] - ldr r3, .L1507+44 + ldr r3, .L1554+44 str r5, [r3] movs r3, #60 strb r3, [r6] bl NandcInit str r10, [sp, #20] - ldr r10, .L1507+140 + ldr r10, .L1554+128 str r8, [sp, #16] mov r8, r6 mov r6, r4 -.L1419: - uxtb fp, r5 - mov r0, fp - bl FlashReset +.L1459: add r1, r10, r5, lsl #3 + uxtb r2, r5 ldr r3, [r10, r5, lsl #3] - mov r0, fp ldrb r1, [r1, #4] @ zero_extendqisi2 + mov fp, r2 + mov r0, r2 str r3, [sp, #28] str r1, [sp, #24] + bl FlashReset + mov r0, fp bl NandcFlashCs ldr r1, [sp, #24] movs r0, #200 @@ -10240,10 +10463,10 @@ FlashInit: subs r3, r2, #1 uxtb r3, r3 cmp r3, #253 - bhi .L1415 + bhi .L1455 ldrb r1, [r4, #5] @ zero_extendqisi2 ldrb r3, [r4, #1] @ zero_extendqisi2 - ldr r0, .L1507+48 + ldr r0, .L1554+48 str r1, [sp, #12] ldrb r1, [r4, #4] @ zero_extendqisi2 str r1, [sp, #8] @@ -10253,17 +10476,17 @@ FlashInit: str r1, [sp] adds r1, r5, #1 bl printf -.L1415: - cbnz r5, .L1416 +.L1455: + cbnz r5, .L1456 ldrb r3, [r6] @ zero_extendqisi2 subs r3, r3, #1 uxtb r3, r3 cmp r3, #253 - bhi .L1460 + bhi .L1503 ldrb r3, [r6, #1] @ zero_extendqisi2 cmp r3, #255 - beq .L1460 -.L1416: + beq .L1503 +.L1456: ldrb r3, [r4] @ zero_extendqisi2 adds r5, r5, #1 adds r4, r4, #8 @@ -10272,195 +10495,195 @@ FlashInit: moveq r3, #44 strbeq r3, [r4, #-8] cmp r5, #4 - bne .L1419 + bne .L1459 ldrb r3, [r6] @ zero_extendqisi2 cmp r3, #173 - beq .L1420 - ldr r3, .L1507+52 + beq .L1460 + ldr r3, .L1554+52 ldr r0, [r3] bl NandcSetDdrMode -.L1420: +.L1460: mov r2, #852 movs r1, #0 - ldr r0, .L1507+56 + ldr r0, .L1554+56 bl ftl_memset - ldr r4, .L1507+60 - ldr r3, .L1507+64 - ldr r5, .L1507+68 + ldr r4, .L1554+60 + movs r2, #0 + ldr r3, .L1554+64 + ldr r5, .L1554+68 str r3, [r4] - movs r3, #0 - strb r3, [r5] + ldr r3, .L1554+72 + strb r2, [r3] + mov r10, r3 + ldr r2, .L1554+76 + ldr r1, [r2] + cmp r1, r5 + ittt eq + ldreq r3, .L1554+80 + moveq r2, #1 + streq r2, [r3] ldrb r3, [r6, #1] @ zero_extendqisi2 cmp r3, #161 - beq .L1421 + beq .L1462 + cmp r3, #241 + beq .L1462 cmp r3, #218 - beq .L1421 - and r2, r3, #223 + beq .L1462 + and r2, r3, #253 cmp r2, #209 - beq .L1421 + beq .L1462 cmp r3, #220 - bne .L1422 + bne .L1463 ldrb r2, [r6, #3] @ zero_extendqisi2 cmp r2, #149 - bne .L1422 -.L1421: - ldr r1, [sp, #16] + bne .L1463 +.L1462: + ldr r0, [sp, #16] movs r2, #1 - strb r2, [r1] + strb r2, [r0] movs r2, #16 - ldr r1, [sp, #20] + ldr r0, [sp, #20] strb r2, [r8] - strb r2, [r1] - ldrb r1, [r6] @ zero_extendqisi2 - ldr r2, .L1507+72 - cmp r1, #152 - strb r1, [r2, #1] + strb r2, [r0] + ldrb r0, [r6] @ zero_extendqisi2 + ldr r2, .L1554+84 + cmp r0, #152 + strb r0, [r2, #1] strb r3, [r2, #2] - bne .L1423 - ldrsb r1, [r6, #4] - cmp r1, #0 + bne .L1464 + ldrsb r0, [r6, #4] + cmp r0, #0 itt ge - movge r1, #24 - strbge r1, [r8] -.L1423: - ldr r1, .L1507+76 - ldr r0, .L1507+80 - ldr r1, [r1] - cmp r1, r0 - beq .L1424 + movge r0, #24 + strbge r0, [r8] +.L1464: + cmp r1, r5 + beq .L1465 movw r0, #2049 cmp r1, r0 - bne .L1425 -.L1424: + bne .L1466 +.L1465: movs r1, #16 strb r1, [r8] -.L1425: +.L1466: cmp r3, #218 - bne .L1426 + bne .L1467 mov r1, #2048 -.L1503: +.L1550: strh r1, [r2, #14] @ movhi strb r3, [r2, #2] -.L1427: +.L1468: movs r2, #32 - ldr r1, .L1507+84 - ldr r0, .L1507+88 + ldr r1, .L1554+88 + ldr r0, .L1554+92 bl ftl_memcpy movs r2, #32 - ldr r1, .L1507+72 - ldr r0, .L1507+64 + ldr r1, .L1554+84 + ldr r0, .L1554+64 bl ftl_memcpy -.L1422: +.L1463: ldr r3, [sp, #16] - ldr r8, .L1507+144 + ldr r8, .L1554+132 ldrb r3, [r3] @ zero_extendqisi2 cmp r3, #0 - bne .L1429 + bne .L1471 bl FlashLoadPhyInfoInRam - cbnz r0, .L1431 + cbnz r0, .L1473 ldr r3, [r4] - ldr r10, .L1507+100 + ldr fp, .L1554+104 ldrh r3, [r3, #16] lsrs r3, r3, #8 lsls r1, r3, #31 and r0, r3, #7 - strb r0, [r10] - bmi .L1431 + strb r0, [fp] + bmi .L1473 movs r3, #1 strb r3, [r7] bl FlashSetInterfaceMode - ldrb r0, [r10] @ zero_extendqisi2 + ldrb r0, [fp] @ zero_extendqisi2 bl NandcSetMode -.L1431: +.L1473: ldr r3, [r4] ldrb r3, [r3, #26] @ zero_extendqisi2 strb r3, [r8] bl FlashLoadPhyInfo cmp r0, #0 - beq .L1429 + beq .L1471 ldr r3, [r4] - ldr r0, .L1507+92 + ldr r0, .L1554+96 ldrh r1, [r3, #14] bl printf bl FlashLoadPhyInfoInRam adds r2, r0, #1 - beq .L1414 + beq .L1454 bl FlashDieInfoInit ldr r3, [r4] ldrb r0, [r3, #19] @ zero_extendqisi2 bl FlashGetReadRetryDefault ldr r3, [r4] - ldr r2, .L1507+96 + ldr r2, .L1554+100 ldrb r1, [r3, #9] @ zero_extendqisi2 ldrh r2, [r2] addw r2, r2, #4095 cmp r1, r2, asr #12 - blt .L1434 + blt .L1476 ldrh r2, [r3, #14] adds r2, r2, #255 cmp r1, r2, asr #8 - bge .L1435 -.L1434: + bge .L1477 +.L1476: ldrh r2, [r3, #14] bic r2, r2, #255 strh r2, [r3, #14] @ movhi -.L1435: - ldr r3, .L1507+100 +.L1477: + ldr r3, .L1554+104 ldrb r3, [r3] @ zero_extendqisi2 tst r3, #6 - beq .L1436 + beq .L1478 bl FlashSavePhyInfo - ldr r3, .L1507+104 + ldr r3, .L1554+108 movs r0, #0 ldr r1, [r3] bl FlashDdrParaScan -.L1436: +.L1478: bl FlashSavePhyInfo -.L1429: +.L1471: ldr fp, [r4] - ldr r10, .L1507+100 + ldrh r2, [fp, #16] ldrb r3, [fp, #26] @ zero_extendqisi2 ldrh r0, [fp, #10] + ubfx r1, r2, #3, #1 strb r3, [r8] - ldrh r3, [fp, #16] - ubfx r2, r3, #7, #1 - ubfx r1, r3, #3, #1 - strb r2, [r5] - ldr r2, .L1507+108 - ldr r5, .L1507+112 - strb r1, [r2] - ubfx r1, r3, #4, #1 - ldr r2, .L1507+116 - ubfx r3, r3, #8, #3 + ubfx r3, r2, #7, #1 strb r3, [r10] - movs r3, #0 - str r3, [r5] - strb r1, [r2] + ldr r3, .L1554+112 + ldr r10, .L1554+136 + strb r1, [r3] + ubfx r1, r2, #4, #1 + ldr r3, .L1554+116 + ubfx r2, r2, #8, #3 + strb r1, [r3] + ldr r3, .L1554+104 ldrb r1, [fp, #12] @ zero_extendqisi2 + strb r2, [r3] + movs r2, #0 + str r2, [r10] + str r3, [sp, #24] bl __aeabi_idiv mov r1, r0 ldrb r0, [fp, #18] @ zero_extendqisi2 bl BuildFlashLsbPageTable bl FlashDieInfoInit - ldr r3, [r4] - mov ip, r5 - ldrh r2, [r3, #16] - tst r2, #64 - beq .L1438 - ldrb r0, [r3, #19] @ zero_extendqisi2 - ldr r3, .L1507+120 - ldr r2, .L1507+124 - strb r0, [r3] - ldr r3, .L1507+56 - ldrb r1, [r3, #1] @ zero_extendqisi2 - ldrb lr, [r3, #2] @ zero_extendqisi2 - strb r1, [r2] - ldr r1, .L1507+128 - strb lr, [r1] - b .L1508 -.L1509: + ldr r2, [r4] + ldr r3, [sp, #24] + ldrh r1, [r2, #16] + mov fp, r3 + tst r1, #64 + mov r1, r10 + b .L1555 +.L1556: .align 2 -.L1507: +.L1554: .word .LANCHOR147 .word .LANCHOR153 .word .LANCHOR152 @@ -10478,10 +10701,11 @@ FlashInit: .word .LANCHOR20 .word .LANCHOR18 .word .LANCHOR31 - .word .LANCHOR5 - .word .LANCHOR200 - .word .LANCHOR29 .word 1446522928 + .word .LANCHOR5 + .word .LANCHOR119 + .word .LANCHOR29 + .word .LANCHOR200 .word .LANCHOR143+32 .word .LANCHOR7 .word .LC24 @@ -10489,94 +10713,112 @@ FlashInit: .word .LANCHOR24 .word .LANCHOR148 .word .LANCHOR201 - .word .LANCHOR145 .word .LANCHOR27 - .word .LANCHOR10 - .word .LANCHOR13 - .word .LANCHOR151 .word .LANCHOR2 .word .LANCHOR1 .word .LANCHOR6 - .word .LANCHOR8 -.L1508: - add lr, r0, #-1 - cmp lr, #6 - mov lr, r1 - bhi .L1439 - ldr r2, .L1510 - str r2, [r5] - subs r2, r0, #5 - cmp r2, #1 - bhi .L1440 - ldr r2, .L1510+4 - adds r3, r3, #20 - movs r1, #1 - str r1, [r2] -.L1441: + .word .LANCHOR15 + .word .LANCHOR145 +.L1555: + beq .L1480 + ldrb r0, [r2, #19] @ zero_extendqisi2 + ldr r3, .L1557 + ldr ip, .L1557+56 + strb r0, [r3] + ldrb r2, [ip, #1] @ zero_extendqisi2 + ldr r3, .L1557+4 + ldrb ip, [ip, #2] @ zero_extendqisi2 + strb r2, [r3] + ldr r2, .L1557+8 + strb ip, [r2] + add ip, r0, #-1 + cmp ip, #7 + mov ip, r2 + bhi .L1481 + ldr r3, .L1557+12 + str r3, [r10] + subs r3, r0, #5 + cmp r3, #1 + bls .L1482 + cmp r0, #8 + bne .L1483 +.L1482: + ldr r3, .L1557+16 + movs r2, #1 + str r2, [r3] +.L1483: + cmp r0, #7 + ldr r3, .L1557+20 + beq .L1484 + sub r2, r3, #8 + cmp r0, #8 + it ne + movne r3, r2 +.L1484: subs r1, r3, #1 movs r2, #0 adds r3, r3, #31 -.L1443: - ldrsb r5, [r1, #1]! - cbnz r5, .L1442 +.L1486: + ldrsb ip, [r1, #1]! + cmp ip, #0 + bne .L1485 adds r2, r2, #1 -.L1442: +.L1485: cmp r3, r1 - bne .L1443 + bne .L1486 cmp r2, #27 - bls .L1438 + bls .L1480 bl FlashGetReadRetryDefault bl FlashSavePhyInfo -.L1438: - ldr r3, .L1510+8 - ldr r2, [r3] - ldr r3, .L1510+12 - cmp r2, r3 - bne .L1454 +.L1480: + ldr r3, .L1557+24 + ldr r3, [r3] + cmp r3, r5 + bne .L1497 ldrb r3, [r8] @ zero_extendqisi2 - cbz r3, .L1454 + cbz r3, .L1497 ldr r3, [r4] movs r2, #0 strb r2, [r3, #18] -.L1454: +.L1497: ldrb r3, [r6] @ zero_extendqisi2 cmp r3, #44 - bne .L1455 + bne .L1498 ldrb r3, [r7] @ zero_extendqisi2 - cbz r3, .L1455 + cbz r3, .L1498 movs r3, #0 movs r0, #1 strb r3, [r7] bl FlashSetInterfaceMode movs r0, #1 bl NandcSetMode -.L1455: +.L1498: + ldrb r3, [fp] @ zero_extendqisi2 + tst r3, #6 + beq .L1499 + ldrb r2, [r7] @ zero_extendqisi2 + cbnz r2, .L1500 + lsls r3, r3, #31 + bmi .L1499 +.L1500: movs r0, #0 bl flash_enter_slc_mode - ldrb r3, [r10] @ zero_extendqisi2 - tst r3, #6 - beq .L1456 - ldrb r2, [r7] @ zero_extendqisi2 - cbnz r2, .L1457 - lsls r3, r3, #31 - bmi .L1456 -.L1457: - ldr r3, .L1510+16 + ldr r3, .L1557+28 movs r0, #0 ldr r1, [r3] bl FlashDdrParaScan -.L1456: movs r0, #0 - movs r7, #16 bl flash_exit_slc_mode +.L1499: ldr r3, [r4] + movs r7, #16 ldrb r0, [r3, #20] @ zero_extendqisi2 bl FlashBchSel - ldr r0, .L1510+20 + ldr r0, .L1557+32 bl FlashReadIdbDataRaw ldr r8, [r4] ldr r3, [sp, #20] - ldr r4, .L1510+24 + ldr r4, .L1557+36 ldrb r1, [r8, #12] @ zero_extendqisi2 strb r7, [r3] ldrh r5, [r8, #10] @@ -10587,7 +10829,7 @@ FlashInit: ldr r3, [r6] ldrh r6, [r8, #14] str r3, [r4] - ldr r3, .L1510+28 + ldr r3, .L1557+40 ldrb r3, [r3] @ zero_extendqisi2 strh r3, [r4, #10] @ movhi ldrb r3, [r8, #13] @ zero_extendqisi2 @@ -10607,7 +10849,7 @@ FlashInit: uxth r5, r5 cmp r2, #1 strh r5, [r4, #22] @ movhi - bne .L1458 + bne .L1501 lsls r3, r3, #1 lsrs r2, r6, #1 lsls r5, r5, #1 @@ -10616,104 +10858,108 @@ FlashInit: strh r2, [r4, #14] @ movhi strh r5, [r4, #22] @ movhi strh r3, [r4, #26] @ movhi -.L1458: +.L1501: ldrb r0, [r8, #20] @ zero_extendqisi2 bl FlashBchSel movs r0, #0 -.L1414: +.L1454: add sp, sp, #32 @ sp needed pop {r4, r5, r6, r7, r8, r10, fp, pc} -.L1426: +.L1467: cmp r3, #220 - bne .L1427 + bne .L1469 mov r1, #4096 - b .L1503 -.L1440: - add r2, r3, #28 - adds r3, r3, #20 - cmp r0, #7 - it eq - moveq r3, r2 - b .L1441 -.L1439: - sub r3, r0, #17 - cmp r3, #2 - bhi .L1445 - ldr r3, .L1510+32 + b .L1550 +.L1469: + cmp r3, #211 + itttt eq + moveq r3, #4096 + strheq r3, [r2, #14] @ movhi + moveq r3, #2 + strbeq r3, [r2, #13] + b .L1468 +.L1481: + sub lr, r0, #17 + cmp lr, #2 + bhi .L1488 + ldr r3, .L1557+44 cmp r0, #19 - str r3, [r5] + str r3, [r10] ite ne movne r3, #7 moveq r3, #15 - strb r3, [r1] - b .L1438 -.L1445: - cmp r0, #33 - beq .L1447 - sub r3, r0, #65 - cmp r3, #1 - bhi .L1448 -.L1447: - ldr r3, .L1510+36 - str r3, [ip] - movs r3, #4 strb r3, [r2] + b .L1480 +.L1488: + cmp r0, #33 + beq .L1490 + sub r2, r0, #65 + cmp r2, #1 + bhi .L1491 +.L1490: + ldr r2, .L1557+48 + str r2, [r1] + movs r2, #4 + strb r2, [r3] movs r3, #7 - strb r3, [lr] - b .L1438 -.L1448: - sub r3, r0, #67 - uxtb r3, r3 - cmp r3, #1 - bls .L1449 - sub r1, r0, #34 - cmp r1, #1 - bhi .L1450 -.L1449: - ldr r1, .L1510+36 + strb r3, [ip] + b .L1480 +.L1491: + sub r2, r0, #67 + uxtb r2, r2 + cmp r2, #1 + bls .L1492 + sub ip, r0, #34 + cmp ip, #1 + bhi .L1493 +.L1492: + ldr ip, .L1557+48 cmp r0, #35 - str r1, [ip] - ldr r1, .L1510+40 - beq .L1451 + str ip, [r1] + ldr r1, .L1557+8 + beq .L1494 cmp r0, #68 - beq .L1451 + beq .L1494 movs r0, #7 -.L1504: - cmp r3, #1 +.L1551: + cmp r2, #1 strb r0, [r1] ite ls - movls r3, #4 - movhi r3, #5 - strb r3, [r2] - b .L1438 -.L1451: + movls r2, #4 + movhi r2, #5 + strb r2, [r3] + b .L1480 +.L1494: movs r0, #17 - b .L1504 -.L1450: + b .L1551 +.L1493: cmp r0, #49 itt eq - ldreq r3, .L1510+44 - streq r3, [r5] - b .L1438 -.L1460: + ldreq r3, .L1557+52 + streq r3, [r10] + b .L1480 +.L1503: mvn r0, #1 - b .L1414 -.L1511: + b .L1454 +.L1558: .align 2 -.L1510: +.L1557: + .word .LANCHOR9 + .word .LANCHOR12 + .word .LANCHOR151 .word HynixReadRetrial .word .LANCHOR36 - .word .LANCHOR29 - .word 1446522928 + .word .LANCHOR20+28 + .word .LANCHOR119 .word .LANCHOR148 .word .LANCHOR141 - .word .LANCHOR15 + .word .LANCHOR14 .word .LANCHOR25 .word MicronReadRetrial .word ToshibaReadRetrial - .word .LANCHOR151 .word SamsungReadRetrial + .word .LANCHOR20 .size FlashInit, .-FlashInit .section .text.FlashReadSlc2KPages,"ax",%progbits .align 1 @@ -10728,19 +10974,19 @@ FlashReadSlc2KPages: @ frame_needed = 0, uses_anonymous_args = 0 push {r0, r1, r2, r3, r4, r5, r6, r7, r8, r10, fp, lr} mov r8, r1 - ldr r3, .L1541 + ldr r3, .L1588 mov fp, r2 mov r4, r0 movs r7, #0 ldrb r10, [r3, #9] @ zero_extendqisi2 -.L1513: +.L1560: cmp r7, r8 - bne .L1526 + bne .L1573 movs r0, #0 add sp, sp, #16 @ sp needed pop {r4, r5, r6, r7, r8, r10, fp, pc} -.L1526: +.L1573: sub r3, r8, r7 add r2, sp, #12 uxtb r3, r3 @@ -10749,19 +10995,19 @@ FlashReadSlc2KPages: str r3, [sp] add r3, sp, #8 bl LogAddr2PhyAddr - ldr r2, .L1541+4 + ldr r2, .L1588+4 ldr r3, [sp, #8] ldrb r2, [r2] @ zero_extendqisi2 cmp r2, r3 - bhi .L1514 + bhi .L1561 mov r3, #-1 str r3, [r4] -.L1515: +.L1562: adds r7, r7, #1 adds r4, r4, #36 - b .L1513 -.L1514: - ldr r2, .L1541+8 + b .L1560 +.L1561: + ldr r2, .L1588+8 ldrb r5, [r2, r3] @ zero_extendqisi2 mov r0, r5 bl NandcWaitFlashReady @@ -10779,7 +11025,7 @@ FlashReadSlc2KPages: str r3, [sp] ldr r3, [r4, #8] bl NandcXferData - ldr r3, .L1541+12 + ldr r3, .L1588+12 mov r6, r0 ldr r1, [sp, #12] mov r0, r5 @@ -10787,13 +11033,13 @@ FlashReadSlc2KPages: add r1, r1, r3 bl FlashReadCmd ldr r3, [r4, #8] - cbz r3, .L1516 + cbz r3, .L1563 add r3, r3, #2048 -.L1516: +.L1563: ldr r2, [r4, #12] - cbz r2, .L1517 + cbz r2, .L1564 adds r2, r2, #8 -.L1517: +.L1564: str r2, [sp] movs r1, #0 mov r2, r10 @@ -10802,60 +11048,60 @@ FlashReadSlc2KPages: mov r1, r0 mov r0, r5 bl NandcFlashDeCs - ldr r3, .L1541+16 + ldr r3, .L1588+16 cmp r6, r1 it cc movcc r6, r1 ldrb r2, [r3] @ zero_extendqisi2 add r3, r2, r2, lsl #1 cmp r6, r3, asr #2 - bls .L1518 + bls .L1565 adds r5, r6, #1 it ne movne r6, #256 str r6, [r4] -.L1521: +.L1568: ldr r3, [r4, #12] - cbz r3, .L1522 + cbz r3, .L1569 ldr r1, [r3, #12] adds r1, r1, #1 - bne .L1522 + bne .L1569 ldr r1, [r3, #8] adds r0, r1, #1 - bne .L1522 + bne .L1569 ldr r3, [r3] adds r3, r3, #1 it ne strne r1, [r4] -.L1522: +.L1569: ldr r3, [r4] adds r1, r3, #1 - bne .L1515 + bne .L1562 ldr r1, [r4, #4] - ldr r0, .L1541+20 + ldr r0, .L1588+20 bl printf ldr r1, [r4, #8] - cbz r1, .L1524 + cbz r1, .L1571 movs r3, #8 movs r2, #4 - ldr r0, .L1541+24 + ldr r0, .L1588+24 bl rknand_print_hex -.L1524: +.L1571: ldr r1, [r4, #12] cmp r1, #0 - beq .L1515 + beq .L1562 movs r3, #4 - ldr r0, .L1541+28 + ldr r0, .L1588+28 mov r2, r3 bl rknand_print_hex - b .L1515 -.L1518: + b .L1562 +.L1565: movs r3, #0 str r3, [r4] - b .L1521 -.L1542: + b .L1568 +.L1589: .align 2 -.L1541: +.L1588: .word .LANCHOR31 .word .LANCHOR25 .word .LANCHOR26 @@ -10876,36 +11122,36 @@ FlashReadSlc2KPages: FlashReadPages: @ args = 0, pretend = 0, frame = 32 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L1634 + ldr r3, .L1681 push {r4, r5, r6, r7, r8, r10, fp, lr} sub sp, sp, #40 mov r10, r0 str r1, [sp, #24] ldrb r3, [r3] @ zero_extendqisi2 str r2, [sp, #12] - cbnz r3, .L1544 - ldr r2, .L1634+4 + cbnz r3, .L1591 + ldr r2, .L1681+4 mov r8, r3 str r3, [sp, #8] ldrb r2, [r2, #9] @ zero_extendqisi2 str r2, [sp, #20] - ldr r2, .L1634+8 + ldr r2, .L1681+8 ldrb r2, [r2] @ zero_extendqisi2 str r2, [sp, #28] -.L1545: +.L1592: ldr r3, [sp, #8] ldr r2, [sp, #24] cmp r3, r2 - bcc .L1583 + bcc .L1630 movs r0, #0 - b .L1543 -.L1544: + b .L1590 +.L1591: bl FlashReadSlc2KPages -.L1543: +.L1590: add sp, sp, #40 @ sp needed pop {r4, r5, r6, r7, r8, r10, fp, pc} -.L1583: +.L1630: ldr r2, [sp, #8] movs r3, #36 ldr r1, [sp, #12] @@ -10921,85 +11167,86 @@ FlashReadPages: str r3, [sp] add r3, sp, #32 bl LogAddr2PhyAddr - ldr r2, .L1634+12 + ldr r2, .L1681+12 mov r5, r0 ldr r3, [sp, #32] ldrb r2, [r2] @ zero_extendqisi2 cmp r2, r3 - bhi .L1547 + bhi .L1594 mov r3, #-1 str r3, [r10, fp] -.L1548: +.L1595: ldr r3, [sp, #8] adds r3, r3, #1 str r3, [sp, #8] - b .L1545 -.L1547: - ldr r2, .L1634+16 + b .L1592 +.L1594: + ldr r2, .L1681+16 ldrb r4, [r2, r3] @ zero_extendqisi2 - ldr r3, .L1634+20 + ldr r3, .L1681+20 mov r0, r4 ldrb r3, [r3] @ zero_extendqisi2 cmp r3, #0 it eq moveq r5, #0 bl NandcWaitFlashReady - ldr r3, .L1634+24 + ldr r3, .L1681+24 ldr r3, [r3] - ldrb r1, [r3, #19] @ zero_extendqisi2 - subs r3, r1, #1 - cmp r3, #6 - bhi .L1550 - ldr r3, .L1634+28 - cmp r1, #7 - add r2, r3, r4 - ldrb r3, [r2, #12] @ zero_extendqisi2 - it eq - ldrbeq r3, [r2, #20] @ zero_extendqisi2 - ldr r2, .L1634+32 + ldrb r2, [r3, #19] @ zero_extendqisi2 + subs r3, r2, #1 + cmp r3, #7 + bhi .L1597 + ldr r3, .L1681+28 + subs r2, r2, #7 + cmp r2, #1 + ldr r2, .L1681+32 + add r1, r3, r4 + ldrb r3, [r1, #12] @ zero_extendqisi2 ldrb r2, [r2, r4] @ zero_extendqisi2 + it ls + ldrbls r3, [r1, #20] @ zero_extendqisi2 cmp r2, r3 - beq .L1550 - ldr r2, .L1634+36 + beq .L1597 + ldr r2, .L1681+36 mov r0, r4 ldrb r1, [r2, #-3] @ zero_extendqisi2 bl HynixSetRRPara -.L1550: +.L1597: mov r0, r4 bl NandcFlashCs ldr r3, [sp, #12] cmp r3, #1 - beq .L1552 + beq .L1599 ldr r3, [sp, #16] cmp r3, #0 - bge .L1553 -.L1552: - ldr r3, .L1634+40 + bge .L1600 +.L1599: + ldr r3, .L1681+40 ldrb r3, [r3] @ zero_extendqisi2 - cbz r3, .L1553 + cbz r3, .L1600 mov r0, r4 bl flash_enter_slc_mode -.L1560: +.L1607: ldr r1, [sp, #36] adds r6, r1, #1 - bne .L1555 + bne .L1602 cmp r4, #255 - beq .L1585 -.L1555: - cbz r5, .L1557 - ldr r3, .L1634+44 + beq .L1632 +.L1602: + cbz r5, .L1604 + ldr r3, .L1681+44 mov r0, r4 ldr r2, [r3] add r2, r2, r1 bl FlashReadDpCmd -.L1558: +.L1605: mov r0, r4 bl NandcWaitFlashReady - cbz r5, .L1556 + cbz r5, .L1603 ldr r1, [sp, #36] mov r0, r4 bl FlashReadDpDataOutCmd -.L1556: +.L1603: ldr r3, [r7, #12] movs r1, #0 ldr r2, [sp, #20] @@ -11007,30 +11254,30 @@ FlashReadPages: str r3, [sp] ldr r3, [r7, #8] bl NandcXferData - ldr r3, .L1634+8 + ldr r3, .L1681+8 mov r6, r0 ldrb r3, [r3] @ zero_extendqisi2 - cbz r3, .L1559 + cbz r3, .L1606 adds r0, r0, #1 - bne .L1559 - ldr r3, .L1634+8 + bne .L1606 + ldr r3, .L1681+8 movs r5, #0 strb r5, [r3] - b .L1560 -.L1553: + b .L1607 +.L1600: mov r0, r4 bl flash_exit_slc_mode - b .L1560 -.L1557: + b .L1607 +.L1604: mov r0, r4 bl FlashReadCmd - b .L1558 -.L1585: + b .L1605 +.L1632: movs r5, #0 - b .L1556 -.L1559: - cbz r5, .L1561 - ldr r3, .L1634+44 + b .L1603 +.L1606: + cbz r5, .L1608 + ldr r3, .L1681+44 mov r0, r4 ldr r1, [sp, #36] ldr r3, [r3] @@ -11049,30 +11296,30 @@ FlashReadPages: mov r8, r0 it eq moveq r5, #0 -.L1561: +.L1608: mov r0, r4 bl NandcFlashDeCs - ldr r3, .L1634+8 + ldr r3, .L1681+8 adds r1, r6, #1 ldrb r2, [sp, #28] @ zero_extendqisi2 strb r2, [r3] - bne .L1562 - ldr r3, .L1634+48 + bne .L1609 + ldr r3, .L1681+48 ldrb r3, [r3] @ zero_extendqisi2 - cbnz r3, .L1563 -.L1567: - ldr r3, .L1634+52 + cbnz r3, .L1610 +.L1614: + ldr r3, .L1681+52 ldr r5, [r3] cmp r5, #0 - bne .L1564 + bne .L1611 ldr r3, [r7, #12] mov r0, r4 ldr r2, [r7, #8] ldr r1, [sp, #36] bl FlashReadRawPage - b .L1633 -.L1563: - ldr r3, .L1634+56 + b .L1680 +.L1610: + ldr r3, .L1681+56 mov r0, r4 ldr r1, [sp, #36] ldr r3, [r3] @@ -11084,33 +11331,33 @@ FlashReadPages: bl FlashDdrTunningRead adds r2, r0, #1 mov r6, r0 - beq .L1566 - ldr r3, .L1634+60 + beq .L1613 + ldr r3, .L1681+60 ldrb r3, [r3] @ zero_extendqisi2 cmp r0, r3, lsr #1 - bls .L1586 -.L1566: + bls .L1633 +.L1613: ubfx r0, r5, #8, #8 bl NandcSetDdrPara adds r3, r6, #1 - beq .L1567 -.L1586: + beq .L1614 +.L1633: movs r5, #0 -.L1562: - ldr r3, .L1634+60 +.L1609: + ldr r3, .L1681+60 ldrb r3, [r3] @ zero_extendqisi2 add r3, r3, r3, lsl #1 cmp r6, r3, asr #2 - bls .L1575 - ldr r3, .L1634+52 + bls .L1622 + ldr r3, .L1681+52 ldr r3, [r3] cmp r3, #0 - bne .L1575 + bne .L1622 mov r6, #256 - b .L1570 -.L1635: + b .L1617 +.L1682: .align 2 -.L1634: +.L1681: .word .LANCHOR1 .word .LANCHOR31 .word .LANCHOR5 @@ -11121,13 +11368,13 @@ FlashReadPages: .word .LANCHOR20 .word .LANCHOR21 .word .LANCHOR20+4 - .word .LANCHOR8 + .word .LANCHOR15 .word .LANCHOR3 .word .LANCHOR30 .word .LANCHOR145 .word .LANCHOR19 .word .LANCHOR33 -.L1564: +.L1611: ldr r3, [r7, #12] mov r0, r4 ldr r2, [r7, #8] @@ -11135,133 +11382,133 @@ FlashReadPages: blx r5 adds r5, r0, #1 mov r6, r0 - bne .L1568 - ldr r3, .L1636 + bne .L1615 + ldr r3, .L1683 ldr r3, [r3] ldrb r3, [r3, #19] @ zero_extendqisi2 subs r3, r3, #1 - cmp r3, #6 - bhi .L1569 - ldr r2, .L1636+4 + cmp r3, #7 + bhi .L1616 + ldr r2, .L1683+4 movs r3, #0 mov r0, r4 ldrb r1, [r2, #-3] @ zero_extendqisi2 bl HynixSetRRPara -.L1569: +.L1616: ldr r3, [r7, #12] mov r0, r4 ldr r2, [r7, #8] ldr r1, [sp, #36] bl FlashReadRawPage - ldr r2, .L1636+8 + ldr r2, .L1683+8 mov r6, r0 mov r3, r0 ldr r1, [r7, #4] - ldr r0, .L1636+12 + ldr r0, .L1683+12 ldrb r2, [r2] @ zero_extendqisi2 bl printf adds r0, r6, #1 - bne .L1568 - ldr r3, .L1636+16 + bne .L1615 + ldr r3, .L1683+16 ldrb r5, [r3] @ zero_extendqisi2 - cbz r5, .L1570 + cbz r5, .L1617 ldr r3, [sp, #12] mov r0, r4 cmp r3, #1 - beq .L1571 + beq .L1618 ldr r3, [sp, #16] cmp r3, #0 - bge .L1572 -.L1571: + bge .L1619 +.L1618: bl flash_enter_slc_mode -.L1573: - ldr r3, .L1636+20 +.L1620: + ldr r3, .L1683+20 mov r0, r4 ldr r2, [r7, #8] ldr r1, [sp, #36] ldr r5, [r3] ldr r3, [r7, #12] blx r5 -.L1633: +.L1680: adds r1, r0, #1 mov r6, r0 mov r5, #0 - bne .L1575 -.L1570: + bne .L1622 +.L1617: str r6, [r10, fp] -.L1576: +.L1623: ldr r3, [r10, fp] adds r2, r3, #1 - bne .L1578 - ldr r2, .L1636+8 + bne .L1625 + ldr r2, .L1683+8 ldr r1, [r7, #4] - ldr r0, .L1636+24 + ldr r0, .L1683+24 ldrb r2, [r2] @ zero_extendqisi2 bl printf ldr r1, [r7, #12] - cbz r1, .L1578 + cbz r1, .L1625 movs r3, #4 - ldr r0, .L1636+28 + ldr r0, .L1683+28 mov r2, r3 bl rknand_print_hex -.L1578: - cbz r5, .L1580 - ldr r3, .L1636+8 +.L1625: + cbz r5, .L1627 + ldr r3, .L1683+8 ldrb r3, [r3] @ zero_extendqisi2 add r3, r3, r3, lsl #1 cmp r8, r3, asr #2 - bls .L1581 - ldr r3, .L1636+20 + bls .L1628 + ldr r3, .L1683+20 ldr r3, [r3] cmp r3, #0 it eq moveq r8, #256 -.L1581: +.L1628: cmp r8, #-1 add r3, fp, #36 str r8, [r10, r3] - beq .L1580 + beq .L1627 cmp r8, #256 itt ne movne r2, #0 strne r2, [r10, r3] -.L1580: +.L1627: ldr r3, [sp, #8] add r3, r3, r5 str r3, [sp, #8] ldr r3, [sp, #12] cmp r3, #1 - beq .L1582 + beq .L1629 ldr r3, [sp, #16] cmp r3, #0 - bge .L1548 -.L1582: - ldr r3, .L1636+16 + bge .L1595 +.L1629: + ldr r3, .L1683+16 ldrb r3, [r3] @ zero_extendqisi2 cmp r3, #0 - beq .L1548 + beq .L1595 mov r0, r4 bl flash_exit_slc_mode - b .L1548 -.L1572: + b .L1595 +.L1619: bl flash_exit_slc_mode - b .L1573 -.L1568: + b .L1620 +.L1615: movs r5, #0 -.L1575: +.L1622: cmp r6, #256 - beq .L1570 + beq .L1617 movs r3, #0 str r3, [r10, fp] - b .L1576 -.L1637: + b .L1623 +.L1684: .align 2 -.L1636: +.L1683: .word .LANCHOR18 .word .LANCHOR20+4 .word .LANCHOR33 .word .LC28 - .word .LANCHOR8 + .word .LANCHOR15 .word .LANCHOR145 .word .LC25 .word .LC27 @@ -11283,23 +11530,23 @@ FlashProgSlc2KPages: mov r8, r1 mov r4, r0 mov r6, r0 - ldr r3, .L1667 + ldr r3, .L1714 movs r7, #0 - ldr fp, .L1667+28 + ldr fp, .L1714+28 str r2, [sp, #8] ldrb r10, [r3, #9] @ zero_extendqisi2 -.L1639: +.L1686: cmp r7, r8 - bne .L1645 + bne .L1692 ldr r3, [sp, #12] cmp r3, #0 - bne .L1656 -.L1666: + bne .L1703 +.L1713: movs r0, #0 add sp, sp, #64 @ sp needed pop {r4, r5, r6, r7, r8, r10, fp, pc} -.L1645: +.L1692: sub r3, r8, r7 add r2, sp, #20 uxtb r3, r3 @@ -11308,19 +11555,19 @@ FlashProgSlc2KPages: str r3, [sp] add r3, sp, #24 bl LogAddr2PhyAddr - ldr r2, .L1667+4 + ldr r2, .L1714+4 ldr r3, [sp, #24] ldrb r2, [r2] @ zero_extendqisi2 cmp r2, r3 - bhi .L1640 + bhi .L1687 mov r3, #-1 str r3, [r6] -.L1641: +.L1688: adds r7, r7, #1 adds r6, r6, #36 - b .L1639 -.L1640: - ldr r2, .L1667+8 + b .L1686 +.L1687: + ldr r2, .L1714+8 ldrb r5, [r2, r3] @ zero_extendqisi2 mov r0, r5 bl NandcWaitFlashReady @@ -11352,13 +11599,13 @@ FlashProgSlc2KPages: add r1, r1, r3 bl FlashProgFirstCmd ldr r3, [r6, #8] - cbz r3, .L1642 + cbz r3, .L1689 add r3, r3, #2048 -.L1642: +.L1689: ldr r2, [r6, #12] - cbz r2, .L1643 + cbz r2, .L1690 adds r2, r2, #8 -.L1643: +.L1690: str r2, [sp] movs r1, #1 mov r2, r10 @@ -11380,24 +11627,24 @@ FlashProgSlc2KPages: movmi r3, #-1 strmi r3, [r6] bl NandcFlashDeCs - b .L1641 -.L1652: + b .L1688 +.L1699: ldr r3, [r4] adds r3, r3, #1 - bne .L1647 + bne .L1694 ldr r1, [r4, #4] - ldr r0, .L1667+12 + ldr r0, .L1714+12 bl printf -.L1648: +.L1695: add r8, r8, #1 adds r4, r4, #36 -.L1646: +.L1693: cmp r7, r8 - bne .L1652 - b .L1666 -.L1647: + bne .L1699 + b .L1713 +.L1694: sub r3, r7, r8 - ldr fp, .L1667+32 + ldr fp, .L1714+32 uxtb r3, r3 add r2, sp, #20 ldr r1, [sp, #8] @@ -11426,46 +11673,46 @@ FlashProgSlc2KPages: bl FlashReadPages ldr r5, [sp, #28] adds r3, r5, #1 - bne .L1649 + bne .L1696 ldr r1, [r4, #4] - ldr r0, .L1667+16 + ldr r0, .L1714+16 bl printf str r5, [r4] -.L1649: +.L1696: ldr r3, [r4, #12] - cbz r3, .L1650 + cbz r3, .L1697 ldr r2, [r3] ldr r3, [fp] ldr r3, [r3] cmp r2, r3 - beq .L1650 + beq .L1697 ldr r1, [r4, #4] - ldr r0, .L1667+20 + ldr r0, .L1714+20 bl printf mov r3, #-1 str r3, [r4] -.L1650: +.L1697: ldr r3, [r4, #8] cmp r3, #0 - beq .L1648 + beq .L1695 ldr r2, [r3] ldr r3, [r10] ldr r3, [r3] cmp r2, r3 - beq .L1648 + beq .L1695 ldr r1, [r4, #4] - ldr r0, .L1667+24 + ldr r0, .L1714+24 bl printf mov r3, #-1 str r3, [r4] - b .L1648 -.L1656: + b .L1695 +.L1703: mov r8, #0 - ldr r10, .L1667+36 - b .L1646 -.L1668: + ldr r10, .L1714+36 + b .L1693 +.L1715: .align 2 -.L1667: +.L1714: .word .LANCHOR31 .word .LANCHOR25 .word .LANCHOR26 @@ -11490,7 +11737,7 @@ FlashProgPages: @ frame_needed = 0, uses_anonymous_args = 0 push {r4, r5, r6, r7, r8, r10, fp, lr} sub sp, sp, #72 - ldr r5, .L1721 + ldr r5, .L1768 mov r4, r0 mov r8, r2 str r1, [sp, #8] @@ -11498,36 +11745,36 @@ FlashProgPages: str r3, [sp, #20] ldrb r5, [r5, #19] @ zero_extendqisi2 str r5, [sp, #16] - ldr r5, .L1721+4 + ldr r5, .L1768+4 ldrb r7, [r5] @ zero_extendqisi2 - cbnz r7, .L1670 - ldr r3, .L1721+8 + cbnz r7, .L1717 + ldr r3, .L1768+8 ldrb r3, [r3, #9] @ zero_extendqisi2 str r3, [sp, #12] -.L1671: +.L1718: ldr r3, [sp, #8] cmp r7, r3 - bcc .L1684 - ldr r6, .L1721+12 + bcc .L1731 + ldr r6, .L1768+12 movs r5, #0 - ldr r7, .L1721+16 -.L1685: + ldr r7, .L1768+16 +.L1732: ldrb r3, [r6] @ zero_extendqisi2 cmp r5, r3 - bcc .L1687 + bcc .L1734 ldr r3, [sp, #20] cmp r3, #0 - bne .L1688 -.L1696: + bne .L1735 +.L1743: movs r0, #0 - b .L1669 -.L1670: + b .L1716 +.L1717: bl FlashProgSlc2KPages -.L1669: +.L1716: add sp, sp, #72 @ sp needed pop {r4, r5, r6, r7, r8, r10, fp, pc} -.L1684: +.L1731: ldr r3, [sp, #8] movs r6, #36 muls r6, r7, r6 @@ -11540,81 +11787,81 @@ FlashProgPages: mov r0, fp add r3, sp, #32 bl LogAddr2PhyAddr - ldr r3, .L1721+12 + ldr r3, .L1768+12 mov r10, r0 ldr r0, [sp, #32] ldrb r3, [r3] @ zero_extendqisi2 cmp r3, r0 - bhi .L1673 + bhi .L1720 mov r3, #-1 str r3, [r4, r6] -.L1674: +.L1721: adds r7, r7, #1 - b .L1671 -.L1673: - ldr r3, .L1721+20 + b .L1718 +.L1720: + ldr r3, .L1768+20 ldrb r3, [r3] @ zero_extendqisi2 cmp r3, #0 - ldr r3, .L1721+24 + ldr r3, .L1768+24 it eq moveq r10, #0 add r3, r3, r0, lsl #4 ldr r3, [r3, #8] - cbz r3, .L1676 + cbz r3, .L1723 uxtb r0, r0 bl FlashWaitCmdDone -.L1676: +.L1723: ldr r3, [sp, #32] movs r1, #0 - ldr r2, .L1721+24 + ldr r2, .L1768+24 add r2, r2, r3, lsl #4 str r1, [r2, #12] ldr r1, [sp, #28] str fp, [r2, #8] str r1, [r2, #4] cmp r10, #0 - beq .L1677 + beq .L1724 add r1, r6, #36 add r1, r1, r4 str r1, [r2, #12] -.L1677: - ldr r2, .L1721+28 +.L1724: + ldr r2, .L1768+28 ldrb r5, [r2, r3] @ zero_extendqisi2 lsls r3, r3, #4 - ldr r2, .L1721+24 + ldr r2, .L1768+24 mov r0, r5 strb r5, [r2, r3] - ldr r3, .L1721+12 + ldr r3, .L1768+12 ldrb r3, [r3] @ zero_extendqisi2 cmp r3, #1 - bne .L1678 + bne .L1725 bl NandcWaitFlashReady -.L1679: +.L1726: ldr r3, [sp, #16] subs r3, r3, #1 - cmp r3, #6 - bhi .L1680 - ldr r3, .L1721+32 + cmp r3, #7 + bhi .L1727 + ldr r3, .L1768+32 ldrb r3, [r3, r5] @ zero_extendqisi2 - cbz r3, .L1680 - ldr r1, .L1721+36 + cbz r3, .L1727 + ldr r1, .L1768+36 movs r3, #0 mov r0, r5 adds r2, r1, #4 ldrb r1, [r1, #1] @ zero_extendqisi2 bl HynixSetRRPara -.L1680: +.L1727: mov r0, r5 bl NandcFlashCs cmp r8, #1 mov r0, r5 - bne .L1681 - ldr r3, .L1721+16 + bne .L1728 + ldr r3, .L1768+16 ldrb r3, [r3] @ zero_extendqisi2 cmp r3, #0 - beq .L1681 + beq .L1728 bl flash_enter_slc_mode -.L1682: +.L1729: ldr r1, [sp, #28] mov r0, r5 bl FlashProgFirstCmd @@ -11626,11 +11873,11 @@ FlashProgPages: ldr r3, [fp, #8] bl NandcXferData cmp r10, #0 - beq .L1683 + beq .L1730 ldr r1, [sp, #28] mov r0, r5 bl FlashProgDpFirstCmd - ldr r3, .L1721+40 + ldr r3, .L1768+40 mov r0, r5 ldr r2, [sp, #32] adds r6, r6, #36 @@ -11641,7 +11888,7 @@ FlashProgPages: it ne movne r2, #1 bl FlashWaitReadyEN - ldr r3, .L1721+44 + ldr r3, .L1768+44 mov r0, r5 ldr r1, [sp, #28] ldr r3, [r3] @@ -11654,19 +11901,19 @@ FlashProgPages: str r3, [sp] ldr r3, [r6, #8] bl NandcXferData -.L1683: +.L1730: ldr r1, [sp, #28] mov r0, r5 bl FlashProgSecondCmd mov r0, r5 add r7, r7, r10 bl NandcFlashDeCs - b .L1674 -.L1678: + b .L1721 +.L1725: bl NandcFlashCs ldr r2, [sp, #32] mov r0, r5 - ldr r3, .L1721+40 + ldr r3, .L1768+40 ldr r1, [sp, #28] ldr r2, [r3, r2, lsl #2] adds r2, r2, #0 @@ -11675,45 +11922,45 @@ FlashProgPages: bl FlashWaitReadyEN mov r0, r5 bl NandcFlashDeCs - b .L1679 -.L1681: + b .L1726 +.L1728: bl flash_exit_slc_mode - b .L1682 -.L1687: + b .L1729 +.L1734: uxtb r0, r5 bl FlashWaitCmdDone cmp r8, #1 - bne .L1686 + bne .L1733 ldrb r3, [r7] @ zero_extendqisi2 - cbz r3, .L1686 - ldr r2, .L1721+24 + cbz r3, .L1733 + ldr r2, .L1768+24 lsls r3, r5, #4 ldrb r0, [r2, r3] @ zero_extendqisi2 bl flash_exit_slc_mode -.L1686: +.L1733: adds r5, r5, #1 - b .L1685 -.L1688: - ldr r10, .L1721+64 + b .L1732 +.L1735: + ldr r10, .L1768+64 movs r7, #0 -.L1689: +.L1736: ldr r3, [sp, #8] cmp r7, r3 - beq .L1696 + beq .L1743 ldr r3, [r4] adds r3, r3, #1 - bne .L1690 + bne .L1737 ldr r1, [r4, #4] - ldr r0, .L1721+48 + ldr r0, .L1768+48 bl printf -.L1691: +.L1738: adds r7, r7, #1 adds r4, r4, #36 - b .L1689 -.L1690: + b .L1736 +.L1737: ldr r3, [sp, #8] add r2, sp, #28 - ldr fp, .L1721+68 + ldr fp, .L1768+68 mov r1, r8 mov r0, r4 mov r6, r4 @@ -11742,47 +11989,47 @@ FlashProgPages: bl FlashReadPages ldr r5, [sp, #36] adds r3, r5, #1 - bne .L1692 + bne .L1739 ldr r1, [r4, #4] - ldr r0, .L1721+52 + ldr r0, .L1768+52 bl printf str r5, [r4] -.L1692: +.L1739: ldr r3, [r4, #12] - cbz r3, .L1693 + cbz r3, .L1740 ldr r2, [r3] ldr r3, [fp] ldr r3, [r3] cmp r2, r3 - beq .L1693 + beq .L1740 ldr r1, [r4, #4] - ldr r0, .L1721+56 + ldr r0, .L1768+56 bl printf mov r3, #-1 str r3, [r4] -.L1693: +.L1740: ldr r3, [r4, #8] cmp r3, #0 - beq .L1691 + beq .L1738 ldr r2, [r3] ldr r3, [r10] ldr r3, [r3] cmp r2, r3 - beq .L1691 + beq .L1738 ldr r1, [r4, #4] - ldr r0, .L1721+60 + ldr r0, .L1768+60 bl printf mov r3, #-1 str r3, [r4] - b .L1691 -.L1722: + b .L1738 +.L1769: .align 2 -.L1721: +.L1768: .word .LANCHOR18 .word .LANCHOR1 .word .LANCHOR31 .word .LANCHOR25 - .word .LANCHOR8 + .word .LANCHOR15 .word .LANCHOR27 .word .LANCHOR23 .word .LANCHOR26 @@ -11808,14 +12055,14 @@ FlashProgPages: FlashTestBlk: @ args = 0, pretend = 0, frame = 104 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L1726 + ldr r3, .L1773 push {r4, r5, lr} mov r4, r0 sub sp, sp, #108 ldr r3, [r3] cmp r0, r3 - bcc .L1725 - ldr r5, .L1726+4 + bcc .L1772 + ldr r5, .L1773+4 add r0, sp, #40 movs r2, #32 movs r1, #165 @@ -11847,17 +12094,17 @@ FlashTestBlk: movne r4, #1 negs r4, r4 bl FlashEraseBlocks -.L1723: +.L1770: mov r0, r4 add sp, sp, #108 @ sp needed pop {r4, r5, pc} -.L1725: +.L1772: movs r4, #0 - b .L1723 -.L1727: + b .L1770 +.L1774: .align 2 -.L1726: +.L1773: .word .LANCHOR149 .word .LANCHOR153 .size FlashTestBlk, .-FlashTestBlk @@ -11872,48 +12119,48 @@ FlashTestBlk: FtlLowFormatEraseBlock: @ args = 0, pretend = 0, frame = 40 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L1773 + ldr r3, .L1820 push {r4, r5, r6, r7, r8, r10, fp, lr} sub sp, sp, #40 str r0, [sp, #8] ldr r3, [r3] str r1, [sp, #4] cmp r3, #0 - bne .L1755 - ldr r2, .L1773+4 + bne .L1802 + ldr r2, .L1820+4 mov r10, r3 mov r5, r3 mov r4, r3 mov r8, #36 ldrb r2, [r2] @ zero_extendqisi2 str r2, [sp, #20] - ldr r2, .L1773+8 + ldr r2, .L1820+8 ldrb r2, [r2] @ zero_extendqisi2 str r2, [sp, #12] - ldr r2, .L1773+12 + ldr r2, .L1820+12 str r0, [r2] - ldr r2, .L1773+16 + ldr r2, .L1820+16 ldrh fp, [r2] - ldr r2, .L1773+20 + ldr r2, .L1820+20 ldr r7, [r2] - ldr r2, .L1773+24 + ldr r2, .L1820+24 ldr r2, [r2] str r2, [sp, #16] - ldr r2, .L1773+28 + ldr r2, .L1820+28 ldrh r2, [r2] str r2, [sp, #24] -.L1730: +.L1777: uxth r2, r10 cmp fp, r2 - bhi .L1734 + bhi .L1781 cmp r5, #0 - beq .L1728 + beq .L1775 ldr r3, [sp, #12] mov r0, r7 - ldr r10, .L1773+4 + ldr r10, .L1820+4 mov r8, #0 mov r2, r5 - ldr r7, .L1773+20 + ldr r7, .L1820+20 adds r6, r3, #0 it ne movne r6, #1 @@ -11923,44 +12170,44 @@ FtlLowFormatEraseBlock: ldrb r3, [sp, #20] @ zero_extendqisi2 strb r3, [r10] mov r10, #36 -.L1736: +.L1783: uxth r3, r8 cmp r5, r3 - bhi .L1738 + bhi .L1785 ldr r3, [sp, #4] cmp r3, #0 - bne .L1739 + bne .L1786 uxth r6, r6 movs r3, #6 str r3, [sp, #16] movs r3, #1 str r3, [sp, #12] -.L1740: +.L1787: mov r8, #0 -.L1749: - ldr r3, .L1773+16 +.L1796: + ldr r3, .L1820+16 mov fp, #0 mov r5, fp ldrh r3, [r3] str r3, [sp, #24] - ldr r3, .L1773+20 + ldr r3, .L1820+20 ldr r10, [r3] - ldr r3, .L1773+32 + ldr r3, .L1820+32 ldr r3, [r3] str r3, [sp, #28] - ldr r3, .L1773+36 + ldr r3, .L1820+36 ldr r3, [r3] str r3, [sp, #32] - ldr r3, .L1773+28 + ldr r3, .L1820+28 ldrh r3, [r3] str r3, [sp, #36] -.L1741: +.L1788: ldr r3, [sp, #24] uxth r2, fp cmp r3, r2 - bhi .L1744 - cbz r5, .L1728 - ldr fp, .L1773+4 + bhi .L1791 + cbz r5, .L1775 + ldr fp, .L1820+4 movs r3, #1 mov r0, r10 movs r7, #0 @@ -11969,59 +12216,59 @@ FtlLowFormatEraseBlock: strb r7, [fp] bl FlashProgPages ldrb r3, [sp, #20] @ zero_extendqisi2 - ldr r10, .L1773+20 + ldr r10, .L1820+20 strb r3, [fp] mov fp, #36 -.L1746: +.L1793: uxth r3, r7 cmp r5, r3 - bhi .L1748 + bhi .L1795 ldr r3, [sp, #16] add r8, r8, r3 ldr r3, [sp, #12] uxth r8, r8 cmp r3, r8 - bhi .L1749 - ldr r8, .L1773+20 + bhi .L1796 + ldr r8, .L1820+20 movs r7, #0 mov r10, #36 -.L1750: +.L1797: uxth r3, r7 cmp r5, r3 - bhi .L1752 + bhi .L1799 ldr r3, [sp, #8] cmp r3, #63 - bls .L1753 + bls .L1800 ldr r3, [sp, #4] - cbz r3, .L1728 -.L1753: - ldr r3, .L1773+20 + cbz r3, .L1775 +.L1800: + ldr r3, .L1820+20 mov r2, r5 mov r1, r6 ldr r0, [r3] bl FlashEraseBlocks -.L1728: +.L1775: mov r0, r4 add sp, sp, #40 @ sp needed pop {r4, r5, r6, r7, r8, r10, fp, pc} -.L1734: +.L1781: mul r2, r8, r10 movs r3, #0 ldr r1, [sp, #8] str r3, [r7, r2] - ldr r3, .L1773+40 + ldr r3, .L1820+40 ldrb r0, [r3, r10] @ zero_extendqisi2 bl V2P_block ldr r3, [sp, #4] mov r6, r0 - cbz r3, .L1731 + cbz r3, .L1778 bl IsBlkInVendorPart - cbnz r0, .L1732 -.L1731: + cbnz r0, .L1779 +.L1778: mov r0, r6 bl FtlBbmIsBadBlock - cbnz r0, .L1733 + cbnz r0, .L1780 ldr r3, [sp, #24] mla r1, r8, r5, r7 lsls r6, r6, #10 @@ -12034,62 +12281,62 @@ FtlLowFormatEraseBlock: bic r2, r2, #3 add r2, r2, r3 str r2, [r1, #12] -.L1732: +.L1779: add r10, r10, #1 - b .L1730 -.L1733: + b .L1777 +.L1780: adds r4, r4, #1 uxth r4, r4 - b .L1732 -.L1738: + b .L1779 +.L1785: mul r3, r10, r8 ldr r2, [r7] adds r1, r2, r3 ldr r3, [r2, r3] adds r3, r3, #1 - bne .L1737 + bne .L1784 ldr r0, [r1, #4] adds r4, r4, #1 uxth r4, r4 ubfx r0, r0, #10, #16 bl FtlBbmMapBadBlock -.L1737: +.L1784: add r8, r8, #1 - b .L1736 -.L1739: - ldr r3, .L1773+44 + b .L1783 +.L1786: + ldr r3, .L1820+44 ldrh r3, [r3] str r3, [sp, #12] - ldr r3, .L1773+8 + ldr r3, .L1820+8 ldrb r3, [r3] @ zero_extendqisi2 - cbnz r3, .L1756 + cbnz r3, .L1803 ldr r3, [sp, #12] movs r6, #1 lsrs r3, r3, #2 str r3, [sp, #16] - b .L1740 -.L1756: + b .L1787 +.L1803: movs r6, #1 str r6, [sp, #16] - b .L1740 -.L1744: + b .L1787 +.L1791: movs r3, #36 ldr r1, [sp, #8] mul r2, r3, fp movs r3, #0 str r3, [r10, r2] - ldr r3, .L1773+40 + ldr r3, .L1820+40 ldrb r0, [r3, fp] @ zero_extendqisi2 bl V2P_block ldr r3, [sp, #4] mov r7, r0 - cbz r3, .L1742 + cbz r3, .L1789 bl IsBlkInVendorPart - cbnz r0, .L1743 -.L1742: + cbnz r0, .L1790 +.L1789: mov r0, r7 bl FtlBbmIsBadBlock - cbnz r0, .L1743 + cbnz r0, .L1790 movs r3, #36 add r7, r8, r7, lsl #10 mla r1, r3, r5, r10 @@ -12104,56 +12351,56 @@ FtlLowFormatEraseBlock: bic r2, r2, #3 add r2, r2, r3 str r2, [r1, #12] -.L1743: +.L1790: add fp, fp, #1 - b .L1741 -.L1748: + b .L1788 +.L1795: mul r3, fp, r7 ldr r2, [r10] adds r1, r2, r3 ldr r3, [r2, r3] - cbz r3, .L1747 + cbz r3, .L1794 ldr r0, [r1, #4] adds r4, r4, #1 uxth r4, r4 ubfx r0, r0, #10, #16 bl FtlBbmMapBadBlock -.L1747: +.L1794: adds r7, r7, #1 - b .L1746 -.L1752: + b .L1793 +.L1799: ldr r3, [sp, #4] - cbz r3, .L1751 + cbz r3, .L1798 mul r3, r10, r7 ldr r2, [r8] adds r1, r2, r3 ldr r3, [r2, r3] - cbnz r3, .L1751 + cbnz r3, .L1798 ldr r0, [r1, #4] movs r1, #1 ubfx r0, r0, #10, #16 bl FtlFreeSysBlkQueueIn -.L1751: +.L1798: adds r7, r7, #1 - b .L1750 -.L1755: + b .L1797 +.L1802: movs r4, #0 - b .L1728 -.L1774: + b .L1775 +.L1821: .align 2 -.L1773: - .word .LANCHOR77 +.L1820: + .word .LANCHOR76 .word .LANCHOR27 - .word .LANCHOR8 - .word .LANCHOR74 + .word .LANCHOR15 + .word .LANCHOR73 .word .LANCHOR38 - .word .LANCHOR78 + .word .LANCHOR77 .word .LANCHOR189 - .word .LANCHOR59 + .word .LANCHOR58 .word .LANCHOR186 .word .LANCHOR187 .word .LANCHOR47 - .word .LANCHOR54 + .word .LANCHOR53 .size FtlLowFormatEraseBlock, .-FtlLowFormatEraseBlock .section .text.FtlBbmTblFlush,"ax",%progbits .align 1 @@ -12167,33 +12414,33 @@ FtlBbmTblFlush: @ args = 0, pretend = 0, frame = 8 @ frame_needed = 0, uses_anonymous_args = 0 push {r0, r1, r2, r3, r4, r5, r6, r7, r8, r10, fp, lr} - ldr r3, .L1786 + ldr r3, .L1833 ldr r4, [r3] str r3, [sp, #12] cmp r4, #0 - bne .L1777 - ldr r3, .L1786+4 + bne .L1824 + ldr r3, .L1833+4 mov r1, r4 - ldr r7, .L1786+8 - ldr r5, .L1786+12 + ldr r7, .L1833+8 + ldr r5, .L1833+12 ldr r3, [r3] ldr r0, [r7] mov r8, r7 - ldr r6, .L1786+16 + ldr r6, .L1833+16 str r3, [r5, #12] - ldr r7, .L1786+20 - ldr r3, .L1786+24 - ldr r10, .L1786+56 + ldr r7, .L1833+20 + ldr r3, .L1833+24 + ldr r10, .L1833+56 str r0, [r5, #8] ldrh r2, [r3] bl ftl_memset -.L1778: +.L1825: ldrh r3, [r7] cmp r4, r3 - blt .L1779 + blt .L1826 ldr r6, [r5, #12] movs r2, #16 - ldr r4, .L1786+28 + ldr r4, .L1833+28 movs r1, #255 movs r7, #0 mov r0, r6 @@ -12210,16 +12457,16 @@ FtlBbmTblFlush: strh r3, [r6, #8] @ movhi ldrh r3, [r4, #6] strh r3, [r6, #10] @ movhi - ldr r3, .L1786+32 + ldr r3, .L1833+32 ldr r3, [r3] strh r3, [r6, #12] @ movhi -.L1780: +.L1827: ldr r3, [r8] mov fp, #0 ldrh r2, [r4, #2] ldrh r1, [r4] str r3, [r5, #8] - ldr r3, .L1786+4 + ldr r3, .L1833+4 ldrh r0, [r6, #10] str fp, [r5] ldr r3, [r3] @@ -12228,14 +12475,14 @@ FtlBbmTblFlush: str r3, [r5, #4] ldrh r3, [r4, #4] str r0, [sp] - ldr r0, .L1786+36 + ldr r0, .L1833+36 bl printf - ldr r3, .L1786+40 + ldr r3, .L1833+40 ldrh r2, [r4, #2] ldrh r3, [r3] subs r3, r3, #1 cmp r2, r3 - blt .L1781 + blt .L1828 ldr r3, [r4, #8] ldrh r2, [r4] strh fp, [r4, #2] @ movhi @@ -12245,7 +12492,7 @@ FtlBbmTblFlush: strh r2, [r6, #8] @ movhi ldrh r3, [r4, #4] strh r2, [r4, #4] @ movhi - ldr r2, .L1786+44 + ldr r2, .L1833+44 strh r3, [r4] @ movhi lsls r3, r3, #10 ldr r0, [r2] @@ -12254,9 +12501,9 @@ FtlBbmTblFlush: mov r1, r2 str r3, [r0, #4] bl FlashEraseBlocks -.L1781: +.L1828: movs r3, #1 - ldr r0, .L1786+12 + ldr r0, .L1833+12 mov r2, r3 mov r1, r3 bl FlashProgPages @@ -12265,27 +12512,27 @@ FtlBbmTblFlush: strh r3, [r10, #2] @ movhi ldr r3, [r5] adds r3, r3, #1 - bne .L1782 + bne .L1829 adds r7, r7, #1 ldr r1, [r5, #4] uxth r7, r7 - ldr r0, .L1786+48 + ldr r0, .L1833+48 bl printf cmp r7, #3 - bls .L1780 + bls .L1827 mov r2, r7 ldr r1, [r5, #4] - ldr r0, .L1786+52 + ldr r0, .L1833+52 bl printf ldr r2, [sp, #12] movs r3, #1 str r3, [r2] -.L1777: +.L1824: movs r0, #0 add sp, sp, #16 @ sp needed pop {r4, r5, r6, r7, r8, r10, fp, pc} -.L1779: +.L1826: ldrh r2, [r10] ldr r3, [r5, #8] ldr r1, [r6, #4]! @@ -12294,29 +12541,29 @@ FtlBbmTblFlush: adds r4, r4, #1 add r0, r3, r0, lsl #2 bl ftl_memcpy - b .L1778 -.L1782: + b .L1825 +.L1829: ldr r3, [sp, #8] cmp r3, #0 - bne .L1777 + bne .L1824 movs r3, #1 str r3, [sp, #8] - b .L1780 -.L1787: + b .L1827 +.L1834: .align 2 -.L1786: - .word .LANCHOR77 +.L1833: + .word .LANCHOR76 .word .LANCHOR188 .word .LANCHOR183 .word .LANCHOR202 - .word .LANCHOR75+24 + .word .LANCHOR74+24 .word .LANCHOR45 - .word .LANCHOR58 - .word .LANCHOR75 + .word .LANCHOR57 + .word .LANCHOR74 .word .LANCHOR37 .word .LC33 - .word .LANCHOR54 - .word .LANCHOR78 + .word .LANCHOR53 + .word .LANCHOR77 .word .LC34 .word .LC35 .word .LANCHOR123 @@ -12332,241 +12579,241 @@ FtlBbmTblFlush: allocate_data_superblock: @ args = 0, pretend = 0, frame = 8 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L1853 + ldr r3, .L1900 push {r0, r1, r4, r5, r6, r7, r8, r10, fp, lr} mov r4, r0 ldr r3, [r3] cmp r3, #0 - bne .L1790 -.L1789: - ldr r3, .L1853+4 - ldr r8, .L1853+60 - ldr r7, .L1853+8 + bne .L1837 +.L1836: + ldr r3, .L1900+4 + ldr r8, .L1900+60 + ldr r7, .L1900+8 ldrh r3, [r3] ldrh r2, [r8] add r3, r3, r2 ldrh r2, [r7] cmp r3, r2 - ble .L1791 - ldr r1, .L1853+12 - movw r2, #3108 - ldr r0, .L1853+16 + ble .L1838 + ldr r1, .L1900+12 + movw r2, #3139 + ldr r0, .L1900+16 bl printf - ldr r1, .L1853+20 - ldr r0, .L1853+24 + ldr r1, .L1900+20 + ldr r0, .L1900+24 bl printf -.L1791: - ldr r3, .L1853+28 +.L1838: + ldr r3, .L1900+28 ldrb r2, [r4, #8] @ zero_extendqisi2 cmp r4, r3 - bne .L1792 - ldr r3, .L1853+4 + bne .L1839 + ldr r3, .L1900+4 ldrh r5, [r3] - ldr r3, .L1853+32 + ldr r3, .L1900+32 ldr r3, [r3] lsrs r0, r5, #1 adds r1, r0, #1 mul r6, r3, r5 add r1, r1, r6, lsr #2 - ldr r6, .L1853+36 + ldr r6, .L1900+36 uxth r1, r1 ldr r6, [r6] - cbz r6, .L1793 - ldr r6, .L1853+40 + cbz r6, .L1840 + ldr r6, .L1900+40 ldr r6, [r6] cmp r6, #39 - bhi .L1793 + bhi .L1840 cmp r6, #2 - bls .L1827 + bls .L1874 lsls r1, r5, #31 - bpl .L1823 + bpl .L1870 cmp r3, #0 - beq .L1827 -.L1823: + beq .L1874 +.L1870: mov r1, r0 - b .L1793 -.L1792: + b .L1840 +.L1839: cmp r2, #1 - bne .L1827 - ldr r3, .L1853+44 + bne .L1874 + ldr r3, .L1900+44 ldrh r3, [r3] cmp r3, #1 - beq .L1827 - ldr r3, .L1853+48 + beq .L1874 + ldr r3, .L1900+48 ldrb r3, [r3] @ zero_extendqisi2 cmp r3, #0 - bne .L1827 - ldr r3, .L1853+4 - ldr r0, .L1853+36 + bne .L1874 + ldr r3, .L1900+4 + ldr r0, .L1900+36 ldrh r3, [r3] ldr r0, [r0] lsrs r1, r3, #3 - cbz r0, .L1793 - ldr r0, .L1853+40 + cbz r0, .L1840 + ldr r0, .L1900+40 ldr r0, [r0] cmp r0, #1 - bhi .L1793 + bhi .L1840 rsb r3, r3, r3, lsl #3 ubfx r1, r3, #3, #16 -.L1793: - cbz r1, .L1794 +.L1840: + cbz r1, .L1841 subs r1, r1, #1 uxth r1, r1 -.L1794: - ldr r0, .L1853+52 +.L1841: + ldr r0, .L1900+52 bl List_pop_index_node - ldr r3, .L1853+4 + ldr r3, .L1900+4 mov r5, r0 uxth r10, r0 ldrh r3, [r3] - cbnz r3, .L1795 - ldr r1, .L1853+12 - movw r2, #3128 - ldr r0, .L1853+16 + cbnz r3, .L1842 + ldr r1, .L1900+12 + movw r2, #3159 + ldr r0, .L1900+16 bl printf - ldr r1, .L1853+20 - ldr r0, .L1853+24 + ldr r1, .L1900+20 + ldr r0, .L1900+24 bl printf -.L1795: - ldr r3, .L1853+4 - ldr r2, .L1853+4 +.L1842: + ldr r3, .L1900+4 + ldr r2, .L1900+4 ldrh r3, [r3] subs r3, r3, #1 strh r3, [r2] @ movhi ldrh r3, [r7] cmp r3, r10 - bls .L1789 + bls .L1836 uxth r5, r5 lsls r3, r5, #1 str r3, [sp] - ldr r3, .L1853+56 + ldr r3, .L1900+56 ldr r3, [r3] ldrh r6, [r3, r5, lsl #1] cmp r6, #0 - bne .L1789 + bne .L1836 strh r10, [r4] @ movhi mov r0, r4 bl make_superblock ldrb r3, [r4, #7] @ zero_extendqisi2 cmp r3, #0 - bne .L1797 - ldr r3, .L1853+56 + bne .L1844 + ldr r3, .L1900+56 movw r2, #65535 ldr r3, [r3] strh r2, [r3, r5, lsl #1] @ movhi - ldr r3, .L1853+4 + ldr r3, .L1900+4 ldrh r2, [r8] ldrh r3, [r3] add r3, r3, r2 ldrh r2, [r7] cmp r3, r2 - ble .L1789 - movw r2, #3144 - ldr r1, .L1853+12 - ldr r0, .L1853+16 + ble .L1836 + movw r2, #3175 + ldr r1, .L1900+12 + ldr r0, .L1900+16 bl printf - ldr r1, .L1853+20 - ldr r0, .L1853+24 + ldr r1, .L1900+20 + ldr r0, .L1900+24 bl printf - b .L1789 -.L1827: + b .L1836 +.L1874: movs r1, #0 - b .L1794 -.L1854: + b .L1841 +.L1901: .align 2 -.L1853: - .word .LANCHOR77 - .word .LANCHOR89 +.L1900: + .word .LANCHOR76 + .word .LANCHOR88 .word .LANCHOR40 .word .LANCHOR203 .word .LC5 .word .LC6 .word .LC7 - .word .LANCHOR94 + .word .LANCHOR93 .word .LANCHOR172 .word .LANCHOR28 .word .LANCHOR170 .word .LANCHOR44 - .word .LANCHOR8 - .word .LANCHOR88 - .word .LANCHOR84 - .word .LANCHOR86 -.L1797: - ldr r3, .L1855 + .word .LANCHOR15 + .word .LANCHOR87 + .word .LANCHOR83 + .word .LANCHOR85 +.L1844: + ldr r3, .L1902 ldrh r2, [r8] ldrh r3, [r3] add r3, r3, r2 ldrh r2, [r7] cmp r3, r2 - ble .L1799 - ldr r1, .L1855+4 - movw r2, #3147 - ldr r0, .L1855+8 + ble .L1846 + ldr r1, .L1902+4 + movw r2, #3178 + ldr r0, .L1902+8 bl printf - ldr r1, .L1855+12 - ldr r0, .L1855+16 + ldr r1, .L1902+12 + ldr r0, .L1902+16 bl printf -.L1799: - ldr r3, .L1855+20 +.L1846: + ldr r3, .L1902+20 add lr, r4, #16 - ldr r2, .L1855+24 + ldr r2, .L1902+24 mov r8, #0 ldr ip, [r3] ldrh r0, [r2] movs r2, #36 mov r3, ip mla r0, r2, r0, ip -.L1800: +.L1847: cmp r0, r3 - bne .L1802 - cbnz r6, .L1803 - ldr r1, .L1855+4 - movw r2, #3159 - ldr r0, .L1855+8 + bne .L1849 + cbnz r6, .L1850 + ldr r1, .L1902+4 + movw r2, #3190 + ldr r0, .L1902+8 bl printf - ldr r1, .L1855+12 - ldr r0, .L1855+16 + ldr r1, .L1902+12 + ldr r0, .L1902+16 bl printf -.L1803: - ldr r3, .L1855+28 - ldr r8, .L1855+80 +.L1850: + ldr r3, .L1902+28 + ldr r8, .L1902+80 ldr r3, [r3] - cbz r3, .L1804 - ldr r3, .L1855+32 + cbz r3, .L1851 + ldr r3, .L1902+32 cmp r4, r3 - bne .L1804 + bne .L1851 ldr r3, [r8] ldrh r3, [r3, r5, lsl #1] cmp r3, #40 itt hi movhi r3, #0 strbhi r3, [r4, #8] -.L1804: - ldr r3, .L1855+36 +.L1851: + ldr r3, .L1902+36 ldrh r3, [r3] cmp r3, r10 - bne .L1805 - ldr r1, .L1855+4 - movw r2, #3166 - ldr r0, .L1855+8 + bne .L1852 + ldr r1, .L1902+4 + movw r2, #3197 + ldr r0, .L1902+8 bl printf - ldr r1, .L1855+12 - ldr r0, .L1855+16 + ldr r1, .L1902+12 + ldr r0, .L1902+16 bl printf -.L1805: +.L1852: ldrb r2, [r4, #8] @ zero_extendqisi2 - ldr r3, .L1855+40 - ldr fp, .L1855+84 + ldr r3, .L1902+40 + ldr fp, .L1902+84 cmp r2, #0 - bne .L1806 + bne .L1853 ldr r1, [r8] ldrh r2, [r1, r5, lsl #1] cmp r2, #0 - beq .L1807 - ldr r0, .L1855+44 + beq .L1854 + ldr r0, .L1902+44 ldrh r0, [r0] add r2, r2, r0 -.L1850: +.L1897: strh r2, [r1, r5, lsl #1] @ movhi mov r0, r10 ldr r2, [r3] @@ -12575,43 +12822,43 @@ allocate_data_superblock: adds r2, r2, #1 str r2, [r3] bl ftl_set_blk_mode -.L1851: +.L1898: ldr r2, [r8] ldr r3, [sp, #4] ldrh r0, [r2, r5, lsl #1] - ldr r2, .L1855+48 + ldr r2, .L1902+48 ldr r1, [r2] cmp r0, r1 ldrh r1, [r7] it hi strhi r0, [r2] - ldr r2, .L1855+44 + ldr r2, .L1902+44 ldr r0, [r3] ldr r3, [fp] ldrh r2, [r2] - ldr r7, .L1855+52 + ldr r7, .L1902+52 mla r0, r0, r2, r3 bl __aeabi_uidiv - ldr r3, .L1855+56 + ldr r3, .L1902+56 str r0, [r3] - ldr r3, .L1855+60 + ldr r3, .L1902+60 ldr r2, [r3] ldr r3, [r2, #16] adds r3, r3, #1 str r3, [r2, #16] - ldr r3, .L1855+20 + ldr r3, .L1902+20 ldr r0, [r3] movs r3, #36 adds r1, r0, #4 mla r3, r3, r6, r0 adds r3, r3, #40 -.L1811: +.L1858: adds r1, r1, #36 cmp r3, r1 - bne .L1812 - ldr r3, .L1855+64 + bne .L1859 + ldr r3, .L1902+64 ldrb r3, [r3] @ zero_extendqisi2 - cbz r3, .L1813 + cbz r3, .L1860 ldrb r3, [r4, #8] @ zero_extendqisi2 mov r2, r6 cmp r3, #1 @@ -12619,8 +12866,8 @@ allocate_data_superblock: moveq r1, #0 movne r1, #1 bl FlashEraseBlocks -.L1813: - ldr r3, .L1855+20 +.L1860: + ldr r3, .L1902+20 movs r7, #0 mov r8, r7 mov fp, #36 @@ -12628,43 +12875,43 @@ allocate_data_superblock: ldrb r1, [r4, #8] @ zero_extendqisi2 ldr r0, [r3] bl FlashEraseBlocks -.L1815: +.L1862: uxth r3, r7 cmp r6, r3 - bhi .L1817 + bhi .L1864 cmp r8, #0 - beq .L1818 + beq .L1865 mov r0, r10 bl update_multiplier_value bl FtlBbmTblFlush -.L1818: +.L1865: ldrb r2, [r4, #7] @ zero_extendqisi2 cmp r2, #0 - bne .L1819 - ldr r3, .L1855+68 + bne .L1866 + ldr r3, .L1902+68 movw r2, #65535 ldr r3, [r3] strh r2, [r3, r5, lsl #1] @ movhi - b .L1789 -.L1802: + b .L1836 +.L1849: ldrh r1, [lr], #2 movw fp, #65535 str r8, [r3, #8] str r8, [r3, #12] cmp r1, fp - beq .L1801 + beq .L1848 mla fp, r2, r6, ip adds r6, r6, #1 lsls r1, r1, #10 uxth r6, r6 str r1, [fp, #4] -.L1801: +.L1848: adds r3, r3, #36 - b .L1800 -.L1807: + b .L1847 +.L1854: movs r2, #2 - b .L1850 -.L1806: + b .L1897 +.L1853: ldr r1, [r8] mov r0, r10 str r3, [sp, #4] @@ -12675,20 +12922,20 @@ allocate_data_superblock: adds r2, r2, #1 str r2, [fp] bl ftl_set_blk_mode.part.10 - b .L1851 -.L1812: + b .L1898 +.L1859: ldr r2, [r1, #-36] ands r2, r2, r7 str r2, [r1, #-36] - b .L1811 -.L1817: - ldr r2, .L1855+20 + b .L1858 +.L1864: + ldr r2, .L1902+20 mul r3, fp, r7 ldr r2, [r2] adds r1, r2, r3 ldr r2, [r2, r3] adds r3, r2, #1 - bne .L1816 + bne .L1863 ldr r0, [r1, #4] add r8, r8, #1 str r2, [sp, #4] @@ -12700,12 +12947,12 @@ allocate_data_superblock: ldrb r3, [r4, #7] @ zero_extendqisi2 subs r3, r3, #1 strb r3, [r4, #7] -.L1816: +.L1863: adds r7, r7, #1 - b .L1815 -.L1819: - ldr r3, .L1855+72 - ldr r1, .L1855+76 + b .L1862 +.L1866: + ldr r3, .L1902+72 + ldr r1, .L1902+76 ldrh r3, [r3] strh r10, [r4] @ movhi smulbb r3, r3, r2 @@ -12718,39 +12965,39 @@ allocate_data_superblock: str r2, [r4, #12] adds r2, r2, #1 str r2, [r1] - ldr r2, .L1855+68 + ldr r2, .L1902+68 ldr r1, [sp] ldr r2, [r2] strh r3, [r2, r1] @ movhi ldrh r3, [r4, #4] - cbz r3, .L1820 + cbz r3, .L1867 ldrb r3, [r4, #7] @ zero_extendqisi2 - cbnz r3, .L1790 -.L1820: - ldr r1, .L1855+4 - movw r2, #3225 - ldr r0, .L1855+8 + cbnz r3, .L1837 +.L1867: + ldr r1, .L1902+4 + movw r2, #3256 + ldr r0, .L1902+8 bl printf - ldr r1, .L1855+12 - ldr r0, .L1855+16 + ldr r1, .L1902+12 + ldr r0, .L1902+16 bl printf -.L1790: +.L1837: movs r0, #0 add sp, sp, #8 @ sp needed pop {r4, r5, r6, r7, r8, r10, fp, pc} -.L1856: +.L1903: .align 2 -.L1855: - .word .LANCHOR89 +.L1902: + .word .LANCHOR88 .word .LANCHOR203 .word .LC5 .word .LC6 .word .LC7 - .word .LANCHOR78 + .word .LANCHOR77 .word .LANCHOR38 .word .LANCHOR28 - .word .LANCHOR92 + .word .LANCHOR91 .word .LANCHOR204 .word .LANCHOR167 .word .LANCHOR48 @@ -12758,11 +13005,11 @@ allocate_data_superblock: .word -1024 .word .LANCHOR205 .word .LANCHOR191 - .word .LANCHOR8 - .word .LANCHOR84 - .word .LANCHOR53 + .word .LANCHOR15 + .word .LANCHOR83 + .word .LANCHOR52 .word .LANCHOR159 - .word .LANCHOR79 + .word .LANCHOR78 .word .LANCHOR168 .size allocate_data_superblock, .-allocate_data_superblock .section .text.FtlGcFreeBadSuperBlk,"ax",%progbits @@ -12778,43 +13025,43 @@ FtlGcFreeBadSuperBlk: @ frame_needed = 0, uses_anonymous_args = 0 push {r0, r1, r4, r5, r6, r7, r8, r10, fp, lr} mov r10, r0 - ldr r4, .L1869 + ldr r4, .L1916 ldrh r3, [r4] - cbz r3, .L1858 - ldr r8, .L1869+12 + cbz r3, .L1905 + ldr r8, .L1916+12 movs r7, #0 -.L1859: - ldr r3, .L1869+4 +.L1906: + ldr r3, .L1916+4 ldrh r2, [r3] uxth r3, r7 cmp r2, r3 - bhi .L1865 + bhi .L1912 bl FtlGcReFreshBadBlk -.L1858: +.L1905: movs r0, #0 add sp, sp, #8 @ sp needed pop {r4, r5, r6, r7, r8, r10, fp, pc} -.L1865: - ldr r2, .L1869+8 +.L1912: + ldr r2, .L1916+8 uxth r3, r7 mov r1, r10 mov fp, #0 ldrb r0, [r2, r3] @ zero_extendqisi2 bl V2P_block mov r1, r0 -.L1860: +.L1907: ldrh r3, [r4] uxth r5, fp cmp r3, r5 - bhi .L1864 + bhi .L1911 adds r7, r7, #1 - b .L1859 -.L1864: + b .L1906 +.L1911: uxth r6, fp ldrh r3, [r8, r6, lsl #1] cmp r3, r1 - bne .L1861 + bne .L1908 mov r0, r1 str r1, [sp, #4] bl FtlBbmMapBadBlock @@ -12822,27 +13069,27 @@ FtlGcFreeBadSuperBlk: ldrh r2, [r4] add r3, r8, r6, lsl #1 ldr r1, [sp, #4] -.L1862: +.L1909: cmp r5, r2 - bcc .L1863 + bcc .L1910 subs r2, r2, #1 strh r2, [r4] @ movhi -.L1861: +.L1908: add fp, fp, #1 - b .L1860 -.L1863: + b .L1907 +.L1910: ldrh r0, [r3, #2]! adds r5, r5, #1 uxth r5, r5 strh r0, [r3, #-2] @ movhi - b .L1862 -.L1870: + b .L1909 +.L1917: .align 2 -.L1869: - .word .LANCHOR117 +.L1916: + .word .LANCHOR116 .word .LANCHOR38 .word .LANCHOR47 - .word .LANCHOR118 + .word .LANCHOR117 .size FtlGcFreeBadSuperBlk, .-FtlGcFreeBadSuperBlk .section .text.update_vpc_list,"ax",%progbits .align 1 @@ -12857,32 +13104,32 @@ update_vpc_list: @ frame_needed = 0, uses_anonymous_args = 0 push {r3, r4, r5, lr} mov r4, r0 - ldr r3, .L1881 + ldr r3, .L1928 ldr r3, [r3] ldrh r3, [r3, r0, lsl #1] cmp r3, #0 - bne .L1872 - ldr r2, .L1881+4 + bne .L1919 + ldr r2, .L1928+4 ldrh r1, [r2] cmp r1, r0 - bne .L1873 + bne .L1920 movw r3, #65535 strh r3, [r2] @ movhi -.L1874: - ldr r5, .L1881+8 +.L1921: + ldr r5, .L1928+8 mov r1, r4 - ldr r0, .L1881+12 + ldr r0, .L1928+12 bl List_remove_node ldrh r3, [r5] - cbnz r3, .L1876 - ldr r1, .L1881+16 - movw r2, #3336 - ldr r0, .L1881+20 + cbnz r3, .L1923 + ldr r1, .L1928+16 + movw r2, #3367 + ldr r0, .L1928+20 bl printf - ldr r1, .L1881+24 - ldr r0, .L1881+28 + ldr r1, .L1928+24 + ldr r0, .L1928+28 bl printf -.L1876: +.L1923: ldrh r3, [r5] mov r0, r4 subs r3, r3, #1 @@ -12890,60 +13137,60 @@ update_vpc_list: bl free_data_superblock mov r0, r4 bl FtlGcFreeBadSuperBlk - ldr r3, .L1881+32 + ldr r3, .L1928+32 ldrh r2, [r5] ldrh r3, [r3] add r3, r3, r2 - ldr r2, .L1881+36 + ldr r2, .L1928+36 ldrh r2, [r2] cmp r3, r2 - ble .L1880 - ldr r1, .L1881+16 - movw r2, #3339 - ldr r0, .L1881+20 + ble .L1927 + ldr r1, .L1928+16 + movw r2, #3370 + ldr r0, .L1928+20 bl printf - ldr r1, .L1881+24 - ldr r0, .L1881+28 + ldr r1, .L1928+24 + ldr r0, .L1928+28 bl printf -.L1880: +.L1927: movs r3, #1 - b .L1871 -.L1873: - ldr r2, .L1881+40 + b .L1918 +.L1920: + ldr r2, .L1928+40 ldrh r2, [r2] cmp r2, r0 - beq .L1871 - ldr r2, .L1881+44 + beq .L1918 + ldr r2, .L1928+44 ldrh r2, [r2] cmp r2, r0 - beq .L1871 - ldr r2, .L1881+48 + beq .L1918 + ldr r2, .L1928+48 ldrh r2, [r2] cmp r2, r0 - bne .L1874 -.L1871: + bne .L1921 +.L1918: mov r0, r3 pop {r3, r4, r5, pc} -.L1872: +.L1919: bl List_update_data_list movs r3, #0 - b .L1871 -.L1882: + b .L1918 +.L1929: .align 2 -.L1881: - .word .LANCHOR84 - .word .LANCHOR204 - .word .LANCHOR86 +.L1928: .word .LANCHOR83 + .word .LANCHOR204 + .word .LANCHOR85 + .word .LANCHOR82 .word .LANCHOR206 .word .LC5 .word .LC6 .word .LC7 - .word .LANCHOR89 + .word .LANCHOR88 .word .LANCHOR40 + .word .LANCHOR91 .word .LANCHOR92 .word .LANCHOR93 - .word .LANCHOR94 .size update_vpc_list, .-update_vpc_list .section .text.decrement_vpc_count,"ax",%progbits .align 1 @@ -12960,47 +13207,47 @@ decrement_vpc_count: push {r4, r5, r6, lr} cmp r0, r3 mov r4, r0 - beq .L1884 - ldr r5, .L1895 + beq .L1931 + ldr r5, .L1942 ldr r3, [r5] ldrh r2, [r3, r0, lsl #1] cmp r2, #0 - bne .L1885 + bne .L1932 mov r1, r0 - ldr r0, .L1895+4 + ldr r0, .L1942+4 bl printf ldr r3, [r5] ldrh r3, [r3, r4, lsl #1] - cbnz r3, .L1886 - ldr r1, .L1895+8 - movw r2, #3354 - ldr r0, .L1895+12 + cbnz r3, .L1933 + ldr r1, .L1942+8 + movw r2, #3385 + ldr r0, .L1942+12 bl printf - ldr r1, .L1895+16 - ldr r0, .L1895+20 + ldr r1, .L1942+16 + ldr r0, .L1942+20 bl printf -.L1886: +.L1933: ldr r3, [r5] movs r2, #32 mov r1, r4 - ldr r0, .L1895+24 + ldr r0, .L1942+24 strh r2, [r3, r4, lsl #1] @ movhi bl test_node_in_list - cbz r0, .L1887 - ldr r6, .L1895+28 + cbz r0, .L1934 + ldr r6, .L1942+28 mov r1, r4 - ldr r0, .L1895+24 + ldr r0, .L1942+24 bl List_remove_node ldrh r3, [r6] - cbnz r3, .L1888 - ldr r1, .L1895+8 - movw r2, #3358 - ldr r0, .L1895+12 + cbnz r3, .L1935 + ldr r1, .L1942+8 + movw r2, #3389 + ldr r0, .L1942+12 bl printf - ldr r1, .L1895+16 - ldr r0, .L1895+20 + ldr r1, .L1942+16 + ldr r0, .L1942+20 bl printf -.L1888: +.L1935: ldrh r3, [r6] mov r0, r4 subs r3, r3, #1 @@ -13008,33 +13255,33 @@ decrement_vpc_count: bl INSERT_DATA_LIST ldr r3, [r5] mov r1, r4 - ldr r0, .L1895+32 + ldr r0, .L1942+32 ldrh r2, [r3, r4, lsl #1] bl printf -.L1887: +.L1934: mov r0, r4 bl FtlGcRefreshBlock -.L1891: +.L1938: movs r5, #0 - b .L1883 -.L1885: + b .L1930 +.L1932: subs r2, r2, #1 strh r2, [r3, r0, lsl #1] @ movhi -.L1884: - ldr r6, .L1895+36 +.L1931: + ldr r6, .L1942+36 movw r3, #65535 ldrh r0, [r6] cmp r0, r3 - bne .L1890 + bne .L1937 strh r4, [r6] @ movhi - b .L1891 -.L1890: + b .L1938 +.L1937: cmp r4, r0 - beq .L1891 + beq .L1938 bl update_vpc_list - ldr r3, .L1895+40 + ldr r3, .L1942+40 adds r5, r0, #0 - ldr r2, .L1895+44 + ldr r2, .L1942+44 it ne movne r5, #1 strh r4, [r6] @ movhi @@ -13042,40 +13289,40 @@ decrement_vpc_count: ldr r2, [r2] subs r3, r3, r2 asrs r2, r3, #1 - ldr r3, .L1895+48 + ldr r3, .L1942+48 muls r3, r2, r3 - ldr r2, .L1895 + ldr r2, .L1942 ldr r2, [r2] uxth r1, r3 ldrh r2, [r2, r1, lsl #1] - cbnz r2, .L1883 + cbnz r2, .L1930 cmp r4, r1 - beq .L1883 - ldr r1, .L1895+8 - movw r2, #3379 - ldr r0, .L1895+12 + beq .L1930 + ldr r1, .L1942+8 + movw r2, #3410 + ldr r0, .L1942+12 bl printf - ldr r1, .L1895+16 - ldr r0, .L1895+20 + ldr r1, .L1942+16 + ldr r0, .L1942+20 bl printf -.L1883: +.L1930: mov r0, r5 pop {r4, r5, r6, pc} -.L1896: +.L1943: .align 2 -.L1895: - .word .LANCHOR84 +.L1942: + .word .LANCHOR83 .word .LC36 .word .LANCHOR207 .word .LC5 .word .LC6 .word .LC7 + .word .LANCHOR87 .word .LANCHOR88 - .word .LANCHOR89 .word .LC37 .word .LANCHOR133 - .word .LANCHOR83 .word .LANCHOR82 + .word .LANCHOR81 .word -1431655765 .size decrement_vpc_count, .-decrement_vpc_count .section .text.FtlSlcSuperblockCheck,"ax",%progbits @@ -13093,71 +13340,71 @@ FtlSlcSuperblockCheck: push {r4, r5, r6, lr} mov r4, r0 cmp r3, #0 - beq .L1897 + beq .L1944 ldrh r2, [r0] movw r3, #65535 cmp r2, r3 - beq .L1897 + beq .L1944 ldrb r3, [r0, #6] @ zero_extendqisi2 - ldr r5, .L1908 - ldr r6, .L1908+4 + ldr r5, .L1955 + ldr r6, .L1955+4 adds r3, r3, #8 ldrh r3, [r0, r3, lsl #1] -.L1901: +.L1948: movw r2, #65535 cmp r3, r2 - beq .L1903 + beq .L1950 ldrb r3, [r4, #8] @ zero_extendqisi2 cmp r3, #1 - bne .L1904 + bne .L1951 ldrb r1, [r5] @ zero_extendqisi2 - cbnz r1, .L1904 + cbnz r1, .L1951 ldrh r1, [r4, #2] ldrh r1, [r6, r1, lsl #1] cmp r1, r2 - bne .L1904 + bne .L1951 ldrh r3, [r4, #4] ldrh r0, [r4] subs r3, r3, #1 strh r3, [r4, #4] @ movhi bl decrement_vpc_count ldrh r2, [r4, #4] - cbnz r2, .L1903 + cbnz r2, .L1950 ldrh r3, [r4, #2] strb r2, [r4, #6] adds r3, r3, #1 strh r3, [r4, #2] @ movhi pop {r4, r5, r6, pc} -.L1903: +.L1950: ldrb r3, [r4, #6] @ zero_extendqisi2 - ldr r2, .L1908+8 + ldr r2, .L1955+8 adds r3, r3, #1 ldrh r2, [r2] uxtb r3, r3 strb r3, [r4, #6] cmp r2, r3 - bne .L1902 + bne .L1949 ldrh r3, [r4, #2] adds r3, r3, #1 strh r3, [r4, #2] @ movhi movs r3, #0 strb r3, [r4, #6] -.L1902: +.L1949: ldrb r3, [r4, #6] @ zero_extendqisi2 adds r3, r3, #8 ldrh r3, [r4, r3, lsl #1] - b .L1901 -.L1904: + b .L1948 +.L1951: ldrb r2, [r5] @ zero_extendqisi2 - cbz r2, .L1897 + cbz r2, .L1944 cmp r3, #1 - bne .L1897 - ldr r3, .L1908+12 + bne .L1944 + ldr r3, .L1955+12 ldrh r2, [r4, #2] ldrh r3, [r3] cmp r2, r3 - bcc .L1897 - ldr r3, .L1908+16 + bcc .L1944 + ldr r3, .L1955+16 ldrh r1, [r4] ldrh r0, [r4, #4] ldr r2, [r3] @@ -13165,22 +13412,22 @@ FtlSlcSuperblockCheck: subs r3, r3, r0 strh r3, [r2, r1, lsl #1] @ movhi movs r3, #0 - ldr r2, .L1908+20 + ldr r2, .L1955+20 strh r3, [r4, #4] @ movhi strb r3, [r4, #6] ldrh r2, [r2] strh r2, [r4, #2] @ movhi -.L1897: +.L1944: pop {r4, r5, r6, pc} -.L1909: +.L1956: .align 2 -.L1908: - .word .LANCHOR8 +.L1955: + .word .LANCHOR15 .word .LANCHOR120 .word .LANCHOR38 - .word .LANCHOR54 - .word .LANCHOR84 .word .LANCHOR53 + .word .LANCHOR83 + .word .LANCHOR52 .size FtlSlcSuperblockCheck, .-FtlSlcSuperblockCheck .section .text.get_new_active_ppa,"ax",%progbits .align 1 @@ -13198,93 +13445,93 @@ get_new_active_ppa: push {r4, r5, r6, r7, r8, lr} mov r4, r0 cmp r2, r3 - bne .L1911 - ldr r1, .L1932 - movw r2, #3276 - ldr r0, .L1932+4 + bne .L1958 + ldr r1, .L1979 + movw r2, #3307 + ldr r0, .L1979+4 bl printf - ldr r1, .L1932+8 - ldr r0, .L1932+12 + ldr r1, .L1979+8 + ldr r0, .L1979+12 bl printf -.L1911: - ldr r5, .L1932+16 +.L1958: + ldr r5, .L1979+16 ldrh r2, [r4, #2] ldrh r3, [r5] cmp r2, r3 - bne .L1912 - ldr r1, .L1932 - movw r2, #3277 - ldr r0, .L1932+4 + bne .L1959 + ldr r1, .L1979 + movw r2, #3308 + ldr r0, .L1979+4 bl printf - ldr r1, .L1932+8 - ldr r0, .L1932+12 + ldr r1, .L1979+8 + ldr r0, .L1979+12 bl printf -.L1912: +.L1959: ldrh r3, [r4, #4] - cbnz r3, .L1913 - ldr r1, .L1932 - movw r2, #3278 - ldr r0, .L1932+4 + cbnz r3, .L1960 + ldr r1, .L1979 + movw r2, #3309 + ldr r0, .L1979+4 bl printf - ldr r1, .L1932+8 - ldr r0, .L1932+12 + ldr r1, .L1979+8 + ldr r0, .L1979+12 bl printf -.L1913: +.L1960: movs r3, #0 - ldr r7, .L1932+20 + ldr r7, .L1979+20 strb r3, [r4, #10] ldrb r3, [r4, #6] @ zero_extendqisi2 - ldr r6, .L1932+24 + ldr r6, .L1979+24 adds r3, r3, #8 ldrh r2, [r4, r3, lsl #1] -.L1914: +.L1961: movw r0, #65535 cmp r2, r0 - beq .L1915 + beq .L1962 ldrb r3, [r4, #8] @ zero_extendqisi2 ldrh r1, [r4, #2] cmp r3, #1 ldrh r3, [r4, #4] - bne .L1917 + bne .L1964 ldrb ip, [r6] @ zero_extendqisi2 cmp ip, #0 - bne .L1917 - ldr ip, .L1932+28 + bne .L1964 + ldr ip, .L1979+28 ldrh ip, [ip, r1, lsl #1] cmp ip, r0 - bne .L1917 + bne .L1964 subs r3, r3, #1 ldrh r0, [r4] strh r3, [r4, #4] @ movhi bl decrement_vpc_count -.L1915: +.L1962: ldrb r3, [r4, #6] @ zero_extendqisi2 ldrh r2, [r7] adds r3, r3, #1 uxtb r3, r3 cmp r2, r3 strb r3, [r4, #6] - bne .L1916 + bne .L1963 ldrh r3, [r4, #2] adds r3, r3, #1 strh r3, [r4, #2] @ movhi movs r3, #0 strb r3, [r4, #6] -.L1916: +.L1963: ldrb r3, [r4, #6] @ zero_extendqisi2 adds r3, r3, #8 ldrh r2, [r4, r3, lsl #1] - b .L1914 -.L1917: - ldr r8, .L1932+24 + b .L1961 +.L1964: + ldr r8, .L1979+24 orr r6, r1, r2, lsl #10 subs r3, r3, #1 strh r3, [r4, #4] @ movhi -.L1918: +.L1965: ldrb r3, [r4, #6] @ zero_extendqisi2 movw r2, #65535 ldrh r0, [r7] -.L1920: +.L1967: adds r3, r3, #1 uxtb r3, r3 cmp r3, r0 @@ -13296,31 +13543,31 @@ get_new_active_ppa: add r1, r3, #8 ldrh r1, [r4, r1, lsl #1] cmp r1, r2 - beq .L1920 + beq .L1967 strb r3, [r4, #6] ldrb r3, [r4, #8] @ zero_extendqisi2 cmp r3, #1 - bne .L1921 + bne .L1968 ldrb r1, [r8] @ zero_extendqisi2 ldrh r3, [r4, #2] - cbnz r1, .L1922 - ldr r1, .L1932+28 + cbnz r1, .L1969 + ldr r1, .L1979+28 ldrh r3, [r1, r3, lsl #1] cmp r3, r2 - bne .L1921 + bne .L1968 ldrh r3, [r4, #4] - cbz r3, .L1921 + cbz r3, .L1968 subs r3, r3, #1 ldrh r0, [r4] strh r3, [r4, #4] @ movhi bl decrement_vpc_count - b .L1918 -.L1922: - ldr r2, .L1932+32 + b .L1965 +.L1969: + ldr r2, .L1979+32 ldrh r2, [r2] cmp r3, r2 - bcc .L1921 - ldr r3, .L1932+36 + bcc .L1968 + ldr r3, .L1979+36 ldrh r1, [r4] ldrh r0, [r4, #4] ldr r2, [r3] @@ -13332,36 +13579,36 @@ get_new_active_ppa: strh r3, [r4, #4] @ movhi strb r3, [r4, #6] strh r2, [r4, #2] @ movhi -.L1921: +.L1968: ldrh r2, [r4, #2] ldrh r3, [r5] cmp r2, r3 - bne .L1910 + bne .L1957 ldrh r3, [r4, #4] - cbz r3, .L1910 - ldr r1, .L1932 - movw r2, #3322 - ldr r0, .L1932+4 + cbz r3, .L1957 + ldr r1, .L1979 + movw r2, #3353 + ldr r0, .L1979+4 bl printf - ldr r1, .L1932+8 - ldr r0, .L1932+12 + ldr r1, .L1979+8 + ldr r0, .L1979+12 bl printf -.L1910: +.L1957: mov r0, r6 pop {r4, r5, r6, r7, r8, pc} -.L1933: +.L1980: .align 2 -.L1932: +.L1979: .word .LANCHOR208 .word .LC5 .word .LC6 .word .LC7 - .word .LANCHOR53 + .word .LANCHOR52 .word .LANCHOR38 - .word .LANCHOR8 + .word .LANCHOR15 .word .LANCHOR120 - .word .LANCHOR54 - .word .LANCHOR84 + .word .LANCHOR53 + .word .LANCHOR83 .size get_new_active_ppa, .-get_new_active_ppa .section .text.FtlVpcTblFlush,"ax",%progbits .align 1 @@ -13374,16 +13621,16 @@ get_new_active_ppa: FtlVpcTblFlush: @ args = 0, pretend = 0, frame = 8 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r2, .L1954 + ldr r2, .L2001 push {r0, r1, r4, r5, r6, r7, r8, r10, fp, lr} ldr r3, [r2] str r2, [sp, #4] cmp r3, #0 - bne .L1936 - ldr r4, .L1954+4 - ldr fp, .L1954+108 - ldr r8, .L1954+112 - ldr r5, .L1954+8 + bne .L1983 + ldr r4, .L2001+4 + ldr fp, .L2001+108 + ldr r8, .L2001+112 + ldr r5, .L2001+8 ldr r0, [fp] ldr r6, [r8] ldrh r2, [r4] @@ -13391,21 +13638,21 @@ FtlVpcTblFlush: str r6, [r5, #12] strh r2, [r6, #2] @ movhi movw r2, #61604 - ldr r7, .L1954+12 + ldr r7, .L2001+12 strh r2, [r6] @ movhi str r3, [r6, #12] - ldr ip, .L1954+116 + ldr ip, .L2001+116 ldr r2, [r4, #8] str r3, [r6, #8] - ldr r3, .L1954+16 + ldr r3, .L2001+16 str r2, [r6, #4] stm r7, {r3, ip} ldrh r3, [r4, #6] strh r3, [r7, #8] @ movhi - ldr r3, .L1954+20 + ldr r3, .L2001+20 ldrh r3, [r3] strb r3, [r7, #10] - ldr r3, .L1954+24 + ldr r3, .L2001+24 ldrh r2, [r3] ldrh r1, [r3, #2] strh r2, [r7, #14] @ movhi @@ -13413,7 +13660,7 @@ FtlVpcTblFlush: ldrb r3, [r3, #8] @ zero_extendqisi2 strb r3, [r7, #11] orr r2, r2, r1, lsl #6 - ldr r3, .L1954+28 + ldr r3, .L2001+28 strh r2, [r7, #16] @ movhi ldrh r2, [r3] ldrh r1, [r3, #2] @@ -13422,7 +13669,7 @@ FtlVpcTblFlush: ldrb r3, [r3, #8] @ zero_extendqisi2 strb r3, [r7, #12] orr r2, r2, r1, lsl #6 - ldr r3, .L1954+32 + ldr r3, .L2001+32 strh r2, [r7, #20] @ movhi ldrh r2, [r3] strh r2, [r7, #22] @ movhi @@ -13431,33 +13678,33 @@ FtlVpcTblFlush: ldrb r3, [r3, #8] @ zero_extendqisi2 strb r3, [r7, #13] orr r2, r2, r1, lsl #6 - ldr r3, .L1954+36 + ldr r3, .L2001+36 movs r1, #255 strh r2, [r7, #24] @ movhi ldr r3, [r3] str r3, [r7, #32] - ldr r3, .L1954+40 + ldr r3, .L2001+40 ldr r3, [r3] str r3, [r7, #40] - ldr r3, .L1954+44 + ldr r3, .L2001+44 ldr r3, [r3] str r3, [r7, #36] - ldr r3, .L1954+48 + ldr r3, .L2001+48 ldrh r3, [r3] strh r3, [r7, #44] @ movhi - ldr r3, .L1954+52 + ldr r3, .L2001+52 ldrh r3, [r3] strh r3, [r7, #46] @ movhi - ldr r3, .L1954+56 + ldr r3, .L2001+56 ldrh r2, [r3] bl ftl_memset mov r1, r7 - ldr r7, .L1954+60 + ldr r7, .L2001+60 movs r2, #48 ldr r0, [r5, #8] bl ftl_memcpy ldrh r2, [r7] - ldr r3, .L1954+64 + ldr r3, .L2001+64 ldr r0, [r5, #8] ldr r1, [r3] lsls r2, r2, #1 @@ -13465,7 +13712,7 @@ FtlVpcTblFlush: bl ftl_memcpy ldrh r0, [r7] ldr r3, [r5, #8] - ldr r1, .L1954+68 + ldr r1, .L2001+68 lsrs r2, r0, #3 adds r0, r0, #24 lsls r0, r0, #1 @@ -13474,12 +13721,12 @@ FtlVpcTblFlush: bic r0, r0, #3 add r0, r0, r3 bl ftl_memcpy - ldr r3, .L1954+72 + ldr r3, .L2001+72 ldrh r3, [r3] - cbz r3, .L1937 + cbz r3, .L1984 ldrh r0, [r7] - ldr r3, .L1954+76 - ldr r1, .L1954+80 + ldr r3, .L2001+76 + ldr r1, .L2001+80 ldrh r2, [r3] lsrs r3, r0, #3 ldr r1, [r1] @@ -13490,12 +13737,12 @@ FtlVpcTblFlush: ubfx r3, r3, #2, #14 add r0, r0, r3, lsl #2 bl ftl_memcpy -.L1937: +.L1984: movs r7, #0 movw r10, #65535 movs r0, #0 bl FtlUpdateVaildLpn -.L1938: +.L1985: ldr r3, [fp] ldrh r1, [r4, #2] ldrh r2, [r4] @@ -13504,18 +13751,18 @@ FtlVpcTblFlush: str r3, [r5, #12] orr r3, r1, r2, lsl #10 str r3, [r5, #4] - ldr r3, .L1954+84 + ldr r3, .L2001+84 ldrh r3, [r3] subs r3, r3, #1 cmp r1, r3 - blt .L1939 + blt .L1986 movs r3, #0 ldrh r10, [r4, #4] strh r3, [r4, #2] @ movhi strh r2, [r4, #4] @ movhi bl FtlFreeSysBlkQueueOut - ldr r3, .L1954+40 - ldr r1, .L1954+40 + ldr r3, .L2001+40 + ldr r1, .L2001+40 strh r0, [r4] @ movhi ldr r3, [r3] adds r2, r3, #1 @@ -13525,9 +13772,9 @@ FtlVpcTblFlush: str r2, [r5, #4] str r3, [r6, #4] strh r0, [r6, #2] @ movhi -.L1939: +.L1986: movs r3, #1 - ldr r0, .L1954+8 + ldr r0, .L2001+8 mov r2, r3 mov r1, r3 bl FlashProgPages @@ -13537,77 +13784,77 @@ FtlVpcTblFlush: uxth r3, r3 adds r1, r2, #1 strh r3, [r4, #2] @ movhi - bne .L1940 + bne .L1987 cmp r3, #1 - bne .L1941 - ldr r1, .L1954+88 - movw r2, #1209 - ldr r0, .L1954+92 + bne .L1988 + ldr r1, .L2001+88 + movw r2, #1217 + ldr r0, .L2001+92 bl printf - ldr r1, .L1954+96 - ldr r0, .L1954+100 + ldr r1, .L2001+96 + ldr r0, .L2001+100 bl printf -.L1941: +.L1988: ldrh r3, [r4, #2] adds r7, r7, #1 uxth r7, r7 cmp r3, #1 itttt eq - ldreq r3, .L1954+84 + ldreq r3, .L2001+84 ldrheq r3, [r3] addeq r3, r3, #-1 strheq r3, [r4, #2] @ movhi cmp r7, #3 - bls .L1938 + bls .L1985 mov r2, r7 ldr r1, [r5, #4] - ldr r0, .L1954+104 + ldr r0, .L2001+104 bl printf ldr r2, [sp, #4] movs r3, #1 str r3, [r2] -.L1936: +.L1983: movs r0, #0 add sp, sp, #8 @ sp needed pop {r4, r5, r6, r7, r8, r10, fp, pc} -.L1940: +.L1987: cmp r3, #1 - beq .L1938 + beq .L1985 cmp r2, #256 - beq .L1938 + beq .L1985 movw r3, #65535 cmp r10, r3 - beq .L1936 + beq .L1983 movs r1, #1 mov r0, r10 bl FtlFreeSysBlkQueueIn - b .L1936 -.L1955: + b .L1983 +.L2002: .align 2 -.L1954: - .word .LANCHOR77 +.L2001: + .word .LANCHOR76 .word .LANCHOR209 .word .LANCHOR202 - .word .LANCHOR81 + .word .LANCHOR80 .word 1179929683 .word .LANCHOR45 + .word .LANCHOR91 .word .LANCHOR92 .word .LANCHOR93 - .word .LANCHOR94 .word .LANCHOR167 .word .LANCHOR159 .word .LANCHOR160 + .word .LANCHOR112 .word .LANCHOR113 - .word .LANCHOR114 - .word .LANCHOR58 + .word .LANCHOR57 .word .LANCHOR40 - .word .LANCHOR84 + .word .LANCHOR83 .word .LANCHOR0 - .word .LANCHOR70 - .word .LANCHOR67 + .word .LANCHOR69 + .word .LANCHOR66 .word .LANCHOR131 - .word .LANCHOR54 + .word .LANCHOR53 .word .LANCHOR210 .word .LC5 .word .LC6 @@ -13615,7 +13862,7 @@ FtlVpcTblFlush: .word .LC38 .word .LANCHOR183 .word .LANCHOR188 - .word 1342177360 + .word 1342177363 .size FtlVpcTblFlush, .-FtlVpcTblFlush .section .text.FtlSuperblockPowerLostFix,"ax",%progbits .align 1 @@ -13628,31 +13875,31 @@ FtlVpcTblFlush: FtlSuperblockPowerLostFix: @ args = 0, pretend = 0, frame = 40 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L1971 + ldr r3, .L2018 push {r4, r5, r6, r7, r8, r10, lr} mov r4, r0 sub sp, sp, #44 ldr r8, [r3] cmp r8, #0 - bne .L1956 - ldr r3, .L1971+4 + bne .L2003 + ldr r3, .L2018+4 ldrb r3, [r3] @ zero_extendqisi2 cmp r3, #0 - beq .L1967 + beq .L2014 ldrb r3, [r0, #8] @ zero_extendqisi2 cmp r3, #1 - bne .L1967 + bne .L2014 ldrh r6, [r0, #4] mov r8, r3 -.L1958: +.L2005: mov r3, #-1 - ldr r2, .L1971+8 + ldr r2, .L2018+8 str r3, [sp, #20] movs r7, #0 - ldr r3, .L1971+12 + ldr r3, .L2018+12 ldr r5, [r2] mvn r2, #2 - ldr r10, .L1971+24 + ldr r10, .L2018+24 ldr r3, [r3] str r5, [sp, #16] str r3, [sp, #12] @@ -13668,38 +13915,38 @@ FtlSuperblockPowerLostFix: add r2, r2, #1269760 addw r2, r2, #1507 str r2, [r3, #4] -.L1959: +.L2006: adds r6, r6, #-1 - bcc .L1962 + bcc .L2009 ldrh r3, [r4, #4] - cbnz r3, .L1960 -.L1962: - ldr r3, .L1971+16 + cbnz r3, .L2007 +.L2009: + ldr r3, .L2018+16 ldrh r1, [r4] ldrh r0, [r4, #4] ldr r2, [r3] ldrh r3, [r2, r1, lsl #1] subs r3, r3, r0 strh r3, [r2, r1, lsl #1] @ movhi - ldr r3, .L1971+20 + ldr r3, .L2018+20 ldrh r3, [r3] strh r3, [r4, #2] @ movhi movs r3, #0 strb r3, [r4, #6] strh r3, [r4, #4] @ movhi -.L1956: +.L2003: add sp, sp, #44 @ sp needed pop {r4, r5, r6, r7, r8, r10, pc} -.L1967: +.L2014: movs r6, #12 - b .L1958 -.L1960: + b .L2005 +.L2007: mov r0, r4 bl get_new_active_ppa str r0, [sp, #8] adds r0, r0, #1 - beq .L1962 + beq .L2009 ldr r3, [r10] movs r1, #1 add r0, sp, #4 @@ -13714,16 +13961,16 @@ FtlSuperblockPowerLostFix: bl FlashProgPages ldrh r0, [r4] bl decrement_vpc_count - b .L1959 -.L1972: + b .L2006 +.L2019: .align 2 -.L1971: - .word .LANCHOR77 - .word .LANCHOR8 +.L2018: + .word .LANCHOR76 + .word .LANCHOR15 .word .LANCHOR188 .word .LANCHOR183 - .word .LANCHOR84 - .word .LANCHOR53 + .word .LANCHOR83 + .word .LANCHOR52 .word .LANCHOR160 .size FtlSuperblockPowerLostFix, .-FtlSuperblockPowerLostFix .section .text.FtlLoadFactoryBbt,"ax",%progbits @@ -13737,36 +13984,36 @@ FtlSuperblockPowerLostFix: FtlLoadFactoryBbt: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L1983 + ldr r3, .L2030 push {r4, r5, r6, r7, r8, r10, fp, lr} movs r6, #0 - ldr r5, .L1983+4 + ldr r5, .L2030+4 ldr r3, [r3] - ldr r7, .L1983+8 - ldr r10, .L1983+20 + ldr r7, .L2030+8 + ldr r10, .L2030+20 str r3, [r5, #8] - ldr r3, .L1983+12 + ldr r3, .L2030+12 ldr r8, [r3] str r8, [r5, #12] -.L1974: - ldr r3, .L1983+16 +.L2021: + ldr r3, .L2030+16 ldrh r3, [r3] cmp r6, r3 - bcc .L1979 + bcc .L2026 movs r0, #0 pop {r4, r5, r6, r7, r8, r10, fp, pc} -.L1979: +.L2026: ldrh r4, [r10] movw r3, #65535 - ldr fp, .L1983+4 + ldr fp, .L2030+4 strh r3, [r7, #2]! @ movhi subs r4, r4, #1 uxth r4, r4 -.L1975: +.L2022: ldrh r3, [r10] sub r2, r3, #15 cmp r2, r4 - bgt .L1977 + bgt .L2024 mla r3, r6, r3, r4 movs r2, #1 mov r1, r2 @@ -13776,25 +14023,25 @@ FtlLoadFactoryBbt: bl FlashReadPages ldr r3, [r5] adds r3, r3, #1 - beq .L1976 + beq .L2023 ldrh r2, [r8] movw r3, #61664 cmp r2, r3 - bne .L1976 + bne .L2023 strh r4, [r7] @ movhi -.L1977: +.L2024: adds r6, r6, #1 - b .L1974 -.L1976: + b .L2021 +.L2023: subs r4, r4, #1 uxth r4, r4 - b .L1975 -.L1984: + b .L2022 +.L2031: .align 2 -.L1983: +.L2030: .word .LANCHOR183 .word .LANCHOR202 - .word .LANCHOR75+10 + .word .LANCHOR74+10 .word .LANCHOR188 .word .LANCHOR45 .word .LANCHOR51 @@ -13813,12 +14060,12 @@ FtlGetLastWrittenPage: cmp r1, #1 push {r4, r5, r6, r7, r8, lr} it eq - ldreq r3, .L1997 + ldreq r3, .L2044 sub sp, sp, #104 lsl r7, r0, #10 mov r2, r1 it ne - ldrne r3, .L1997+4 + ldrne r3, .L2044+4 mov r8, r1 movs r6, #0 movs r1, #1 @@ -13834,16 +14081,16 @@ FtlGetLastWrittenPage: bl FlashReadPages ldr r3, [sp, #40] adds r3, r3, #1 - bne .L1988 -.L1989: + bne .L2035 +.L2036: cmp r6, r5 - ble .L1992 -.L1988: + ble .L2039 +.L2035: mov r0, r5 add sp, sp, #104 @ sp needed pop {r4, r5, r6, r7, r8, pc} -.L1992: +.L2039: adds r3, r6, r5 mov r2, r8 add r3, r3, r3, lsr #31 @@ -13856,25 +14103,25 @@ FtlGetLastWrittenPage: bl FlashReadPages ldr r3, [sp, #40] adds r3, r3, #1 - bne .L1990 + bne .L2037 ldr r3, [sp, #44] adds r3, r3, #1 - bne .L1990 + bne .L2037 ldr r3, [sp, #4] adds r3, r3, #1 - beq .L1990 + beq .L2037 subs r4, r4, #1 sxth r5, r4 - b .L1989 -.L1990: + b .L2036 +.L2037: adds r4, r4, #1 sxth r6, r4 - b .L1989 -.L1998: + b .L2036 +.L2045: .align 2 -.L1997: - .word .LANCHOR54 +.L2044: .word .LANCHOR53 + .word .LANCHOR52 .size FtlGetLastWrittenPage, .-FtlGetLastWrittenPage .section .text.FtlLoadBbt,"ax",%progbits .align 1 @@ -13888,24 +14135,24 @@ FtlLoadBbt: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 push {r3, r4, r5, r6, r7, r8, r10, lr} - ldr r8, .L2028+48 - ldr r4, .L2028 + ldr r8, .L2075+48 + ldr r4, .L2075 ldr r3, [r8] - ldr r7, .L2028+4 + ldr r7, .L2075+4 mov r10, r4 str r3, [r4, #8] - ldr r3, .L2028+8 + ldr r3, .L2075+8 ldr r6, [r3] str r6, [r4, #12] bl FtlBbtMemInit ldrh r5, [r7] subs r5, r5, #1 uxth r5, r5 -.L2000: +.L2047: ldrh r3, [r7] subs r3, r3, #47 cmp r3, r5 - bgt .L2003 + bgt .L2050 lsls r3, r5, #10 movs r2, #1 mov r1, r2 @@ -13914,7 +14161,7 @@ FtlLoadBbt: bl FlashReadPages ldr r3, [r4] adds r3, r3, #1 - bne .L2001 + bne .L2048 ldr r3, [r4, #4] movs r2, #1 mov r1, r2 @@ -13922,104 +14169,104 @@ FtlLoadBbt: adds r3, r3, #1 str r3, [r4, #4] bl FlashReadPages -.L2001: +.L2048: ldr r3, [r4] adds r3, r3, #1 - beq .L2002 + beq .L2049 ldrh r2, [r6] movw r3, #61649 cmp r2, r3 - bne .L2002 - ldr r3, .L2028+12 + bne .L2049 + ldr r3, .L2075+12 ldr r2, [r6, #4] strh r5, [r3] @ movhi str r2, [r3, #8] ldrh r2, [r6, #8] strh r2, [r3, #4] @ movhi -.L2003: - ldr r5, .L2028+12 +.L2050: + ldr r5, .L2075+12 movw r2, #65535 ldrh r3, [r5] cmp r3, r2 - beq .L2017 + beq .L2064 ldrh r3, [r5, #4] cmp r3, r2 - beq .L2007 + beq .L2054 lsls r3, r3, #10 movs r2, #1 mov r1, r2 - ldr r0, .L2028 + ldr r0, .L2075 str r3, [r4, #4] bl FlashReadPages ldr r3, [r4] adds r3, r3, #1 - beq .L2007 + beq .L2054 ldrh r2, [r6] movw r3, #61649 cmp r2, r3 - bne .L2007 + bne .L2054 ldr r3, [r6, #4] ldr r2, [r5, #8] cmp r3, r2 - bls .L2007 + bls .L2054 ldrh r2, [r5, #4] str r3, [r5, #8] ldrh r3, [r6, #8] strh r2, [r5] @ movhi strh r3, [r5, #4] @ movhi -.L2007: - ldr r10, .L2028 +.L2054: + ldr r10, .L2075 movs r1, #1 ldrh r0, [r5] bl FtlGetLastWrittenPage sxth r7, r0 adds r0, r0, #1 strh r0, [r5, #2] @ movhi -.L2009: +.L2056: cmp r7, #0 - bge .L2012 - ldr r1, .L2028+16 + bge .L2059 + ldr r1, .L2075+16 movw r2, #335 - ldr r0, .L2028+20 + ldr r0, .L2075+20 bl printf - ldr r1, .L2028+24 - ldr r0, .L2028+28 + ldr r1, .L2075+24 + ldr r0, .L2075+28 bl printf -.L2011: +.L2058: ldrh r3, [r6, #10] ldrh r0, [r6, #12] strh r3, [r5, #6] @ movhi movw r3, #65535 cmp r0, r3 - beq .L2014 - ldr r3, .L2028+32 + beq .L2061 + ldr r3, .L2075+32 ldr r2, [r3] cmp r0, r2 - beq .L2014 - ldr r3, .L2028+36 + beq .L2061 + ldr r3, .L2075+36 ldrh r3, [r3] lsrs r3, r3, #2 cmp r2, r3 - bcs .L2014 + bcs .L2061 cmp r0, r3 - bcs .L2014 + bcs .L2061 bl FtlSysBlkNumInit -.L2014: - ldr r6, .L2028+40 +.L2061: + ldr r6, .L2075+40 movs r5, #0 - ldr r7, .L2028+44 - ldr r8, .L2028+52 -.L2015: + ldr r7, .L2075+44 + ldr r8, .L2075+52 +.L2062: ldrh r3, [r7] cmp r5, r3 - bcc .L2016 + bcc .L2063 movs r0, #0 pop {r3, r4, r5, r6, r7, r8, r10, pc} -.L2002: +.L2049: subs r5, r5, #1 uxth r5, r5 - b .L2000 -.L2012: + b .L2047 +.L2059: ldrh r3, [r5] movs r2, #1 mov r1, r2 @@ -14031,16 +14278,16 @@ FtlLoadBbt: bl FlashReadPages ldr r3, [r4] adds r3, r3, #1 - beq .L2010 + beq .L2057 ldrh r2, [r6] movw r3, #61649 cmp r2, r3 - beq .L2011 -.L2010: + beq .L2058 +.L2057: subs r7, r7, #1 sxth r7, r7 - b .L2009 -.L2016: + b .L2056 +.L2063: ldrh r2, [r8] ldr r1, [r4, #8] ldr r0, [r6, #4]! @@ -14048,24 +14295,24 @@ FtlLoadBbt: mla r1, r5, r2, r1 adds r5, r5, #1 bl ftl_memcpy - b .L2015 -.L2017: + b .L2062 +.L2064: mov r0, #-1 pop {r3, r4, r5, r6, r7, r8, r10, pc} -.L2029: +.L2076: .align 2 -.L2028: +.L2075: .word .LANCHOR202 .word .LANCHOR51 .word .LANCHOR188 - .word .LANCHOR75 + .word .LANCHOR74 .word .LANCHOR211 .word .LC5 .word .LC6 .word .LC7 .word .LANCHOR37 .word .LANCHOR41 - .word .LANCHOR75+24 + .word .LANCHOR74+24 .word .LANCHOR45 .word .LANCHOR183 .word .LANCHOR123 @@ -14091,13 +14338,13 @@ ftl_map_blk_gc: ldrh r2, [r4, #8] subs r3, r3, #4 cmp r2, r3 - blt .L2031 + blt .L2078 uxth r0, r0 ldrh r8, [r5, r0, lsl #1] cmp r8, #0 - beq .L2031 + beq .L2078 ldr r3, [r4, #32] - cbnz r3, .L2031 + cbnz r3, .L2078 movs r2, #1 str r2, [r4, #32] strh r3, [r5, r0, lsl #1] @ movhi @@ -14105,35 +14352,35 @@ ftl_map_blk_gc: ldrh r2, [r4, #2] subs r3, r3, #1 strh r3, [r4, #8] @ movhi - ldr r3, .L2043 + ldr r3, .L2090 ldrh r3, [r3] cmp r2, r3 - bcc .L2032 + bcc .L2079 mov r0, r4 bl ftl_map_blk_alloc_new_blk -.L2032: - ldr r5, .L2043+4 +.L2079: + ldr r5, .L2090+4 movs r6, #0 -.L2033: +.L2080: ldrh r3, [r4, #6] uxth r10, r6 cmp r3, r10 - bhi .L2039 + bhi .L2086 movs r1, #1 mov r0, r8 bl FtlFreeSysBlkQueueIn movs r3, #0 str r3, [r4, #32] -.L2031: - ldr r3, .L2043 +.L2078: + ldr r3, .L2090 ldrh r2, [r4, #2] ldrh r3, [r3] cmp r2, r3 - bcc .L2037 + bcc .L2084 mov r0, r4 bl ftl_map_blk_alloc_new_blk - b .L2037 -.L2039: + b .L2084 +.L2086: ldr r3, [sp] uxth fp, r6 add r3, r3, fp, lsl #2 @@ -14141,66 +14388,66 @@ ftl_map_blk_gc: ldr r3, [sp] ldr r2, [r3, fp, lsl #2] cmp r8, r2, lsr #10 - bne .L2034 - ldr r3, .L2043+8 + bne .L2081 + ldr r3, .L2090+8 str r2, [r5, #4] movs r2, #1 - ldr r0, .L2043+4 + ldr r0, .L2090+4 ldr r1, [r3] str r1, [r5, #8] - ldr r1, .L2043+12 + ldr r1, .L2090+12 ldr r7, [r1] mov r1, r2 str r7, [r5, #12] bl FlashReadPages ldrh r2, [r7, #8] cmp r2, r10 - beq .L2035 - ldr r1, .L2043+16 + beq .L2082 + ldr r1, .L2090+16 movw r2, #661 - ldr r0, .L2043+20 + ldr r0, .L2090+20 bl printf - ldr r1, .L2043+24 - ldr r0, .L2043+28 + ldr r1, .L2090+24 + ldr r0, .L2090+28 bl printf -.L2035: +.L2082: ldr r2, [r5] adds r2, r2, #1 ldrh r2, [r7, #8] - bne .L2036 -.L2038: + bne .L2083 +.L2085: ldr r1, [sp, #4] movs r3, #0 - ldr r0, .L2043+32 + ldr r0, .L2090+32 str r3, [r1] ldr r1, [r5, #4] bl printf - ldr r3, .L2043+36 + ldr r3, .L2090+36 movs r2, #1 str r2, [r3] -.L2037: +.L2084: movs r0, #0 add sp, sp, #8 @ sp needed pop {r4, r5, r6, r7, r8, r10, fp, pc} -.L2036: +.L2083: cmp r2, r10 - bne .L2038 + bne .L2085 ldrh r0, [r7] ldrh r1, [r4, #4] cmp r0, r1 - bne .L2038 + bne .L2085 ldr r2, [r5, #8] mov r1, fp mov r0, r4 bl FtlMapWritePage -.L2034: +.L2081: adds r6, r6, #1 - b .L2033 -.L2044: + b .L2080 +.L2091: .align 2 -.L2043: - .word .LANCHOR54 +.L2090: + .word .LANCHOR53 .word .LANCHOR202 .word .LANCHOR184 .word .LANCHOR188 @@ -14209,7 +14456,7 @@ ftl_map_blk_gc: .word .LC6 .word .LC7 .word .LC39 - .word .LANCHOR77 + .word .LANCHOR76 .size ftl_map_blk_gc, .-ftl_map_blk_gc .section .text.Ftl_write_map_blk_to_last_page,"ax",%progbits .align 1 @@ -14222,26 +14469,26 @@ ftl_map_blk_gc: Ftl_write_map_blk_to_last_page: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L2055 - push {r4, r5, r6, r7, r8, lr} + ldr r3, .L2106 + push {r4, r5, r6, r7, r8, r10, fp, lr} mov r4, r0 ldr r5, [r3] - cbnz r5, .L2046 + cbnz r5, .L2093 ldrh r3, [r0] movw r2, #65535 ldr r6, [r0, #12] cmp r3, r2 - bne .L2047 + bne .L2094 ldrh r3, [r0, #8] - cbz r3, .L2048 - ldr r1, .L2055+4 + cbz r3, .L2095 + ldr r1, .L2106+4 movw r2, #697 - ldr r0, .L2055+8 + ldr r0, .L2106+8 bl printf - ldr r1, .L2055+12 - ldr r0, .L2055+16 + ldr r1, .L2106+12 + ldr r0, .L2106+16 bl printf -.L2048: +.L2095: ldrh r3, [r4, #8] adds r3, r3, #1 strh r3, [r4, #8] @ movhi @@ -14253,77 +14500,88 @@ Ftl_write_map_blk_to_last_page: ldr r3, [r4, #28] adds r3, r3, #1 str r3, [r4, #28] -.L2046: +.L2093: movs r0, #0 - pop {r4, r5, r6, r7, r8, pc} -.L2047: - ldrh r6, [r6, r3, lsl #1] + pop {r4, r5, r6, r7, r8, r10, fp, pc} +.L2094: + ldrh r8, [r6, r3, lsl #1] movs r1, #255 ldrh r3, [r0, #2] - ldr r2, .L2055+20 - ldr r8, .L2055+32 - ldr r7, [r0, #24] - orr r3, r3, r6, lsl #10 - ldr r0, [r8] - str r3, [r2, #4] - ldr r3, .L2055+24 - str r0, [r2, #8] - ldr r3, [r3] - str r3, [r2, #12] - ldr r2, [r4, #28] - str r2, [r3, #4] - movw r2, #64245 - strh r2, [r3, #8] @ movhi - ldrh r2, [r4, #4] - strh r6, [r3, #2] @ movhi - strh r2, [r3] @ movhi - ldr r3, .L2055+28 + ldr r7, .L2106+20 + ldr fp, .L2106+40 + ldr r10, [r0, #24] + orr r3, r3, r8, lsl #10 + ldr r0, [fp] + str r3, [r7, #4] + ldr r3, .L2106+24 + str r0, [r7, #8] + ldr r6, [r3] + ldr r3, [r4, #28] + str r6, [r7, #12] + str r3, [r6, #4] + movw r3, #64245 + strh r3, [r6, #8] @ movhi + ldrh r3, [r4, #4] + strh r8, [r6, #2] @ movhi + strh r3, [r6] @ movhi + ldr r3, .L2106+28 ldrh r2, [r3] lsls r2, r2, #3 bl ftl_memset ldrh ip, [r4, #6] mov r3, r5 - ldr r1, [r8] + ldr r1, [fp] mov r2, r5 -.L2049: +.L2096: uxth r0, r3 cmp ip, r0 - bhi .L2051 + bhi .L2098 + ldr r3, .L2106+32 + ldrb r3, [r3] @ zero_extendqisi2 + cbz r3, .L2099 + ldr r3, .L2106+36 + ldr r0, [r7, #8] + ldrh r1, [r3] + bl js_hash + str r0, [r6, #12] +.L2099: movs r2, #1 movs r3, #0 mov r1, r2 - ldr r0, .L2055+20 + ldr r0, .L2106+20 bl FlashProgPages ldrh r3, [r4, #2] mov r0, r4 adds r3, r3, #1 strh r3, [r4, #2] @ movhi bl ftl_map_blk_gc - b .L2046 -.L2051: - ldr r0, [r7, r3, lsl #2] - cmp r6, r0, lsr #10 - bne .L2050 + b .L2093 +.L2098: + ldr r0, [r10, r3, lsl #2] + cmp r8, r0, lsr #10 + bne .L2097 adds r2, r2, #1 uxth r2, r2 str r3, [r1, r2, lsl #3] add r5, r1, r2, lsl #3 - ldr r0, [r7, r3, lsl #2] + ldr r0, [r10, r3, lsl #2] str r0, [r5, #4] -.L2050: +.L2097: adds r3, r3, #1 - b .L2049 -.L2056: + b .L2096 +.L2107: .align 2 -.L2055: - .word .LANCHOR77 +.L2106: + .word .LANCHOR76 .word .LANCHOR213 .word .LC5 .word .LC6 .word .LC7 .word .LANCHOR202 .word .LANCHOR188 - .word .LANCHOR54 + .word .LANCHOR53 + .word .LANCHOR1 + .word .LANCHOR57 .word .LANCHOR183 .size Ftl_write_map_blk_to_last_page, .-Ftl_write_map_blk_to_last_page .section .text.FtlMapWritePage,"ax",%progbits @@ -14339,13 +14597,12 @@ FtlMapWritePage: @ frame_needed = 0, uses_anonymous_args = 0 push {r0, r1, r2, r3, r4, r5, r6, r7, r8, r10, fp, lr} mov r4, r0 - ldr r10, .L2079+40 + ldr r10, .L2134+44 mov r8, r1 movs r6, #0 str r2, [sp, #4] - mov fp, r10 -.L2058: - ldr r2, .L2079 +.L2109: + ldr r2, .L2134 ldr r3, [r2] adds r3, r3, #1 str r3, [r2] @@ -14353,143 +14610,155 @@ FtlMapWritePage: ldrh r2, [r4, #2] subs r3, r3, #1 cmp r2, r3 - bge .L2059 + bge .L2110 ldrh r2, [r4] movw r3, #65535 cmp r2, r3 - bne .L2060 -.L2059: + bne .L2111 +.L2110: mov r0, r4 bl Ftl_write_map_blk_to_last_page -.L2060: - ldr r3, .L2079+4 +.L2111: + ldr r3, .L2134+4 ldr r2, [r3] str r3, [sp, #8] cmp r2, #0 - bne .L2075 + bne .L2129 ldrh r2, [r4] ldr r3, [r4, #12] ldrh r3, [r3, r2, lsl #1] - cbnz r3, .L2062 - ldr r1, .L2079+8 - movw r2, #757 - ldr r0, .L2079+12 + cbnz r3, .L2113 + ldr r1, .L2134+8 + movw r2, #759 + ldr r0, .L2134+12 bl printf - ldr r1, .L2079+16 - ldr r0, .L2079+20 + ldr r1, .L2134+16 + ldr r0, .L2134+20 bl printf -.L2062: +.L2113: ldrh r2, [r4] ldrh r3, [r4, #10] cmp r2, r3 - bcc .L2063 - ldr r1, .L2079+8 - movw r2, #758 - ldr r0, .L2079+12 + bcc .L2114 + ldr r1, .L2134+8 + mov r2, #760 + ldr r0, .L2134+12 bl printf - ldr r1, .L2079+16 - ldr r0, .L2079+20 + ldr r1, .L2134+16 + ldr r0, .L2134+20 bl printf -.L2063: +.L2114: ldrh r2, [r4] movs r1, #0 ldr r3, [r4, #12] - ldr r5, .L2079+24 + ldr r5, .L2134+24 ldrh r7, [r3, r2, lsl #1] movs r2, #16 ldrh r3, [r4, #2] + mov fp, r5 orr r3, r3, r7, lsl #10 str r3, [r5, #4] ldr r3, [sp, #4] str r3, [r5, #8] - ldr r3, .L2079+28 + ldr r3, .L2134+28 ldr r0, [r3] str r0, [r5, #12] bl ftl_memset ldr r3, [r5, #12] - mov r0, r5 ldr r2, [r4, #28] - strh r8, [r3, #8] @ movhi + str r3, [sp, #12] str r2, [r3, #4] ldrh r2, [r4, #4] + strh r8, [r3, #8] @ movhi strh r7, [r3, #2] @ movhi strh r2, [r3] @ movhi + ldr r2, .L2134+32 + ldrb r2, [r2] @ zero_extendqisi2 + cbz r2, .L2115 + ldr r2, .L2134+36 + ldr r0, [r5, #8] + ldrh r1, [r2] + bl js_hash + ldr r3, [sp, #12] + str r0, [r3, #12] +.L2115: movs r3, #1 + ldr r0, .L2134+24 mov r2, r3 mov r1, r3 bl FlashProgPages - ldrh r2, [r4, #2] - ldr r1, [r5] - adds r2, r2, #1 - uxth r2, r2 - adds r3, r1, #1 - mov r3, r5 - strh r2, [r4, #2] @ movhi - bne .L2064 + ldrh r3, [r4, #2] + ldr r2, [r5] + adds r3, r3, #1 + uxth r3, r3 + adds r1, r2, #1 + strh r3, [r4, #2] @ movhi + bne .L2116 ldr r1, [r5, #4] adds r6, r6, #1 - ldr r0, .L2079+32 + ldr r0, .L2134+40 uxth r6, r6 - str r5, [sp, #12] bl printf - ldrh r2, [r4, #2] - ldr r3, [sp, #12] - cmp r2, #2 - ittt ls - ldrhls r2, [fp] - addls r2, r2, #-1 - strhls r2, [r4, #2] @ movhi + ldrh r3, [r4, #2] + cmp r3, #2 + itttt ls + ldrls r3, .L2134+44 + ldrhls r3, [r3] + addls r3, r3, #-1 + strhls r3, [r4, #2] @ movhi cmp r6, #3 - bls .L2058 + bls .L2109 mov r2, r6 - ldr r1, [r3, #4] - ldr r0, .L2079+36 + ldr r1, [fp, #4] + ldr r0, .L2134+48 bl printf ldr r2, [sp, #8] movs r3, #1 str r3, [r2] -.L2075: +.L2129: movs r0, #0 add sp, sp, #16 @ sp needed pop {r4, r5, r6, r7, r8, r10, fp, pc} -.L2064: - cbz r1, .L2067 - cmp r2, #1 +.L2116: + cbz r2, .L2119 + cmp r3, #1 strh r7, [r4, #40] @ movhi - bne .L2068 -.L2069: + bne .L2120 +.L2121: movs r3, #0 str r3, [r4, #36] - b .L2058 -.L2068: - cmp r1, #256 -.L2078: - beq .L2069 - ldr r2, [r4, #36] - cmp r2, #0 - bne .L2069 - ldr r2, [r3, #4] + b .L2109 +.L2120: + cmp r2, #256 +.L2133: + beq .L2121 + ldr r3, [r4, #36] + cmp r3, #0 + bne .L2121 + ldr r2, [fp, #4] ldr r3, [r4, #24] str r2, [r3, r8, lsl #2] - b .L2075 -.L2067: - cmp r2, #1 - b .L2078 -.L2080: + b .L2129 +.L2119: + cmp r3, #1 + b .L2133 +.L2135: .align 2 -.L2079: +.L2134: .word .LANCHOR165 - .word .LANCHOR77 + .word .LANCHOR76 .word .LANCHOR214 .word .LC5 .word .LC6 .word .LC7 .word .LANCHOR202 .word .LANCHOR188 + .word .LANCHOR1 + .word .LANCHOR57 .word .LC40 + .word .LANCHOR53 .word .LC41 - .word .LANCHOR54 .size FtlMapWritePage, .-FtlMapWritePage .section .text.flush_l2p_region,"ax",%progbits .align 1 @@ -14504,9 +14773,9 @@ flush_l2p_region: @ frame_needed = 0, uses_anonymous_args = 0 push {r3, r4, r5, lr} movs r4, #12 - ldr r5, .L2082 + ldr r5, .L2137 muls r4, r0, r4 - ldr r0, .L2082+4 + ldr r0, .L2137+4 ldr r3, [r5] adds r2, r3, r4 ldrh r1, [r3, r4] @@ -14519,10 +14788,10 @@ flush_l2p_region: bic r3, r3, #-2147483648 str r3, [r4, #4] pop {r3, r4, r5, pc} -.L2083: +.L2138: .align 2 -.L2082: - .word .LANCHOR97 +.L2137: + .word .LANCHOR96 .word .LANCHOR127 .size flush_l2p_region, .-flush_l2p_region .section .text.l2p_flush,"ax",%progbits @@ -14538,32 +14807,32 @@ l2p_flush: @ frame_needed = 0, uses_anonymous_args = 0 push {r4, r5, r6, lr} movs r4, #0 - ldr r5, .L2088 - ldr r6, .L2088+4 -.L2085: + ldr r5, .L2143 + ldr r6, .L2143+4 +.L2140: ldrh r3, [r5] uxth r0, r4 cmp r3, r0 - bhi .L2087 + bhi .L2142 movs r0, #0 pop {r4, r5, r6, pc} -.L2087: +.L2142: ldr r2, [r6] uxth r3, r4 movs r1, #12 mla r3, r1, r3, r2 ldr r3, [r3, #4] cmp r3, #0 - bge .L2086 + bge .L2141 bl flush_l2p_region -.L2086: +.L2141: adds r4, r4, #1 - b .L2085 -.L2089: + b .L2140 +.L2144: .align 2 -.L2088: - .word .LANCHOR68 - .word .LANCHOR97 +.L2143: + .word .LANCHOR67 + .word .LANCHOR96 .size l2p_flush, .-l2p_flush .section .text.FtlVendorPartWrite,"ax",%progbits .align 1 @@ -14576,7 +14845,7 @@ l2p_flush: FtlVendorPartWrite: @ args = 0, pretend = 0, frame = 56 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L2102 + ldr r3, .L2157 push {r4, r5, r6, r7, r8, r10, fp, lr} sub sp, sp, #56 str r2, [sp] @@ -14585,26 +14854,26 @@ FtlVendorPartWrite: mov r5, r1 ldrh r3, [r3] cmp r2, r3 - bhi .L2098 - ldr r3, .L2102+4 + bhi .L2153 + ldr r3, .L2157+4 mov r8, #0 ldrh r6, [r3] lsr r6, r0, r6 lsl fp, r6, #2 -.L2092: - cbnz r5, .L2097 -.L2090: +.L2147: + cbnz r5, .L2152 +.L2145: mov r0, r8 add sp, sp, #56 @ sp needed pop {r4, r5, r6, r7, r8, r10, fp, pc} -.L2097: - ldr r3, .L2102+8 +.L2152: + ldr r3, .L2157+8 mov r0, r7 - ldr r10, .L2102+24 + ldr r10, .L2157+24 ldr r3, [r3] ldr r2, [r3, fp] - ldr r3, .L2102+12 + ldr r3, .L2157+12 str r2, [sp, #12] ldrh r3, [r3] mov r1, r3 @@ -14618,9 +14887,9 @@ FtlVendorPartWrite: cmp r5, r4 it cc uxthcc r4, r5 - cbz r2, .L2094 + cbz r2, .L2149 cmp r4, r3 - beq .L2094 + beq .L2149 ldr r3, [r10] add r0, sp, #20 str r2, [sp, #24] @@ -14630,7 +14899,7 @@ FtlVendorPartWrite: movs r3, #0 str r3, [sp, #32] bl FlashReadPages -.L2095: +.L2150: lsls r3, r4, #9 ldr r0, [r10] subs r5, r5, r4 @@ -14643,7 +14912,7 @@ FtlVendorPartWrite: bl ftl_memcpy ldr r2, [r10] mov r1, r6 - ldr r0, .L2102+16 + ldr r0, .L2157+16 adds r6, r6, #1 bl FtlMapWritePage ldr r3, [sp] @@ -14654,26 +14923,26 @@ FtlVendorPartWrite: ldr r3, [sp, #8] add r2, r2, r3 str r2, [sp] - b .L2092 -.L2094: - ldr r3, .L2102+20 + b .L2147 +.L2149: + ldr r3, .L2157+20 movs r1, #0 ldr r0, [r10] ldrh r2, [r3] bl ftl_memset - b .L2095 -.L2098: + b .L2150 +.L2153: mov r8, #-1 - b .L2090 -.L2103: + b .L2145 +.L2158: .align 2 -.L2102: +.L2157: .word .LANCHOR50 - .word .LANCHOR57 - .word .LANCHOR194 .word .LANCHOR56 + .word .LANCHOR194 + .word .LANCHOR55 .word .LANCHOR215 - .word .LANCHOR58 + .word .LANCHOR57 .word .LANCHOR185 .size FtlVendorPartWrite, .-FtlVendorPartWrite .section .text.Ftl_save_ext_data,"ax",%progbits @@ -14688,66 +14957,66 @@ Ftl_save_ext_data: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r2, .L2106 - ldr r3, .L2106+4 + ldr r2, .L2161 + ldr r3, .L2161+4 ldr r1, [r2] cmp r1, r3 - bne .L2104 - ldr r3, .L2106+8 + bne .L2159 + ldr r3, .L2161+8 movs r1, #1 movs r0, #0 str r3, [r2, #4] - ldr r3, .L2106+12 + ldr r3, .L2161+12 ldr r3, [r3] str r3, [r2, #88] - ldr r3, .L2106+16 + ldr r3, .L2161+16 ldr r3, [r3] str r3, [r2, #92] - ldr r3, .L2106+20 + ldr r3, .L2161+20 ldr r3, [r3] str r3, [r2, #8] - ldr r3, .L2106+24 + ldr r3, .L2161+24 ldr r3, [r3] str r3, [r2, #12] - ldr r3, .L2106+28 + ldr r3, .L2161+28 ldr r3, [r3] str r3, [r2, #16] - ldr r3, .L2106+32 + ldr r3, .L2161+32 ldr r3, [r3] str r3, [r2, #20] - ldr r3, .L2106+36 + ldr r3, .L2161+36 ldr r3, [r3] str r3, [r2, #28] - ldr r3, .L2106+40 + ldr r3, .L2161+40 ldr r3, [r3] str r3, [r2, #32] - ldr r3, .L2106+44 + ldr r3, .L2161+44 ldr r3, [r3] str r3, [r2, #36] - ldr r3, .L2106+48 + ldr r3, .L2161+48 ldr r3, [r3] str r3, [r2, #40] - ldr r3, .L2106+52 + ldr r3, .L2161+52 ldr r3, [r3] str r3, [r2, #44] - ldr r3, .L2106+56 + ldr r3, .L2161+56 ldr r3, [r3] str r3, [r2, #48] - ldr r3, .L2106+60 + ldr r3, .L2161+60 ldr r3, [r3] str r3, [r2, #60] - ldr r3, .L2106+64 + ldr r3, .L2161+64 ldr r3, [r3] str r3, [r2, #64] b FtlVendorPartWrite -.L2104: +.L2159: bx lr -.L2107: +.L2162: .align 2 -.L2106: +.L2161: .word .LANCHOR138 .word 1179929683 - .word 1342177360 + .word 1342177363 .word .LANCHOR216 .word .LANCHOR217 .word .LANCHOR161 @@ -14755,7 +15024,7 @@ Ftl_save_ext_data: .word .LANCHOR166 .word .LANCHOR165 .word .LANCHOR168 - .word .LANCHOR80 + .word .LANCHOR79 .word .LANCHOR163 .word .LANCHOR164 .word .LANCHOR169 @@ -14775,40 +15044,40 @@ FtlEctTblFlush: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 push {r3, lr} - ldr r3, .L2115 + ldr r3, .L2170 ldr r3, [r3] cmp r3, #0 - beq .L2113 - ldr r3, .L2115+4 + beq .L2168 + ldr r3, .L2170+4 ldr r3, [r3] cmp r3, #39 ite hi movhi r3, #32 movls r3, #4 -.L2109: - ldr r1, .L2115+8 +.L2164: + ldr r1, .L2170+8 ldrh r2, [r1] cmp r2, #31 ittt ls addls r2, r2, #1 movls r3, #1 strhls r2, [r1] @ movhi - ldr r2, .L2115+12 - cbnz r0, .L2111 + ldr r2, .L2170+12 + cbnz r0, .L2166 ldr r1, [r2] ldr r0, [r1, #20] ldr r1, [r1, #16] add r3, r3, r0 cmp r1, r3 - bcc .L2112 -.L2111: + bcc .L2167 +.L2166: ldr r2, [r2] movs r0, #64 ldr r3, [r2, #16] str r3, [r2, #20] - ldr r3, .L2115+16 + ldr r3, .L2170+16 str r3, [r2] - ldr r3, .L2115+20 + ldr r3, .L2170+20 ldrh r1, [r3] lsls r3, r1, #9 str r3, [r2, #12] @@ -14819,15 +15088,15 @@ FtlEctTblFlush: str r3, [r2, #4] bl FtlVendorPartWrite bl Ftl_save_ext_data -.L2112: +.L2167: movs r0, #0 pop {r3, pc} -.L2113: +.L2168: movs r3, #32 - b .L2109 -.L2116: + b .L2164 +.L2171: .align 2 -.L2115: +.L2170: .word .LANCHOR28 .word .LANCHOR170 .word .LANCHOR218 @@ -14846,120 +15115,120 @@ FtlEctTblFlush: allocate_new_data_superblock: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L2144 + ldr r3, .L2199 push {r4, r5, r6, lr} mov r4, r0 ldrh r5, [r0] ldrh r3, [r3] cmp r3, r5 - bcs .L2118 - ldr r1, .L2144+4 - movw r2, #3233 - ldr r0, .L2144+8 + bcs .L2173 + ldr r1, .L2199+4 + mov r2, #3264 + ldr r0, .L2199+8 bl printf - ldr r1, .L2144+12 - ldr r0, .L2144+16 + ldr r1, .L2199+12 + ldr r0, .L2199+16 bl printf -.L2118: - ldr r3, .L2144+20 +.L2173: + ldr r3, .L2199+20 ldr r3, [r3] cmp r3, #0 - bne .L2119 + bne .L2174 movw r3, #65535 cmp r5, r3 - beq .L2120 - ldr r3, .L2144+24 + beq .L2175 + ldr r3, .L2199+24 mov r0, r5 ldr r3, [r3] ldrh r3, [r3, r5, lsl #1] - cbz r3, .L2121 + cbz r3, .L2176 bl INSERT_DATA_LIST -.L2120: +.L2175: movs r3, #0 strb r3, [r4, #8] - ldr r3, .L2144+28 + ldr r3, .L2199+28 cmp r4, r3 - beq .L2122 - ldr r3, .L2144+32 + beq .L2177 + ldr r3, .L2199+32 ldrh r2, [r3] cmp r2, #1 - beq .L2122 - ldr r3, .L2144+36 + beq .L2177 + ldr r3, .L2199+36 ldrb r3, [r3] @ zero_extendqisi2 - cbz r3, .L2123 -.L2122: + cbz r3, .L2178 +.L2177: movs r3, #1 strb r3, [r4, #8] -.L2124: - ldr r6, .L2144+40 +.L2179: + ldr r6, .L2199+40 movw r2, #65535 ldrh r0, [r6] cmp r0, r2 - beq .L2129 + beq .L2184 cmp r5, r0 - bne .L2130 - ldr r3, .L2144+24 + bne .L2185 + ldr r3, .L2199+24 ldr r3, [r3] ldrh r3, [r3, r0, lsl #1] - cbz r3, .L2131 -.L2130: + cbz r3, .L2186 +.L2185: bl update_vpc_list -.L2131: +.L2186: movw r3, #65535 strh r3, [r6] @ movhi -.L2129: +.L2184: mov r0, r4 bl allocate_data_superblock bl l2p_flush movs r0, #0 bl FtlEctTblFlush bl FtlVpcTblFlush -.L2119: +.L2174: movs r0, #0 pop {r4, r5, r6, pc} -.L2121: +.L2176: bl INSERT_FREE_LIST - b .L2120 -.L2123: - ldr r3, .L2144+44 + b .L2175 +.L2178: + ldr r3, .L2199+44 cmp r4, r3 - bne .L2124 + bne .L2179 cmp r2, #3 - beq .L2126 - ldr r2, .L2144+48 + beq .L2181 + ldr r2, .L2199+48 ldr r2, [r2] cmp r2, #1 - bne .L2127 -.L2126: + bne .L2182 +.L2181: movs r2, #1 strb r2, [r3, #8] -.L2127: - ldr r2, .L2144+52 +.L2182: + ldr r2, .L2199+52 ldr r2, [r2] cmp r2, #0 - beq .L2124 - ldr r2, .L2144+56 + beq .L2179 + ldr r2, .L2199+56 ldr r2, [r2] cmp r2, #39 itt ls movls r2, #1 strbls r2, [r3, #8] - b .L2124 -.L2145: + b .L2179 +.L2200: .align 2 -.L2144: +.L2199: .word .LANCHOR40 .word .LANCHOR219 .word .LC5 .word .LC6 .word .LC7 - .word .LANCHOR77 - .word .LANCHOR84 - .word .LANCHOR93 - .word .LANCHOR44 - .word .LANCHOR8 - .word .LANCHOR133 + .word .LANCHOR76 + .word .LANCHOR83 .word .LANCHOR92 + .word .LANCHOR44 + .word .LANCHOR15 + .word .LANCHOR133 + .word .LANCHOR91 .word .LANCHOR158 .word .LANCHOR28 .word .LANCHOR170 @@ -14975,7 +15244,7 @@ allocate_new_data_superblock: FtlVendorPartRead: @ args = 0, pretend = 0, frame = 56 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L2156 + ldr r3, .L2211 push {r4, r5, r6, r7, r8, r10, fp, lr} mov r10, r2 adds r2, r0, r1 @@ -14984,28 +15253,28 @@ FtlVendorPartRead: mov r6, r1 ldrh r3, [r3] cmp r2, r3 - bhi .L2155 - ldr r3, .L2156+4 + bhi .L2210 + ldr r3, .L2211+4 mov r8, #0 - ldr fp, .L2156+28 + ldr fp, .L2211+28 ldrh r5, [r3] lsr r5, r0, r5 lsls r3, r5, #2 str r3, [sp] -.L2148: - cbnz r6, .L2154 -.L2146: +.L2203: + cbnz r6, .L2209 +.L2201: mov r0, r8 add sp, sp, #56 @ sp needed pop {r4, r5, r6, r7, r8, r10, fp, pc} -.L2154: - ldr r3, .L2156+8 +.L2209: + ldr r3, .L2211+8 mov r0, r7 ldr r2, [sp] ldr r3, [r3] ldr r3, [r3, r2] - ldr r2, .L2156+12 + ldr r2, .L2211+12 str r3, [sp, #8] ldrh r4, [r2] mov r1, r4 @@ -15020,7 +15289,7 @@ FtlVendorPartRead: lsls r2, r4, #9 str r2, [sp, #8] cmp r3, #0 - beq .L2150 + beq .L2205 ldr r2, [fp] add r0, sp, #20 str r3, [sp, #24] @@ -15034,28 +15303,28 @@ FtlVendorPartRead: ldr r2, [sp, #20] ldr r3, [sp, #12] adds r2, r2, #1 - ldr r2, .L2156+16 + ldr r2, .L2211+16 it eq moveq r8, #-1 ldr r2, [r2] cmp r2, #256 - bne .L2152 + bne .L2207 mov r2, r3 mov r1, r5 - ldr r0, .L2156+20 + ldr r0, .L2211+20 bl printf ldr r2, [fp] mov r1, r5 - ldr r0, .L2156+24 + ldr r0, .L2211+24 bl FtlMapWritePage -.L2152: +.L2207: ldr r1, [fp] lsls r2, r4, #9 ldr r3, [sp, #4] mov r0, r10 add r1, r1, r3, lsl #9 bl ftl_memcpy -.L2153: +.L2208: ldr r3, [sp, #8] adds r5, r5, #1 subs r6, r6, r4 @@ -15064,23 +15333,23 @@ FtlVendorPartRead: ldr r3, [sp] adds r3, r3, #4 str r3, [sp] - b .L2148 -.L2150: + b .L2203 +.L2205: lsls r2, r4, #9 mov r1, r3 mov r0, r10 bl ftl_memset - b .L2153 -.L2155: + b .L2208 +.L2210: mov r8, #-1 - b .L2146 -.L2157: + b .L2201 +.L2212: .align 2 -.L2156: +.L2211: .word .LANCHOR50 - .word .LANCHOR57 - .word .LANCHOR194 .word .LANCHOR56 + .word .LANCHOR194 + .word .LANCHOR55 .word .LANCHOR202 .word .LC42 .word .LANCHOR215 @@ -15099,30 +15368,30 @@ FtlLoadEctTbl: @ frame_needed = 0, uses_anonymous_args = 0 push {r3, r4, r5, lr} movs r0, #64 - ldr r4, .L2160 - ldr r5, .L2160+4 + ldr r4, .L2215 + ldr r5, .L2215+4 ldr r2, [r4] ldrh r1, [r5] bl FtlVendorPartRead ldr r3, [r4] ldr r2, [r3] - ldr r3, .L2160+8 + ldr r3, .L2215+8 cmp r2, r3 - beq .L2159 - ldr r1, .L2160+12 - ldr r0, .L2160+16 + beq .L2214 + ldr r1, .L2215+12 + ldr r0, .L2215+16 bl printf ldrh r2, [r5] movs r1, #0 ldr r0, [r4] lsls r2, r2, #9 bl ftl_memset -.L2159: +.L2214: movs r0, #0 pop {r3, r4, r5, pc} -.L2161: +.L2216: .align 2 -.L2160: +.L2215: .word .LANCHOR191 .word .LANCHOR190 .word 1112818501 @@ -15142,92 +15411,92 @@ Ftl_load_ext_data: @ frame_needed = 0, uses_anonymous_args = 0 push {r3, r4, r5, lr} movs r1, #1 - ldr r4, .L2166 + ldr r4, .L2221 movs r0, #0 - ldr r5, .L2166+4 + ldr r5, .L2221+4 mov r2, r4 bl FtlVendorPartRead ldr r3, [r4] cmp r3, r5 - beq .L2163 + beq .L2218 mov r2, #512 movs r1, #0 mov r0, r4 bl ftl_memset str r5, [r4] -.L2163: +.L2218: ldr r3, [r4] cmp r3, r5 - ldr r5, .L2166+8 - bne .L2164 + ldr r5, .L2221+8 + bne .L2219 ldr r2, [r4, #88] - ldr r3, .L2166+12 + ldr r3, .L2221+12 str r2, [r3] ldr r2, [r4, #92] - ldr r3, .L2166+16 + ldr r3, .L2221+16 str r2, [r3] ldr r2, [r4, #8] - ldr r3, .L2166+20 + ldr r3, .L2221+20 str r2, [r3] ldr r2, [r4, #12] - ldr r3, .L2166+24 + ldr r3, .L2221+24 str r2, [r3] ldr r2, [r4, #16] - ldr r3, .L2166+28 + ldr r3, .L2221+28 str r2, [r3] ldr r2, [r4, #20] - ldr r3, .L2166+32 + ldr r3, .L2221+32 str r2, [r3] ldr r3, [r4, #28] ldr r2, [r4, #32] str r3, [r5] - ldr r3, .L2166+36 + ldr r3, .L2221+36 str r2, [r3] ldr r2, [r4, #36] - ldr r3, .L2166+40 + ldr r3, .L2221+40 str r2, [r3] ldr r2, [r4, #40] - ldr r3, .L2166+44 + ldr r3, .L2221+44 str r2, [r3] ldr r2, [r4, #44] - ldr r3, .L2166+48 + ldr r3, .L2221+48 str r2, [r3] ldr r2, [r4, #48] - ldr r3, .L2166+52 + ldr r3, .L2221+52 str r2, [r3] ldr r2, [r4, #60] - ldr r3, .L2166+56 + ldr r3, .L2221+56 str r2, [r3] -.L2164: - ldr r3, .L2166+60 +.L2219: + ldr r3, .L2221+60 movs r2, #0 str r2, [r3] ldr r2, [r4, #68] - ldr r3, .L2166+64 + ldr r3, .L2221+64 cmp r2, r3 - bne .L2165 - ldr r3, .L2166+68 + bne .L2220 + ldr r3, .L2221+68 movs r2, #1 - ldr r1, .L2166+72 - ldr r0, .L2166+76 + ldr r1, .L2221+72 + ldr r0, .L2221+76 str r2, [r3] bl printf -.L2165: - ldr r3, .L2166+80 - ldr r1, .L2166+84 +.L2220: + ldr r3, .L2221+80 + ldr r1, .L2221+84 ldrh r2, [r3] - ldr r3, .L2166+88 + ldr r3, .L2221+88 ldrh r1, [r1] ldr r0, [r3] ldr r3, [r5] mla r0, r0, r2, r3 bl __aeabi_uidiv - ldr r3, .L2166+92 + ldr r3, .L2221+92 str r0, [r3] pop {r3, r4, r5, pc} -.L2167: +.L2222: .align 2 -.L2166: +.L2221: .word .LANCHOR138 .word 1179929683 .word .LANCHOR168 @@ -15237,7 +15506,7 @@ Ftl_load_ext_data: .word .LANCHOR162 .word .LANCHOR166 .word .LANCHOR165 - .word .LANCHOR80 + .word .LANCHOR79 .word .LANCHOR163 .word .LANCHOR164 .word .LANCHOR169 @@ -15298,34 +15567,34 @@ FtlMapBlkWriteDumpData: mov r4, r0 ldr r3, [r0, #36] cmp r3, #0 - beq .L2170 + beq .L2225 movs r3, #0 ldrh r6, [r0, #6] str r3, [r0, #36] - ldr r3, .L2184 + ldr r3, .L2239 ldr r10, [r0, #24] ldr r3, [r3] cmp r3, #0 - bne .L2170 - ldr r3, .L2184+4 - ldr r5, .L2184+8 + bne .L2225 + ldr r3, .L2239+4 + ldr r5, .L2239+8 ldr r3, [r3] mov r7, r5 str r3, [r5, #8] - ldr r3, .L2184+12 + ldr r3, .L2239+12 ldr r8, [r3] ldrh r3, [r0, #2] str r8, [r5, #12] - cbz r3, .L2174 - ldr r2, .L2184+16 + cbz r3, .L2229 + ldr r2, .L2239+16 ldrh r2, [r2] subs r2, r2, #1 cmp r3, r2 - bge .L2174 + bge .L2229 ldrh r2, [r0] movw r1, #65535 cmp r2, r1 - beq .L2174 + beq .L2229 ldr r1, [r0, #12] subs r3, r3, #1 mov r0, r5 @@ -15337,50 +15606,50 @@ FtlMapBlkWriteDumpData: bl FlashReadPages ldr r3, [r5] adds r3, r3, #1 - beq .L2174 + beq .L2229 ldr r3, [r4, #24] ldrh r1, [r8, #8] ldr r2, [r3, r1, lsl #2] ldr r3, [r5, #4] cmp r2, r3 - bne .L2174 + bne .L2229 ldr r2, [r5, #8] -.L2183: +.L2238: mov r0, r4 pop {r3, r4, r5, r6, r7, r8, r10, lr} b FtlMapWritePage -.L2174: +.L2229: subs r6, r6, #1 uxth r6, r6 ldr r3, [r10, r6, lsl #2] str r3, [r7, #4] - cbz r3, .L2175 + cbz r3, .L2230 movs r2, #1 - ldr r0, .L2184+8 + ldr r0, .L2239+8 mov r1, r2 bl FlashReadPages -.L2176: +.L2231: ldr r2, [r7, #8] mov r1, r6 - b .L2183 -.L2175: - ldr r3, .L2184+20 + b .L2238 +.L2230: + ldr r3, .L2239+20 movs r1, #255 ldr r0, [r7, #8] ldrh r2, [r3] bl ftl_memset - b .L2176 -.L2170: + b .L2231 +.L2225: pop {r3, r4, r5, r6, r7, r8, r10, pc} -.L2185: +.L2240: .align 2 -.L2184: - .word .LANCHOR77 +.L2239: + .word .LANCHOR76 .word .LANCHOR184 .word .LANCHOR202 .word .LANCHOR188 - .word .LANCHOR54 - .word .LANCHOR58 + .word .LANCHOR53 + .word .LANCHOR57 .size FtlMapBlkWriteDumpData, .-FtlMapBlkWriteDumpData .section .text.FtlScanSysBlk,"ax",%progbits .align 1 @@ -15395,69 +15664,69 @@ FtlScanSysBlk: @ frame_needed = 0, uses_anonymous_args = 0 push {r4, r5, r6, r7, r8, r10, fp, lr} movs r4, #0 - ldr r5, .L2268 + ldr r5, .L2323 sub sp, sp, #32 mov r1, r4 - ldr r3, .L2268+4 + ldr r3, .L2323+4 ldr r2, [r5] - ldr r6, .L2268+8 + ldr r6, .L2323+8 strh r4, [r3] @ movhi - ldr r3, .L2268+12 + ldr r3, .L2323+12 lsls r2, r2, #2 strh r4, [r6] @ movhi - ldr r7, .L2268+16 + ldr r7, .L2323+16 ldr r0, [r3] bl ftl_memset ldr r2, [r5] mov r1, r4 - ldr r3, .L2268+20 + ldr r3, .L2323+20 lsls r2, r2, #1 ldr r0, [r3] bl ftl_memset ldrh r2, [r7] mov r1, r4 - ldr r3, .L2268+24 + ldr r3, .L2323+24 lsls r2, r2, #2 ldr r0, [r3] bl ftl_memset ldrh r2, [r7] mov r1, r4 - ldr r3, .L2268+28 + ldr r3, .L2323+28 lsls r2, r2, #1 ldr r0, [r3] bl ftl_memset - movs r2, #12 + movs r2, #16 movs r1, #255 - ldr r0, .L2268+32 + ldr r0, .L2323+32 bl ftl_memset - ldr r3, .L2268+36 + ldr r3, .L2323+36 str r6, [sp, #12] str r5, [sp, #16] ldrh r3, [r3] str r3, [sp, #4] -.L2187: - ldr r3, .L2268+40 +.L2242: + ldr r3, .L2323+40 ldr r2, [sp, #4] ldrh r3, [r3] cmp r3, r2 - bls .L2229 - ldr r3, .L2268+44 + bls .L2284 + ldr r3, .L2323+44 movs r5, #0 - ldr r1, .L2268+48 + ldr r1, .L2323+48 mov fp, r5 movs r7, #36 ldrh r8, [r3] - ldr r3, .L2268+52 + ldr r3, .L2323+52 ldr r2, [r1] - ldr r1, .L2268+56 + ldr r1, .L2323+56 ldr r6, [r3] - ldr r3, .L2268+60 + ldr r3, .L2323+60 str r2, [sp, #8] ldrh r10, [r1] ldr r3, [r3] - ldr r2, .L2268+64 - b .L2230 -.L2189: + ldr r2, .L2323+64 + b .L2285 +.L2244: ldrb r0, [r2, r5] @ zero_extendqisi2 ldr r1, [sp, #4] str r3, [sp, #28] @@ -15467,7 +15736,7 @@ FtlScanSysBlk: bl FtlBbmIsBadBlock ldr r2, [sp, #24] ldr r3, [sp, #28] - cbnz r0, .L2188 + cbnz r0, .L2243 ldr r1, [sp, #20] mla r0, r7, fp, r6 ldr r4, [sp, #8] @@ -15480,31 +15749,31 @@ FtlScanSysBlk: str r1, [r0, #12] add r1, fp, #1 uxth fp, r1 -.L2188: +.L2243: adds r5, r5, #1 -.L2230: +.L2285: uxth r1, r5 cmp r8, r1 - bhi .L2189 + bhi .L2244 cmp fp, #0 - bne .L2190 -.L2228: + bne .L2245 +.L2283: ldr r3, [sp, #4] adds r3, r3, #1 uxth r3, r3 str r3, [sp, #4] - b .L2187 -.L2190: + b .L2242 +.L2245: movs r7, #0 movs r2, #1 mov r1, fp mov r0, r6 bl FlashReadPages -.L2191: +.L2246: uxth r3, r7 cmp fp, r3 - bls .L2228 - ldr r3, .L2268+52 + bls .L2283 + ldr r3, .L2323+52 mov r8, #36 mul r8, r8, r7 ldr r3, [r3] @@ -15514,10 +15783,10 @@ FtlScanSysBlk: ldr r6, [r2, #12] adds r3, r3, #1 ubfx r5, r5, #10, #16 - bne .L2194 + bne .L2249 mov r10, #16 -.L2196: - ldr r3, .L2268+52 +.L2251: + ldr r3, .L2323+52 movs r2, #1 mov r1, r2 ldr r0, [r3] @@ -15529,88 +15798,88 @@ FtlScanSysBlk: ldrh r2, [r6] movw r3, #65535 cmp r2, r3 - ldr r3, .L2268+52 + ldr r3, .L2323+52 ldr r3, [r3] - bne .L2193 + bne .L2248 mov r2, #-1 str r2, [r3, r8] - ldr r3, .L2268+52 + ldr r3, .L2323+52 ldr r3, [r3] ldr r3, [r3, r8] cmp r3, r2 - beq .L2195 -.L2194: - ldr r3, .L2268+68 + beq .L2250 +.L2249: + ldr r3, .L2323+68 ldr r2, [r3] ldr r3, [r6, #4] adds r1, r2, #1 - beq .L2197 + beq .L2252 cmp r2, r3 - bhi .L2198 -.L2197: + bhi .L2253 +.L2252: adds r2, r3, #1 ittt ne - ldrne r1, .L2268+68 + ldrne r1, .L2323+68 addne r2, r3, #1 strne r2, [r1] -.L2198: +.L2253: ldrh r2, [r6] movw r1, #61604 cmp r2, r1 - beq .L2200 - bhi .L2201 + beq .L2255 + bhi .L2256 movw r3, #61574 cmp r2, r3 - beq .L2202 -.L2199: + beq .L2257 +.L2254: adds r7, r7, #1 - b .L2191 -.L2193: + b .L2246 +.L2248: ldr r3, [r3, r8] adds r3, r3, #1 - bne .L2194 + bne .L2249 add r10, r10, #-1 uxth r10, r10 cmp r10, #0 - bne .L2196 -.L2195: - ldr r3, .L2268+72 + bne .L2251 +.L2250: + ldr r3, .L2323+72 ldrb r1, [r3] @ zero_extendqisi2 - cbnz r1, .L2267 -.L2226: + cbnz r1, .L2322 +.L2281: mov r0, r5 bl FtlFreeSysBlkQueueIn - b .L2199 -.L2201: + b .L2254 +.L2256: movw r3, #61634 cmp r2, r3 - beq .L2203 + beq .L2258 movw r3, #65535 cmp r2, r3 - bne .L2199 -.L2267: + bne .L2254 +.L2322: movs r1, #0 - b .L2226 -.L2203: - ldr r3, .L2268+8 + b .L2281 +.L2258: + ldr r3, .L2323+8 ldrh r2, [r3] - ldr r3, .L2268 + ldr r3, .L2323 ldr r3, [r3] cmp r2, r3 - bls .L2205 - ldr r1, .L2268+76 - movw r2, #1297 - ldr r0, .L2268+80 + bls .L2260 + ldr r1, .L2323+76 + movw r2, #1305 + ldr r0, .L2323+80 bl printf - ldr r1, .L2268+84 - ldr r0, .L2268+88 + ldr r1, .L2323+84 + ldr r0, .L2323+88 bl printf -.L2205: +.L2260: ldr r3, [sp, #16] ldr r2, [sp, #12] ldr r1, [r3] ldrh r0, [r2] - ldr r2, .L2268+12 + ldr r2, .L2323+12 uxth r10, r1 ldr ip, [r2] add r3, r10, #-1 @@ -15618,61 +15887,61 @@ FtlScanSysBlk: add r10, r10, #-1 sxth r3, r3 sxth r10, r10 -.L2206: +.L2261: cmp r3, r10 - bgt .L2212 + bgt .L2267 cmp r3, #0 - bge .L2245 - b .L2199 -.L2212: + bge .L2300 + b .L2254 +.L2267: ldr r2, [ip, r3, lsl #2] add r8, ip, r3, lsl #2 ldr r4, [r6, #4] cmp r4, r2 - bls .L2207 + bls .L2262 ldr r2, [ip] - cbnz r2, .L2208 + cbnz r2, .L2263 cmp r1, r0 ittt ne - ldrne r2, .L2268+8 + ldrne r2, .L2323+8 addne r0, r0, #1 strhne r0, [r2] @ movhi -.L2208: - ldr r2, .L2268+20 +.L2263: + ldr r2, .L2323+20 uxth r10, r3 ldr r0, [r2] movs r2, #0 -.L2209: +.L2264: uxth lr, r2 sxth r1, r2 cmp r10, lr - bhi .L2210 + bhi .L2265 ldr r2, [r6, #4] cmp r3, #0 str r2, [r8] strh r5, [r0, r3, lsl #1] @ movhi - blt .L2199 - ldr r2, .L2268+8 + blt .L2254 + ldr r2, .L2323+8 ldrh r0, [r2] - ldr r2, .L2268 + ldr r2, .L2323 ldr r2, [r2] subs r2, r2, r0 subs r2, r2, #1 sxth r2, r2 cmp r3, r2 - bgt .L2199 -.L2245: - ldr r2, .L2268+8 + bgt .L2254 +.L2300: + ldr r2, .L2323+8 adds r0, r0, #1 strh r0, [r2] @ movhi ldr r2, [r6, #4] str r2, [ip, r3, lsl #2] - ldr r2, .L2268+20 -.L2265: + ldr r2, .L2323+20 +.L2320: ldr r2, [r2] strh r5, [r2, r3, lsl #1] @ movhi - b .L2199 -.L2210: + b .L2254 +.L2265: add lr, ip, r1, lsl #2 adds r2, r2, #1 ldr r4, [lr, #4] @@ -15680,106 +15949,106 @@ FtlScanSysBlk: ldrh lr, [lr, #2] str r4, [ip, r1, lsl #2] strh lr, [r0, r1, lsl #1] @ movhi - b .L2209 -.L2207: + b .L2264 +.L2262: subs r3, r3, #1 sxth r3, r3 - b .L2206 -.L2269: + b .L2261 +.L2324: .align 2 -.L2268: - .word .LANCHOR65 - .word .LANCHOR71 +.L2323: + .word .LANCHOR64 + .word .LANCHOR70 .word .LANCHOR128 .word .LANCHOR130 - .word .LANCHOR62 + .word .LANCHOR61 .word .LANCHOR129 .word .LANCHOR193 - .word .LANCHOR72 + .word .LANCHOR71 .word .LANCHOR209 .word .LANCHOR40 .word .LANCHOR41 .word .LANCHOR38 - .word .LANCHOR106 - .word .LANCHOR180 - .word .LANCHOR59 .word .LANCHOR105 + .word .LANCHOR180 + .word .LANCHOR58 + .word .LANCHOR104 .word .LANCHOR47 .word .LANCHOR159 - .word .LANCHOR8 + .word .LANCHOR15 .word .LANCHOR220 .word .LC5 .word .LC6 .word .LC7 -.L2202: - ldr r8, .L2270+20 - ldr r10, .L2270+28 +.L2257: + ldr r8, .L2325+20 + ldr r10, .L2325+28 ldrh r2, [r8] ldrh r3, [r10] cmp r2, r3 - bls .L2215 - ldr r1, .L2270 - mov r2, #1344 - ldr r0, .L2270+4 + bls .L2270 + ldr r1, .L2325 + mov r2, #1352 + ldr r0, .L2325+4 bl printf - ldr r1, .L2270+8 - ldr r0, .L2270+12 + ldr r1, .L2325+8 + ldr r0, .L2325+12 bl printf -.L2215: - ldr r2, .L2270+16 +.L2270: + ldr r2, .L2325+16 ldrh lr, [r10] ldrh ip, [r8] ldr r0, [r2] add r10, lr, #-1 sxth r3, r10 sub r10, r10, ip -.L2216: +.L2271: cmp r3, r10 - ble .L2221 + ble .L2276 ldr r1, [r6, #4] add r8, r0, r3, lsl #2 ldr r2, [r0, r3, lsl #2] cmp r1, r2 - bls .L2217 + bls .L2272 ldr r2, [r0] - cbnz r2, .L2218 + cbnz r2, .L2273 cmp lr, ip ittt ne - ldrne r2, .L2270+20 + ldrne r2, .L2325+20 addne ip, ip, #1 strhne ip, [r2] @ movhi -.L2218: - ldr r2, .L2270+24 +.L2273: + ldr r2, .L2325+24 uxth r10, r3 ldr ip, [r2] movs r2, #0 -.L2219: +.L2274: uxth lr, r2 sxth r1, r2 cmp r10, lr - bhi .L2220 + bhi .L2275 ldr r2, [r6, #4] str r2, [r8] strh r5, [ip, r3, lsl #1] @ movhi -.L2221: +.L2276: cmp r3, #0 - blt .L2199 - ldr r2, .L2270+28 - ldr ip, .L2270+20 + blt .L2254 + ldr r2, .L2325+28 + ldr ip, .L2325+20 ldrh r2, [r2] ldrh r1, [ip] subs r2, r2, #1 subs r2, r2, r1 sxth r2, r2 cmp r3, r2 - bgt .L2199 + bgt .L2254 ldr r2, [r6, #4] adds r1, r1, #1 strh r1, [ip] @ movhi str r2, [r0, r3, lsl #2] - ldr r2, .L2270+24 - b .L2265 -.L2220: + ldr r2, .L2325+24 + b .L2320 +.L2275: add lr, r0, r1, lsl #2 adds r2, r2, #1 ldr r4, [lr, #4] @@ -15787,91 +16056,91 @@ FtlScanSysBlk: ldrh lr, [lr, #2] str r4, [r0, r1, lsl #2] strh lr, [ip, r1, lsl #1] @ movhi - b .L2219 -.L2217: + b .L2274 +.L2272: subs r3, r3, #1 sxth r3, r3 - b .L2216 -.L2200: - ldr r8, .L2270+48 + b .L2271 +.L2255: + ldr r8, .L2325+48 movw r2, #65535 ldrh r1, [r8] cmp r1, r2 - bne .L2223 -.L2266: + bne .L2278 +.L2321: strh r5, [r8] @ movhi str r3, [r8, #8] - b .L2199 -.L2223: + b .L2254 +.L2278: ldrh r0, [r8, #4] cmp r0, r2 - beq .L2224 + beq .L2279 movs r1, #1 bl FtlFreeSysBlkQueueIn -.L2224: +.L2279: ldr r3, [r6, #4] ldr r2, [r8, #8] cmp r2, r3 - bcs .L2225 + bcs .L2280 ldrh r2, [r8] strh r2, [r8, #4] @ movhi - b .L2266 -.L2225: + b .L2321 +.L2280: strh r5, [r8, #4] @ movhi - b .L2199 -.L2229: - ldr r3, .L2270+32 + b .L2254 +.L2284: + ldr r3, .L2325+32 ldr r2, [r3] ldrh r3, [r2] - cbz r3, .L2231 -.L2234: - ldr r3, .L2270+24 + cbz r3, .L2286 +.L2289: + ldr r3, .L2325+24 ldr r4, [r3] ldrh r2, [r4] cmp r2, #0 - beq .L2232 -.L2233: - ldr r3, .L2270+36 + beq .L2287 +.L2288: + ldr r3, .L2325+36 ldrh r2, [r3] - ldr r3, .L2270+40 + ldr r3, .L2325+40 ldr r3, [r3] cmp r2, r3 - bls .L2264 - ldr r1, .L2270 - movw r2, #1478 - ldr r0, .L2270+4 + bls .L2319 + ldr r1, .L2325 + movw r2, #1486 + ldr r0, .L2325+4 bl printf - ldr r1, .L2270+8 - ldr r0, .L2270+12 + ldr r1, .L2325+8 + ldr r0, .L2325+12 bl printf -.L2264: +.L2319: movs r0, #0 add sp, sp, #32 @ sp needed pop {r4, r5, r6, r7, r8, r10, fp, pc} -.L2231: - ldr r1, .L2270+36 +.L2286: + ldr r1, .L2325+36 ldrh r1, [r1] cmp r1, #0 - beq .L2234 - ldr r5, .L2270+40 + beq .L2289 + ldr r5, .L2325+40 ldr r0, [r5] -.L2235: +.L2290: sxth r1, r3 cmp r1, r0 - bcs .L2234 + bcs .L2289 ldrh r4, [r2, r1, lsl #1] adds r3, r3, #1 cmp r4, #0 - beq .L2235 - ldr r3, .L2270+44 + beq .L2290 + ldr r3, .L2325+44 movs r6, #0 ldr r0, [r3] mov r3, r1 -.L2236: +.L2291: ldr r4, [r5] cmp r3, r4 - bcs .L2234 + bcs .L2289 ldrh r7, [r2, r3, lsl #1] subs r4, r3, r1 strh r7, [r2, r4, lsl #1] @ movhi @@ -15880,30 +16149,30 @@ FtlScanSysBlk: strh r6, [r2, r3, lsl #1] @ movhi adds r3, r3, #1 sxth r3, r3 - b .L2236 -.L2232: - ldr r3, .L2270+20 + b .L2291 +.L2287: + ldr r3, .L2325+20 ldrh r3, [r3] cmp r3, #0 - beq .L2233 - ldr r5, .L2270+28 + beq .L2288 + ldr r5, .L2325+28 ldrh r1, [r5] -.L2241: +.L2296: sxth r3, r2 cmp r3, r1 mov r6, r3 - bge .L2233 + bge .L2288 ldrh r0, [r4, r3, lsl #1] adds r2, r2, #1 cmp r0, #0 - beq .L2241 - ldr r2, .L2270+16 + beq .L2296 + ldr r2, .L2325+16 movs r0, #0 ldr r2, [r2] -.L2242: +.L2297: ldrh r1, [r5] cmp r3, r1 - bge .L2233 + bge .L2288 ldrh r7, [r4, r3, lsl #1] subs r1, r3, r6 strh r7, [r4, r1, lsl #1] @ movhi @@ -15912,21 +16181,21 @@ FtlScanSysBlk: adds r1, r3, #1 strh r0, [r4, r3, lsl #1] @ movhi sxth r3, r1 - b .L2242 -.L2271: + b .L2297 +.L2326: .align 2 -.L2270: +.L2325: .word .LANCHOR220 .word .LC5 .word .LC6 .word .LC7 .word .LANCHOR193 + .word .LANCHOR70 .word .LANCHOR71 - .word .LANCHOR72 - .word .LANCHOR62 + .word .LANCHOR61 .word .LANCHOR129 .word .LANCHOR128 - .word .LANCHOR65 + .word .LANCHOR64 .word .LANCHOR130 .word .LANCHOR209 .size FtlScanSysBlk, .-FtlScanSysBlk @@ -15943,76 +16212,127 @@ FtlLoadSysInfo: @ frame_needed = 0, uses_anonymous_args = 0 push {r0, r1, r4, r5, r6, r7, r8, r10, fp, lr} movs r1, #0 - ldr r8, .L2297+156 - ldr r5, .L2297 + ldr r8, .L2361+164 + ldr r6, .L2361 ldr r3, [r8] - ldr r4, .L2297+4 - ldr r10, .L2297+160 - ldrh r2, [r5] - ldr r7, .L2297+8 + ldr r4, .L2361+4 + ldr r10, .L2361+168 + ldrh r2, [r6] + ldr r5, .L2361+8 str r3, [r4, #8] - ldr r6, .L2297+12 + ldr r7, .L2361+12 ldr r3, [r10] lsls r2, r2, #1 - ldr r0, [r7] + ldr r0, [r5] str r3, [r4, #12] bl ftl_memset - ldrh r0, [r6] + ldrh r0, [r7] movw r3, #65535 - str r7, [sp] + str r5, [sp] cmp r0, r3 - bne .L2273 -.L2282: + bne .L2328 +.L2340: mov r0, #-1 -.L2272: +.L2327: add sp, sp, #8 @ sp needed pop {r4, r5, r6, r7, r8, r10, fp, pc} -.L2273: +.L2328: movs r1, #1 - mov fp, r4 bl FtlGetLastWrittenPage - ldr r3, .L2297+16 - sxth r7, r0 + ldrsh fp, [r7] + sxth r5, r0 adds r0, r0, #1 - strh r0, [r6, #2] @ movhi -.L2275: - cmp r7, #0 - bge .L2278 - ldr r1, .L2297+20 - movw r2, #1538 - ldr r0, .L2297+24 + strh r0, [r7, #2] @ movhi +.L2330: + cmp r5, #0 + bge .L2336 + movw r2, #1555 + ldr r1, .L2361+16 + ldr r0, .L2361+20 bl printf - ldr r1, .L2297+28 - ldr r0, .L2297+32 + ldr r1, .L2361+24 + ldr r0, .L2361+28 bl printf -.L2277: - ldr r2, .L2297+36 - ldrh r3, [r5] + b .L2335 +.L2336: + orr r2, r5, fp, lsl #10 + ldr r0, .L2361+4 + str r2, [r4, #4] + ldr r2, [r8] + str r2, [r4, #8] + movs r2, #1 + mov r1, r2 + bl FlashReadPages + ldr r2, .L2361+32 + ldrb r2, [r2] @ zero_extendqisi2 + cbz r2, .L2331 + ldr r2, [r4, #12] + ldr r2, [r2, #12] + str r2, [sp, #4] + cbz r2, .L2331 + ldr r1, .L2361+36 + ldr r0, [r4, #8] + ldrh r1, [r1] + bl js_hash + ldr r2, [sp, #4] + cmp r2, r0 + beq .L2331 + cbnz r5, .L2332 + ldrh r2, [r7, #4] + cmp fp, r2 + beq .L2332 + sxth fp, r2 + ldr r2, .L2361+40 + ldrh r5, [r2] +.L2334: + subs r5, r5, #1 + sxth r5, r5 + b .L2330 +.L2332: + mov r2, #-1 + str r2, [r4] +.L2331: + ldr r2, [r4] + adds r2, r2, #1 + beq .L2334 + ldr r2, [r8] + ldr r3, .L2361+44 + ldr r2, [r2] + cmp r2, r3 + bne .L2334 + ldr r2, [r10] + ldrh r1, [r2] + movw r2, #61604 + cmp r1, r2 + bne .L2334 +.L2335: + ldr r2, .L2361+36 + ldrh r3, [r6] ldrh r2, [r2] adds r3, r3, #24 cmp r2, r3, lsl #1 - bcs .L2280 - ldr r1, .L2297+20 - movw r2, #1540 - ldr r0, .L2297+24 + bcs .L2338 + ldr r1, .L2361+16 + movw r2, #1557 + ldr r0, .L2361+20 bl printf - ldr r1, .L2297+28 - ldr r0, .L2297+32 + ldr r1, .L2361+24 + ldr r0, .L2361+28 bl printf -.L2280: +.L2338: movs r2, #48 ldr r1, [r4, #8] - ldr r0, .L2297+40 + ldr r0, .L2361+48 bl ftl_memcpy - ldrh r2, [r5] + ldrh r2, [r6] ldr r3, [sp] ldr r1, [r4, #8] lsls r2, r2, #1 ldr r0, [r3] adds r1, r1, #48 bl ftl_memcpy - ldrh r1, [r5] + ldrh r1, [r6] ldr r3, [r4, #8] lsrs r2, r1, #3 adds r1, r1, #24 @@ -16020,14 +16340,14 @@ FtlLoadSysInfo: adds r2, r2, #4 bic r1, r1, #3 add r1, r1, r3 - ldr r3, .L2297+44 + ldr r3, .L2361+52 ldr r0, [r3] bl ftl_memcpy - ldr r3, .L2297+48 + ldr r3, .L2361+56 ldrh r3, [r3] - cbz r3, .L2281 - ldrh r1, [r5] - ldr r3, .L2297+52 + cbz r3, .L2339 + ldrh r1, [r6] + ldr r3, .L2361+60 ldrh r2, [r3] lsrs r3, r1, #3 add r3, r3, r1, lsl #1 @@ -16036,65 +16356,65 @@ FtlLoadSysInfo: lsls r2, r2, #2 ubfx r3, r3, #2, #14 add r1, r1, r3, lsl #2 - ldr r3, .L2297+56 + ldr r3, .L2361+64 ldr r0, [r3] bl ftl_memcpy -.L2281: - ldr r4, .L2297+40 - ldr r3, .L2297+16 +.L2339: + ldr r4, .L2361+48 + ldr r3, .L2361+44 ldr r2, [r4] cmp r2, r3 - bne .L2282 - ldr r3, .L2297+60 + bne .L2340 + ldr r3, .L2361+68 ldrb r2, [r4, #10] @ zero_extendqisi2 ldrh r5, [r4, #8] ldrh r3, [r3] - strh r5, [r6, #6] @ movhi + strh r5, [r7, #6] @ movhi cmp r2, r3 - bne .L2282 - ldr r3, .L2297+64 - ldr r2, .L2297+68 + bne .L2340 + ldr r3, .L2361+72 + ldr r2, .L2361+76 str r5, [r3] - ldr r3, .L2297+72 + ldr r3, .L2361+80 ldrh r3, [r3] muls r3, r5, r3 str r3, [r2] - ldr r2, .L2297+76 + ldr r2, .L2361+84 ldrh r2, [r2] muls r3, r2, r3 - ldr r2, .L2297+80 + ldr r2, .L2361+88 str r3, [r2] - ldr r3, .L2297+84 + ldr r3, .L2361+92 ldr r6, [r3] - ldr r3, .L2297+88 + ldr r3, .L2361+96 ldrh r0, [r3, #6] - ldr r3, .L2297+92 + ldr r3, .L2361+100 subs r0, r6, r0 ldrh r1, [r3] subs r0, r0, r5 bl __aeabi_uidiv - ldr r3, .L2297+96 + ldr r3, .L2361+104 cmp r5, r6 strh r0, [r3] @ movhi - bls .L2283 - ldr r1, .L2297+20 - movw r2, #1567 - ldr r0, .L2297+24 + bls .L2341 + ldr r1, .L2361+16 + mov r2, #1584 + ldr r0, .L2361+20 bl printf - ldr r1, .L2297+28 - ldr r0, .L2297+32 + ldr r1, .L2361+24 + ldr r0, .L2361+28 bl printf -.L2283: +.L2341: ldrh r2, [r4, #16] - ldr r3, .L2297+100 + ldr r3, .L2361+108 ldrh ip, [r4, #14] - ldr r7, .L2297+104 + ldr r7, .L2361+112 lsrs r1, r2, #6 and r2, r2, #63 strb r2, [r3, #6] ldrb r2, [r4, #11] @ zero_extendqisi2 strh r1, [r3, #2] @ movhi - ldr r1, .L2297+108 + ldr r1, .L2361+116 strb r2, [r3, #8] ldrh r2, [r4, #18] strh ip, [r3] @ movhi @@ -16113,7 +16433,7 @@ FtlLoadSysInfo: strh r5, [r1, #2] @ movhi ldrh r5, [r4, #22] strb r2, [r1, #8] - ldr r2, .L2297+112 + ldr r2, .L2361+120 strh r5, [r2] @ movhi ldrh r5, [r4, #24] lsrs r6, r5, #6 @@ -16123,31 +16443,31 @@ FtlLoadSysInfo: strh r6, [r2, #2] @ movhi ldr r6, [r4, #32] strb r5, [r2, #8] - ldr r5, .L2297+116 + ldr r5, .L2361+124 str r3, [r5] - ldr r5, .L2297+120 + ldr r5, .L2361+128 str r3, [r5] - ldr r5, .L2297+124 + ldr r5, .L2361+132 str r3, [r5] - ldr r5, .L2297+128 + ldr r5, .L2361+136 str r3, [r5] - ldr r5, .L2297+132 + ldr r5, .L2361+140 str r6, [r5] mov r6, r1 - ldr r5, .L2297+136 + ldr r5, .L2361+144 str r3, [r5] - ldr r5, .L2297+140 + ldr r5, .L2361+148 str r3, [r5] - ldr r5, .L2297+144 + ldr r5, .L2361+152 ldr lr, [r4, #40] str r3, [r5] - ldr r3, .L2297+148 + ldr r3, .L2361+156 ldr r5, [r3] cmp lr, r5 mov r5, r2 it hi strhi lr, [r3] - ldr r3, .L2297+152 + ldr r3, .L2361+160 ldr r2, [r4, #36] ldr r1, [r3] cmp r2, r1 @@ -16155,93 +16475,67 @@ FtlLoadSysInfo: strhi r2, [r3] movw r3, #65535 cmp ip, r3 - beq .L2286 - ldr r0, .L2297+100 + beq .L2344 + ldr r0, .L2361+108 bl make_superblock -.L2286: +.L2344: ldrh r2, [r6] movw r3, #65535 cmp r2, r3 - beq .L2287 - ldr r0, .L2297+108 + beq .L2345 + ldr r0, .L2361+116 bl make_superblock -.L2287: +.L2345: ldrh r2, [r5] movw r3, #65535 cmp r2, r3 - beq .L2288 - ldr r0, .L2297+112 + beq .L2346 + ldr r0, .L2361+120 bl make_superblock -.L2288: +.L2346: ldrh r2, [r7] movw r3, #65535 cmp r2, r3 - beq .L2289 - ldr r0, .L2297+104 + beq .L2347 + ldr r0, .L2361+112 bl make_superblock -.L2289: +.L2347: movs r0, #0 - b .L2272 -.L2278: - ldrh r2, [r6] - mov r0, fp - str r3, [sp, #4] - orr r2, r7, r2, lsl #10 - str r2, [r4, #4] - ldr r2, [r8] - str r2, [r4, #8] - movs r2, #1 - mov r1, r2 - bl FlashReadPages - ldr r2, [r4] - ldr r3, [sp, #4] - adds r2, r2, #1 - beq .L2276 - ldr r2, [r8] - ldr r2, [r2] - cmp r2, r3 - bne .L2276 - ldr r2, [r10] - ldrh r1, [r2] - movw r2, #61604 - cmp r1, r2 - beq .L2277 -.L2276: - subs r7, r7, #1 - sxth r7, r7 - b .L2275 -.L2298: + b .L2327 +.L2362: .align 2 -.L2297: +.L2361: .word .LANCHOR40 .word .LANCHOR202 - .word .LANCHOR84 + .word .LANCHOR83 .word .LANCHOR209 - .word 1179929683 .word .LANCHOR221 .word .LC5 .word .LC6 .word .LC7 - .word .LANCHOR58 - .word .LANCHOR81 + .word .LANCHOR1 + .word .LANCHOR57 + .word .LANCHOR53 + .word 1179929683 + .word .LANCHOR80 .word .LANCHOR0 - .word .LANCHOR70 - .word .LANCHOR67 + .word .LANCHOR69 + .word .LANCHOR66 .word .LANCHOR195 .word .LANCHOR45 .word .LANCHOR222 - .word .LANCHOR73 - .word .LANCHOR53 - .word .LANCHOR56 - .word .LANCHOR69 + .word .LANCHOR72 + .word .LANCHOR52 + .word .LANCHOR55 + .word .LANCHOR68 .word .LANCHOR42 - .word .LANCHOR75 + .word .LANCHOR74 .word .LANCHOR38 .word .LANCHOR223 - .word .LANCHOR92 + .word .LANCHOR91 .word .LANCHOR204 + .word .LANCHOR92 .word .LANCHOR93 - .word .LANCHOR94 .word .LANCHOR161 .word .LANCHOR162 .word .LANCHOR166 @@ -16268,97 +16562,97 @@ FtlDumpBlockInfo: @ frame_needed = 0, uses_anonymous_args = 0 push {r4, r5, r6, r7, r8, r10, fp, lr} ubfx r0, r0, #10, #16 - ldr r4, .L2311 + ldr r4, .L2375 sub sp, sp, #88 mov r8, r1 ldrh r3, [r4] str r3, [sp, #24] bl P2V_block_in_plane - ldr r1, .L2311+4 + ldr r1, .L2375+4 mov r6, r0 - ldr r0, .L2311+8 + ldr r0, .L2375+8 bl printf - ldr r3, .L2311+12 + ldr r3, .L2375+12 mov r1, r6 - ldr r0, .L2311+16 + ldr r0, .L2375+16 ldr r3, [r3] ldrh r2, [r3, r6, lsl #1] bl printf add r0, sp, #88 strh r6, [r0, #-48]! @ movhi bl make_superblock - ldr r3, .L2311+20 + ldr r3, .L2375+20 ldrb r5, [r3] @ zero_extendqisi2 - cbz r5, .L2300 + cbz r5, .L2364 cmp r8, #0 - bne .L2309 + bne .L2373 mov r0, r6 bl ftl_get_blk_mode cmp r0, #1 mov r5, r0 - bne .L2300 - ldr r3, .L2311+24 + bne .L2364 + ldr r3, .L2375+24 ldrh r3, [r3] str r3, [sp, #24] -.L2300: +.L2364: movs r6, #0 ldrh r3, [r4] ldr r2, [sp, #24] mov r1, r5 - ldr r0, .L2311+28 + ldr r0, .L2375+28 bl printf -.L2301: - ldr r3, .L2311+32 +.L2365: + ldr r3, .L2375+32 movs r2, #0 add ip, sp, #54 mov r4, r2 movw r10, #65535 mov fp, #36 ldrh lr, [r3] - ldr r3, .L2311+36 + ldr r3, .L2375+36 ldr r0, [r3] - ldr r3, .L2311+40 + ldr r3, .L2375+40 ldr r3, [r3] str r3, [sp, #28] - ldr r3, .L2311+44 + ldr r3, .L2375+44 ldrh r3, [r3] str r3, [sp, #32] - ldr r3, .L2311+48 + ldr r3, .L2375+48 ldr r3, [r3] str r3, [sp, #36] - ldr r3, .L2311+52 + ldr r3, .L2375+52 ldrh r8, [r3] -.L2302: +.L2366: uxth r3, r2 cmp lr, r3 - bhi .L2304 - ldr fp, .L2311+56 + bhi .L2368 + ldr fp, .L2375+56 mov r8, #0 mov r10, #36 mov r2, r5 mov r1, r4 bl FlashReadPages -.L2305: +.L2369: uxth r3, r8 cmp r4, r3 - bhi .L2306 + bhi .L2370 adds r6, r6, #1 ldr r3, [sp, #24] uxth r6, r6 cmp r3, r6 - bne .L2301 -.L2307: + bne .L2365 +.L2371: movs r0, #0 add sp, sp, #88 @ sp needed pop {r4, r5, r6, r7, r8, r10, fp, pc} -.L2309: +.L2373: movs r5, #0 - b .L2300 -.L2304: + b .L2364 +.L2368: ldrh r3, [ip, #2]! cmp r3, r10 - beq .L2303 + beq .L2367 mla r1, fp, r4, r0 ldr r7, [sp, #28] orr r3, r6, r3, lsl #10 @@ -16375,11 +16669,11 @@ FtlDumpBlockInfo: bic r3, r3, #3 add r3, r3, r7 str r3, [r1, #12] -.L2303: +.L2367: adds r2, r2, #1 - b .L2302 -.L2306: - ldr r3, .L2311+36 + b .L2366 +.L2370: + ldr r3, .L2375+36 mul r0, r10, r8 ldrh r1, [sp, #40] add r8, r8, #1 @@ -16403,24 +16697,24 @@ FtlDumpBlockInfo: ldr r2, [ip, r0] mov r0, fp bl printf - b .L2305 -.L2312: + b .L2369 +.L2376: .align 2 -.L2311: - .word .LANCHOR53 +.L2375: + .word .LANCHOR52 .word .LANCHOR224 .word .LC45 - .word .LANCHOR84 + .word .LANCHOR83 .word .LC46 - .word .LANCHOR8 - .word .LANCHOR54 + .word .LANCHOR15 + .word .LANCHOR53 .word .LC47 .word .LANCHOR38 .word .LANCHOR180 + .word .LANCHOR104 + .word .LANCHOR57 .word .LANCHOR105 .word .LANCHOR58 - .word .LANCHOR106 - .word .LANCHOR59 .word .LC48 .size FtlDumpBlockInfo, .-FtlDumpBlockInfo .section .text.FtlScanAllBlock,"ax",%progbits @@ -16436,86 +16730,86 @@ FtlScanAllBlock: @ frame_needed = 0, uses_anonymous_args = 0 push {r4, r5, r6, r7, r8, r10, fp, lr} sub sp, sp, #88 - ldr r6, .L2323 - ldr r1, .L2323+4 - ldr r0, .L2323+8 + ldr r6, .L2387 + ldr r1, .L2387+4 + ldr r0, .L2387+8 bl printf movs r3, #0 str r3, [sp, #28] -.L2314: - ldr r3, .L2323+12 +.L2378: + ldr r3, .L2387+12 ldrh r0, [sp, #28] ldrh r3, [r3] cmp r3, r0 - bhi .L2322 + bhi .L2386 movs r0, #0 add sp, sp, #88 @ sp needed pop {r4, r5, r6, r7, r8, r10, fp, pc} -.L2322: +.L2386: add r4, sp, #88 add r7, sp, #54 strh r0, [r4, #-48]! @ movhi movw r10, #65535 bl ftl_get_blk_mode - ldr r3, .L2323+16 + ldr r3, .L2387+16 mov fp, #36 ldrh r1, [sp, #28] ldr r2, [r3] mov r3, r0 - ldr r0, .L2323+20 + ldr r0, .L2387+20 ldrh r2, [r2, r1, lsl #1] bl printf mov r0, r4 bl make_superblock - ldr r3, .L2323+24 + ldr r3, .L2387+24 movs r2, #0 ldr r0, [r6] mov r4, r2 ldrh lr, [r3] - ldr r3, .L2323+28 + ldr r3, .L2387+28 ldr r3, [r3] str r3, [sp, #32] - ldr r3, .L2323+32 + ldr r3, .L2387+32 ldrh ip, [r3] - ldr r3, .L2323+36 + ldr r3, .L2387+36 ldr r3, [r3] str r3, [sp, #36] - ldr r3, .L2323+40 + ldr r3, .L2387+40 ldrh r8, [r3] -.L2315: +.L2379: uxth r3, r2 cmp lr, r3 - bhi .L2317 - ldr r10, .L2323+44 + bhi .L2381 + ldr r10, .L2387+44 movs r7, #0 mov r8, #36 movs r2, #0 mov r1, r4 bl FlashReadPages -.L2318: +.L2382: uxth r3, r7 cmp r4, r3 - bhi .L2319 - ldr r10, .L2323+48 + bhi .L2383 + ldr r10, .L2387+48 movs r7, #0 mov r8, #36 movs r2, #1 mov r1, r4 ldr r0, [r6] bl FlashReadPages -.L2320: +.L2384: uxth r3, r7 cmp r4, r3 - bhi .L2321 + bhi .L2385 ldr r3, [sp, #28] adds r3, r3, #1 str r3, [sp, #28] - b .L2314 -.L2317: + b .L2378 +.L2381: ldrh r3, [r7, #2]! cmp r3, r10 - beq .L2316 + beq .L2380 mla r1, fp, r4, r0 ldr r5, [sp, #32] lsls r3, r3, #10 @@ -16531,10 +16825,10 @@ FtlScanAllBlock: bic r3, r3, #3 add r3, r3, r5 str r3, [r1, #12] -.L2316: +.L2380: adds r2, r2, #1 - b .L2315 -.L2319: + b .L2379 +.L2383: mul r2, r8, r7 ldr r0, [r6] ldrh r1, [sp, #40] @@ -16558,8 +16852,8 @@ FtlScanAllBlock: mov r0, r10 ldr r3, [lr, #4] bl printf - b .L2318 -.L2321: + b .L2382 +.L2385: mul r2, r8, r7 ldr r0, [r6] ldrh r1, [sp, #40] @@ -16583,21 +16877,21 @@ FtlScanAllBlock: mov r0, r10 ldr r3, [lr, #4] bl printf - b .L2320 -.L2324: + b .L2384 +.L2388: .align 2 -.L2323: +.L2387: .word .LANCHOR180 .word .LANCHOR225 .word .LC45 .word .LANCHOR41 - .word .LANCHOR84 + .word .LANCHOR83 .word .LC49 .word .LANCHOR38 + .word .LANCHOR104 + .word .LANCHOR57 .word .LANCHOR105 .word .LANCHOR58 - .word .LANCHOR106 - .word .LANCHOR59 .word .LC50 .word .LC51 .size FtlScanAllBlock, .-FtlScanAllBlock @@ -16612,77 +16906,79 @@ FtlScanAllBlock: FtlMapTblRecovery: @ args = 0, pretend = 0, frame = 24 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, [r0, #16] + ldr r3, [r0, #24] movs r1, #0 push {r4, r5, r6, r7, r8, r10, fp, lr} sub sp, sp, #24 - ldrh fp, [r0, #6] + ldrh r7, [r0, #6] mov r4, r0 movs r6, #0 - ldr r8, [r0, #24] + str r3, [sp] + ldr r3, [r0, #16] + ldr r10, [r0, #12] + lsls r2, r7, #2 str r3, [sp, #12] ldrh r3, [r0, #8] - lsl r2, fp, #2 - ldr r10, [r0, #12] - mov r0, r8 - ldr r5, .L2352 + ldr r0, [sp] str r3, [sp, #4] bl ftl_memset - ldr r3, .L2352+4 + ldr r2, .L2430 + ldr r3, .L2430+4 str r6, [r4, #32] + ldr r1, [r2] + mov fp, r3 str r6, [r4, #28] - ldr r2, [r3] - str r3, [sp, #8] - str r2, [r5, #8] - ldr r2, .L2352+8 - ldr r7, [r2] - movw r2, #65535 - str r7, [r5, #12] - strh r2, [r4] @ movhi - strh r2, [r4, #2] @ movhi - movs r2, #1 - str r2, [r4, #36] -.L2326: + str r2, [sp, #8] + str r1, [r3, #8] + ldr r1, .L2430+8 + ldr r5, [r1] + movw r1, #65535 + str r5, [r3, #12] + strh r1, [r4] @ movhi + strh r1, [r4, #2] @ movhi + movs r1, #1 + str r1, [r4, #36] +.L2390: ldr r2, [sp, #4] sxth r3, r6 cmp r3, r2 - bge .L2343 + bge .L2409 ldr r2, [sp, #4] + lsl r8, r3, #1 subs r2, r2, #1 cmp r3, r2 - lsl r2, r3, #1 - bne .L2327 + bne .L2391 ldrh r0, [r10, r3, lsl #1] movs r1, #1 - add r5, r10, r2 str r3, [sp, #4] + mov fp, #0 bl FtlGetLastWrittenPage ldr r3, [sp, #12] - sxth r10, r0 + add r8, r8, r10 strh r6, [r4] @ movhi - movs r6, #0 + sxth r10, r0 + ldr r6, .L2430+4 adds r0, r0, #1 mov r2, r3 ldr r3, [sp, #4] strh r0, [r4, #2] @ movhi ldr r3, [r2, r3, lsl #2] str r3, [r4, #28] - ldr r3, .L2352 -.L2328: - sxth r2, r6 +.L2392: + sxth r2, fp cmp r2, r10 - ble .L2330 -.L2343: + ble .L2395 +.L2409: mov r0, r4 bl ftl_free_no_use_map_blk - ldr r3, .L2352+12 + ldr r3, .L2430+12 ldrh r2, [r4, #2] ldrh r3, [r3] cmp r2, r3 - bne .L2332 + bne .L2397 mov r0, r4 bl ftl_map_blk_alloc_new_blk -.L2332: +.L2397: mov r0, r4 bl ftl_map_blk_gc mov r0, r4 @@ -16691,125 +16987,157 @@ FtlMapTblRecovery: add sp, sp, #24 @ sp needed pop {r4, r5, r6, r7, r8, r10, fp, pc} -.L2330: - ldrh r1, [r5] - ldr r0, .L2352 - str r3, [sp, #4] +.L2395: + ldrh r1, [r8] + ldr r0, .L2430+4 orr r2, r2, r1, lsl #10 - str r2, [r3, #4] + str r2, [r6, #4] movs r2, #1 mov r1, r2 bl FlashReadPages - ldr r3, [sp, #4] - ldr r2, [r3] - adds r2, r2, #1 - beq .L2329 - ldrh r2, [r7, #8] - cmp fp, r2 - bls .L2329 - ldrh r1, [r4, #4] - ldrh r0, [r7] - cmp r0, r1 - itt eq - ldreq r1, [r3, #4] - streq r1, [r8, r2, lsl #2] -.L2329: - adds r6, r6, #1 - b .L2328 -.L2327: - ldr r1, [sp, #8] - add r2, r10, r2 - str r2, [sp, #16] - ldr r0, .L2352 - ldr r1, [r1] - str r1, [r5, #8] - ldrh r1, [r10, r3, lsl #1] - ldr r3, .L2352+12 - ldrh r2, [r3] - str r3, [sp, #20] - subs r2, r2, #1 - orr r2, r2, r1, lsl #10 - str r2, [r5, #4] - movs r2, #1 - mov r1, r2 - bl FlashReadPages - ldr r2, [r5] - adds r2, r2, #1 - beq .L2345 - ldrh r1, [r7] - ldrh r2, [r4, #4] - ldr r3, [sp, #20] - cmp r1, r2 - bne .L2345 - ldrh r1, [r7, #8] - movw r2, #64245 - cmp r1, r2 - beq .L2334 -.L2345: - movs r3, #0 -.L2335: - ldr r1, .L2352+12 - sxth r2, r3 + ldr r3, .L2430+16 + ldrb r2, [r3] @ zero_extendqisi2 + cbz r2, .L2393 + ldr r2, [r6, #12] + ldr r2, [r2, #12] + str r2, [sp, #4] + cbz r2, .L2393 + ldr r1, .L2430+20 + ldr r0, [r6, #8] ldrh r1, [r1] - cmp r2, r1 - bge .L2341 - str r3, [sp, #20] - ldr r3, [sp, #16] - ldr r0, .L2352 - ldrh r1, [r3] - orr r2, r2, r1, lsl #10 - str r2, [r5, #4] + bl js_hash + ldr r2, [sp, #4] + cmp r2, r0 + itt ne + movne r2, #-1 + strne r2, [r6] +.L2393: + ldr r2, [r6] + adds r2, r2, #1 + beq .L2394 + ldrh r2, [r5, #8] + cmp r7, r2 + bls .L2394 + ldrh r1, [r4, #4] + ldrh r0, [r5] + cmp r0, r1 + ittt eq + ldreq r1, [r6, #4] + ldreq r3, [sp] + streq r1, [r3, r2, lsl #2] +.L2394: + add fp, fp, #1 + b .L2392 +.L2391: + ldr r2, [sp, #8] + ldr r0, .L2430+4 + ldr r2, [r2] + str r2, [fp, #8] + add r2, r10, r8 + ldr r8, .L2430+12 + str r2, [sp, #16] + ldrh r2, [r10, r3, lsl #1] + ldrh r3, [r8] + subs r3, r3, #1 + orr r3, r3, r2, lsl #10 movs r2, #1 mov r1, r2 + str r3, [fp, #4] bl FlashReadPages - ldr r2, [r5] - ldr r3, [sp, #20] - adds r2, r2, #1 - beq .L2339 - ldrh r2, [r7, #8] - cmp fp, r2 - bls .L2339 - ldrh r1, [r4, #4] - ldrh r0, [r7] - cmp r0, r1 - itt eq - ldreq r1, [r5, #4] - streq r1, [r8, r2, lsl #2] -.L2339: + ldr r3, [fp] adds r3, r3, #1 - b .L2335 -.L2334: - ldrh r2, [r3] - movs r1, #0 + beq .L2411 + ldrh r2, [r5] + ldrh r3, [r4, #4] + cmp r2, r3 + bne .L2411 + ldrh r2, [r5, #8] + movw r3, #64245 + cmp r2, r3 + beq .L2399 +.L2411: + mov r8, #0 +.L2400: + ldr r2, .L2430+12 + sxth r3, r8 + ldrh r2, [r2] + cmp r3, r2 + bge .L2407 + ldr r2, [sp, #16] + ldr r0, .L2430+4 + ldrh r2, [r2] + orr r3, r3, r2, lsl #10 + movs r2, #1 + mov r1, r2 + str r3, [fp, #4] + bl FlashReadPages + ldr r3, .L2430+16 + ldrb r3, [r3] @ zero_extendqisi2 + cbz r3, .L2404 + ldr r3, [fp, #12] + ldr r3, [r3, #12] + str r3, [sp, #20] + cbz r3, .L2404 + ldr r2, .L2430+20 + ldr r0, [fp, #8] + ldrh r1, [r2] + bl js_hash + ldr r3, [sp, #20] + cmp r3, r0 + itt ne + movne r3, #-1 + strne r3, [fp] +.L2404: + ldr r3, [fp] + adds r3, r3, #1 + beq .L2405 + ldrh r3, [r5, #8] + cmp r7, r3 + bls .L2405 + ldrh r1, [r5] + ldrh r2, [r4, #4] + cmp r1, r2 + ittt eq + ldreq r2, [fp, #4] + ldreq r1, [sp] + streq r2, [r1, r3, lsl #2] +.L2405: + add r8, r8, #1 + b .L2400 +.L2399: ldr r3, [sp, #8] - subs r2, r2, #1 + movs r1, #0 + ldrh r2, [r8] ldr ip, [r3] -.L2336: + subs r2, r2, #1 +.L2401: sxth r3, r1 cmp r3, r2 - blt .L2338 -.L2341: + blt .L2403 +.L2407: adds r6, r6, #1 - b .L2326 -.L2338: + b .L2390 +.L2403: lsls r0, r3, #3 ldr r3, [ip, r3, lsl #3] adds r1, r1, #1 uxth lr, r3 - cmp fp, lr + cmp r7, lr itttt hi addhi r0, r0, ip - movhi r3, lr + ldrhi r3, [sp] ldrhi r0, [r0, #4] - strhi r0, [r8, r3, lsl #2] - b .L2336 -.L2353: + strhi r0, [r3, lr, lsl #2] + b .L2401 +.L2431: .align 2 -.L2352: - .word .LANCHOR202 +.L2430: .word .LANCHOR183 + .word .LANCHOR202 .word .LANCHOR188 - .word .LANCHOR54 + .word .LANCHOR53 + .word .LANCHOR1 + .word .LANCHOR57 .size FtlMapTblRecovery, .-FtlMapTblRecovery .section .text.FtlLoadVonderInfo,"ax",%progbits .align 1 @@ -16823,41 +17151,41 @@ FtlLoadVonderInfo: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 push {r3, lr} - ldr r3, .L2355 - ldr r0, .L2355+4 + ldr r3, .L2433 + ldr r0, .L2433+4 ldrh r3, [r3] strh r3, [r0, #10] @ movhi movw r3, #61574 strh r3, [r0, #4] @ movhi - ldr r3, .L2355+8 + ldr r3, .L2433+8 ldrh r3, [r3] strh r3, [r0, #8] @ movhi - ldr r3, .L2355+12 + ldr r3, .L2433+12 ldrh r3, [r3] strh r3, [r0, #6] @ movhi - ldr r3, .L2355+16 + ldr r3, .L2433+16 ldr r3, [r3] str r3, [r0, #12] - ldr r3, .L2355+20 + ldr r3, .L2433+20 ldr r3, [r3] str r3, [r0, #16] - ldr r3, .L2355+24 + ldr r3, .L2433+24 ldr r3, [r3] str r3, [r0, #20] - ldr r3, .L2355+28 + ldr r3, .L2433+28 ldr r3, [r3] str r3, [r0, #24] bl FtlMapTblRecovery movs r0, #0 pop {r3, pc} -.L2356: +.L2434: .align 2 -.L2355: - .word .LANCHOR62 +.L2433: + .word .LANCHOR61 .word .LANCHOR215 + .word .LANCHOR70 + .word .LANCHOR62 .word .LANCHOR71 - .word .LANCHOR63 - .word .LANCHOR72 .word .LANCHOR193 .word .LANCHOR192 .word .LANCHOR194 @@ -16875,213 +17203,15 @@ FtlLoadMapInfo: @ frame_needed = 0, uses_anonymous_args = 0 push {r3, lr} bl FtlL2PDataInit - ldr r0, .L2358 + ldr r0, .L2436 bl FtlMapTblRecovery movs r0, #0 pop {r3, pc} -.L2359: +.L2437: .align 2 -.L2358: +.L2436: .word .LANCHOR127 .size FtlLoadMapInfo, .-FtlLoadMapInfo - .section .text.FtlGcScanTempBlk,"ax",%progbits - .align 1 - .global FtlGcScanTempBlk - .syntax unified - .thumb - .thumb_func - .fpu softvfp - .type FtlGcScanTempBlk, %function -FtlGcScanTempBlk: - @ args = 0, pretend = 0, frame = 24 - @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L2387 - movw r2, #65535 - push {r4, r5, r6, r7, r8, r10, fp, lr} - sub sp, sp, #24 - mov r5, r0 - ldrh r4, [r3] - str r3, [sp, #16] - cmp r4, r2 - beq .L2378 - cbnz r4, .L2361 -.L2362: - bl FtlGcPageVarInit - b .L2363 -.L2378: - movs r4, #0 -.L2361: - ldr r3, .L2387+4 - ldrh r3, [r3] - cmp r3, r1 - beq .L2362 -.L2363: - ldr fp, .L2387+44 - mov r3, #-1 - str r3, [sp, #8] -.L2375: - ldrh r2, [r5] - movw r3, #65535 - movs r0, #0 - strb r0, [r5, #8] - cmp r2, r3 - beq .L2364 -.L2377: - ldr r3, .L2387+8 - movw ip, #65535 - ldr r0, [fp] - mov lr, #36 - ldrh r8, [r3] - ldr r3, .L2387+12 - ldr r3, [r3] - str r3, [sp, #12] - ldr r3, .L2387+16 - ldrh r10, [r3] - add r3, r5, #16 - str r3, [sp, #4] - movs r3, #0 - mov r6, r3 -.L2365: - uxth r2, r3 - cmp r8, r2 - bhi .L2367 - movs r7, #0 - mov r10, #36 - movs r2, #0 - mov r1, r6 - bl FlashReadPages -.L2368: - uxth r3, r7 - cmp r6, r3 - bhi .L2376 - ldr r3, .L2387+4 - adds r4, r4, #1 - uxth r4, r4 - ldrh r3, [r3] - cmp r3, r4 - bhi .L2377 - movs r0, #0 - b .L2364 -.L2367: - ldr r1, [sp, #4] - ldrh r2, [r1], #2 - cmp r2, ip - str r1, [sp, #4] - beq .L2366 - mla r1, lr, r6, r0 - orr r2, r4, r2, lsl #10 - str r2, [r1, #4] - movs r2, #0 - str r2, [r1, #8] - mul r2, r10, r6 - adds r6, r6, #1 - uxth r6, r6 - bic r2, r2, #3 - mov r7, r2 - ldr r2, [sp, #12] - add r7, r7, r2 - str r7, [r1, #12] -.L2366: - adds r3, r3, #1 - b .L2365 -.L2376: - mul r8, r10, r7 - ldr r2, [fp] - str r2, [sp, #20] - add r3, r2, r8 - ldr r1, [r3, #4] - str r3, [sp, #12] - ubfx r0, r1, #10, #16 - str r1, [sp, #4] - bl P2V_plane - ldr r2, [sp, #20] - ldr r1, [sp, #4] - ldr r2, [r2, r8] - cbnz r2, .L2369 - ldr r3, [sp, #12] - movw ip, #65535 - adds r7, r7, #1 - ldr r3, [r3, #12] - ldrh r2, [r3] - cmp r2, ip - bne .L2370 - ldr r3, .L2387+20 - movs r2, #1 - str r2, [r3] -.L2364: - ldr r2, [sp, #16] - movw r3, #65535 - strb r0, [r5, #6] - mov r1, r4 - strh r4, [r5, #2] @ movhi - strh r3, [r2] @ movhi - mov r2, r0 - mov r0, r5 - bl ftl_sb_update_avl_pages - ldr r0, [sp, #8] - add sp, sp, #24 - @ sp needed - pop {r4, r5, r6, r7, r8, r10, fp, pc} -.L2370: - ldr r2, [r3, #8] - ldr r0, [r3, #12] - bl FtlGcUpdatePage - b .L2368 -.L2369: - mov r2, r1 - ldr r0, .L2387+24 - ldrh r1, [r5] - bl printf - ldr r3, .L2387+28 - ldrh r2, [r5] - ldr r3, [r3] - cbnz r3, .L2371 - ldr r3, .L2387+32 - ldrb r3, [r3] @ zero_extendqisi2 - cbz r3, .L2372 -.L2371: - ldr r3, .L2387+36 - ldr r3, [r3] - ldrh r3, [r3, r2, lsl #1] - cmp r3, #159 - bls .L2373 -.L2372: - ldr r3, [fp] - ldr r3, [r3, r8] - adds r3, r3, #1 - bne .L2374 -.L2373: - ldr r3, [fp] - add r3, r3, r8 - ldr r3, [r3, #4] - str r3, [sp, #8] -.L2374: - ldr r3, .L2387+40 - movs r4, #0 - ldr r3, [r3] - strh r4, [r3, r2, lsl #1] @ movhi - ldrh r0, [r5] - bl INSERT_FREE_LIST - movw r3, #65535 - strh r3, [r5] @ movhi - bl FtlGcPageVarInit - b .L2375 -.L2388: - .align 2 -.L2387: - .word .LANCHOR226 - .word .LANCHOR53 - .word .LANCHOR38 - .word .LANCHOR106 - .word .LANCHOR59 - .word .LANCHOR135 - .word .LC52 - .word .LANCHOR28 - .word .LANCHOR8 - .word .LANCHOR79 - .word .LANCHOR84 - .word .LANCHOR180 - .size FtlGcScanTempBlk, .-FtlGcScanTempBlk .section .text.FlashReadFacBbtData,"ax",%progbits .align 1 .global FlashReadFacBbtData @@ -17095,18 +17225,18 @@ FlashReadFacBbtData: @ frame_needed = 0, uses_anonymous_args = 0 push {r4, r5, r6, r7, r8, r10, fp, lr} mov fp, r2 - ldr r2, .L2402 + ldr r2, .L2451 sub sp, sp, #48 mov r6, r1 mov r4, r0 - ldr r7, .L2402+4 + ldr r7, .L2451+4 ldrh r3, [r2, #14] ldrh r2, [r2, #12] smulbb r3, r3, r2 ldr r2, [r7] uxth r3, r3 str r2, [sp, #20] - ldr r2, .L2402+8 + ldr r2, .L2451+8 subs r5, r3, #1 mul r10, r6, r3 uxth r5, r5 @@ -17114,12 +17244,12 @@ FlashReadFacBbtData: ldr r1, [r2] mov r8, r2 str r1, [sp, #24] -.L2390: +.L2439: cmp r3, r5 - ble .L2397 + ble .L2446 mov r0, #-1 - b .L2389 -.L2397: + b .L2438 +.L2446: add r2, r5, r10 add r0, sp, #12 lsls r2, r2, #10 @@ -17131,60 +17261,60 @@ FlashReadFacBbtData: ldr r2, [sp, #12] ldr r3, [sp, #4] adds r2, r2, #1 - beq .L2391 + beq .L2440 ldr r2, [r8] ldrh r1, [r2] movw r2, #61664 cmp r1, r2 - bne .L2391 - cbz r4, .L2398 - cbz r6, .L2393 -.L2396: + bne .L2440 + cbz r4, .L2447 + cbz r6, .L2442 +.L2445: mov r2, fp ldr r1, [r7] mov r0, r4 bl ftl_memcpy movs r3, #4 - ldr r0, .L2402+12 + ldr r0, .L2451+12 mov r2, r3 mov r1, r4 bl rknand_print_hex movs r0, #0 -.L2389: +.L2438: add sp, sp, #48 @ sp needed pop {r4, r5, r6, r7, r8, r10, fp, pc} -.L2393: +.L2442: ldr r1, [r7] mov ip, #1 - ldr r5, .L2402+16 -.L2394: + ldr r5, .L2451+16 +.L2443: ldr r0, [r5] uxth r3, r6 adds r6, r6, #1 cmp r3, r0 - bcs .L2396 + bcs .L2445 lsrs r0, r3, #5 and r3, r3, #31 lsl r3, ip, r3 ldr r2, [r1, r0, lsl #2] orrs r3, r3, r2 str r3, [r1, r0, lsl #2] - b .L2394 -.L2391: + b .L2443 +.L2440: subs r5, r5, #1 uxth r5, r5 - b .L2390 -.L2398: + b .L2439 +.L2447: mov r0, r4 - b .L2389 -.L2403: + b .L2438 +.L2452: .align 2 -.L2402: - .word .LANCHOR15 +.L2451: + .word .LANCHOR14 .word .LANCHOR147 .word .LANCHOR197 - .word .LC53 + .word .LC52 .word .LANCHOR149 .size FlashReadFacBbtData, .-FlashReadFacBbtData .section .text.FlashGetBadBlockList,"ax",%progbits @@ -17200,8 +17330,8 @@ FlashGetBadBlockList: @ frame_needed = 0, uses_anonymous_args = 0 push {r3, r4, r5, r6, r7, lr} mov r5, r0 - ldr r3, .L2414 - ldr r6, .L2414+4 + ldr r3, .L2463 + ldr r6, .L2463+4 ldr r3, [r3] ldr r0, [r6] ldrb r4, [r3, #13] @ zero_extendqisi2 @@ -17212,25 +17342,25 @@ FlashGetBadBlockList: asrs r2, r2, #3 bl FlashReadFacBbtData adds r0, r0, #1 - bne .L2405 -.L2409: + bne .L2454 +.L2458: movs r3, #0 -.L2406: +.L2455: movw r2, #65535 movs r0, #0 strh r2, [r5, r3, lsl #1] @ movhi pop {r3, r4, r5, r6, r7, pc} -.L2405: +.L2454: ldr r7, [r6] movs r2, #0 lsr ip, r4, #4 mov r3, r2 subs r4, r4, #1 mov lr, #1 -.L2407: +.L2456: uxth r1, r2 cmp r1, r4 - bge .L2406 + bge .L2455 lsrs r6, r1, #5 and r0, r1, #31 lsl r0, lr, r0 @@ -17242,11 +17372,11 @@ FlashGetBadBlockList: strhne r1, [r5, r3, lsl #1] @ movhi uxthne r3, r0 cmp r3, ip - bcc .L2407 - b .L2409 -.L2415: + bcc .L2456 + b .L2458 +.L2464: .align 2 -.L2414: +.L2463: .word .LANCHOR18 .word .LANCHOR153 .size FlashGetBadBlockList, .-FlashGetBadBlockList @@ -17261,66 +17391,66 @@ FlashGetBadBlockList: FtlMakeBbt: @ args = 0, pretend = 0, frame = 8 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L2436 + ldr r3, .L2485 push {r0, r1, r4, r5, r6, r7, r8, r10, fp, lr} ldr r7, [r3] cmp r7, #0 - bne .L2417 - ldr r8, .L2436+40 - ldr r4, .L2436+4 + bne .L2466 + ldr r8, .L2485+40 + ldr r4, .L2485+4 bl FtlBbtMemInit sub r10, r8, #18 bl FtlLoadFactoryBbt -.L2418: - ldr r3, .L2436+8 +.L2467: + ldr r3, .L2485+8 ldrh r3, [r3] cmp r7, r3 - bcc .L2424 - ldr r5, .L2436+12 + bcc .L2473 + ldr r5, .L2485+12 movs r4, #0 -.L2425: +.L2474: ldrh r3, [r5] uxth r0, r4 adds r4, r4, #1 cmp r3, r0 - bhi .L2426 - ldr r4, .L2436+16 + bhi .L2475 + ldr r4, .L2485+16 movw r6, #65535 ldrh r5, [r4, #12] subs r5, r5, #1 uxth r5, r5 -.L2427: +.L2476: ldrh r3, [r4, #12] subs r3, r3, #47 cmp r3, r5 - bgt .L2431 + bgt .L2480 mov r0, r5 bl FtlBbmIsBadBlock cmp r0, #1 - beq .L2428 + beq .L2477 mov r0, r5 bl FlashTestBlk cmp r0, #0 - beq .L2429 + beq .L2478 mov r0, r5 bl FtlBbmMapBadBlock -.L2428: +.L2477: subs r5, r5, #1 uxth r5, r5 - b .L2427 -.L2424: - ldr r3, .L2436+20 + b .L2476 +.L2473: + ldr r3, .L2485+20 movw r1, #65535 ldrh r2, [r10, #2]! ldr r0, [r3] - ldr r3, .L2436+24 + ldr r3, .L2485+24 cmp r2, r1 str r0, [r4, #8] ldr fp, [r3] str r3, [sp, #4] - ldr r3, .L2436+28 + ldr r3, .L2485+28 str fp, [r4, #12] - beq .L2419 + beq .L2468 ldrh r6, [r3] mov r0, r4 str r3, [sp] @@ -17337,13 +17467,13 @@ FtlMakeBbt: adds r2, r2, #7 asrs r2, r2, #3 bl ftl_memcpy -.L2420: +.L2469: uxth r0, r6 adds r7, r7, #1 add r8, r8, #4 bl FtlBbmMapBadBlock - b .L2418 -.L2419: + b .L2467 +.L2468: mov r1, r7 str r3, [sp] bl FlashGetBadBlockList @@ -17352,17 +17482,17 @@ FtlMakeBbt: bl FtlBbt2Bitmap ldr r3, [sp] ldrh r5, [r3] -.L2422: +.L2471: subs r5, r5, #1 uxth r5, r5 -.L2421: +.L2470: ldr r3, [sp] ldrh r0, [r3] smlabb r0, r0, r7, r5 uxth r0, r0 bl FtlBbmIsBadBlock cmp r0, #1 - beq .L2422 + beq .L2471 ldr r3, [sp, #4] movs r2, #16 movs r1, #0 @@ -17382,7 +17512,7 @@ FtlMakeBbt: mla r6, r7, r6, r3 lsls r3, r6, #10 str r3, [r4, #4] - ldr r3, .L2436+32 + ldr r3, .L2485+32 ldrh r2, [r3] lsls r2, r2, #2 bl ftl_memcpy @@ -17397,23 +17527,23 @@ FtlMakeBbt: bl FlashProgPages ldr r3, [r4] adds r3, r3, #1 - bne .L2420 + bne .L2469 uxth r0, r6 bl FtlBbmMapBadBlock - b .L2421 -.L2426: + b .L2470 +.L2475: bl FtlBbmMapBadBlock - b .L2425 -.L2429: + b .L2474 +.L2478: ldrh r3, [r4] cmp r3, r6 - bne .L2430 + bne .L2479 strh r5, [r4] @ movhi - b .L2428 -.L2430: + b .L2477 +.L2479: strh r5, [r4, #4] @ movhi -.L2431: - ldr r3, .L2436+36 +.L2480: + ldr r3, .L2485+36 movs r5, #0 str r5, [r4, #8] movs r2, #2 @@ -17441,25 +17571,25 @@ FtlMakeBbt: strh r2, [r4] @ movhi strh r3, [r4, #4] @ movhi bl FtlBbmTblFlush -.L2417: +.L2466: movs r0, #0 add sp, sp, #8 @ sp needed pop {r4, r5, r6, r7, r8, r10, fp, pc} -.L2437: +.L2486: .align 2 -.L2436: - .word .LANCHOR77 +.L2485: + .word .LANCHOR76 .word .LANCHOR202 .word .LANCHOR45 - .word .LANCHOR60 - .word .LANCHOR75 + .word .LANCHOR59 + .word .LANCHOR74 .word .LANCHOR183 .word .LANCHOR188 .word .LANCHOR51 .word .LANCHOR123 - .word .LANCHOR78 - .word .LANCHOR75+28 + .word .LANCHOR77 + .word .LANCHOR74+28 .size FtlMakeBbt, .-FtlMakeBbt .section .text.log2phys,"ax",%progbits .align 1 @@ -17470,43 +17600,44 @@ FtlMakeBbt: .fpu softvfp .type log2phys, %function log2phys: - @ args = 0, pretend = 0, frame = 16 + @ args = 0, pretend = 0, frame = 24 @ frame_needed = 0, uses_anonymous_args = 0 - push {r0, r1, r2, r3, r4, r5, r6, r7, r8, r10, fp, lr} - ldr r3, .L2457 - str r2, [sp, #8] - ldrh r3, [r3] + push {r4, r5, r6, r7, r8, r10, fp, lr} + sub sp, sp, #24 + ldr r4, .L2505 + mov fp, r0 + str r2, [sp, #16] + ldr r2, [r4] + ldr r3, .L2505+4 str r1, [sp, #4] - adds r2, r3, #7 - movs r3, #1 - lsls r3, r3, r2 - lsr r7, r0, r2 - subs r3, r3, #1 - uxth r6, r7 - ands r3, r3, r0 - uxth fp, r3 - ldr r3, .L2457+4 - ldr r3, [r3] - cmp r0, r3 - bcc .L2439 - ldr r1, .L2457+8 - mov r2, #880 - ldr r0, .L2457+12 + cmp r0, r2 + ldrh r5, [r3] + bcc .L2488 + ldr r1, .L2505+8 + mov r2, #884 + ldr r0, .L2505+12 bl printf - ldr r1, .L2457+16 - ldr r0, .L2457+20 + ldr r1, .L2505+16 + ldr r0, .L2505+20 bl printf -.L2439: - ldr r5, .L2457+24 +.L2488: + ldr r3, [r4] + cmp fp, r3 + bcs .L2489 + adds r3, r5, #7 + ldr r5, .L2505+24 + lsr r7, fp, r3 + str r3, [sp, #8] + ldr r3, .L2505+28 movs r4, #12 - ldr r3, .L2457+28 ldr r1, [r5] + uxth r6, r7 ldrh r2, [r3] movs r3, #0 -.L2440: +.L2490: uxth r10, r3 cmp r10, r2 - bcc .L2445 + bcc .L2495 bl select_l2p_ram_region muls r4, r0, r4 ldr r3, [r5] @@ -17515,98 +17646,112 @@ log2phys: adds r2, r3, r4 movw r3, #65535 cmp r1, r3 - beq .L2446 + beq .L2496 ldr r3, [r2, #4] cmp r3, #0 - bge .L2446 + bge .L2496 bl flush_l2p_region -.L2446: - ldr r3, .L2457+32 +.L2496: + ldr r3, .L2505+32 ldrh r3, [r3] cmp r3, r6 - bcs .L2447 - ldr r1, .L2457+36 + bcs .L2497 + ldr r1, .L2505+36 movw r2, #526 - ldr r0, .L2457+12 + ldr r0, .L2505+12 bl printf - ldr r1, .L2457+16 - ldr r0, .L2457+20 + ldr r1, .L2505+16 + ldr r0, .L2505+20 bl printf -.L2447: - ldr r3, .L2457+40 +.L2497: + ldr r3, .L2505+40 uxth r7, r7 ldr r3, [r3] ldr r3, [r3, r7, lsl #2] cmp r3, #0 - bne .L2448 + bne .L2498 ldr r2, [r5] movs r1, #255 - str r3, [sp] + str r3, [sp, #12] adds r0, r2, r4 - ldr r2, .L2457+44 + ldr r2, .L2505+44 ldr r0, [r0, #8] ldrh r2, [r2] bl ftl_memset ldr r2, [r5] - ldr r3, [sp] + ldr r3, [sp, #12] adds r1, r2, r4 strh r6, [r2, r4] @ movhi str r3, [r1, #4] - b .L2441 -.L2445: + b .L2492 +.L2489: + ldr r3, [sp, #16] + mov r0, #-1 + cbnz r3, .L2487 + ldr r3, [sp, #4] + str r0, [r3] +.L2487: + add sp, sp, #24 + @ sp needed + pop {r4, r5, r6, r7, r8, r10, fp, pc} +.L2495: adds r3, r3, #1 mla r0, r4, r3, r1 ldrh r0, [r0, #-12] cmp r0, r6 - bne .L2440 -.L2441: + bne .L2490 +.L2492: ldr r2, [sp, #8] - movs r3, #12 - ldr r1, .L2457+24 - cbnz r2, .L2442 - ldr r2, [r1] - mla r3, r3, r10, r2 + movs r3, #1 + ldr r0, [sp, #16] + ldr r1, .L2505+24 + lsls r3, r3, r2 + movs r2, #12 + subs r3, r3, #1 + and r3, r3, fp + uxth r3, r3 + cbnz r0, .L2493 + ldr r0, [r1] + mla r2, r2, r10, r0 + ldr r2, [r2, #8] + ldr r3, [r2, r3, lsl #2] ldr r2, [sp, #4] - ldr r3, [r3, #8] - ldr r3, [r3, fp, lsl #2] str r3, [r2] -.L2443: +.L2494: ldr r2, [r1] movs r3, #12 mla r10, r3, r10, r2 ldr r3, [r10, #4] adds r2, r3, #1 - beq .L2454 + beq .L2503 adds r3, r3, #1 str r3, [r10, #4] -.L2454: +.L2503: movs r0, #0 - add sp, sp, #16 - @ sp needed - pop {r4, r5, r6, r7, r8, r10, fp, pc} -.L2442: - ldr r2, [r5] - mla r3, r3, r10, r2 - ldr r2, [sp, #4] - ldr r0, [r2] - ldr r2, [r3, #8] - str r0, [r2, fp, lsl #2] - ldr r2, [r3, #4] - orr r2, r2, #-2147483648 - str r2, [r3, #4] - ldr r3, .L2457+48 + b .L2487 +.L2493: + ldr r0, [r1] + mla r2, r2, r10, r0 + ldr r0, [sp, #4] + ldr r4, [r0] + ldr r0, [r2, #8] + str r4, [r0, r3, lsl #2] + ldr r3, [r2, #4] + orr r3, r3, #-2147483648 + str r3, [r2, #4] + ldr r3, .L2505+48 strh r6, [r3] @ movhi - b .L2443 -.L2448: + b .L2494 +.L2498: ldr r2, [r5] - ldr r8, .L2457+80 - str r3, [sp, #12] + ldr r8, .L2505+80 + str r3, [sp, #20] add r2, r2, r4 ldr r2, [r2, #8] mov r0, r8 str r3, [r8, #4] str r2, [r8, #8] - ldr r2, .L2457+52 + ldr r2, .L2505+52 ldr r2, [r2] str r2, [r8, #12] movs r2, #1 @@ -17614,86 +17759,86 @@ log2phys: bl FlashReadPages ldr r3, [r8, #12] ldrh r2, [r3, #8] - str r3, [sp] - ldr r3, [sp, #12] + str r3, [sp, #12] + ldr r3, [sp, #20] cmp r2, r6 - beq .L2449 + beq .L2499 mov r2, r3 mov r1, r7 - ldr r0, .L2457+56 + ldr r0, .L2505+56 bl printf movs r3, #4 ldr r1, [r8, #12] mov r2, r3 - ldr r0, .L2457+60 + ldr r0, .L2505+60 bl rknand_print_hex - ldr r3, .L2457+32 + ldr r3, .L2505+32 movs r2, #4 - ldr r1, .L2457+40 - ldr r0, .L2457+64 + ldr r1, .L2505+40 + ldr r0, .L2505+64 ldrh r3, [r3] ldr r1, [r1] bl rknand_print_hex - ldr r3, .L2457+68 + ldr r3, .L2505+68 movs r2, #1 str r2, [r3] -.L2450: - ldr r3, [sp] +.L2500: + ldr r3, [sp, #12] ldrh r3, [r3, #8] cmp r3, r6 - beq .L2451 - ldr r1, .L2457+36 + beq .L2501 + ldr r1, .L2505+36 mov r2, #552 - ldr r0, .L2457+12 + ldr r0, .L2505+12 bl printf - ldr r1, .L2457+16 - ldr r0, .L2457+20 + ldr r1, .L2505+16 + ldr r0, .L2505+20 bl printf -.L2451: - ldr r3, .L2457+24 +.L2501: + ldr r3, .L2505+24 movs r1, #0 ldr r3, [r3] adds r2, r3, r4 str r1, [r2, #4] strh r6, [r3, r4] @ movhi - b .L2441 -.L2449: + b .L2492 +.L2499: ldr r2, [r8] cmp r2, #256 - bne .L2450 + bne .L2500 mov r2, r3 mov r1, r7 - ldr r0, .L2457+72 + ldr r0, .L2505+72 bl printf ldr r3, [r5] mov r1, r7 - ldr r0, .L2457+76 + ldr r0, .L2505+76 add r3, r3, r4 ldr r2, [r3, #8] bl FtlMapWritePage - b .L2450 -.L2458: + b .L2500 +.L2506: .align 2 -.L2457: - .word .LANCHOR57 - .word .LANCHOR73 - .word .LANCHOR227 +.L2505: + .word .LANCHOR72 + .word .LANCHOR56 + .word .LANCHOR226 .word .LC5 .word .LC6 .word .LC7 - .word .LANCHOR97 - .word .LANCHOR68 + .word .LANCHOR96 .word .LANCHOR67 - .word .LANCHOR228 + .word .LANCHOR66 + .word .LANCHOR227 .word .LANCHOR131 - .word .LANCHOR58 - .word .LANCHOR98 + .word .LANCHOR57 + .word .LANCHOR97 .word .LANCHOR188 - .word .LC54 + .word .LC53 .word .LC27 + .word .LC54 + .word .LANCHOR76 .word .LC55 - .word .LANCHOR77 - .word .LC56 .word .LANCHOR127 .word .LANCHOR202 .size log2phys, .-log2phys @@ -17710,73 +17855,73 @@ FtlProgPages: @ frame_needed = 0, uses_anonymous_args = 0 push {r0, r1, r2, r3, r4, r5, r6, r7, r8, r10, fp, lr} mov r4, r3 - ldr r3, .L2479 + ldr r3, .L2527 mov r5, r0 mov r10, r1 ldr r7, [r3] mov r8, r3 - cbnz r7, .L2459 - ldr r3, .L2479+4 + cbnz r7, .L2507 + ldr r3, .L2527+4 ldrb r3, [r3] @ zero_extendqisi2 - cbz r3, .L2474 + cbz r3, .L2522 ldrb r6, [r4, #8] @ zero_extendqisi2 subs r3, r6, #1 rsbs r6, r3, #0 adcs r6, r6, r3 -.L2461: - ldr fp, .L2479+40 +.L2509: + ldr fp, .L2527+40 mov r2, r6 ldrb r3, [r4, #9] @ zero_extendqisi2 mov r1, r10 mov r0, r5 bl FlashProgPages -.L2462: +.L2510: cmp r7, r10 - bne .L2472 - ldr r3, .L2479+8 + bne .L2520 + ldr r3, .L2527+8 ldrb r2, [r4, #6] @ zero_extendqisi2 ldrh r3, [r3] cmp r2, r3 - bcc .L2459 - ldr r1, .L2479+12 + bcc .L2507 + ldr r1, .L2527+12 mov r2, #1600 - ldr r0, .L2479+16 + ldr r0, .L2527+16 bl printf - ldr r1, .L2479+20 - ldr r0, .L2479+24 + ldr r1, .L2527+20 + ldr r0, .L2527+24 bl printf -.L2459: +.L2507: add sp, sp, #16 @ sp needed pop {r4, r5, r6, r7, r8, r10, fp, pc} -.L2474: +.L2522: mov r6, r7 - b .L2461 -.L2465: + b .L2509 +.L2513: ldr r0, [r5, #4] ubfx r0, r0, #10, #16 bl P2V_block_in_plane ldrh r3, [r4] cmp r3, r0 - bne .L2463 + bne .L2511 ldr r1, [fp] ldrh r0, [r4, #4] ldrh r2, [r1, r3, lsl #1] subs r2, r2, r0 strh r2, [r1, r3, lsl #1] @ movhi - ldr r3, .L2479+28 + ldr r3, .L2527+28 ldrh r3, [r3] strh r3, [r4, #2] @ movhi movs r3, #0 strb r3, [r4, #6] strh r3, [r4, #4] @ movhi -.L2463: +.L2511: ldrh r3, [r4, #4] - cbnz r3, .L2464 + cbnz r3, .L2512 mov r0, r4 bl allocate_new_data_superblock -.L2464: - ldr r2, .L2479+32 +.L2512: + ldr r2, .L2527+32 ldr r3, [r2, #96] adds r3, r3, #1 str r3, [r2, #96] @@ -17794,27 +17939,27 @@ FtlProgPages: bl FlashProgPages ldr r3, [r8] cmp r3, #0 - bne .L2459 -.L2472: + bne .L2507 +.L2520: ldr r3, [r5] adds r3, r3, #1 - beq .L2465 - ldr r3, .L2479+8 + beq .L2513 + ldr r3, .L2527+8 ldrb r2, [r4, #6] @ zero_extendqisi2 ldrh r3, [r3] cmp r2, r3 - bcc .L2466 - ldr r1, .L2479+12 + bcc .L2514 + ldr r1, .L2527+12 movw r2, #1583 - ldr r0, .L2479+16 + ldr r0, .L2527+16 bl printf - ldr r1, .L2479+20 - ldr r0, .L2479+24 + ldr r1, .L2527+20 + ldr r0, .L2527+24 bl printf -.L2466: +.L2514: ldr r3, [r5, #4] - cbnz r6, .L2467 -.L2478: + cbnz r6, .L2515 +.L2526: movs r2, #1 add r1, sp, #12 ldr r0, [r5, #16] @@ -17828,39 +17973,39 @@ FtlProgPages: ldr r2, [sp, #4] mov r3, r0 adds r2, r2, #1 - beq .L2469 + beq .L2517 ldr r2, [fp] ldrh r2, [r2, r0, lsl #1] - cbnz r2, .L2470 + cbnz r2, .L2518 mov r1, r0 str r0, [sp, #4] - ldr r0, .L2479+36 + ldr r0, .L2527+36 bl printf ldr r3, [sp, #4] -.L2470: +.L2518: mov r0, r3 bl decrement_vpc_count -.L2469: +.L2517: adds r7, r7, #1 adds r5, r5, #36 - b .L2462 -.L2467: + b .L2510 +.L2515: orr r3, r3, #-2147483648 - b .L2478 -.L2480: + b .L2526 +.L2528: .align 2 -.L2479: - .word .LANCHOR77 - .word .LANCHOR8 +.L2527: + .word .LANCHOR76 + .word .LANCHOR15 .word .LANCHOR38 - .word .LANCHOR229 + .word .LANCHOR228 .word .LC5 .word .LC6 .word .LC7 - .word .LANCHOR53 + .word .LANCHOR52 .word .LANCHOR138 - .word .LC57 - .word .LANCHOR84 + .word .LC56 + .word .LANCHOR83 .size FtlProgPages, .-FtlProgPages .section .text.FtlCacheWriteBack,"ax",%progbits .align 1 @@ -17874,27 +18019,27 @@ FtlCacheWriteBack: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 push {r3, r4, r5, lr} - ldr r3, .L2486 + ldr r3, .L2534 ldr r4, [r3] - cbnz r4, .L2482 - ldr r5, .L2486+4 + cbnz r4, .L2530 + ldr r5, .L2534+4 ldr r0, [r5] - cbz r0, .L2482 - ldr r3, .L2486+8 + cbz r0, .L2530 + ldr r3, .L2534+8 mov r2, r4 movs r1, #1 ldr r3, [r3] bl FtlProgPages str r4, [r5] -.L2482: +.L2530: movs r0, #0 pop {r3, r4, r5, pc} -.L2487: +.L2535: .align 2 -.L2486: - .word .LANCHOR77 +.L2534: + .word .LANCHOR76 .word .LANCHOR132 - .word .LANCHOR230 + .word .LANCHOR229 .size FtlCacheWriteBack, .-FtlCacheWriteBack .section .text.FtlSysFlush,"ax",%progbits .align 1 @@ -17908,21 +18053,21 @@ FtlSysFlush: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 push {r3, lr} - ldr r3, .L2490 + ldr r3, .L2538 ldr r3, [r3] - cbnz r3, .L2489 + cbnz r3, .L2537 bl FtlCacheWriteBack bl l2p_flush movs r0, #1 bl FtlEctTblFlush bl FtlVpcTblFlush -.L2489: +.L2537: movs r0, #0 pop {r3, pc} -.L2491: +.L2539: .align 2 -.L2490: - .word .LANCHOR77 +.L2538: + .word .LANCHOR76 .size FtlSysFlush, .-FtlSysFlush .section .text.FtlDeInit,"ax",%progbits .align 1 @@ -17936,18 +18081,18 @@ FtlDeInit: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 push {r3, lr} - ldr r3, .L2494 + ldr r3, .L2542 ldr r3, [r3] cmp r3, #1 - bne .L2493 + bne .L2541 bl FtlSysFlush -.L2493: +.L2541: movs r0, #0 pop {r3, pc} -.L2495: +.L2543: .align 2 -.L2494: - .word .LANCHOR231 +.L2542: + .word .LANCHOR230 .size FtlDeInit, .-FtlDeInit .section .text.rk_ftl_de_init,"ax",%progbits .align 1 @@ -17977,28 +18122,28 @@ rk_ftl_de_init: ftl_discard: @ args = 0, pretend = 0, frame = 8 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L2512 + ldr r3, .L2560 push {r0, r1, r4, r5, r6, r7, r8, lr} mov r5, r2 adds r2, r1, r2 mov r6, r1 ldr r3, [r3] cmp r2, r3 - bhi .L2505 + bhi .L2553 cmp r5, #31 - bhi .L2499 -.L2500: + bhi .L2547 +.L2548: movs r0, #0 -.L2497: +.L2545: add sp, sp, #8 @ sp needed pop {r4, r5, r6, r7, r8, pc} -.L2499: - ldr r3, .L2512+4 +.L2547: + ldr r3, .L2560+4 ldr r3, [r3] cmp r3, #0 - bne .L2500 - ldr r8, .L2512+16 + bne .L2548 + ldr r8, .L2560+16 bl FtlCacheWriteBack mov r0, r6 ldrh r4, [r8] @@ -18008,7 +18153,7 @@ ftl_discard: mov r7, r0 subs r6, r6, r3 uxth r6, r6 - cbz r6, .L2501 + cbz r6, .L2549 subs r4, r4, r6 adds r7, r7, #1 cmp r4, r5 @@ -18016,32 +18161,32 @@ ftl_discard: movcs r4, r5 uxth r4, r4 subs r5, r5, r4 -.L2501: - ldr r4, .L2512+8 +.L2549: + ldr r4, .L2560+8 mov r3, #-1 - ldr r6, .L2512+12 + ldr r6, .L2560+12 str r3, [sp, #4] -.L2502: +.L2550: ldrh r3, [r8] cmp r5, r3 - bcs .L2504 - ldr r3, .L2512+8 + bcs .L2552 + ldr r3, .L2560+8 ldr r2, [r3] cmp r2, #32 - bls .L2500 + bls .L2548 movs r4, #0 str r4, [r3] bl l2p_flush bl FtlVpcTblFlush - b .L2500 -.L2504: + b .L2548 +.L2552: movs r2, #0 mov r1, sp mov r0, r7 bl log2phys ldr r3, [sp] adds r3, r3, #1 - beq .L2503 + beq .L2551 ldr r3, [r4] movs r2, #1 add r1, sp, #4 @@ -18056,22 +18201,22 @@ ftl_discard: ubfx r0, r0, #10, #16 bl P2V_block_in_plane bl decrement_vpc_count -.L2503: +.L2551: ldrh r3, [r8] adds r7, r7, #1 subs r5, r5, r3 - b .L2502 -.L2505: + b .L2550 +.L2553: mov r0, #-1 - b .L2497 -.L2513: + b .L2545 +.L2561: .align 2 -.L2512: - .word .LANCHOR69 - .word .LANCHOR77 - .word .LANCHOR232 +.L2560: + .word .LANCHOR68 + .word .LANCHOR76 + .word .LANCHOR231 .word .LANCHOR163 - .word .LANCHOR56 + .word .LANCHOR55 .size ftl_discard, .-ftl_discard .section .text.Ftlscanalldata,"ax",%progbits .align 1 @@ -18086,60 +18231,60 @@ Ftlscanalldata: @ frame_needed = 0, uses_anonymous_args = 0 push {r4, r5, r6, r7, r8, lr} movs r5, #0 - ldr r7, .L2528 + ldr r7, .L2576 sub sp, sp, #32 movs r1, #0 - ldr r8, .L2528+24 - ldr r0, .L2528+4 + ldr r8, .L2576+24 + ldr r0, .L2576+4 bl printf -.L2515: +.L2563: ldr r3, [r7] cmp r5, r3 - bcc .L2521 + bcc .L2569 add sp, sp, #32 @ sp needed pop {r4, r5, r6, r7, r8, pc} -.L2521: +.L2569: movs r2, #0 add r1, sp, #28 mov r0, r5 bl log2phys ubfx r3, r5, #0, #11 - cbnz r3, .L2516 + cbnz r3, .L2564 ldr r2, [sp, #28] mov r1, r5 mov r0, r8 bl printf -.L2516: +.L2564: ldr r3, [sp, #28] adds r2, r3, #1 - beq .L2518 - ldr r4, .L2528+8 + beq .L2566 + ldr r4, .L2576+8 movs r2, #0 movs r1, #1 str r3, [r4, #4] mov r0, r4 - ldr r3, .L2528+12 + ldr r3, .L2576+12 str r5, [r4, #16] str r2, [r4] ldr r3, [r3] str r3, [r4, #8] - ldr r3, .L2528+16 + ldr r3, .L2576+16 ldr r6, [r3] str r6, [r4, #12] bl FlashReadPages ldr r3, [r4] cmp r3, #256 - beq .L2519 + beq .L2567 adds r3, r3, #1 - beq .L2519 + beq .L2567 ldr r3, [r6, #8] cmp r5, r3 - beq .L2518 -.L2519: + beq .L2566 +.L2567: ldr r2, [r4, #8] ldr r3, [r4, #12] - ldr r0, .L2528+20 + ldr r0, .L2576+20 ldr r1, [r2, #4] str r1, [sp, #16] mov r1, r5 @@ -18154,19 +18299,19 @@ Ftlscanalldata: ldr r2, [r4, #4] ldr r3, [r3] bl printf -.L2518: +.L2566: adds r5, r5, #1 - b .L2515 -.L2529: + b .L2563 +.L2577: .align 2 -.L2528: - .word .LANCHOR73 - .word .LC58 +.L2576: + .word .LANCHOR72 + .word .LC57 .word .LANCHOR202 .word .LANCHOR183 .word .LANCHOR188 - .word .LC60 .word .LC59 + .word .LC58 .size Ftlscanalldata, .-Ftlscanalldata .section .text.FtlReUsePrevPpa,"ax",%progbits .align 1 @@ -18181,7 +18326,7 @@ FtlReUsePrevPpa: @ frame_needed = 0, uses_anonymous_args = 0 push {r0, r1, r4, r5, r6, r7, r8, lr} mov r6, r0 - ldr r5, .L2540 + ldr r5, .L2588 ubfx r0, r1, #10, #16 str r1, [sp, #4] bl P2V_block_in_plane @@ -18189,15 +18334,15 @@ FtlReUsePrevPpa: mov r7, r0 ldrh r3, [r2, r0, lsl #1] cmp r3, #0 - bne .L2531 - ldr r2, .L2540+4 + bne .L2579 + ldr r2, .L2588+4 ldr r4, [r2] cmp r4, #0 - beq .L2532 - ldr r2, .L2540+8 + beq .L2580 + ldr r2, .L2588+8 movw lr, #65535 - ldr ip, .L2540+32 - ldr r0, .L2540+12 + ldr ip, .L2588+32 + ldr r0, .L2588+12 ldr r2, [r2] ldrh r1, [r0] mov r8, r0 @@ -18206,25 +18351,25 @@ FtlReUsePrevPpa: mul r4, ip, r4 mov ip, #6 uxth r4, r4 -.L2533: +.L2581: uxth r0, r3 cmp r1, r0 - bls .L2532 + bls .L2580 cmp r4, r7 - bne .L2534 + bne .L2582 mov r1, r4 - ldr r0, .L2540+4 + ldr r0, .L2588+4 bl List_remove_node ldrh r3, [r8] - cbnz r3, .L2535 - ldr r1, .L2540+16 - movw r2, #2070 - ldr r0, .L2540+20 + cbnz r3, .L2583 + ldr r1, .L2588+16 + movw r2, #2097 + ldr r0, .L2588+20 bl printf - ldr r1, .L2540+24 - ldr r0, .L2540+28 + ldr r1, .L2588+24 + ldr r0, .L2588+28 bl printf -.L2535: +.L2583: ldrh r3, [r8] mov r0, r4 subs r3, r3, #1 @@ -18232,17 +18377,17 @@ FtlReUsePrevPpa: bl INSERT_DATA_LIST ldr r2, [r5] ldrh r3, [r2, r7, lsl #1] -.L2531: +.L2579: adds r3, r3, #1 strh r3, [r2, r7, lsl #1] @ movhi - b .L2532 -.L2534: + b .L2580 +.L2582: mul r4, ip, r4 adds r3, r3, #1 ldrh r4, [r2, r4] cmp r4, lr - bne .L2533 -.L2532: + bne .L2581 +.L2580: movs r2, #1 add r1, sp, #4 mov r0, r6 @@ -18250,14 +18395,14 @@ FtlReUsePrevPpa: add sp, sp, #8 @ sp needed pop {r4, r5, r6, r7, r8, pc} -.L2541: +.L2589: .align 2 -.L2540: - .word .LANCHOR84 +.L2588: + .word .LANCHOR83 + .word .LANCHOR87 + .word .LANCHOR81 .word .LANCHOR88 - .word .LANCHOR82 - .word .LANCHOR89 - .word .LANCHOR233 + .word .LANCHOR232 .word .LC5 .word .LC6 .word .LC7 @@ -18280,181 +18425,181 @@ FtlRecoverySuperblock: mov r10, r0 sub sp, sp, #56 cmp r3, r2 - beq .L2702 + beq .L2751 ldrh r3, [r0, #2] str r3, [sp, #12] ldrb r3, [r0, #6] @ zero_extendqisi2 ldr r1, [sp, #12] str r3, [sp, #28] - ldr r3, .L2711 + ldr r3, .L2760 ldrh r3, [r3] cmp r3, r1 mov r3, #0 - bne .L2545 + bne .L2593 strh r3, [r0, #4] @ movhi -.L2709: +.L2758: strb r3, [r10, #6] -.L2702: +.L2751: movs r0, #0 add sp, sp, #56 @ sp needed pop {r4, r5, r6, r7, r8, r10, fp, pc} -.L2545: +.L2593: ldrh r0, [r0, #16] -.L2546: +.L2594: cmp r0, r2 uxth r5, r3 add r3, r3, #1 - beq .L2547 + beq .L2595 ldrb r1, [r10, #8] @ zero_extendqisi2 cmp r1, #1 - bne .L2548 + bne .L2596 bl FtlGetLastWrittenPage adds r6, r0, #1 mov r4, r0 - beq .L2549 - ldr r3, .L2711+4 + beq .L2597 + ldr r3, .L2760+4 ldrb r3, [r3] @ zero_extendqisi2 cmp r3, #0 - bne .L2626 - ldr r3, .L2711+8 + bne .L2675 + ldr r3, .L2760+8 ldrh r5, [r3, r0, lsl #1] -.L2550: - ldr r3, .L2711+12 +.L2598: + ldr r3, .L2760+12 movw r8, #65535 mov fp, #36 ldrh ip, [r3] - ldr r3, .L2711+16 + ldr r3, .L2760+16 ldr r0, [r3] - ldr r3, .L2711+20 + ldr r3, .L2760+20 ldr r3, [r3] str r3, [sp, #8] - ldr r3, .L2711+24 + ldr r3, .L2760+24 ldrh lr, [r3] add r3, r10, #16 str r3, [sp, #20] str r3, [sp, #4] movs r3, #0 mov r6, r3 -.L2551: +.L2599: uxth r2, r3 cmp ip, r2 - bhi .L2555 + bhi .L2603 ldrb r3, [r10, #8] @ zero_extendqisi2 cmp r3, #1 - bne .L2627 - ldr r3, .L2711+4 + bne .L2676 + ldr r3, .L2760+4 ldrb r3, [r3] @ zero_extendqisi2 adds r3, r3, #0 it ne movne r3, #1 -.L2703: +.L2752: str r3, [sp, #36] mov r1, r6 ldr r2, [sp, #36] movs r7, #0 bl FlashReadPages - ldr r3, .L2711+28 + ldr r3, .L2760+28 movw fp, #65535 - ldr r8, .L2711+16 + ldr r8, .L2760+16 ldr r3, [r3] subs r3, r3, #1 str r3, [sp, #4] -.L2557: +.L2605: uxth r3, r7 cmp r6, r3 - bhi .L2562 - bne .L2560 + bhi .L2610 + bne .L2608 adds r4, r4, #1 uxth r3, r4 str r3, [sp, #8] ldr r3, [r8] ldr r0, [r3, #4] -.L2704: +.L2753: ubfx r0, r0, #10, #16 bl P2V_plane ldrb r3, [r10, #8] @ zero_extendqisi2 str r0, [sp, #16] cmp r3, #1 - bne .L2564 - ldr r2, .L2711+4 + bne .L2612 + ldr r2, .L2760+4 ldrb r2, [r2] @ zero_extendqisi2 - cbnz r2, .L2564 + cbnz r2, .L2612 ldr r1, [sp, #8] - ldr r2, .L2711+8 + ldr r2, .L2760+8 ldrh r2, [r2, r1, lsl #1] str r2, [sp, #8] -.L2564: - ldr r2, .L2711 +.L2612: + ldr r2, .L2760 ldr r1, [sp, #8] ldrh r2, [r2] cmp r2, r1 - bne .L2565 + bne .L2613 ldrh r2, [sp, #8] strh r2, [r10, #2] @ movhi movs r2, #0 strb r2, [r10, #6] strh r2, [r10, #4] @ movhi -.L2565: +.L2613: ldr r2, [sp, #8] ldr r1, [sp, #12] cmp r2, r1 - bne .L2566 + bne .L2614 ldr r2, [sp, #16] ldr r1, [sp, #28] cmp r2, r1 - bne .L2566 -.L2710: + bne .L2614 +.L2759: ldr r1, [sp, #8] mov r0, r10 bl ftl_sb_update_avl_pages - b .L2702 -.L2547: + b .L2751 +.L2595: uxth r1, r3 adds r1, r1, #8 ldrh r0, [r10, r1, lsl #1] - b .L2546 -.L2548: + b .L2594 +.L2596: movs r1, #0 bl FtlGetLastWrittenPage mov r4, r0 adds r0, r0, #1 - beq .L2549 -.L2626: + beq .L2597 +.L2675: mov r5, r4 - b .L2550 -.L2549: + b .L2598 +.L2597: ldr r3, [sp, #12] - cbz r3, .L2552 - ldr r1, .L2711+32 - movw r2, #2141 - ldr r0, .L2711+36 + cbz r3, .L2600 + ldr r1, .L2760+32 + movw r2, #2168 + ldr r0, .L2760+36 bl printf - ldr r1, .L2711+40 - ldr r0, .L2711+44 + ldr r1, .L2760+40 + ldr r0, .L2760+44 bl printf -.L2552: +.L2600: ldr r3, [sp, #28] - cbz r3, .L2553 + cbz r3, .L2601 cmp r5, r3 - beq .L2553 - ldr r1, .L2711+32 - movw r2, #2142 - ldr r0, .L2711+36 + beq .L2601 + ldr r1, .L2760+32 + movw r2, #2169 + ldr r0, .L2760+36 bl printf - ldr r1, .L2711+40 - ldr r0, .L2711+44 + ldr r1, .L2760+40 + ldr r0, .L2760+44 bl printf -.L2553: +.L2601: movs r3, #0 strh r3, [r10, #2] @ movhi - b .L2709 -.L2555: + b .L2758 +.L2603: ldr r1, [sp, #4] ldrh r2, [r1], #2 cmp r2, r8 str r1, [sp, #4] - beq .L2554 + beq .L2602 mla r1, fp, r6, r0 orr r2, r5, r2, lsl #10 str r2, [r1, #4] @@ -18468,36 +18613,36 @@ FtlRecoverySuperblock: ldr r2, [sp, #8] add r7, r7, r2 str r7, [r1, #12] -.L2554: +.L2602: adds r3, r3, #1 - b .L2551 -.L2627: + b .L2599 +.L2676: movs r3, #0 - b .L2703 -.L2562: + b .L2752 +.L2610: movs r3, #36 ldr r1, [r8] muls r3, r7, r3 adds r2, r1, r3 ldr r3, [r1, r3] - cbnz r3, .L2558 + cbnz r3, .L2606 ldr r2, [r2, #12] ldr r3, [r2, #4] adds r1, r3, #1 - beq .L2559 - ldr r1, .L2711+28 + beq .L2607 + ldr r1, .L2760+28 mov r0, r3 ldr r1, [r1] bl ftl_cmp_data_ver - cbz r0, .L2559 - ldr r1, .L2711+28 + cbz r0, .L2607 + ldr r1, .L2760+28 adds r3, r3, #1 str r3, [r1] -.L2559: +.L2607: ldr r3, [r2] adds r3, r3, #1 - bne .L2561 -.L2560: + bne .L2609 +.L2608: uxth r3, r4 uxth r7, r7 str r3, [sp, #8] @@ -18505,26 +18650,26 @@ FtlRecoverySuperblock: ldr r3, [r8] mla r7, r2, r7, r3 ldr r0, [r7, #4] - b .L2704 -.L2558: + b .L2753 +.L2606: ldr r1, [r2, #4] uxth fp, r5 - ldr r0, .L2711+48 + ldr r0, .L2760+48 bl printf ldrh r2, [r10] - ldr r3, .L2711+52 + ldr r3, .L2760+52 strh r2, [r3] @ movhi -.L2561: +.L2609: adds r7, r7, #1 - b .L2557 -.L2566: + b .L2605 +.L2614: movw r2, #65535 cmp fp, r2 - bne .L2567 + bne .L2615 cmp r3, #0 - bne .L2568 -.L2567: - ldr r3, .L2711+56 + bne .L2616 +.L2615: + ldr r3, .L2760+56 uxth fp, r5 uxth r5, r5 mov r7, #-1 @@ -18543,193 +18688,193 @@ FtlRecoverySuperblock: subgt r4, fp, #7 ldrle r4, [sp, #12] uxthgt r4, r4 -.L2571: +.L2619: cmp r4, fp - bhi .L2586 - ldr r3, .L2711+12 + bhi .L2634 + ldr r3, .L2760+12 movw lr, #65535 mov ip, #36 ldrh r8, [r3] - ldr r3, .L2711+16 + ldr r3, .L2760+16 ldr r0, [r3] ldr r3, [sp, #20] str r3, [sp, #32] movs r3, #0 mov r5, r3 - b .L2587 -.L2573: + b .L2635 +.L2621: ldr r1, [sp, #32] ldrh r2, [r1], #2 cmp r2, lr str r1, [sp, #32] - beq .L2572 + beq .L2620 mla r1, ip, r5, r0 adds r5, r5, #1 orr r2, r4, r2, lsl #10 uxth r5, r5 str r2, [r1, #4] -.L2572: +.L2620: adds r3, r3, #1 -.L2587: +.L2635: uxth r2, r3 cmp r8, r2 - bhi .L2573 + bhi .L2621 mov r1, r5 ldr r2, [sp, #36] bl FlashReadPages - ldr r2, .L2711+4 + ldr r2, .L2760+4 movs r1, #36 - ldr r3, .L2711+56 + ldr r3, .L2760+56 movs r0, #0 movw ip, #65535 ldrb lr, [r2] @ zero_extendqisi2 - ldr r2, .L2711+16 + ldr r2, .L2760+16 ldr r3, [r3] ldr r2, [r2] mla r5, r1, r5, r2 -.L2574: +.L2622: cmp r5, r2 - bne .L2584 - cbz r0, .L2585 - ldr r2, .L2711+56 + bne .L2632 + cbz r0, .L2633 + ldr r2, .L2760+56 str r3, [r2] -.L2585: +.L2633: adds r4, r4, #1 uxth r4, r4 - b .L2571 -.L2712: + b .L2619 +.L2761: .align 2 -.L2711: - .word .LANCHOR53 - .word .LANCHOR8 +.L2760: + .word .LANCHOR52 + .word .LANCHOR15 .word .LANCHOR16 .word .LANCHOR38 .word .LANCHOR180 - .word .LANCHOR106 - .word .LANCHOR59 + .word .LANCHOR105 + .word .LANCHOR58 .word .LANCHOR160 - .word .LANCHOR234 + .word .LANCHOR233 .word .LC5 .word .LC6 .word .LC7 - .word .LC61 - .word .LANCHOR235 + .word .LC60 + .word .LANCHOR234 .word .LANCHOR136 -.L2584: +.L2632: ldr r1, [r2] - cbnz r1, .L2575 + cbnz r1, .L2623 ldr r1, [r2, #12] ldrh r8, [r1] cmp r8, ip - beq .L2630 + beq .L2679 ldr r1, [r1, #4] cmp r1, #-1 - beq .L2630 + beq .L2679 adds r0, r7, #1 - bne .L2632 - ldr r0, .L2713 + bne .L2681 + ldr r0, .L2762 ldrh r0, [r0, r4, lsl #1] cmp r0, ip - bne .L2577 + bne .L2625 cmp lr, #0 - beq .L2632 -.L2577: + beq .L2681 +.L2625: ldr r0, [sp, #4] cmp r0, r3 it ne movne r7, r3 -.L2632: +.L2681: movs r0, #1 - b .L2576 -.L2575: - cbz r0, .L2578 - ldr r2, .L2713+4 + b .L2624 +.L2623: + cbz r0, .L2626 + ldr r2, .L2762+4 str r3, [r2] -.L2578: - ldr r3, .L2713+8 +.L2626: + ldr r3, .L2762+8 ldrh r2, [r10] strh r2, [r3] @ movhi ldrb r3, [r10, #8] @ zero_extendqisi2 - cbnz r3, .L2568 - ldr r3, .L2713 + cbnz r3, .L2616 + ldr r3, .L2762 ldrh r2, [r3, r4, lsl #1] movw r3, #65535 cmp r2, r3 - bne .L2580 + bne .L2628 adds r1, r7, #1 - ldr r3, .L2713+4 - beq .L2581 + ldr r3, .L2762+4 + beq .L2629 str r7, [r3] -.L2568: +.L2616: ldr fp, [sp, #12] movs r2, #1 - ldr r6, .L2713+12 - ldr r3, .L2713+16 + ldr r6, .L2762+12 + ldr r3, .L2762+16 strh r2, [r3] @ movhi -.L2588: - ldr r3, .L2713+20 +.L2636: + ldr r3, .L2762+20 movw ip, #65535 ldr r0, [r6] mov lr, #36 ldr r1, [sp, #20] movs r2, #0 ldrh r5, [r3] - ldr r3, .L2713+24 + ldr r3, .L2762+24 str r2, [sp, #24] ldrb r7, [r3] @ zero_extendqisi2 -.L2589: +.L2637: uxth r3, r2 cmp r3, r5 - bcc .L2592 + bcc .L2640 ldr r2, [sp, #36] ldr r1, [sp, #24] bl FlashReadPages movs r3, #0 -.L2708: +.L2757: str r3, [sp, #32] ldr r2, [sp, #24] ldrh r3, [sp, #32] cmp r2, r3 - bhi .L2620 + bhi .L2669 ldrb r3, [r10, #8] @ zero_extendqisi2 add fp, fp, #1 uxth fp, fp cmp r3, #1 - bne .L2621 - ldr r3, .L2713+24 + bne .L2670 + ldr r3, .L2762+24 ldrb r3, [r3] @ zero_extendqisi2 - cbz r3, .L2621 - ldr r3, .L2713+28 + cbz r3, .L2670 + ldr r3, .L2762+28 ldrh r3, [r3] cmp r3, fp - bne .L2621 + bne .L2670 ldr r3, [sp, #8] cmp r3, fp - beq .L2597 -.L2621: - ldr r3, .L2713+32 + beq .L2645 +.L2670: + ldr r3, .L2762+32 ldrh r3, [r3] cmp r3, fp - bne .L2588 - ldr r2, .L2713+20 + bne .L2636 + ldr r2, .L2762+20 movw r0, #65535 movs r3, #0 strh fp, [r10, #2] @ movhi strh r3, [r10, #4] @ movhi ldrh r2, [r2] -.L2622: +.L2671: uxth r1, r3 cmp r1, r2 - bcs .L2702 + bcs .L2751 ldr r1, [sp, #20] ldrh r4, [r1], #2 cmp r4, r0 str r1, [sp, #20] add r1, r3, #1 - bne .L2709 + bne .L2758 mov r3, r1 - b .L2622 -.L2581: + b .L2671 +.L2629: ldr r2, [sp, #4] ldr r1, [sp, #24] cmp r2, r1 @@ -18737,62 +18882,62 @@ FtlRecoverySuperblock: ldreq r2, [r3] movne r2, r1 addeq r2, r2, #-1 -.L2705: +.L2754: str r2, [r3] - b .L2568 -.L2580: + b .L2616 +.L2628: ldr r3, [sp, #4] cmp r6, r3 - beq .L2583 + beq .L2631 adds r2, r6, #1 - beq .L2568 - ldr r3, .L2713+4 + beq .L2616 + ldr r3, .L2762+4 str r6, [r3] - b .L2568 -.L2583: - ldr r2, .L2713+4 + b .L2616 +.L2631: + ldr r2, .L2762+4 ldr r1, [sp, #4] ldr r3, [r2] cmp r1, r3 - beq .L2568 + beq .L2616 subs r3, r3, #1 str r3, [r2] - b .L2568 -.L2630: + b .L2616 +.L2679: mov r1, r3 mov r3, r6 -.L2576: +.L2624: mov r6, r3 adds r2, r2, #36 mov r3, r1 - b .L2574 -.L2586: + b .L2622 +.L2634: mov r2, #-1 - ldr r3, .L2713+4 - b .L2705 -.L2592: + ldr r3, .L2762+4 + b .L2754 +.L2640: ldrh r3, [r1], #2 cmp r3, ip - beq .L2590 + beq .L2638 ldr r4, [sp, #24] orr r3, fp, r3, lsl #10 mla r4, lr, r4, r0 str r3, [r4, #4] ldrb r8, [r10, #8] @ zero_extendqisi2 cmp r8, #1 - bne .L2591 - cbz r7, .L2591 + bne .L2639 + cbz r7, .L2639 orr r3, r3, #-2147483648 str r3, [r4, #4] -.L2591: +.L2639: ldr r3, [sp, #24] adds r3, r3, #1 uxth r3, r3 str r3, [sp, #24] -.L2590: +.L2638: adds r2, r2, #1 - b .L2589 -.L2620: + b .L2637 +.L2669: ldr r3, [sp, #32] movs r5, #36 ldr r8, [r6] @@ -18804,45 +18949,45 @@ FtlRecoverySuperblock: bl P2V_plane ldr r3, [sp, #12] cmp fp, r3 - bcc .L2594 - bne .L2595 + bcc .L2642 + bne .L2643 ldr r3, [sp, #28] cmp r3, r0 - bhi .L2594 -.L2595: + bhi .L2642 +.L2643: ldr r3, [sp, #8] cmp fp, r3 - bne .L2596 + bne .L2644 ldr r3, [sp, #16] cmp r3, r0 - beq .L2597 -.L2596: + beq .L2645 +.L2644: ldr r3, [r8, r5] adds r3, r3, #1 - beq .L2598 + beq .L2646 ldr r3, [r7, #12] movw r2, #61589 ldrh r1, [r3] cmp r1, r2 - beq .L2599 + beq .L2647 ldrh r0, [r10] -.L2706: +.L2755: bl decrement_vpc_count - b .L2594 -.L2599: + b .L2642 +.L2647: ldr r2, [r3, #4] str r2, [sp, #4] adds r2, r2, #1 - beq .L2600 - ldr r2, .L2713+36 + beq .L2648 + ldr r2, .L2762+36 ldr r0, [sp, #4] ldr r1, [r2] bl ftl_cmp_data_ver - cbz r0, .L2600 + cbz r0, .L2648 ldr r1, [sp, #4] adds r1, r1, #1 str r1, [r2] -.L2600: +.L2648: ldr r4, [r3, #8] add r1, sp, #48 ldr r3, [r3, #12] @@ -18850,17 +18995,17 @@ FtlRecoverySuperblock: mov r0, r4 str r3, [sp, #44] bl log2phys - ldr r3, .L2713+4 + ldr r3, .L2762+4 ldr r1, [r3] adds r3, r1, #1 - beq .L2601 + beq .L2649 ldr r0, [sp, #4] bl ftl_cmp_data_ver cmp r0, #0 - beq .L2601 + beq .L2649 ldr r3, [sp, #44] adds r7, r3, #1 - beq .L2602 + beq .L2650 ldr r0, [r6] movs r2, #0 movs r1, #1 @@ -18872,152 +19017,160 @@ FtlRecoverySuperblock: ldr r1, [r2, r5] adds r3, r2, r5 adds r1, r1, #1 - bne .L2603 -.L2604: + bne .L2651 +.L2652: mov r3, #-1 str r3, [sp, #44] -.L2611: +.L2659: ldr r7, [sp, #44] adds r0, r7, #1 - beq .L2594 -.L2625: + beq .L2642 +.L2674: ubfx r0, r7, #10, #16 bl P2V_block_in_plane - ldr r3, .L2713+40 + ldr r3, .L2762+40 mov r4, r0 ldrh r3, [r3] cmp r3, r0 - bhi .L2616 - ldr r1, .L2713+44 - movw r2, #2425 - ldr r0, .L2713+48 + bhi .L2665 + ldr r1, .L2762+44 + movw r2, #2456 + ldr r0, .L2762+48 bl printf - ldr r1, .L2713+52 - ldr r0, .L2713+56 + ldr r1, .L2762+52 + ldr r0, .L2762+56 bl printf -.L2616: - ldr r3, .L2713+60 +.L2665: + ldr r3, .L2762+60 ldr r3, [r3] ldrh r3, [r3, r4, lsl #1] cmp r3, #0 - beq .L2617 + beq .L2666 mov r0, r4 - b .L2706 -.L2602: + b .L2755 +.L2650: ldr r3, [sp, #52] ldr r2, [sp, #48] cmp r2, r3 - bne .L2594 + bne .L2642 movs r2, #1 add r1, sp, #44 mov r0, r4 bl log2phys -.L2594: +.L2642: ldr r3, [sp, #32] adds r3, r3, #1 - b .L2708 -.L2603: + b .L2757 +.L2651: ldr r1, [r7, #8] cmp r4, r1 - bne .L2604 + bne .L2652 ldr r8, [r7, #4] - ldr r0, .L2713+4 + ldr r0, .L2762+4 mov r1, r8 ldr r0, [r0] bl ftl_cmp_data_ver cmp r0, #0 - beq .L2604 + beq .L2652 ldr r1, [sp, #48] ldr r0, [sp, #52] cmp r1, r0 - bne .L2606 -.L2609: + bne .L2654 +.L2657: ldr r1, [sp, #44] mov r0, r4 bl FtlReUsePrevPpa - b .L2604 -.L2714: + b .L2652 +.L2763: .align 2 -.L2713: +.L2762: .word .LANCHOR120 .word .LANCHOR136 - .word .LANCHOR235 + .word .LANCHOR234 .word .LANCHOR180 - .word .LANCHOR236 + .word .LANCHOR235 .word .LANCHOR38 - .word .LANCHOR8 - .word .LANCHOR54 + .word .LANCHOR15 .word .LANCHOR53 + .word .LANCHOR52 .word .LANCHOR160 .word .LANCHOR40 - .word .LANCHOR234 + .word .LANCHOR233 .word .LC5 .word .LC6 .word .LC7 - .word .LANCHOR84 -.L2606: + .word .LANCHOR83 +.L2654: ldr r0, [sp, #44] cmp r1, r0 - beq .L2604 + beq .L2652 adds r0, r1, #1 - beq .L2607 + beq .L2655 str r1, [r3, #4] movs r2, #0 movs r1, #1 mov r0, r3 ldr r7, [r3, #12] bl FlashReadPages -.L2608: +.L2656: ldr r3, [r6] ldr r3, [r3, r5] adds r3, r3, #1 - beq .L2609 + beq .L2657 ldr r3, [r7, #4] - ldr r2, .L2715 + ldr r2, .L2764 mov r1, r3 ldr r0, [r2] bl ftl_cmp_data_ver cmp r0, #0 - beq .L2609 + beq .L2657 mov r1, r3 mov r0, r8 bl ftl_cmp_data_ver cmp r0, #0 - beq .L2604 - b .L2609 -.L2607: + beq .L2652 + b .L2657 +.L2655: str r1, [r2, r5] - b .L2608 -.L2601: + b .L2656 +.L2649: ldr r3, [sp, #52] ldr r2, [sp, #48] cmp r2, r3 - beq .L2611 + beq .L2659 + ldr r2, .L2764+4 + ldr r3, [sp, #44] + ldr r2, [r2] + cmp r2, r3, lsr #10 + bhi .L2661 + adds r3, r3, #1 + bne .L2642 +.L2661: movs r2, #1 add r1, sp, #52 mov r0, r4 bl log2phys ldr r7, [sp, #48] adds r5, r7, #1 - beq .L2611 + beq .L2659 ldr r3, [sp, #44] cmp r7, r3 - beq .L2625 + beq .L2674 ubfx r0, r7, #10, #16 bl P2V_block_in_plane - ldr r3, .L2715+4 + ldr r3, .L2764+8 ldrh r3, [r3] cmp r3, r0 - beq .L2615 - ldr r3, .L2715+8 + beq .L2664 + ldr r3, .L2764+12 ldrh r3, [r3] cmp r3, r0 - beq .L2615 - ldr r3, .L2715+12 + beq .L2664 + ldr r3, .L2764+16 ldrh r3, [r3] cmp r3, r0 - bne .L2611 -.L2615: + bne .L2659 +.L2664: ldr r0, [r6] movs r2, #0 movs r1, #1 @@ -19027,76 +19180,339 @@ FtlRecoverySuperblock: ldr r3, [r6] ldr r3, [r3] adds r3, r3, #1 - beq .L2611 + beq .L2659 ldr r1, [r5, #4] ldr r0, [sp, #4] bl ftl_cmp_data_ver cmp r0, #0 - bne .L2611 + bne .L2659 movs r2, #1 add r1, sp, #48 mov r0, r4 bl log2phys - b .L2611 -.L2617: + b .L2659 +.L2666: mov r1, r4 - ldr r0, .L2715+16 + ldr r0, .L2764+20 bl printf - b .L2594 -.L2598: + b .L2642 +.L2646: ldrh r3, [r10] mov r1, r4 - ldr r2, .L2715+20 - ldr r0, .L2715+24 + ldr r2, .L2764+24 + ldr r0, .L2764+28 strh r3, [r2] @ movhi ldr r2, [sp, #4] bl printf - ldr r2, .L2715+28 + ldr r2, .L2764+32 ldr r3, [r2] cmp r3, #31 - bhi .L2618 + bhi .L2667 ldr r0, [sp, #52] - ldr r1, .L2715+32 + ldr r1, .L2764+36 str r0, [r1, r3, lsl #2] adds r3, r3, #1 str r3, [r2] -.L2618: +.L2667: ldrh r0, [r10] bl decrement_vpc_count - ldr r3, .L2715 + ldr r3, .L2764 ldr r2, [r3] adds r1, r2, #1 - bne .L2619 + bne .L2668 ldr r2, [sp, #4] -.L2707: +.L2756: str r2, [r3] - b .L2594 -.L2619: + b .L2642 +.L2668: ldr r1, [sp, #4] cmp r1, r2 - bcs .L2594 + bcs .L2642 mov r2, r1 - b .L2707 -.L2597: + b .L2756 +.L2645: ldrb r3, [sp, #16] @ zero_extendqisi2 ldr r2, [sp, #16] strb r3, [r10, #6] ldrh r3, [sp, #8] strh r3, [r10, #2] @ movhi - b .L2710 -.L2716: + b .L2759 +.L2765: .align 2 -.L2715: +.L2764: .word .LANCHOR136 + .word .LANCHOR43 + .word .LANCHOR91 .word .LANCHOR92 .word .LANCHOR93 - .word .LANCHOR94 + .word .LC61 + .word .LANCHOR234 .word .LC62 - .word .LANCHOR235 - .word .LC63 + .word .LANCHOR236 .word .LANCHOR237 - .word .LANCHOR238 .size FtlRecoverySuperblock, .-FtlRecoverySuperblock + .section .text.FtlGcScanTempBlk,"ax",%progbits + .align 1 + .global FtlGcScanTempBlk + .syntax unified + .thumb + .thumb_func + .fpu softvfp + .type FtlGcScanTempBlk, %function +FtlGcScanTempBlk: + @ args = 0, pretend = 0, frame = 64 + @ frame_needed = 0, uses_anonymous_args = 0 + ldr r3, .L2804 + push {r4, r5, r6, r7, r8, r10, fp, lr} + mov r4, r0 + sub sp, sp, #64 + ldrh r5, [r3] + movw r3, #65535 + cmp r5, r3 + beq .L2792 + cbnz r5, .L2767 +.L2768: + bl FtlGcPageVarInit + b .L2769 +.L2792: + movs r5, #0 +.L2767: + ldr r3, .L2804+4 + ldrh r3, [r3] + cmp r3, r1 + beq .L2768 +.L2769: + ldr r8, .L2804+72 + mov r3, #-1 + str r3, [sp, #8] +.L2770: + ldrh r2, [r4] + movs r3, #0 + strb r3, [r4, #8] + movw r3, #65535 + cmp r2, r3 + beq .L2771 +.L2791: + ldr r3, .L2804+8 + movs r2, #0 + ldr r0, [r8] + mov fp, r2 + movw ip, #65535 + mov lr, #36 + ldrh r10, [r3] + ldr r3, .L2804+12 + ldr r3, [r3] + str r3, [sp, #12] + ldr r3, .L2804+16 + ldrh r3, [r3] + str r3, [sp, #16] + ldr r3, .L2804+20 + ldr r3, [r3] + str r3, [sp, #20] + ldr r3, .L2804+24 + ldrh r7, [r3] + add r3, r4, #16 + str r3, [sp, #4] +.L2772: + uxth r3, r2 + cmp r10, r3 + bhi .L2774 + mov r10, #0 + movs r2, #0 + mov r1, fp + bl FlashReadPages +.L2775: + uxth r3, r10 + cmp fp, r3 + bhi .L2790 + ldr r3, .L2804+4 + adds r5, r5, #1 + uxth r5, r5 + ldrh r3, [r3] + cmp r3, r5 + bhi .L2791 +.L2771: + ldr r3, .L2804 + movw r2, #65535 + mov r0, r4 + strh r5, [r4, #2] @ movhi + mov r1, r5 + strh r2, [r3] @ movhi + movs r2, #0 + strb r2, [r4, #6] + bl ftl_sb_update_avl_pages + ldr r0, [sp, #8] + add sp, sp, #64 + @ sp needed + pop {r4, r5, r6, r7, r8, r10, fp, pc} +.L2774: + ldr r1, [sp, #4] + ldrh r3, [r1], #2 + cmp r3, ip + str r1, [sp, #4] + beq .L2773 + mla r1, lr, fp, r0 + ldr r6, [sp, #12] + orr r3, r5, r3, lsl #10 + str r3, [r1, #4] + ldr r3, [sp, #16] + mul r3, r3, fp + bic r3, r3, #3 + add r3, r3, r6 + ldr r6, [sp, #20] + str r3, [r1, #8] + mul r3, r7, fp + bic r3, r3, #3 + add r3, r3, r6 + str r3, [r1, #12] + add r3, fp, #1 + uxth fp, r3 +.L2773: + adds r2, r2, #1 + b .L2772 +.L2790: + movs r7, #36 + ldr r2, [r8] + mul r7, r7, r10 + adds r3, r2, r7 + ldr r6, [r2, r7] + ldr r1, [r3, #4] + str r1, [sp, #4] + cmp r6, #0 + bne .L2776 + ldr r3, [r3, #12] + movw r2, #65535 + ldrh r1, [r3] + cmp r1, r2 + beq .L2803 + ldr r2, .L2804+28 + ldr r0, [r3, #8] + ldr r2, [r2] + cmp r0, r2 + bls .L2778 +.L2803: + ldrh r2, [r4] +.L2789: + ldr r3, .L2804+32 + movs r1, #0 + movs r5, #0 + ldr r3, [r3] + strh r1, [r3, r2, lsl #1] @ movhi + ldrh r0, [r4] + bl INSERT_FREE_LIST + movw r3, #65535 + strh r3, [r4] @ movhi + bl FtlGcPageVarInit + b .L2770 +.L2778: + ldr r2, .L2804+36 + ldrb r2, [r2] @ zero_extendqisi2 + cbnz r2, .L2780 +.L2781: + ldr r2, [r3, #8] + add r10, r10, #1 + ldr r1, [sp, #4] + ldr r0, [r3, #12] + bl FtlGcUpdatePage + b .L2775 +.L2780: + mov r2, r6 + add r1, sp, #24 + str r3, [sp, #12] + bl log2phys + ldr r3, [sp, #12] + ldr r1, [sp, #24] + ldr r2, [r3, #12] + cmp r2, r1 + bne .L2781 + adds r1, r2, #1 + beq .L2781 + str r2, [sp, #32] + movs r1, #1 + ldr r2, .L2804+40 + add r0, sp, #28 + ldr r2, [r2] + str r2, [sp, #36] + ldr r2, .L2804+44 + ldr r2, [r2] + str r2, [sp, #40] + mov r2, r6 + bl FlashReadPages + ldr r2, .L2804+48 + ldr r1, [r8] + ldr r0, [sp, #36] + ldrh r2, [r2] + ldr r3, [sp, #12] + add r7, r7, r1 + lsl ip, r2, #7 +.L2782: + cmp r6, ip + beq .L2781 + ldr r1, [r7, #8] + ldr r2, [r0, r6, lsl #2] + ldr r1, [r1, r6, lsl #2] + cmp r1, r2 + beq .L2783 + ldr r2, [sp, #32] + ldrh r1, [r4] + ldr r0, .L2804+52 + bl printf + b .L2803 +.L2783: + adds r6, r6, #1 + b .L2782 +.L2776: + ldr r2, [sp, #4] + ldrh r1, [r4] + ldr r0, .L2804+56 + bl printf + ldr r3, .L2804+60 + ldrh r2, [r4] + ldr r3, [r3] + cbnz r3, .L2786 + ldr r3, .L2804+64 + ldrb r3, [r3] @ zero_extendqisi2 + cbz r3, .L2787 +.L2786: + ldr r3, .L2804+68 + ldr r3, [r3] + ldrh r3, [r3, r2, lsl #1] + cmp r3, #159 + bls .L2788 +.L2787: + ldr r3, [r8] + ldr r3, [r3, r7] + adds r3, r3, #1 + bne .L2789 +.L2788: + ldr r3, [r8] + add r7, r7, r3 + ldr r3, [r7, #4] + str r3, [sp, #8] + b .L2789 +.L2805: + .align 2 +.L2804: + .word .LANCHOR238 + .word .LANCHOR52 + .word .LANCHOR38 + .word .LANCHOR104 + .word .LANCHOR57 + .word .LANCHOR105 + .word .LANCHOR58 + .word .LANCHOR72 + .word .LANCHOR83 + .word .LANCHOR1 + .word .LANCHOR187 + .word .LANCHOR189 + .word .LANCHOR55 + .word .LC63 + .word .LC64 + .word .LANCHOR28 + .word .LANCHOR15 + .word .LANCHOR78 + .word .LANCHOR180 + .size FtlGcScanTempBlk, .-FtlGcScanTempBlk .section .text.FtlGcFreeTempBlock,"ax",%progbits .align 1 .global FtlGcFreeTempBlock @@ -19109,42 +19525,42 @@ FtlGcFreeTempBlock: @ args = 0, pretend = 0, frame = 16 @ frame_needed = 0, uses_anonymous_args = 0 push {r0, r1, r2, r3, r4, r5, r6, r7, r8, r10, fp, lr} - ldr r3, .L2740 + ldr r3, .L2829 ldr r3, [r3] - cbz r3, .L2718 -.L2723: + cbz r3, .L2807 +.L2812: movs r0, #0 -.L2717: +.L2806: add sp, sp, #16 @ sp needed pop {r4, r5, r6, r7, r8, r10, fp, pc} -.L2718: - ldr r0, .L2740+4 +.L2807: + ldr r0, .L2829+4 movw r3, #65535 - ldr r5, .L2740+8 + ldr r5, .L2829+8 ldrh r6, [r0] mov r4, r0 cmp r6, r3 - beq .L2720 - ldr r3, .L2740+12 + beq .L2809 + ldr r3, .L2829+12 ldrh r1, [r3] bl FtlGcScanTempBlk str r0, [sp, #12] adds r0, r0, #1 - beq .L2720 - ldr r3, .L2740+16 + beq .L2809 + ldr r3, .L2829+16 ldr r2, [r3] ldrh r3, [r2, r6, lsl #1] cmp r3, #4 - bls .L2721 + bls .L2810 subs r3, r3, #5 movs r0, #1 strh r3, [r2, r6, lsl #1] @ movhi bl FtlEctTblFlush -.L2721: +.L2810: ldr r3, [r5] - cbnz r3, .L2722 - ldr r2, .L2740+20 + cbnz r3, .L2811 + ldr r2, .L2829+20 ldr r0, [sp, #12] ldr r3, [r2, #96] ubfx r0, r0, #10, #16 @@ -19152,73 +19568,73 @@ FtlGcFreeTempBlock: str r3, [r2, #96] bl FtlBbmMapBadBlock bl FtlBbmTblFlush -.L2722: +.L2811: movs r3, #0 movs r0, #1 str r3, [r5] - b .L2717 -.L2720: + b .L2806 +.L2809: ldrh r2, [r4] movs r3, #0 str r3, [r5] movw r3, #65535 cmp r2, r3 - beq .L2723 - ldr r6, .L2740+12 + beq .L2812 + ldr r6, .L2829+12 bl FtlCacheWriteBack ldrb r0, [r4, #7] @ zero_extendqisi2 ldrh r2, [r6] - ldr r5, .L2740+24 + ldr r5, .L2829+24 muls r2, r0, r2 ldrh r1, [r5] cmp r1, r2 - beq .L2724 - ldr r1, .L2740+28 + beq .L2813 + ldr r1, .L2829+28 movs r2, #163 - ldr r0, .L2740+32 + ldr r0, .L2829+32 bl printf - ldr r1, .L2740+36 - ldr r0, .L2740+40 + ldr r1, .L2829+36 + ldr r0, .L2829+40 bl printf -.L2724: +.L2813: ldrh r6, [r6] ldrb r3, [r4, #7] @ zero_extendqisi2 - ldr r2, .L2740+44 + ldr r2, .L2829+44 ldrh r0, [r4] - ldr fp, .L2740+84 + ldr fp, .L2829+84 smulbb r3, r3, r6 ldr r1, [r2] movs r6, #0 str r2, [sp, #4] strh r3, [r1, r0, lsl #1] @ movhi - ldr r1, .L2740+48 + ldr r1, .L2829+48 ldrh r3, [r5] ldr r0, [r1] add r3, r3, r0 str r3, [r1] -.L2725: +.L2814: ldrh r2, [r5] uxth r3, r6 cmp r2, r3 - bhi .L2729 + bhi .L2818 movw r0, #65535 bl decrement_vpc_count - ldr r3, .L2740+52 + ldr r3, .L2829+52 ldrb r3, [r3] @ zero_extendqisi2 - cbz r3, .L2730 + cbz r3, .L2819 ldrh r1, [r4] - ldr r0, .L2740+56 + ldr r0, .L2829+56 bl printf -.L2730: +.L2819: ldr r3, [sp, #4] ldrh r0, [r4] ldr r3, [r3] ldrh r3, [r3, r0, lsl #1] cmp r3, #0 - beq .L2731 + beq .L2820 bl INSERT_DATA_LIST -.L2732: - ldr r3, .L2740+60 +.L2821: + ldr r3, .L2829+60 movw r6, #65535 strh r6, [r4] @ movhi movs r4, #0 @@ -19226,39 +19642,39 @@ FtlGcFreeTempBlock: strh r4, [r3] @ movhi bl l2p_flush bl FtlVpcTblFlush - ldr r3, .L2740+64 + ldr r3, .L2829+64 strh r6, [r3] @ movhi - ldr r3, .L2740+68 + ldr r3, .L2829+68 ldrh r2, [r3] - ldr r3, .L2740+72 + ldr r3, .L2829+72 ldrh r3, [r3] add r3, r3, r3, lsl #1 cmp r2, r3, asr #2 - ble .L2723 - ldr r3, .L2740+76 + ble .L2812 + ldr r3, .L2829+76 movs r2, #20 mov r0, r4 strh r2, [r3] @ movhi - b .L2717 -.L2729: + b .L2806 +.L2818: uxth r3, r6 movs r7, #12 ldr r2, [fp] muls r7, r3, r7 - ldr r3, .L2740+80 + ldr r3, .L2829+80 ldr r8, [r3] add r10, r8, r7 ldr r1, [r10, #8] cmp r1, r2 - bcc .L2726 - ldr r1, .L2740+28 + bcc .L2815 + ldr r1, .L2829+28 movs r2, #168 - ldr r0, .L2740+32 + ldr r0, .L2829+32 bl printf - ldr r1, .L2740+36 - ldr r0, .L2740+40 + ldr r1, .L2829+36 + ldr r0, .L2829+40 bl printf -.L2726: +.L2815: movs r2, #0 add r1, sp, #12 ldr r0, [r10, #8] @@ -19266,7 +19682,7 @@ FtlGcFreeTempBlock: ldr r2, [sp, #12] ldr r0, [r8, r7] cmp r0, r2 - bne .L2727 + bne .L2816 ubfx r0, r0, #10, #16 bl P2V_block_in_plane movs r2, #1 @@ -19275,46 +19691,192 @@ FtlGcFreeTempBlock: ldr r0, [r10, #8] bl log2phys mov r0, r7 -.L2739: +.L2828: bl decrement_vpc_count -.L2728: +.L2817: adds r6, r6, #1 - b .L2725 -.L2727: + b .L2814 +.L2816: ldr r3, [r10, #4] cmp r2, r3 - beq .L2728 + beq .L2817 ldrh r0, [r4] - b .L2739 -.L2731: + b .L2828 +.L2820: bl INSERT_FREE_LIST - b .L2732 -.L2741: + b .L2821 +.L2830: .align 2 -.L2740: - .word .LANCHOR77 - .word .LANCHOR94 +.L2829: + .word .LANCHOR76 + .word .LANCHOR93 .word .LANCHOR135 - .word .LANCHOR53 - .word .LANCHOR79 + .word .LANCHOR52 + .word .LANCHOR78 .word .LANCHOR138 - .word .LANCHOR111 + .word .LANCHOR110 .word .LANCHOR239 .word .LC5 .word .LC6 .word .LC7 - .word .LANCHOR84 + .word .LANCHOR83 .word .LANCHOR161 - .word .LANCHOR8 - .word .LC64 - .word .LANCHOR110 + .word .LANCHOR15 + .word .LC65 + .word .LANCHOR109 .word .LANCHOR204 - .word .LANCHOR89 + .word .LANCHOR88 .word .LANCHOR223 .word .LANCHOR176 - .word .LANCHOR112 - .word .LANCHOR73 + .word .LANCHOR111 + .word .LANCHOR72 .size FtlGcFreeTempBlock, .-FtlGcFreeTempBlock + .section .text.Ftl_get_new_temp_ppa,"ax",%progbits + .align 1 + .global Ftl_get_new_temp_ppa + .syntax unified + .thumb + .thumb_func + .fpu softvfp + .type Ftl_get_new_temp_ppa, %function +Ftl_get_new_temp_ppa: + @ args = 0, pretend = 0, frame = 0 + @ frame_needed = 0, uses_anonymous_args = 0 + push {r3, r4, r5, lr} + movw r3, #65535 + ldr r4, .L2834 + ldrh r2, [r4] + cmp r2, r3 + beq .L2832 + ldrh r3, [r4, #4] + cbnz r3, .L2833 +.L2832: + bl FtlCacheWriteBack + movs r0, #0 + movs r5, #0 + bl FtlGcFreeTempBlock + ldr r0, .L2834 + strb r5, [r4, #8] + bl allocate_data_superblock + ldr r3, .L2834+4 + strh r5, [r3] @ movhi + ldr r3, .L2834+8 + strh r5, [r3] @ movhi + bl l2p_flush + mov r0, r5 + bl FtlEctTblFlush + bl FtlVpcTblFlush +.L2833: + ldr r0, .L2834 + pop {r3, r4, r5, lr} + b get_new_active_ppa +.L2835: + .align 2 +.L2834: + .word .LANCHOR93 + .word .LANCHOR109 + .word .LANCHOR110 + .size Ftl_get_new_temp_ppa, .-Ftl_get_new_temp_ppa + .section .text.Ftl_gc_temp_data_write_back,"ax",%progbits + .align 1 + .global Ftl_gc_temp_data_write_back + .syntax unified + .thumb + .thumb_func + .fpu softvfp + .type Ftl_gc_temp_data_write_back, %function +Ftl_gc_temp_data_write_back: + @ args = 0, pretend = 0, frame = 0 + @ frame_needed = 0, uses_anonymous_args = 0 + push {r3, r4, r5, r6, r7, lr} + ldr r3, .L2851 + ldr r3, [r3] + cbz r3, .L2837 +.L2840: + movs r0, #0 + pop {r3, r4, r5, r6, r7, pc} +.L2837: + ldr r3, .L2851+4 + ldr r5, .L2851+8 + ldrb r3, [r3] @ zero_extendqisi2 + cbz r3, .L2839 + ldr r3, [r5] + lsls r2, r3, #31 + bpl .L2839 + ldr r3, .L2851+12 + ldrh r3, [r3, #4] + cmp r3, #0 + bne .L2840 +.L2839: + ldr r4, .L2851+16 + movs r3, #0 + movs r6, #0 + movs r7, #36 + mov r2, r3 + ldr r1, [r5] + ldr r0, [r4] + bl FlashProgPages +.L2841: + ldr r1, [r5] + uxth r3, r6 + cmp r3, r1 + bcc .L2843 + ldr r0, [r4] + bl FtlGcBufFree + movs r3, #0 + str r3, [r5] + ldr r3, .L2851+12 + ldrh r3, [r3, #4] + cmp r3, #0 + bne .L2840 + movs r0, #1 + bl FtlGcFreeTempBlock + b .L2850 +.L2843: + muls r3, r7, r3 + ldr r2, [r4] + adds r6, r6, #1 + adds r1, r2, r3 + ldr r2, [r2, r3] + adds r3, r2, #1 + bne .L2842 + ldr r3, .L2851+12 + movs r5, #0 + ldr r0, .L2851+20 + ldrh r4, [r3] + ldr r0, [r0] + strh r5, [r0, r4, lsl #1] @ movhi + strh r2, [r3] @ movhi + ldr r2, .L2851+24 + ldr r0, [r1, #4] + ldr r3, [r2, #96] + ubfx r0, r0, #10, #16 + adds r3, r3, #1 + str r3, [r2, #96] + bl FtlBbmMapBadBlock + bl FtlBbmTblFlush + bl FtlGcPageVarInit +.L2850: + movs r0, #1 + pop {r3, r4, r5, r6, r7, pc} +.L2842: + ldr r3, [r1, #12] + ldr r1, [r1, #4] + ldr r2, [r3, #8] + ldr r0, [r3, #12] + bl FtlGcUpdatePage + b .L2841 +.L2852: + .align 2 +.L2851: + .word .LANCHOR76 + .word .LANCHOR15 + .word .LANCHOR102 + .word .LANCHOR93 + .word .LANCHOR181 + .word .LANCHOR83 + .word .LANCHOR138 + .size Ftl_gc_temp_data_write_back, .-Ftl_gc_temp_data_write_back .section .text.FtlGcPageRecovery,"ax",%progbits .align 1 .global FtlGcPageRecovery @@ -19327,29 +19889,29 @@ FtlGcPageRecovery: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 push {r3, r4, r5, lr} - ldr r4, .L2744 - ldr r5, .L2744+4 + ldr r4, .L2855 + ldr r5, .L2855+4 ldrh r1, [r4] mov r0, r5 bl FtlGcScanTempBlk ldrh r2, [r5, #2] ldrh r3, [r4] cmp r2, r3 - bcc .L2742 - ldr r0, .L2744+8 + bcc .L2853 + ldr r0, .L2855+8 bl FtlMapBlkWriteDumpData movs r0, #0 bl FtlGcFreeTempBlock - ldr r3, .L2744+12 + ldr r3, .L2855+12 movs r2, #0 str r2, [r3] -.L2742: +.L2853: pop {r3, r4, r5, pc} -.L2745: +.L2856: .align 2 -.L2744: - .word .LANCHOR53 - .word .LANCHOR94 +.L2855: + .word .LANCHOR52 + .word .LANCHOR93 .word .LANCHOR127 .word .LANCHOR135 .size FtlGcPageRecovery, .-FtlGcPageRecovery @@ -19366,13 +19928,13 @@ FtlPowerLostRecovery: @ frame_needed = 0, uses_anonymous_args = 0 push {r3, r4, r5, lr} movs r4, #0 - ldr r5, .L2747 - ldr r3, .L2747+4 + ldr r5, .L2858 + ldr r3, .L2858+4 mov r0, r5 str r4, [r3] bl FtlRecoverySuperblock mov r0, r5 - ldr r5, .L2747+8 + ldr r5, .L2858+8 bl FtlSlcSuperblockCheck mov r0, r5 bl FtlRecoverySuperblock @@ -19383,12 +19945,12 @@ FtlPowerLostRecovery: bl decrement_vpc_count mov r0, r4 pop {r3, r4, r5, pc} -.L2748: +.L2859: .align 2 -.L2747: +.L2858: + .word .LANCHOR91 + .word .LANCHOR236 .word .LANCHOR92 - .word .LANCHOR237 - .word .LANCHOR93 .size FtlPowerLostRecovery, .-FtlPowerLostRecovery .section .text.FtlSysBlkInit,"ax",%progbits .align 1 @@ -19403,30 +19965,30 @@ FtlSysBlkInit: @ frame_needed = 0, uses_anonymous_args = 0 push {r3, r4, r5, r6, r7, lr} movs r3, #0 - ldr r4, .L2758 + ldr r4, .L2869 movw r5, #65535 strh r3, [r4] @ movhi - ldr r3, .L2758+4 + ldr r3, .L2869+4 strh r5, [r3] @ movhi - ldr r3, .L2758+8 + ldr r3, .L2869+8 ldrh r0, [r3] bl FtlFreeSysBlkQueueInit bl FtlScanSysBlk - ldr r3, .L2758+12 + ldr r3, .L2869+12 ldrh r3, [r3] cmp r3, r5 mov r5, r4 - bne .L2750 -.L2752: + bne .L2861 +.L2863: mov r4, #-1 -.L2749: +.L2860: mov r0, r4 pop {r3, r4, r5, r6, r7, pc} -.L2750: +.L2861: bl FtlLoadSysInfo mov r4, r0 cmp r0, #0 - bne .L2752 + bne .L2863 bl FtlLoadMapInfo bl FtlLoadVonderInfo bl Ftl_load_ext_data @@ -19436,34 +19998,34 @@ FtlSysBlkInit: bl FtlPowerLostRecovery movs r0, #1 bl FtlUpdateVaildLpn - ldr r3, .L2758+16 + ldr r3, .L2869+16 movs r0, #12 ldrh r2, [r3] - ldr r3, .L2758+20 + ldr r3, .L2869+20 ldr r1, [r3] mov r3, r4 -.L2753: +.L2864: cmp r3, r2 - blt .L2755 + blt .L2866 ldrh r3, [r5] cmp r3, #0 - beq .L2756 -.L2754: - ldr r3, .L2758+24 + beq .L2867 +.L2865: + ldr r3, .L2869+24 ldr r1, [r3] - ldr r3, .L2758+28 + ldr r3, .L2869+28 ldrh r0, [r3] ldrh r5, [r3, #4] ldrh r2, [r1, r0, lsl #1] subs r2, r2, r5 - ldr r5, .L2758+32 + ldr r5, .L2869+32 strh r2, [r1, r0, lsl #1] @ movhi ldrh r2, [r5] strh r2, [r3, #2] @ movhi movs r2, #0 strh r2, [r3, #4] @ movhi strb r2, [r3, #6] - ldr r3, .L2758+36 + ldr r3, .L2869+36 ldrh r6, [r3] ldrh r7, [r3, #4] ldrh r0, [r1, r6, lsl #1] @@ -19472,40 +20034,40 @@ FtlSysBlkInit: strb r2, [r3, #6] ldrh r1, [r5] strh r2, [r3, #4] @ movhi - ldr r2, .L2758+40 + ldr r2, .L2869+40 strh r1, [r3, #2] @ movhi ldrh r3, [r2, #30] adds r3, r3, #1 strh r3, [r2, #30] @ movhi bl l2p_flush bl FtlVpcTblFlush -.L2757: +.L2868: bl FtlVpcTblFlush - b .L2749 -.L2755: + b .L2860 +.L2866: mla r6, r0, r3, r1 ldr r6, [r6, #4] cmp r6, #0 - blt .L2754 + blt .L2865 adds r3, r3, #1 - b .L2753 -.L2756: + b .L2864 +.L2867: bl l2p_flush - b .L2757 -.L2759: + b .L2868 +.L2870: .align 2 -.L2758: - .word .LANCHOR236 +.L2869: .word .LANCHOR235 + .word .LANCHOR234 .word .LANCHOR39 .word .LANCHOR209 - .word .LANCHOR68 - .word .LANCHOR97 - .word .LANCHOR84 + .word .LANCHOR67 + .word .LANCHOR96 + .word .LANCHOR83 + .word .LANCHOR91 + .word .LANCHOR52 .word .LANCHOR92 - .word .LANCHOR53 - .word .LANCHOR93 - .word .LANCHOR81 + .word .LANCHOR80 .size FtlSysBlkInit, .-FtlSysBlkInit .section .text.FtlLowFormat,"ax",%progbits .align 1 @@ -19518,87 +20080,87 @@ FtlSysBlkInit: FtlLowFormat: @ args = 0, pretend = 0, frame = 24 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L2791 + ldr r3, .L2902 push {r4, r5, r6, r7, r8, r10, fp, lr} sub sp, sp, #24 ldr r4, [r3] cmp r4, #0 - bne .L2762 - ldr r5, .L2791+4 + bne .L2873 + ldr r5, .L2902+4 mov r1, r4 - ldr r3, .L2791+8 - ldr r6, .L2791+12 + ldr r3, .L2902+8 + ldr r6, .L2902+12 ldrh r2, [r5] ldr r0, [r3] lsls r2, r2, #2 bl ftl_memset ldrh r2, [r5] mov r1, r4 - ldr r3, .L2791+16 - ldr r5, .L2791+20 + ldr r3, .L2902+16 + ldr r5, .L2902+20 lsls r2, r2, #2 ldr r0, [r3] bl ftl_memset - ldr r3, .L2791+24 + ldr r3, .L2902+24 ldrh r0, [r6] str r4, [r5] str r4, [r3] bl FtlFreeSysBlkQueueInit bl FtlLoadBbt - cbz r0, .L2763 + cbz r0, .L2874 bl FtlMakeBbt -.L2763: - ldr r3, .L2791+28 - ldr r2, .L2791+32 - ldr ip, .L2791+112 +.L2874: + ldr r3, .L2902+28 + ldr r2, .L2902+32 + ldr ip, .L2902+112 ldrh r1, [r3] ldr r4, [r2] - ldr r2, .L2791+36 + ldr r2, .L2902+36 str r3, [sp, #12] lsls r1, r1, #7 ldr r7, [r2] movs r2, #0 -.L2764: +.L2875: uxth r3, r2 adds r2, r2, #1 cmp r3, r1 - blt .L2765 - ldr r3, .L2791+40 + blt .L2876 + ldr r3, .L2902+40 movs r7, #0 - ldr fp, .L2791+116 + ldr fp, .L2902+116 ldrh r4, [r3] mov r8, r3 mov r10, fp -.L2766: +.L2877: ldrh r3, [fp] cmp r3, r4 - bhi .L2767 - ldr r4, .L2791+44 + bhi .L2878 + ldr r4, .L2902+44 subs r3, r7, #2 ldrh r1, [r4] cmp r3, r1, lsl #1 - bgt .L2768 -.L2772: + bgt .L2879 +.L2883: movs r7, #0 mov r6, r7 -.L2769: +.L2880: ldrh r3, [r8] uxth r0, r7 adds r7, r7, #1 cmp r3, r0 - bhi .L2773 + bhi .L2884 ldrh r2, [r10] - ldr r3, .L2791+48 + ldr r3, .L2902+48 ldrh r4, [r4] - ldr r7, .L2791+52 + ldr r7, .L2902+52 str r2, [r3] - ldr r3, .L2791+56 + ldr r3, .L2902+56 mov r1, r4 ldr r3, [r3] mov r0, r3 str r3, [sp, #16] bl __aeabi_uidiv - ldr r1, .L2791+60 + ldr r1, .L2902+60 ubfx r3, r0, #5, #16 add r2, r3, #36 mov fp, r0 @@ -19609,7 +20171,7 @@ FtlLowFormat: str r3, [sp, #4] str r1, [sp, #8] cmp r6, r2 - ble .L2774 + ble .L2885 ldr r3, [sp, #16] mov r1, r4 subs r0, r3, r6 @@ -19619,12 +20181,12 @@ FtlLowFormat: lsrs r0, r0, #5 adds r0, r0, #24 strh r0, [r3] @ movhi -.L2774: - ldr r3, .L2791+64 +.L2885: + ldr r3, .L2902+64 ldr r3, [r3] cmp r3, #1 - bne .L2775 - ldr r2, .L2791+60 + bne .L2886 + ldr r2, .L2902+60 mov r1, r4 mov r0, r6 ldrh r3, [r2] @@ -19636,11 +20198,11 @@ FtlLowFormat: uxtah r0, r3, r0 add r3, r3, r0, asr #2 strh r3, [r2] @ movhi -.L2775: - ldr r3, .L2791+68 +.L2886: + ldr r3, .L2902+68 ldrb r3, [r3] @ zero_extendqisi2 - cbz r3, .L2776 - ldr r2, .L2791+60 + cbz r3, .L2887 + ldr r2, .L2902+60 mov r1, r4 mov r0, r6 ldrh r3, [r2] @@ -19652,55 +20214,55 @@ FtlLowFormat: uxtah r0, r3, r0 add r3, r3, r0, asr #2 strh r3, [r2] @ movhi -.L2776: - ldr r3, .L2791+72 +.L2887: + ldr r3, .L2902+72 ldrh r3, [r3] - cbz r3, .L2778 - ldr r2, .L2791+60 + cbz r3, .L2889 + ldr r2, .L2902+60 ldrh r1, [r2] add r1, r1, r3, lsr #1 strh r1, [r2] @ movhi mul r1, r4, r3 cmp r6, r1 - bge .L2778 + bge .L2889 ldr r1, [sp, #4] adds r3, r3, #32 str fp, [r7] add r1, r1, r3 strh r1, [r2] @ movhi -.L2778: +.L2889: ldr r3, [sp, #8] - ldr r6, .L2791+76 + ldr r6, .L2902+76 ldrh r2, [r3] ldr r3, [r7] subs r3, r3, r2 muls r4, r3, r4 - ldr r3, .L2791+80 + ldr r3, .L2902+80 ldrh r3, [r3] str r4, [r6] muls r4, r3, r4 ldr r3, [sp, #12] ldrh r3, [r3] str r4, [r7] - ldr r7, .L2791+84 + ldr r7, .L2902+84 muls r4, r3, r4 - ldr r3, .L2791+88 + ldr r3, .L2902+88 str r4, [r3] movw r4, #65535 bl FtlBbmTblFlush ldrh r2, [r10] movs r1, #0 - ldr r10, .L2791+120 + ldr r10, .L2902+120 lsls r2, r2, #1 ldr r0, [r10] bl ftl_memset - ldr r2, .L2791+92 + ldr r2, .L2902+92 movs r3, #0 strh r3, [r7, #2] @ movhi movs r1, #255 strb r3, [r7, #6] str r3, [r2] - ldr r2, .L2791+96 + ldr r2, .L2902+96 strh r3, [r7] @ movhi strh r3, [r2, #2] @ movhi strb r3, [r2, #6] @@ -19711,30 +20273,30 @@ FtlLowFormat: mov r8, r10 strb r3, [r7, #8] mov r10, r7 - ldr r3, .L2791+100 + ldr r3, .L2902+100 lsrs r2, r2, #3 ldr r0, [r3] bl ftl_memset -.L2780: +.L2891: mov r0, r10 bl make_superblock ldrb r3, [r7, #7] @ zero_extendqisi2 ldrh r2, [r7] cmp r3, #0 - bne .L2781 + bne .L2892 ldr r3, [r8] strh r4, [r3, r2, lsl #1] @ movhi ldrh r3, [r7] adds r3, r3, #1 strh r3, [r7] @ movhi - b .L2780 -.L2765: + b .L2891 +.L2876: mvns r0, r3 orr r0, r3, r0, lsl #16 str r0, [r4, r3, lsl #2] str ip, [r7, r3, lsl #2] - b .L2764 -.L2767: + b .L2875 +.L2878: mov r0, r4 movs r1, #1 bl FtlLowFormatEraseBlock @@ -19742,11 +20304,11 @@ FtlLowFormat: add r7, r7, r0 uxth r7, r7 uxth r4, r4 - b .L2766 -.L2768: + b .L2877 +.L2879: mov r0, r7 bl __aeabi_uidiv - ldr r3, .L2791+104 + ldr r3, .L2902+104 ldr r3, [r3] add r0, r0, r3 uxth r0, r0 @@ -19754,26 +20316,26 @@ FtlLowFormat: ldrh r0, [r6] bl FtlFreeSysBlkQueueInit ldrh r6, [r8] -.L2770: +.L2881: ldrh r3, [r10] cmp r3, r6 - bls .L2772 + bls .L2883 mov r0, r6 movs r1, #1 adds r6, r6, #1 bl FtlLowFormatEraseBlock uxth r6, r6 - b .L2770 -.L2773: + b .L2881 +.L2884: movs r1, #0 bl FtlLowFormatEraseBlock add r6, r6, r0 uxth r6, r6 - b .L2769 -.L2781: + b .L2880 +.L2892: ldr r3, [r5] ldrh r1, [r7, #4] - ldr r4, .L2791+108 + ldr r4, .L2902+108 str r3, [r7, #12] adds r3, r3, #1 str r3, [r5] @@ -19789,54 +20351,54 @@ FtlLowFormat: strh r3, [r4] @ movhi movs r3, #1 strb r3, [r4, #8] -.L2782: +.L2893: mov r0, r10 bl make_superblock ldrb r3, [r4, #7] @ zero_extendqisi2 ldrh r2, [r4] cmp r3, #0 - bne .L2783 + bne .L2894 ldr r3, [r8] strh r7, [r3, r2, lsl #1] @ movhi ldrh r3, [r4] adds r3, r3, #1 strh r3, [r4] @ movhi - b .L2782 -.L2792: + b .L2893 +.L2903: .align 2 -.L2791: - .word .LANCHOR77 - .word .LANCHOR67 +.L2902: + .word .LANCHOR76 + .word .LANCHOR66 .word .LANCHOR195 .word .LANCHOR39 .word .LANCHOR131 .word .LANCHOR159 .word .LANCHOR160 - .word .LANCHOR56 + .word .LANCHOR55 .word .LANCHOR186 .word .LANCHOR187 .word .LANCHOR40 .word .LANCHOR38 - .word .LANCHOR74 .word .LANCHOR73 + .word .LANCHOR72 .word .LANCHOR42 .word .LANCHOR223 .word .LANCHOR28 - .word .LANCHOR8 + .word .LANCHOR15 .word .LANCHOR49 .word .LANCHOR222 - .word .LANCHOR53 - .word .LANCHOR92 - .word .LANCHOR69 - .word .LANCHOR101 + .word .LANCHOR52 + .word .LANCHOR91 + .word .LANCHOR68 + .word .LANCHOR100 .word .LANCHOR204 .word .LANCHOR0 - .word .LANCHOR66 - .word .LANCHOR93 + .word .LANCHOR65 + .word .LANCHOR92 .word 168778952 .word .LANCHOR41 - .word .LANCHOR84 -.L2783: + .word .LANCHOR83 +.L2894: ldr r3, [r5] ldrh r1, [r4, #4] str r3, [r4, #12] @@ -19845,10 +20407,10 @@ FtlLowFormat: movw r4, #65535 ldr r3, [r8] strh r1, [r3, r2, lsl #1] @ movhi - ldr r3, .L2793 + ldr r3, .L2904 strh r4, [r3] @ movhi bl FtlFreeSysBlkQueueOut - ldr r3, .L2793+4 + ldr r3, .L2904+4 movs r2, #0 strh r2, [r3, #2] @ movhi ldr r2, [r6] @@ -19861,168 +20423,22 @@ FtlLowFormat: str r2, [r5] bl FtlVpcTblFlush bl FtlSysBlkInit - cbnz r0, .L2762 - ldr r3, .L2793+8 + cbnz r0, .L2873 + ldr r3, .L2904+8 movs r2, #1 str r2, [r3] -.L2762: +.L2873: movs r0, #0 add sp, sp, #24 @ sp needed pop {r4, r5, r6, r7, r8, r10, fp, pc} -.L2794: +.L2905: .align 2 -.L2793: - .word .LANCHOR94 +.L2904: + .word .LANCHOR93 .word .LANCHOR209 - .word .LANCHOR231 + .word .LANCHOR230 .size FtlLowFormat, .-FtlLowFormat - .section .text.Ftl_get_new_temp_ppa,"ax",%progbits - .align 1 - .global Ftl_get_new_temp_ppa - .syntax unified - .thumb - .thumb_func - .fpu softvfp - .type Ftl_get_new_temp_ppa, %function -Ftl_get_new_temp_ppa: - @ args = 0, pretend = 0, frame = 0 - @ frame_needed = 0, uses_anonymous_args = 0 - push {r3, r4, r5, lr} - movw r3, #65535 - ldr r4, .L2798 - ldrh r2, [r4] - cmp r2, r3 - beq .L2796 - ldrh r3, [r4, #4] - cbnz r3, .L2797 -.L2796: - bl FtlCacheWriteBack - movs r0, #0 - movs r5, #0 - bl FtlGcFreeTempBlock - ldr r0, .L2798 - strb r5, [r4, #8] - bl allocate_data_superblock - ldr r3, .L2798+4 - strh r5, [r3] @ movhi - ldr r3, .L2798+8 - strh r5, [r3] @ movhi - bl l2p_flush - mov r0, r5 - bl FtlEctTblFlush - bl FtlVpcTblFlush -.L2797: - ldr r0, .L2798 - pop {r3, r4, r5, lr} - b get_new_active_ppa -.L2799: - .align 2 -.L2798: - .word .LANCHOR94 - .word .LANCHOR110 - .word .LANCHOR111 - .size Ftl_get_new_temp_ppa, .-Ftl_get_new_temp_ppa - .section .text.Ftl_gc_temp_data_write_back,"ax",%progbits - .align 1 - .global Ftl_gc_temp_data_write_back - .syntax unified - .thumb - .thumb_func - .fpu softvfp - .type Ftl_gc_temp_data_write_back, %function -Ftl_gc_temp_data_write_back: - @ args = 0, pretend = 0, frame = 0 - @ frame_needed = 0, uses_anonymous_args = 0 - push {r3, r4, r5, r6, r7, lr} - ldr r3, .L2815 - ldr r3, [r3] - cbz r3, .L2801 -.L2804: - movs r0, #0 - pop {r3, r4, r5, r6, r7, pc} -.L2801: - ldr r3, .L2815+4 - ldr r5, .L2815+8 - ldrb r3, [r3] @ zero_extendqisi2 - cbz r3, .L2803 - ldr r3, [r5] - lsls r2, r3, #31 - bpl .L2803 - ldr r3, .L2815+12 - ldrh r3, [r3, #4] - cmp r3, #0 - bne .L2804 -.L2803: - ldr r4, .L2815+16 - movs r3, #0 - movs r6, #0 - movs r7, #36 - mov r2, r3 - ldr r1, [r5] - ldr r0, [r4] - bl FlashProgPages -.L2805: - ldr r1, [r5] - uxth r3, r6 - cmp r3, r1 - bcc .L2807 - ldr r0, [r4] - bl FtlGcBufFree - movs r3, #0 - str r3, [r5] - ldr r3, .L2815+12 - ldrh r3, [r3, #4] - cmp r3, #0 - bne .L2804 - movs r0, #1 - bl FtlGcFreeTempBlock - b .L2814 -.L2807: - muls r3, r7, r3 - ldr r2, [r4] - adds r6, r6, #1 - adds r1, r2, r3 - ldr r2, [r2, r3] - adds r3, r2, #1 - bne .L2806 - ldr r3, .L2815+12 - movs r5, #0 - ldr r0, .L2815+20 - ldrh r4, [r3] - ldr r0, [r0] - strh r5, [r0, r4, lsl #1] @ movhi - strh r2, [r3] @ movhi - ldr r2, .L2815+24 - ldr r0, [r1, #4] - ldr r3, [r2, #96] - ubfx r0, r0, #10, #16 - adds r3, r3, #1 - str r3, [r2, #96] - bl FtlBbmMapBadBlock - bl FtlBbmTblFlush - bl FtlGcPageVarInit -.L2814: - movs r0, #1 - pop {r3, r4, r5, r6, r7, pc} -.L2806: - ldr r3, [r1, #12] - ldr r1, [r1, #4] - ldr r2, [r3, #8] - ldr r0, [r3, #12] - bl FtlGcUpdatePage - b .L2805 -.L2816: - .align 2 -.L2815: - .word .LANCHOR77 - .word .LANCHOR8 - .word .LANCHOR103 - .word .LANCHOR94 - .word .LANCHOR181 - .word .LANCHOR84 - .word .LANCHOR138 - .size Ftl_gc_temp_data_write_back, .-Ftl_gc_temp_data_write_back .section .text.rk_ftl_garbage_collect,"ax",%progbits .align 1 .global rk_ftl_garbage_collect @@ -20034,34 +20450,34 @@ Ftl_gc_temp_data_write_back: rk_ftl_garbage_collect: @ args = 0, pretend = 0, frame = 32 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L2907 + ldr r3, .L2996 push {r4, r5, r6, r7, r8, r10, fp, lr} sub sp, sp, #40 ldr r2, [r3] cmp r2, #0 - bne .L2869 - ldr r3, .L2907+4 + bne .L2958 + ldr r3, .L2996+4 ldr r3, [r3] cmp r3, #0 - bne .L2869 - ldr r2, .L2907+8 + bne .L2958 + ldr r2, .L2996+8 ldrh r2, [r2] cmp r2, #47 - bls .L2871 - ldr r5, .L2907+12 + bls .L2960 + ldr r5, .L2996+12 movw r2, #65535 ldrh ip, [r5] cmp ip, r2 - beq .L2819 - ldr r7, .L2907+16 + beq .L2908 + ldr r7, .L2996+16 ldrh r3, [r7] cmp r3, r2 - bne .L2819 - ldr r1, .L2907+20 + bne .L2908 + ldr r1, .L2996+20 ldrh r6, [r1] cmp r6, r3 - beq .L2819 - ldr r2, .L2907+24 + beq .L2908 + ldr r2, .L2996+24 ldrh r4, [r2] cmp r4, r3 itttt ne @@ -20069,164 +20485,164 @@ rk_ftl_garbage_collect: strhne r6, [r5] @ movhi strhne r4, [r1] @ movhi strhne r3, [r2] @ movhi -.L2819: +.L2908: cmp r0, #0 - bne .L2872 - ldr r3, .L2907+28 + bne .L2961 + ldr r3, .L2996+28 ldrh r3, [r3] cmp r3, #24 - bhi .L2873 - ldr r2, .L2907+32 + bhi .L2962 + ldr r2, .L2996+32 cmp r3, #16 ldrh r4, [r2] - bls .L2822 + bls .L2911 lsrs r4, r4, #5 -.L2821: - ldr r2, .L2907+36 +.L2910: + ldr r2, .L2996+36 ldrh r1, [r2] cmp r1, r3 mov r1, r2 - bcs .L2825 - ldr r3, .L2907+40 + bcs .L2914 + ldr r3, .L2996+40 movw r0, #65535 ldrh r3, [r3] cmp r3, r0 - bne .L2826 - ldr r0, .L2907+16 + bne .L2915 + ldr r0, .L2996+16 ldrh r0, [r0] cmp r0, r3 - bne .L2826 - ldr r3, .L2907+44 + bne .L2915 + ldr r3, .L2996+44 ldrh r0, [r3] - cbnz r0, .L2827 - ldr r3, .L2907+48 - ldr r4, .L2907+52 + cbnz r0, .L2916 + ldr r3, .L2996+48 + ldr r4, .L2996+52 ldr r3, [r3] ldr r4, [r4] add r3, r3, r3, lsl #1 cmp r4, r3, lsr #2 - bcs .L2828 -.L2827: - ldr r3, .L2907+56 + bcs .L2917 +.L2916: + ldr r3, .L2996+56 ldrh r3, [r3] add r3, r3, r3, lsl #1 asrs r3, r3, #2 strh r3, [r1] @ movhi -.L2829: - ldr r3, .L2907+60 +.L2918: + ldr r3, .L2996+60 movs r2, #0 str r2, [r3] -.L2817: +.L2906: add sp, sp, #40 @ sp needed pop {r4, r5, r6, r7, r8, r10, fp, pc} -.L2822: +.L2911: cmp r3, #12 - bls .L2823 + bls .L2912 lsrs r4, r4, #4 - b .L2821 -.L2823: + b .L2910 +.L2912: cmp r3, #8 - bls .L2821 + bls .L2910 lsrs r4, r4, #2 - b .L2821 -.L2873: + b .L2910 +.L2962: movs r4, #1 - b .L2821 -.L2828: + b .L2910 +.L2917: movs r3, #18 strh r3, [r2] @ movhi - b .L2829 -.L2826: - ldr r3, .L2907+56 + b .L2918 +.L2915: + ldr r3, .L2996+56 ldrh r3, [r3] add r3, r3, r3, lsl #1 asrs r3, r3, #2 strh r3, [r1] @ movhi -.L2825: - ldr r3, .L2907+64 +.L2914: + ldr r3, .L2996+64 ldrh r3, [r3] - cbz r3, .L2820 + cbz r3, .L2909 adds r4, r4, #32 uxth r4, r4 -.L2820: - ldr r5, .L2907+68 +.L2909: + ldr r5, .L2996+68 movw r3, #65535 ldrh r2, [r5] cmp r2, r3 - bne .L2832 - ldr r3, .L2907+16 + bne .L2921 + ldr r3, .L2996+16 ldrh r1, [r3] cmp r1, r2 - beq .L2833 - ldr r0, .L2907+72 + beq .L2922 + ldr r0, .L2996+72 ldr r0, [r0] ldrh r1, [r0, r1, lsl #1] - cbnz r1, .L2834 + cbnz r1, .L2923 strh r2, [r3] @ movhi -.L2834: +.L2923: ldrh r2, [r3] strh r2, [r5] @ movhi movw r2, #65535 strh r2, [r3] @ movhi -.L2833: +.L2922: ldrh r0, [r5] movw r6, #65535 movs r3, #0 strb r3, [r5, #8] cmp r0, r6 - beq .L2832 + beq .L2921 bl IsBlkInGcList - cbz r0, .L2836 + cbz r0, .L2925 strh r6, [r5] @ movhi -.L2836: - ldr r3, .L2907+76 +.L2925: + ldr r3, .L2996+76 ldrb r3, [r3] @ zero_extendqisi2 - cbz r3, .L2837 + cbz r3, .L2926 ldrh r0, [r5] bl ftl_get_blk_mode strb r0, [r5, #8] -.L2837: +.L2926: ldrh r2, [r5] movw r3, #65535 cmp r2, r3 - beq .L2832 - ldr r0, .L2907+68 + beq .L2921 + ldr r0, .L2996+68 bl make_superblock - ldr r2, .L2907+80 + ldr r2, .L2996+80 movs r3, #0 strh r3, [r5, #2] @ movhi strb r3, [r5, #6] strh r3, [r2] @ movhi - ldr r3, .L2907+72 + ldr r3, .L2996+72 ldrh r2, [r5] ldr r3, [r3] ldrh r2, [r3, r2, lsl #1] - ldr r3, .L2907+84 + ldr r3, .L2996+84 strh r2, [r3] @ movhi -.L2832: - ldr r2, .L2907+88 +.L2921: + ldr r2, .L2996+88 ldrh r3, [r5] ldrh r2, [r2] cmp r2, r3 - beq .L2838 - ldr r2, .L2907+92 + beq .L2927 + ldr r2, .L2996+92 ldrh r2, [r2] cmp r2, r3 - beq .L2838 - ldr r5, .L2907+68 + beq .L2927 + ldr r5, .L2996+68 mov r6, r5 -.L2839: +.L2928: ldrh r2, [r5] movw r3, #65535 cmp r2, r3 - bne .L2840 - ldr r10, .L2907+100 + bne .L2929 + ldr r10, .L2996+100 movs r2, #0 - ldr r3, .L2907+60 + ldr r3, .L2996+60 mov r7, r10 str r2, [r3] -.L2841: +.L2930: ldrh r8, [r10] mov r0, r8 bl List_get_gc_head_node @@ -20234,36 +20650,36 @@ rk_ftl_garbage_collect: movw r3, #65535 cmp fp, r3 strh fp, [r6] @ movhi - bne .L2842 + bne .L2931 movs r3, #0 movs r0, #8 strh r3, [r10] @ movhi - b .L2817 -.L2872: + b .L2906 +.L2961: movs r4, #1 - b .L2820 -.L2838: + b .L2909 +.L2927: movw r3, #65535 strh r3, [r5] @ movhi -.L2905: - ldr r3, .L2907+44 +.L2994: + ldr r3, .L2996+44 ldrh r0, [r3] - b .L2817 -.L2842: + b .L2906 +.L2931: str r0, [sp, #8] mov r0, fp bl IsBlkInGcList add r3, r8, #1 ldr r2, [sp, #8] - cbz r0, .L2843 + cbz r0, .L2932 strh r3, [r10] @ movhi - b .L2841 -.L2843: - ldr r1, .L2907+32 + b .L2930 +.L2932: + ldr r1, .L2996+32 uxth r3, r3 - ldr lr, .L2907+104 + ldr lr, .L2996+104 uxth r2, r2 - ldr r8, .L2907+72 + ldr r8, .L2996+72 ldrh r1, [r1] ldrh lr, [lr] ldr r0, [r8] @@ -20271,146 +20687,149 @@ rk_ftl_garbage_collect: mul r1, lr, r1 ldrh ip, [r0, r2, lsl #1] cmp ip, r1, asr #1 - bgt .L2845 + bgt .L2934 cmp r3, #48 - bls .L2846 + bls .L2935 cmp ip, #8 - bls .L2846 - ldr r3, .L2907+96 + bls .L2935 + ldr r3, .L2996+96 ldrh r3, [r3] cmp r3, #35 - bhi .L2846 -.L2845: + bhi .L2935 +.L2934: movs r3, #0 strh r3, [r7] @ movhi -.L2846: +.L2935: ldrh r3, [r0, r2, lsl #1] cmp r1, r3 - bgt .L2847 + bgt .L2936 + ldrh r2, [r7] + cmp r2, #3 + bhi .L2936 movw r3, #65535 strh r3, [r6] @ movhi movs r3, #0 strh r3, [r7] @ movhi - b .L2905 -.L2847: + b .L2994 +.L2936: cmp r3, #0 - bne .L2848 + bne .L2937 movw r0, #65535 bl decrement_vpc_count ldrh r3, [r7] adds r3, r3, #1 strh r3, [r7] @ movhi - b .L2841 -.L2908: + b .L2930 +.L2997: .align 2 -.L2907: - .word .LANCHOR77 +.L2996: + .word .LANCHOR76 .word .LANCHOR171 - .word .LANCHOR86 - .word .LANCHOR114 + .word .LANCHOR85 .word .LANCHOR113 + .word .LANCHOR112 + .word .LANCHOR114 .word .LANCHOR115 - .word .LANCHOR116 - .word .LANCHOR89 - .word .LANCHOR53 + .word .LANCHOR88 + .word .LANCHOR52 .word .LANCHOR176 - .word .LANCHOR94 + .word .LANCHOR93 .word .LANCHOR240 - .word .LANCHOR73 - .word .LANCHOR101 + .word .LANCHOR72 + .word .LANCHOR100 .word .LANCHOR223 .word .LANCHOR172 - .word .LANCHOR117 + .word .LANCHOR116 .word .LANCHOR204 - .word .LANCHOR84 - .word .LANCHOR8 + .word .LANCHOR83 + .word .LANCHOR15 .word .LANCHOR241 .word .LANCHOR242 + .word .LANCHOR91 .word .LANCHOR92 - .word .LANCHOR93 - .word .LANCHOR110 + .word .LANCHOR109 .word .LANCHOR178 .word .LANCHOR38 -.L2848: +.L2937: movs r3, #0 strb r3, [r6, #8] - ldr r3, .L2909 + ldr r3, .L2998 ldrb r3, [r3] @ zero_extendqisi2 - cbz r3, .L2849 + cbz r3, .L2938 mov r0, fp bl ftl_get_blk_mode strb r0, [r6, #8] -.L2849: - ldr r3, .L2909+4 +.L2938: + ldr r3, .L2998+4 ldrh r3, [r3] cmp r3, fp - bne .L2850 - ldr r1, .L2909+8 - movw r2, #857 - ldr r0, .L2909+12 + bne .L2939 + ldr r1, .L2998+8 + movw r2, #893 + ldr r0, .L2998+12 bl printf - ldr r1, .L2909+16 - ldr r0, .L2909+20 + ldr r1, .L2998+16 + ldr r0, .L2998+20 bl printf -.L2850: - ldr r3, .L2909+24 +.L2939: + ldr r3, .L2998+24 ldrh r2, [r6] ldrh r3, [r3] cmp r2, r3 - bne .L2851 - ldr r1, .L2909+8 - movw r2, #858 - ldr r0, .L2909+12 + bne .L2940 + ldr r1, .L2998+8 + movw r2, #894 + ldr r0, .L2998+12 bl printf - ldr r1, .L2909+16 - ldr r0, .L2909+20 + ldr r1, .L2998+16 + ldr r0, .L2998+20 bl printf -.L2851: - ldr r3, .L2909+28 +.L2940: + ldr r3, .L2998+28 ldrh r2, [r6] ldrh r3, [r3] cmp r2, r3 - bne .L2852 - ldr r1, .L2909+8 - movw r2, #859 - ldr r0, .L2909+12 + bne .L2941 + ldr r1, .L2998+8 + movw r2, #895 + ldr r0, .L2998+12 bl printf - ldr r1, .L2909+16 - ldr r0, .L2909+20 + ldr r1, .L2998+16 + ldr r0, .L2998+20 bl printf -.L2852: +.L2941: mov r0, r5 bl make_superblock - ldr r2, .L2909+32 + ldr r2, .L2998+32 movs r3, #0 ldrh r1, [r6] strh r3, [r2] @ movhi ldr r2, [r8] ldrh r1, [r2, r1, lsl #1] - ldr r2, .L2909+36 + ldr r2, .L2998+36 strh r3, [r6, #2] @ movhi strb r3, [r6, #6] strh r1, [r2] @ movhi -.L2840: - ldr r3, .L2909+40 +.L2929: + ldr r3, .L2998+40 movs r2, #1 str r2, [r3] - ldr r3, .L2909+44 + ldr r3, .L2998+44 ldrh r3, [r3] str r3, [sp, #12] - ldr r3, .L2909 + ldr r3, .L2998 ldrb r3, [r3] @ zero_extendqisi2 - cbz r3, .L2853 + cbz r3, .L2942 ldrb r3, [r6, #8] @ zero_extendqisi2 cmp r3, r2 ittt eq - ldreq r3, .L2909+48 + ldreq r3, .L2998+48 ldrheq r3, [r3] streq r3, [sp, #12] -.L2853: +.L2942: ldrh r3, [r6, #2] ldr r1, [sp, #12] - ldr fp, .L2909+84 + ldr fp, .L2998+84 adds r2, r3, r4 cmp r2, r1 itt gt @@ -20420,11 +20839,11 @@ rk_ftl_garbage_collect: it gt uxthgt r4, r4 str r3, [sp, #20] -.L2855: +.L2944: ldrh r3, [sp, #20] cmp r4, r3 - bls .L2863 - ldr r3, .L2909+52 + bls .L2952 + ldr r3, .L2998+52 movw r8, #65535 ldrh lr, [r5, #2] mov r10, #36 @@ -20432,17 +20851,17 @@ rk_ftl_garbage_collect: ldrh r7, [r3] ldr r3, [sp, #20] add lr, lr, r3 - ldr r3, .L2909+56 + ldr r3, .L2998+56 str r3, [sp, #16] movs r3, #0 str r3, [sp, #8] - b .L2864 -.L2857: + b .L2953 +.L2946: ldr r1, [sp, #16] ldrh r2, [r1, #2]! cmp r2, r8 str r1, [sp, #16] - beq .L2856 + beq .L2945 ldr r1, [sp, #8] orr r2, lr, r2, lsl #10 mla ip, r10, r1, r0 @@ -20451,27 +20870,27 @@ rk_ftl_garbage_collect: adds r2, r2, #1 uxth r2, r2 str r2, [sp, #8] -.L2856: +.L2945: adds r3, r3, #1 -.L2864: +.L2953: uxth r2, r3 cmp r2, r7 - bcc .L2857 + bcc .L2946 ldrb r2, [r5, #8] @ zero_extendqisi2 ldr r1, [sp, #8] bl FlashReadPages movs r3, #0 -.L2904: +.L2993: str r3, [sp, #16] ldr r2, [sp, #8] ldrh r3, [sp, #16] cmp r2, r3 - bhi .L2862 + bhi .L2951 ldr r3, [sp, #20] adds r3, r3, #1 str r3, [sp, #20] - b .L2855 -.L2862: + b .L2944 +.L2951: ldr r3, [sp, #16] movs r7, #36 muls r7, r3, r7 @@ -20479,23 +20898,23 @@ rk_ftl_garbage_collect: adds r2, r3, r7 ldr r3, [r3, r7] adds r3, r3, #1 - beq .L2859 + beq .L2948 ldr r8, [r2, #12] movw r3, #61589 ldrh r2, [r8] cmp r2, r3 - bne .L2859 + bne .L2948 ldr r10, [r8, #8] cmp r10, #-1 - bne .L2860 - ldr r1, .L2909+8 - movw r2, #898 - ldr r0, .L2909+12 + bne .L2949 + ldr r1, .L2998+8 + movw r2, #934 + ldr r0, .L2998+12 bl printf - ldr r1, .L2909+16 - ldr r0, .L2909+20 + ldr r1, .L2998+16 + ldr r0, .L2998+20 bl printf -.L2860: +.L2949: movs r2, #0 add r1, sp, #36 mov r0, r10 @@ -20506,10 +20925,10 @@ rk_ftl_garbage_collect: ldr r2, [r0, #4] bic r3, r3, #-2147483648 cmp r3, r2 - bne .L2859 - ldr r2, .L2909+32 - ldr r1, .L2909+60 - ldr r10, .L2909+68 + bne .L2948 + ldr r2, .L2998+32 + ldr r1, .L2998+60 + ldr r10, .L2998+68 ldrh r3, [r2] str r1, [sp, #28] adds r3, r3, #1 @@ -20531,7 +20950,7 @@ rk_ftl_garbage_collect: ldr r0, [fp] mla r2, r1, r3, r2 add r0, r0, r7 - ldr r7, .L2909+28 + ldr r7, .L2998+28 ldr r1, [r0, #8] adds r3, r3, #1 str r1, [r2, #8] @@ -20542,62 +20961,62 @@ rk_ftl_garbage_collect: str r2, [r8, #12] ldrh r2, [r7] strh r2, [r8, #2] @ movhi - ldr r2, .L2909+64 + ldr r2, .L2998+64 str r3, [r10] ldr r2, [r2] str r2, [r8, #4] bl FtlGcBufAlloc - ldr r3, .L2909 + ldr r3, .L2998 ldrb r3, [r3] @ zero_extendqisi2 - cbnz r3, .L2861 + cbnz r3, .L2950 ldrb r2, [r7, #7] @ zero_extendqisi2 ldr r3, [r10] cmp r2, r3 - beq .L2861 + beq .L2950 ldrh r3, [r7, #4] - cbnz r3, .L2859 -.L2861: + cbnz r3, .L2948 +.L2950: bl Ftl_gc_temp_data_write_back - cbz r0, .L2859 -.L2906: - ldr r3, .L2909+40 + cbz r0, .L2948 +.L2995: + ldr r3, .L2998+40 movs r2, #0 str r2, [r3] - b .L2905 -.L2859: + b .L2994 +.L2948: ldr r3, [sp, #16] adds r3, r3, #1 - b .L2904 -.L2863: + b .L2993 +.L2952: ldrh r3, [r5, #2] add r4, r4, r3 ldr r3, [sp, #12] uxth r4, r4 cmp r3, r4 strh r4, [r5, #2] @ movhi - bhi .L2865 - ldr r3, .L2909+68 + bhi .L2954 + ldr r3, .L2998+68 ldr r3, [r3] - cbz r3, .L2866 + cbz r3, .L2955 bl Ftl_gc_temp_data_write_back cmp r0, #0 - bne .L2906 -.L2866: - ldr r3, .L2909+32 + bne .L2995 +.L2955: + ldr r3, .L2998+32 ldrh r4, [r3] - cbnz r4, .L2867 - ldr r7, .L2909+72 + cbnz r4, .L2956 + ldr r7, .L2998+72 ldrh r1, [r5] ldr r3, [r7] ldrh r3, [r3, r1, lsl #1] - cbz r3, .L2867 - ldr r0, .L2909+36 + cbz r3, .L2956 + ldr r0, .L2998+36 ldrh r2, [r5, #2] ldrh r0, [r0] str r3, [sp] mov r3, r4 str r0, [sp, #4] - ldr r0, .L2909+76 + ldr r0, .L2998+76 bl printf ldrh r2, [r5] ldr r3, [r7] @@ -20607,54 +21026,54 @@ rk_ftl_garbage_collect: bl FtlCacheWriteBack bl l2p_flush bl FtlVpcTblFlush -.L2867: +.L2956: movw r3, #65535 strh r3, [r5] @ movhi -.L2865: - ldr r3, .L2909+80 +.L2954: + ldr r3, .L2998+80 ldrh r0, [r3] cmp r0, #2 - bhi .L2868 - ldr r3, .L2909+44 + bhi .L2957 + ldr r3, .L2998+44 ldrh r4, [r3] - b .L2839 -.L2868: - ldr r3, .L2909+40 + b .L2928 +.L2957: + ldr r3, .L2998+40 movs r2, #0 adds r0, r0, #1 str r2, [r3] - b .L2817 -.L2910: + b .L2906 +.L2999: .align 2 -.L2909: - .word .LANCHOR8 - .word .LANCHOR92 +.L2998: + .word .LANCHOR15 + .word .LANCHOR91 .word .LANCHOR243 .word .LC5 .word .LC6 .word .LC7 + .word .LANCHOR92 .word .LANCHOR93 - .word .LANCHOR94 .word .LANCHOR241 .word .LANCHOR242 .word .LANCHOR171 + .word .LANCHOR52 .word .LANCHOR53 - .word .LANCHOR54 .word .LANCHOR38 .word .LANCHOR204+14 .word .LANCHOR181 .word .LANCHOR160 - .word .LANCHOR103 - .word .LANCHOR84 - .word .LC65 - .word .LANCHOR89 - .word .LANCHOR107 -.L2869: + .word .LANCHOR102 + .word .LANCHOR83 + .word .LC66 + .word .LANCHOR88 + .word .LANCHOR106 +.L2958: movs r0, #0 - b .L2817 -.L2871: + b .L2906 +.L2960: mov r0, r3 - b .L2817 + b .L2906 .size rk_ftl_garbage_collect, .-rk_ftl_garbage_collect .section .text.FtlInit,"ax",%progbits .align 1 @@ -20669,68 +21088,68 @@ FtlInit: @ frame_needed = 0, uses_anonymous_args = 0 push {r3, r4, r5, lr} mov r3, #-1 - ldr r4, .L2920 + ldr r4, .L3009 mov r5, r0 - ldr r2, .L2920+4 + ldr r2, .L3009+4 str r3, [r4] movs r3, #0 - ldr r1, .L2920+8 + ldr r1, .L3009+8 str r3, [r2] - ldr r2, .L2920+12 - ldr r0, .L2920+16 + ldr r2, .L3009+12 + ldr r0, .L3009+16 str r3, [r2] bl printf mov r0, r5 bl FtlConstantsInit bl FtlMemInit bl FtlVariablesInit - ldr r3, .L2920+20 + ldr r3, .L3009+20 ldrh r0, [r3] bl FtlFreeSysBlkQueueInit bl FtlLoadBbt - cbz r0, .L2912 - ldr r1, .L2920+24 - ldr r0, .L2920+28 -.L2919: + cbz r0, .L3001 + ldr r1, .L3009+24 + ldr r0, .L3009+28 +.L3008: bl printf -.L2913: +.L3002: movs r0, #0 pop {r3, r4, r5, pc} -.L2912: +.L3001: bl FtlSysBlkInit - cbz r0, .L2914 - ldr r1, .L2920+24 - ldr r0, .L2920+32 - b .L2919 -.L2914: + cbz r0, .L3003 + ldr r1, .L3009+24 + ldr r0, .L3009+32 + b .L3008 +.L3003: movs r1, #1 str r1, [r4] bl rk_ftl_garbage_collect - ldr r3, .L2920+36 + ldr r3, .L3009+36 ldrh r3, [r3] cmp r3, #15 - bhi .L2913 + bhi .L3002 mov r4, #1024 -.L2916: +.L3005: movs r1, #1 mov r0, r1 bl rk_ftl_garbage_collect subs r4, r4, #1 - bne .L2916 - b .L2913 -.L2921: + bne .L3005 + b .L3002 +.L3010: .align 2 -.L2920: - .word .LANCHOR231 +.L3009: + .word .LANCHOR230 .word .LANCHOR244 - .word .LC66 - .word .LANCHOR77 + .word .LC67 + .word .LANCHOR76 .word .LC7 .word .LANCHOR39 .word .LANCHOR245 - .word .LC67 .word .LC68 - .word .LANCHOR89 + .word .LC69 + .word .LANCHOR88 .size FtlInit, .-FtlInit .section .text.rk_ftl_init,"ax",%progbits .align 1 @@ -20746,21 +21165,21 @@ rk_ftl_init: push {r4, lr} bl FlashInit mov r4, r0 - cbnz r0, .L2923 - ldr r0, .L2924 + cbnz r0, .L3012 + ldr r0, .L3013 bl FtlInit -.L2923: +.L3012: bl idb_init mov r1, r4 - ldr r0, .L2924+4 + ldr r0, .L3013+4 bl printf mov r0, r4 pop {r4, pc} -.L2925: +.L3014: .align 2 -.L2924: - .word .LANCHOR15 - .word .LC69 +.L3013: + .word .LANCHOR14 + .word .LC70 .size rk_ftl_init, .-rk_ftl_init .section .text.ftl_fix_nand_power_lost_error,"ax",%progbits .align 1 @@ -20773,20 +21192,20 @@ rk_ftl_init: ftl_fix_nand_power_lost_error: @ args = 0, pretend = 0, frame = 56 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L2940 + ldr r3, .L3029 push {r4, r5, r6, r7, r8, r10, fp, lr} sub sp, sp, #56 ldrb r3, [r3] @ zero_extendqisi2 cmp r3, #0 - beq .L2926 - ldr r7, .L2940+4 - ldr r6, .L2940+8 - ldr r10, .L2940+32 + beq .L3015 + ldr r7, .L3029+4 + ldr r6, .L3029+8 + ldr r10, .L3029+32 ldrh r5, [r7] ldr r3, [r6] - ldr r4, .L2940+12 + ldr r4, .L3029+12 mov r1, r5 - ldr r0, .L2940+16 + ldr r0, .L3029+16 ldrh r2, [r3, r5, lsl #1] lsl r8, r5, #1 bl printf @@ -20800,44 +21219,44 @@ ftl_fix_nand_power_lost_error: movw r4, #4097 bl allocate_new_data_superblock str r7, [sp, #4] -.L2928: +.L3017: subs r4, r4, #1 - beq .L2932 + beq .L3021 movs r1, #1 mov r0, r1 bl rk_ftl_garbage_collect ldr r3, [r6] ldrh r3, [r3, r8] cmp r3, #0 - bne .L2928 -.L2932: + bne .L3017 +.L3021: ldr r3, [r6] mov r1, r5 - ldr r0, .L2940+16 + ldr r0, .L3029+16 ldrh r2, [r3, r5, lsl #1] bl printf ldr r3, [r6] ldrh r4, [r3, r5, lsl #1] - cbnz r4, .L2930 + cbnz r4, .L3019 add r0, sp, #56 - ldr r7, .L2940+20 + ldr r7, .L3029+20 strh r5, [r0, #-48]! @ movhi movw r10, #65535 bl make_superblock - ldr r3, .L2940+24 + ldr r3, .L3029+24 add r0, sp, #22 ldr r8, [r7] mov r2, r4 mov fp, #36 mov ip, r4 ldrh lr, [r3] -.L2933: +.L3022: uxth r3, r2 cmp lr, r3 - bhi .L2935 + bhi .L3024 ldr r3, [r6] mov r1, r5 - ldr r0, .L2940+28 + ldr r0, .L3029+28 ldrh r2, [r3, r5, lsl #1] bl printf mov r2, r4 @@ -20848,18 +21267,18 @@ ftl_fix_nand_power_lost_error: movs r1, #1 ldr r0, [r7] bl FlashEraseBlocks -.L2930: +.L3019: ldr r2, [sp, #4] movw r3, #65535 strh r3, [r2] @ movhi -.L2926: +.L3015: add sp, sp, #56 @ sp needed pop {r4, r5, r6, r7, r8, r10, fp, pc} -.L2935: +.L3024: ldrh r3, [r0, #2]! cmp r3, r10 - beq .L2934 + beq .L3023 mla r1, fp, r4, r8 adds r4, r4, #1 lsls r3, r3, #10 @@ -20867,21 +21286,21 @@ ftl_fix_nand_power_lost_error: str r3, [r1, #4] str ip, [r1, #8] str ip, [r1, #12] -.L2934: +.L3023: adds r2, r2, #1 - b .L2933 -.L2941: + b .L3022 +.L3030: .align 2 -.L2940: - .word .LANCHOR8 - .word .LANCHOR235 - .word .LANCHOR84 - .word .LANCHOR93 - .word .LC70 - .word .LANCHOR78 - .word .LANCHOR38 - .word .LC71 +.L3029: + .word .LANCHOR15 + .word .LANCHOR234 + .word .LANCHOR83 .word .LANCHOR92 + .word .LC71 + .word .LANCHOR77 + .word .LANCHOR38 + .word .LC72 + .word .LANCHOR91 .size ftl_fix_nand_power_lost_error, .-ftl_fix_nand_power_lost_error .section .text.ftl_read,"ax",%progbits .align 1 @@ -20900,34 +21319,34 @@ ftl_read: mov r6, r1 mov r7, r3 str r2, [sp, #52] - bne .L2943 + bne .L3032 mov r2, r3 ldr r1, [sp, #52] add r0, r6, #256 bl FtlVendorPartRead str r0, [sp, #32] -.L2942: +.L3031: ldr r0, [sp, #32] add sp, sp, #88 @ sp needed pop {r4, r5, r6, r7, r8, r10, fp, pc} -.L2943: +.L3032: ldr r3, [sp, #52] adds r3, r1, r3 str r3, [sp, #36] - ldr r3, .L2981 + ldr r3, .L3070 ldr r2, [sp, #36] ldr r3, [r3] cmp r2, r3 - bhi .L2966 - ldr r3, .L2981+4 + bhi .L3055 + ldr r3, .L3070+4 ldr r3, [r3] adds r4, r3, #1 - beq .L2967 + beq .L3056 bl FtlCacheWriteBack - ldr r3, .L2981+8 + ldr r3, .L3070+8 mov r0, r6 - ldr r10, .L2981+52 + ldr r10, .L3070+52 ldrh r4, [r3] mov r1, r4 bl __aeabi_uidiv @@ -20937,7 +21356,7 @@ ftl_read: subs r0, r3, #1 bl __aeabi_uidiv ldr r3, [sp, #40] - ldr r2, .L2981+12 + ldr r2, .L3070+12 ldr r4, [sp, #40] rsb r3, r3, #1 str r0, [sp, #44] @@ -20952,44 +21371,44 @@ ftl_read: str r3, [sp, #24] str r3, [sp, #48] str r3, [sp, #32] -.L2945: +.L3034: ldr r3, [sp, #28] - cbnz r3, .L2965 - ldr r3, .L2981+16 + cbnz r3, .L3054 + ldr r3, .L3070+16 ldrh r3, [r3] cmp r3, #0 - beq .L2942 + beq .L3031 movs r1, #1 ldr r0, [sp, #28] bl rk_ftl_garbage_collect - b .L2942 -.L2965: + b .L3031 +.L3054: movs r2, #0 add r1, sp, #84 mov r0, r4 bl log2phys ldr r3, [sp, #84] adds r0, r3, #1 - bne .L2946 - ldr fp, .L2981+8 + bne .L3035 + ldr fp, .L3070+8 mov r8, #0 -.L2947: +.L3036: ldrh r0, [fp] cmp r8, r0 - bcc .L2949 -.L2950: + bcc .L3038 +.L3039: ldr r3, [sp, #28] adds r4, r4, #1 subs r3, r3, #1 str r3, [sp, #28] - beq .L2954 - ldr r3, .L2981+20 + beq .L3043 + ldr r3, .L3070+20 ldrh r3, [r3] cmp r5, r3, lsl #2 - bne .L2945 -.L2954: + bne .L3034 +.L3043: cmp r5, #0 - beq .L2945 + beq .L3034 movs r2, #0 mov r1, r5 ldr r0, [r10] @@ -21004,7 +21423,7 @@ ftl_read: ldr r3, [sp, #48] lsls r3, r3, #9 str r3, [sp, #64] -.L2964: +.L3053: mov r8, #36 ldr r3, [r10] mul r8, r8, fp @@ -21012,27 +21431,27 @@ ftl_read: add r3, r3, r8 ldr r2, [r3, #16] cmp r1, r2 - bne .L2956 + bne .L3045 ldr r1, [r3, #8] - ldr r3, .L2981+24 + ldr r3, .L3070+24 ldr r3, [r3] cmp r1, r3 - bne .L2957 + bne .L3046 ldr r3, [sp, #60] mov r0, r7 ldr r2, [sp, #64] add r1, r1, r3 -.L2980: +.L3069: bl ftl_memcpy -.L2957: +.L3046: ldr r2, [r10] add r2, r2, r8 ldr r3, [r2, #12] ldr lr, [r2, #16] ldr r0, [r3, #8] cmp lr, r0 - beq .L2958 - ldr ip, .L2981+32 + beq .L3047 + ldr ip, .L3070+32 ldr r0, [ip, #72] adds r0, r0, #1 str r0, [ip, #72] @@ -21048,52 +21467,52 @@ ftl_read: str r0, [sp, #4] ldr r0, [r3, #4] str r0, [sp] - ldr r0, .L2981+28 + ldr r0, .L3070+28 ldr r3, [r3] ldr r2, [r2, #4] bl printf -.L2958: +.L3047: ldr r3, [r10] add r2, r3, r8 ldr r3, [r3, r8] adds r1, r3, #1 - bne .L2959 - ldr r1, .L2981+32 + bne .L3048 + ldr r1, .L3070+32 str r3, [sp, #32] ldr r2, [r1, #72] adds r2, r2, #1 str r2, [r1, #72] -.L2960: +.L3049: add fp, fp, #1 cmp r5, fp - bne .L2964 + bne .L3053 movs r5, #0 - b .L2945 -.L2949: + b .L3034 +.L3038: mla r0, r0, r4, r8 cmp r6, r0 - bhi .L2948 + bhi .L3037 ldr r3, [sp, #36] cmp r3, r0 - bls .L2948 + bls .L3037 subs r0, r0, r6 mov r2, #512 movs r1, #0 add r0, r7, r0, lsl #9 bl ftl_memset -.L2948: +.L3037: add r8, r8, #1 - b .L2947 -.L2946: + b .L3036 +.L3035: ldr r2, [r10] mov r8, #36 mla r8, r8, r5, r2 str r3, [r8, #4] ldr r3, [sp, #40] cmp r4, r3 - ldr r3, .L2981+8 - bne .L2951 - ldr r2, .L2981+24 + ldr r3, .L3070+8 + bne .L3040 + ldr r2, .L3070+24 mov r0, r6 ldrh fp, [r3] ldr r2, [r2] @@ -21108,11 +21527,11 @@ ftl_read: movcs r3, r2 cmp fp, r3 str r3, [sp, #48] - bne .L2952 + bne .L3041 str r7, [r8, #8] -.L2952: - ldr r3, .L2981+36 - ldr r2, .L2981+40 +.L3041: + ldr r3, .L3070+36 + ldr r2, .L3070+40 str r4, [r8, #16] ldrh r3, [r3] ldr r2, [r2] @@ -21121,12 +21540,12 @@ ftl_read: bic r3, r3, #3 add r3, r3, r2 str r3, [r8, #12] - b .L2950 -.L2951: + b .L3039 +.L3040: ldr r2, [sp, #44] cmp r4, r2 - bne .L2953 - ldr r2, .L2981+44 + bne .L3042 + ldr r2, .L3070+44 ldr r1, [sp, #36] ldr r2, [r2] str r2, [r8, #8] @@ -21135,50 +21554,50 @@ ftl_read: subs r1, r1, r3 cmp r2, r1 str r1, [sp, #24] - bne .L2952 -.L2979: + bne .L3041 +.L3068: subs r3, r3, r6 add r3, r7, r3, lsl #9 str r3, [r8, #8] - b .L2952 -.L2953: + b .L3041 +.L3042: ldrh r3, [r3] muls r3, r4, r3 - b .L2979 -.L2956: + b .L3068 +.L3045: ldr r1, [sp, #44] cmp r1, r2 - bne .L2957 + bne .L3046 ldr r1, [r3, #8] - ldr r3, .L2981+44 + ldr r3, .L3070+44 ldr r3, [r3] cmp r1, r3 - bne .L2957 - ldr r3, .L2981+8 + bne .L3046 + ldr r3, .L3070+8 ldr r2, [sp, #68] ldrh r0, [r3] ldr r3, [sp, #44] muls r0, r3, r0 subs r0, r0, r6 add r0, r7, r0, lsl #9 - b .L2980 -.L2959: + b .L3069 +.L3048: cmp r3, #256 - bne .L2960 + bne .L3049 ldr r0, [r2, #4] ubfx r0, r0, #10, #16 bl P2V_block_in_plane mov r8, r0 bl FtlGcRefreshBlock - ldr r2, .L2981+48 + ldr r2, .L3070+48 movw r3, #2049 -.L2962: +.L3051: subs r3, r3, #1 - bne .L2961 -.L2963: + bne .L3050 +.L3052: bl FtlSysFlush - b .L2960 -.L2961: + b .L3049 +.L3050: movs r1, #1 str r2, [sp, #76] mov r0, r1 @@ -21188,26 +21607,26 @@ ftl_read: ldr r3, [sp, #72] ldrh r1, [r2] cmp r1, r8 - beq .L2962 - b .L2963 -.L2966: + beq .L3051 + b .L3052 +.L3055: mov r3, #-1 -.L2967: +.L3056: str r3, [sp, #32] - b .L2942 -.L2982: + b .L3031 +.L3071: .align 2 -.L2981: - .word .LANCHOR69 - .word .LANCHOR231 - .word .LANCHOR56 +.L3070: + .word .LANCHOR68 + .word .LANCHOR230 + .word .LANCHOR55 .word .LANCHOR166 - .word .LANCHOR117 + .word .LANCHOR116 .word .LANCHOR38 .word .LANCHOR186 - .word .LC60 + .word .LC59 .word .LANCHOR138 - .word .LANCHOR59 + .word .LANCHOR58 .word .LANCHOR189 .word .LANCHOR187 .word .LANCHOR204 @@ -21226,39 +21645,39 @@ FtlWrite: @ frame_needed = 0, uses_anonymous_args = 0 push {r4, r5, r6, r7, r8, r10, fp, lr} mov r10, r3 - ldr r3, .L3031 + ldr r3, .L3120 sub sp, sp, #80 mov r6, r1 str r2, [sp, #12] ldr r3, [r3] cmp r3, #0 - bne .L3016 + bne .L3105 cmp r0, #16 - bne .L2985 + bne .L3074 mov r2, r10 ldr r1, [sp, #12] add r0, r6, #256 bl FtlVendorPartWrite -.L2983: +.L3072: add sp, sp, #80 @ sp needed pop {r4, r5, r6, r7, r8, r10, fp, pc} -.L2985: +.L3074: ldr r3, [sp, #12] adds r5, r1, r3 - ldr r3, .L3031+4 + ldr r3, .L3120+4 ldr r3, [r3] cmp r5, r3 - bhi .L3017 - ldr r3, .L3031+8 + bhi .L3106 + ldr r3, .L3120+8 ldr r0, [r3] adds r4, r0, #1 - beq .L2983 - ldr r3, .L3031+12 + beq .L3072 + ldr r3, .L3120+12 mov r2, #2048 mov r0, r6 str r2, [r3] - ldr r3, .L3031+16 + ldr r3, .L3120+16 ldrh r4, [r3] mov r1, r4 bl __aeabi_uidiv @@ -21266,7 +21685,7 @@ FtlWrite: mov r8, r0 subs r0, r5, #1 bl __aeabi_uidiv - ldr r2, .L3031+20 + ldr r2, .L3120+20 sub r5, r0, r8 adds r3, r5, #1 adds r1, r5, #1 @@ -21275,29 +21694,29 @@ FtlWrite: str r0, [sp, #16] add r3, r3, r1 str r3, [r2] - ldr r3, .L3031+24 + ldr r3, .L3120+24 ldr fp, [r3] cmp fp, #0 - beq .L2987 + beq .L3076 ldr r3, [fp, #16] cmp r8, r3 - beq .L2988 + beq .L3077 bl FtlCacheWriteBack -.L2987: - ldr r7, .L3031+28 +.L3076: + ldr r7, .L3120+28 mov r4, r8 -.L2989: +.L3078: ldr r3, [sp, #4] - cbnz r3, .L3015 + cbnz r3, .L3104 ldr r3, [sp, #16] ldr r0, [sp, #4] sub r1, r3, r8 bl rk_ftl_garbage_collect -.L3016: +.L3105: movs r0, #0 - b .L2983 -.L2988: - ldr r2, .L3031+32 + b .L3072 +.L3077: + ldr r2, .L3120+32 mov r1, r4 mov r0, r6 ldr r3, [r2] @@ -21317,7 +21736,7 @@ FtlWrite: mov r2, r7 bl ftl_memcpy cmp r5, #0 - beq .L3016 + beq .L3105 ldr r3, [sp, #12] add r6, r6, r4 add r10, r10, r7 @@ -21326,27 +21745,27 @@ FtlWrite: str r3, [sp, #12] bl FtlCacheWriteBack str r5, [sp, #4] - b .L2987 -.L3015: - ldr r5, .L3031+36 + b .L3076 +.L3104: + ldr r5, .L3120+36 ldrb r2, [r7, #6] @ zero_extendqisi2 ldrh r3, [r5] cmp r2, r3 - bcc .L2990 - ldr r1, .L3031+40 + bcc .L3079 + ldr r1, .L3120+40 movw r2, #1668 - ldr r0, .L3031+44 + ldr r0, .L3120+44 bl printf - ldr r1, .L3031+48 - ldr r0, .L3031+52 + ldr r1, .L3120+48 + ldr r0, .L3120+52 bl printf -.L2990: +.L3079: ldrh r3, [r7, #4] - cbnz r3, .L2991 + cbnz r3, .L3080 bl FtlCacheWriteBack mov r0, r7 bl allocate_new_data_superblock -.L2991: +.L3080: ldrb r3, [r7, #7] @ zero_extendqisi2 ldrh r2, [r7, #4] lsls r3, r3, #2 @@ -21361,24 +21780,24 @@ FtlWrite: str r3, [sp, #36] ldrh r3, [r5] cmp r2, r3 - bcc .L2992 - ldr r1, .L3031+40 + bcc .L3081 + ldr r1, .L3120+40 movw r2, #1701 - ldr r0, .L3031+44 + ldr r0, .L3120+44 bl printf - ldr r1, .L3031+48 - ldr r0, .L3031+52 + ldr r1, .L3120+48 + ldr r0, .L3120+52 bl printf -.L2992: +.L3081: movs r3, #0 -.L3030: +.L3119: str r3, [sp, #8] ldr r3, [sp, #8] ldr r2, [sp, #36] cmp r3, r2 - bne .L3013 -.L2994: - ldr r0, .L3031+56 + bne .L3102 +.L3083: + ldr r0, .L3120+56 mov r3, r7 movs r2, #0 ldr r1, [sp, #8] @@ -21387,24 +21806,24 @@ FtlWrite: ldr r3, [sp, #4] ldr r2, [sp, #8] cmp r3, r2 - bcs .L3014 - ldr r1, .L3031+40 + bcs .L3103 + ldr r1, .L3120+40 movw r2, #1790 - ldr r0, .L3031+44 + ldr r0, .L3120+44 bl printf - ldr r1, .L3031+48 - ldr r0, .L3031+52 + ldr r1, .L3120+48 + ldr r0, .L3120+52 bl printf -.L3014: +.L3103: ldr r3, [sp, #4] ldr r2, [sp, #8] subs r3, r3, r2 str r3, [sp, #4] - b .L2989 -.L3013: + b .L3078 +.L3102: ldrh r3, [r7, #4] cmp r3, #0 - beq .L2994 + beq .L3083 movs r2, #0 add r1, sp, #40 mov r0, r4 @@ -21413,9 +21832,9 @@ FtlWrite: mov r0, r7 bl get_new_active_ppa ldr r3, [sp, #8] - ldr r2, .L3031+60 + ldr r2, .L3120+60 muls r5, r3, r5 - ldr r3, .L3031+56 + ldr r3, .L3120+56 ldrh r2, [r2] ldr r1, [r3] str r3, [sp, #20] @@ -21425,7 +21844,7 @@ FtlWrite: str r4, [r1, #16] mul r0, r2, r3 bic r3, r0, #3 - ldr r0, .L3031+64 + ldr r0, .L3120+64 str r3, [sp, #28] ldr r3, [r0] ldr r0, [sp, #28] @@ -21436,12 +21855,12 @@ FtlWrite: movs r1, #0 bl ftl_memset cmp r4, r8 - ldr r1, .L3031+16 - beq .L2995 + ldr r1, .L3120+16 + beq .L3084 ldr r3, [sp, #16] cmp r3, r4 ldr r3, [sp, #20] - bne .L3026 + bne .L3115 ldr r3, [sp, #12] adds r2, r6, r3 ldrh r3, [r1] @@ -21452,8 +21871,8 @@ FtlWrite: str r3, [sp, #20] movs r3, #0 str r3, [sp, #24] - b .L2998 -.L2995: + b .L3087 +.L3084: ldrh r2, [r1] mov r0, r6 mov r1, r2 @@ -21468,14 +21887,14 @@ FtlWrite: it cs movcs r3, r1 str r3, [sp, #20] -.L2998: - ldr r3, .L3031+16 +.L3087: + ldr r3, .L3120+16 ldr r2, [sp, #20] ldrh r3, [r3] cmp r3, r2 - ldr r3, .L3031+56 + ldr r3, .L3120+56 ldr r3, [r3] - bne .L2999 + bne .L3088 cmp r4, r8 add r5, r5, r3 itett ne @@ -21486,25 +21905,25 @@ FtlWrite: itt ne addne r2, r10, r2, lsl #9 strne r2, [r5, #8] -.L3001: - ldr r3, .L3031+36 +.L3090: + ldr r3, .L3120+36 ldrb r2, [r7, #6] @ zero_extendqisi2 ldrh r3, [r3] cmp r2, r3 - bcc .L3010 - ldr r1, .L3031+40 + bcc .L3099 + ldr r1, .L3120+40 movw r2, #1775 - ldr r0, .L3031+44 + ldr r0, .L3120+44 bl printf - ldr r1, .L3031+48 - ldr r0, .L3031+52 + ldr r1, .L3120+48 + ldr r0, .L3120+52 bl printf -.L3010: +.L3099: ldr r2, [sp, #32] movw r3, #61589 ldr r1, [sp, #28] strh r3, [r2, r1] @ movhi - ldr r2, .L3031+68 + ldr r2, .L3120+68 str r4, [fp, #8] adds r4, r4, #1 ldr r3, [r2] @@ -21520,18 +21939,18 @@ FtlWrite: strh r3, [fp, #2] @ movhi ldr r3, [sp, #8] adds r3, r3, #1 - b .L3030 -.L3032: + b .L3119 +.L3121: .align 2 -.L3031: - .word .LANCHOR77 - .word .LANCHOR69 - .word .LANCHOR231 +.L3120: + .word .LANCHOR76 + .word .LANCHOR68 + .word .LANCHOR230 .word .LANCHOR246 - .word .LANCHOR56 + .word .LANCHOR55 .word .LANCHOR162 .word .LANCHOR132 - .word .LANCHOR92 + .word .LANCHOR91 .word .LANCHOR164 .word .LANCHOR38 .word .LANCHOR247 @@ -21539,21 +21958,21 @@ FtlWrite: .word .LC6 .word .LC7 .word .LANCHOR182 - .word .LANCHOR59 + .word .LANCHOR58 .word .LANCHOR189 .word .LANCHOR160 -.L2999: +.L3088: cmp r4, r8 add r3, r3, r5 ite eq - ldreq r2, .L3033 - ldrne r2, .L3033+4 + ldreq r2, .L3122 + ldrne r2, .L3122+4 ldr r2, [r2] str r2, [r3, #8] ldr r2, [sp, #40] - ldr r3, .L3033+8 + ldr r3, .L3122+8 adds r0, r2, #1 - beq .L3004 + beq .L3093 ldr r3, [r3] movs r1, #1 str r2, [sp, #48] @@ -21568,60 +21987,60 @@ FtlWrite: bl FlashReadPages ldr r3, [sp, #44] adds r3, r3, #1 - bne .L3005 - ldr r2, .L3033+12 + bne .L3094 + ldr r2, .L3122+12 ldr r3, [r2, #72] adds r3, r3, #1 str r3, [r2, #72] -.L3008: +.L3097: ldr r2, [sp, #20] cmp r4, r8 - ldr r3, .L3033+8 + ldr r3, .L3122+8 lsl r2, r2, #9 - bne .L3009 + bne .L3098 ldr r3, [r3] mov r1, r10 add r5, r5, r3 ldr r3, [sp, #24] ldr r0, [r5, #8] add r0, r0, r3, lsl #9 -.L3028: +.L3117: bl ftl_memcpy - b .L3001 -.L3005: + b .L3090 +.L3094: ldr r1, [fp, #8] cmp r4, r1 - beq .L3007 - ldr r2, .L3033+12 - ldr r0, .L3033+16 + beq .L3096 + ldr r2, .L3122+12 + ldr r0, .L3122+16 ldr r3, [r2, #72] adds r3, r3, #1 str r3, [r2, #72] mov r2, r4 bl printf -.L3007: +.L3096: ldr r3, [fp, #8] cmp r4, r3 - beq .L3008 + beq .L3097 movw r2, #1754 - ldr r1, .L3033+20 - ldr r0, .L3033+24 + ldr r1, .L3122+20 + ldr r0, .L3122+24 bl printf - ldr r1, .L3033+28 - ldr r0, .L3033+32 + ldr r1, .L3122+28 + ldr r0, .L3122+32 bl printf - b .L3008 -.L3004: + b .L3097 +.L3093: ldr r3, [r3] movs r1, #0 - ldr r2, .L3033+36 + ldr r2, .L3122+36 add r3, r3, r5 ldrh r2, [r2] ldr r0, [r3, #8] bl ftl_memset - b .L3008 -.L3009: - ldr r1, .L3033+40 + b .L3097 +.L3098: + ldr r1, .L3122+40 ldr r3, [r3] ldrh r1, [r1] add r5, r5, r3 @@ -21629,8 +22048,8 @@ FtlWrite: muls r1, r4, r1 subs r1, r1, r6 add r1, r10, r1, lsl #9 - b .L3028 -.L3026: + b .L3117 +.L3115: ldr r3, [r3] add r5, r5, r3 ldrh r3, [r1] @@ -21638,24 +22057,24 @@ FtlWrite: subs r3, r3, r6 add r3, r10, r3, lsl #9 str r3, [r5, #8] - b .L3001 -.L3017: + b .L3090 +.L3106: mov r0, #-1 - b .L2983 -.L3034: + b .L3072 +.L3123: .align 2 -.L3033: +.L3122: .word .LANCHOR186 .word .LANCHOR187 .word .LANCHOR182 .word .LANCHOR138 - .word .LC72 + .word .LC73 .word .LANCHOR247 .word .LC5 .word .LC6 .word .LC7 - .word .LANCHOR58 - .word .LANCHOR56 + .word .LANCHOR57 + .word .LANCHOR55 .size FtlWrite, .-FtlWrite .section .text.ftl_vendor_write,"ax",%progbits .align 1 @@ -21745,11 +22164,11 @@ ftl_write: mov r4, r2 mov r5, r3 mov r6, r0 - cbnz r0, .L3040 + cbnz r0, .L3129 mov r3, r2 mov r2, r5 bl idb_write_data -.L3040: +.L3129: mov r3, r5 mov r2, r4 mov r1, r7 @@ -21770,69 +22189,69 @@ FtlCheckVpc: @ frame_needed = 0, uses_anonymous_args = 0 push {r0, r1, r4, r5, r6, r7, r8, r10, fp, lr} movs r4, #0 - ldr r6, .L3065 - ldr r5, .L3065+4 - ldr r1, .L3065+8 - ldr r0, .L3065+12 + ldr r6, .L3154 + ldr r5, .L3154+4 + ldr r1, .L3154+8 + ldr r0, .L3154+12 bl printf mov r2, #8192 movs r1, #0 - ldr r0, .L3065+4 + ldr r0, .L3154+4 bl memset -.L3042: +.L3131: ldr r3, [r6] cmp r4, r3 - bcc .L3044 - ldr r7, .L3065+16 + bcc .L3133 + ldr r7, .L3154+16 movs r4, #0 - ldr r5, .L3065+20 + ldr r5, .L3154+20 movs r2, #2 - ldr r10, .L3065+4 + ldr r10, .L3154+4 mov r6, r4 - ldr fp, .L3065+60 + ldr fp, .L3154+60 mov r8, r7 ldrh r3, [r7] ldr r1, [r5] - ldr r0, .L3065+24 + ldr r0, .L3154+24 bl rknand_print_hex ldrh r3, [r7] movs r2, #2 - ldr r1, .L3065+4 - ldr r0, .L3065+28 + ldr r1, .L3154+4 + ldr r0, .L3154+28 bl rknand_print_hex -.L3045: +.L3134: ldrh r2, [r8] uxth r3, r4 cmp r2, r3 - bhi .L3047 - ldr r3, .L3065+32 + bhi .L3136 + ldr r3, .L3154+32 ldr r4, [r3] - cbz r4, .L3048 - ldr r3, .L3065+36 + cbz r4, .L3137 + ldr r3, .L3154+36 mov r8, #0 - ldr r7, .L3065+40 - ldr fp, .L3065+64 + ldr r7, .L3154+40 + ldr fp, .L3154+64 ldrh r10, [r3] ldr r3, [r7] subs r4, r4, r3 - ldr r3, .L3065+44 + ldr r3, .L3154+44 asrs r4, r4, #1 muls r4, r3, r4 uxth r4, r4 -.L3049: +.L3138: uxth r3, r8 cmp r10, r3 - bls .L3048 + bls .L3137 ldr r3, [r5] ldrh r2, [r3, r4, lsl #1] - cbz r2, .L3050 - ldr r3, .L3065+4 + cbz r2, .L3139 + ldr r3, .L3154+4 movs r6, #1 mov r1, r4 mov r0, fp ldrh r3, [r3, r4, lsl #1] bl printf -.L3050: +.L3139: movs r3, #6 ldr r2, [r7] muls r4, r3, r4 @@ -21840,43 +22259,43 @@ FtlCheckVpc: add r8, r8, #1 ldrh r4, [r2, r4] cmp r4, r3 - bne .L3049 -.L3048: - cbz r6, .L3041 - ldr r1, .L3065+8 - movw r2, #1669 - ldr r0, .L3065+48 + bne .L3138 +.L3137: + cbz r6, .L3130 + ldr r1, .L3154+8 + movw r2, #1686 + ldr r0, .L3154+48 bl printf - ldr r1, .L3065+52 - ldr r0, .L3065+56 + ldr r1, .L3154+52 + ldr r0, .L3154+56 bl printf -.L3041: +.L3130: add sp, sp, #8 @ sp needed pop {r4, r5, r6, r7, r8, r10, fp, pc} -.L3044: +.L3133: movs r2, #0 add r1, sp, #4 mov r0, r4 bl log2phys ldr r0, [sp, #4] adds r3, r0, #1 - beq .L3043 + beq .L3132 ubfx r0, r0, #10, #16 bl P2V_block_in_plane ldrh r3, [r5, r0, lsl #1] adds r3, r3, #1 strh r3, [r5, r0, lsl #1] @ movhi -.L3043: +.L3132: adds r4, r4, #1 - b .L3042 -.L3047: + b .L3131 +.L3136: ldr r3, [r5] uxth r7, r4 ldrh r2, [r3, r7, lsl #1] ldrh r3, [r10, r7, lsl #1] cmp r2, r3 - beq .L3046 + beq .L3135 mov r1, r7 mov r0, fp bl printf @@ -21884,34 +22303,34 @@ FtlCheckVpc: movw r2, #65535 ldrh r3, [r3, r7, lsl #1] cmp r3, r2 - beq .L3046 + beq .L3135 ldrh r2, [r10, r7, lsl #1] cmp r2, r3 it hi movhi r6, #1 -.L3046: +.L3135: adds r4, r4, #1 - b .L3045 -.L3066: + b .L3134 +.L3155: .align 2 -.L3065: - .word .LANCHOR73 +.L3154: + .word .LANCHOR72 .word check_valid_page_count_table .word .LANCHOR248 .word .LC45 .word .LANCHOR40 - .word .LANCHOR84 - .word .LC73 + .word .LANCHOR83 .word .LC74 + .word .LC75 + .word .LANCHOR87 .word .LANCHOR88 - .word .LANCHOR89 - .word .LANCHOR82 + .word .LANCHOR81 .word -1431655765 .word .LC5 .word .LC6 .word .LC7 - .word .LC75 .word .LC76 + .word .LC77 .size FtlCheckVpc, .-FtlCheckVpc .section .text.FtlDumpSysBlock,"ax",%progbits .align 1 @@ -21926,27 +22345,27 @@ FtlDumpSysBlock: @ frame_needed = 0, uses_anonymous_args = 0 push {r4, r5, r6, r7, r8, r10, fp, lr} lsl r10, r0, #10 - ldr r5, .L3074 + ldr r5, .L3163 sub sp, sp, #24 mov r7, r0 movs r6, #0 - ldr r4, .L3074+4 + ldr r4, .L3163+4 ldr r3, [r5] - ldr r8, .L3074+20 + ldr r8, .L3163+20 mov fp, r4 str r3, [r4, #8] - ldr r3, .L3074+8 + ldr r3, .L3163+8 ldr r3, [r3] str r3, [r4, #12] -.L3068: +.L3157: ldrh r2, [r8] sxth r3, r6 cmp r3, r2 - blt .L3070 + blt .L3159 add sp, sp, #24 @ sp needed pop {r4, r5, r6, r7, r8, r10, fp, pc} -.L3070: +.L3159: movs r2, #1 orr r3, r3, r10 mov r1, r2 @@ -21956,7 +22375,7 @@ FtlDumpSysBlock: ldr r2, [r4, #8] mov r1, r7 ldr r3, [r4, #12] - ldr r0, .L3074+12 + ldr r0, .L3163+12 ldr r2, [r2] str r2, [sp, #16] ldr r2, [r3, #12] @@ -21972,24 +22391,24 @@ FtlDumpSysBlock: ldr r3, [r4, #12] ldr r3, [r3] adds r3, r3, #1 - beq .L3069 + beq .L3158 mov r3, #768 movs r2, #4 ldr r1, [r5] - ldr r0, .L3074+16 + ldr r0, .L3163+16 bl rknand_print_hex -.L3069: +.L3158: adds r6, r6, #1 - b .L3068 -.L3075: + b .L3157 +.L3164: .align 2 -.L3074: +.L3163: .word .LANCHOR183 .word .LANCHOR202 .word .LANCHOR188 - .word .LC77 .word .LC78 - .word .LANCHOR54 + .word .LC79 + .word .LANCHOR53 .size FtlDumpSysBlock, .-FtlDumpSysBlock .section .text.dump_map_info,"ax",%progbits .align 1 @@ -22002,32 +22421,32 @@ FtlDumpSysBlock: dump_map_info: @ args = 0, pretend = 0, frame = 16 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L3090 + ldr r3, .L3179 push {r4, r5, r6, r7, r8, r10, fp, lr} sub sp, sp, #40 - ldr r8, .L3090+72 + ldr r8, .L3179+72 ldrh r5, [r3] -.L3077: - ldr r3, .L3090+4 +.L3166: + ldr r3, .L3179+4 ldrh r3, [r3] cmp r3, r5 - bhi .L3084 - ldr r4, .L3090+8 + bhi .L3173 + ldr r4, .L3179+8 movs r7, #0 -.L3085: - ldr r3, .L3090+12 +.L3174: + ldr r3, .L3179+12 sxth r5, r7 ldrh r3, [r3] cmp r5, r3 - bge .L3088 + bge .L3177 lsls r5, r5, #1 movs r6, #0 - ldr r8, .L3090+76 - b .L3089 -.L3079: + ldr r8, .L3179+76 + b .L3178 +.L3168: str r3, [sp, #36] mov r1, r5 - ldr r3, .L3090+16 + ldr r3, .L3179+16 str r2, [sp, #32] ldrb r0, [r3, r6] @ zero_extendqisi2 bl V2P_block @@ -22035,7 +22454,7 @@ dump_map_info: bl FtlBbmIsBadBlock ldr r2, [sp, #32] ldr r3, [sp, #36] - cbnz r0, .L3078 + cbnz r0, .L3167 ldr r1, [sp, #28] mla r0, fp, r4, r7 lsls r1, r1, #10 @@ -22048,29 +22467,29 @@ dump_map_info: ldr r1, [sp, #24] add r1, r1, ip str r1, [r0, #12] -.L3078: +.L3167: adds r6, r6, #1 -.L3086: +.L3175: uxth r1, r6 cmp r2, r1 - bhi .L3079 - cbnz r4, .L3080 -.L3083: + bhi .L3168 + cbnz r4, .L3169 +.L3172: adds r5, r5, #1 uxth r5, r5 - b .L3077 -.L3080: - ldr r10, .L3090+80 + b .L3166 +.L3169: + ldr r10, .L3179+80 mov r0, r7 movs r6, #0 movs r7, #36 movs r2, #1 mov r1, r4 bl FlashReadPages -.L3081: +.L3170: uxth r3, r6 cmp r4, r3 - bls .L3083 + bls .L3172 ldr r3, [r8] mla r3, r7, r6, r3 adds r6, r6, #1 @@ -22091,24 +22510,24 @@ dump_map_info: ldr r3, [r1] ubfx r1, r2, #10, #16 bl printf - b .L3081 -.L3084: - ldr r1, .L3090+20 + b .L3170 +.L3173: + ldr r1, .L3179+20 movs r6, #0 - ldr r3, .L3090+24 + ldr r3, .L3179+24 mov r4, r6 ldr r7, [r8] mov fp, #36 ldr r1, [r1] ldrh r2, [r3] - ldr r3, .L3090+28 + ldr r3, .L3179+28 str r1, [sp, #24] - ldr r1, .L3090+32 + ldr r1, .L3179+32 ldr r3, [r3] ldrh r10, [r1] - b .L3086 -.L3087: - ldr r10, .L3090+44 + b .L3175 +.L3176: + ldr r10, .L3179+44 mov r0, r4 ldr r2, [r10] ldrh r2, [r2, r5] @@ -22124,7 +22543,7 @@ dump_map_info: ldrh r1, [r1, r5] str r0, [sp, #20] ldr r2, [r2] - ldr r0, .L3090+36 + ldr r0, .L3179+36 str r2, [sp, #16] ldr r2, [r3, #12] str r2, [sp, #12] @@ -22136,62 +22555,62 @@ dump_map_info: str r3, [sp] ldm r4, {r2, r3} bl printf -.L3089: +.L3178: ldrh r2, [r8] sxth r3, r6 adds r6, r6, #1 cmp r3, r2 - blt .L3087 + blt .L3176 adds r7, r7, #1 - b .L3085 -.L3088: - ldr r3, .L3090+40 + b .L3174 +.L3177: + ldr r3, .L3179+40 movs r2, #2 - ldr r1, .L3090+44 - ldr r0, .L3090+48 + ldr r1, .L3179+44 + ldr r0, .L3179+48 ldr r3, [r3] ldr r1, [r1] bl rknand_print_hex - ldr r4, .L3090+52 + ldr r4, .L3179+52 movs r2, #4 - ldr r1, .L3090+56 - ldr r0, .L3090+60 + ldr r1, .L3179+56 + ldr r0, .L3179+60 ldrh r3, [r4] ldr r1, [r1] bl rknand_print_hex - ldr r1, .L3090+64 + ldr r1, .L3179+64 movs r2, #4 ldrh r3, [r4] - ldr r0, .L3090+68 + ldr r0, .L3179+68 ldr r1, [r1] add sp, sp, #40 @ sp needed pop {r4, r5, r6, r7, r8, r10, fp, lr} b rknand_print_hex -.L3091: +.L3180: .align 2 -.L3090: +.L3179: .word .LANCHOR40 .word .LANCHOR41 .word .LANCHOR202 .word .LANCHOR128 .word .LANCHOR47 - .word .LANCHOR106 - .word .LANCHOR38 .word .LANCHOR105 - .word .LANCHOR59 + .word .LANCHOR38 + .word .LANCHOR104 + .word .LANCHOR58 .word .LC48 - .word .LANCHOR65 + .word .LANCHOR64 .word .LANCHOR129 - .word .LC80 - .word .LANCHOR67 - .word .LANCHOR131 .word .LC81 - .word .LANCHOR195 + .word .LANCHOR66 + .word .LANCHOR131 .word .LC82 + .word .LANCHOR195 + .word .LC83 .word .LANCHOR180 - .word .LANCHOR54 - .word .LC79 + .word .LANCHOR53 + .word .LC80 .size dump_map_info, .-dump_map_info .global FtlMallocOffset .global FtlMallocBuffer @@ -22357,7 +22776,6 @@ dump_map_info: .global c_ftl_nand_ext_blk_pre_plane .global c_ftl_nand_blk_pre_plane .global c_ftl_nand_planes_num - .global c_ftl_nand_blks_per_die_shift .global c_ftl_nand_blks_per_die .global c_ftl_nand_planes_per_die .global c_ftl_nand_die_num @@ -22374,6 +22792,7 @@ dump_map_info: .global gNandcVer .global gNandChipMap .global gNandIDataBuf + .global idb_flash_slc_mode .global FlashDdrTunningReadCount .global FlashWaitBusyScheduleEn .global gNandPhyInfo @@ -22420,7 +22839,7 @@ dump_map_info: .global read_retry_cur_offset .section .bss.DeviceCapacity,"aw",%nobits .align 2 - .set .LANCHOR61,. + 0 + .set .LANCHOR60,. + 0 .type DeviceCapacity, %object .size DeviceCapacity, 4 DeviceCapacity: @@ -22460,7 +22879,7 @@ FtlMallocBuffer: .space 1310720 .section .bss.FtlUpdateVaildLpnCount,"aw",%nobits .align 1 - .set .LANCHOR100,. + 0 + .set .LANCHOR99,. + 0 .type FtlUpdateVaildLpnCount, %object .size FtlUpdateVaildLpnCount, 2 FtlUpdateVaildLpnCount: @@ -22492,24 +22911,17 @@ c_ftl_nand_blk_pre_plane: .type c_ftl_nand_blks_per_die, %object .size c_ftl_nand_blks_per_die, 2 c_ftl_nand_blks_per_die: - .space 2 - .section .bss.c_ftl_nand_blks_per_die_shift,"aw",%nobits - .align 1 - .set .LANCHOR52,. + 0 - .type c_ftl_nand_blks_per_die_shift, %object - .size c_ftl_nand_blks_per_die_shift, 2 -c_ftl_nand_blks_per_die_shift: .space 2 .section .bss.c_ftl_nand_byte_pre_oob,"aw",%nobits .align 1 - .set .LANCHOR59,. + 0 + .set .LANCHOR58,. + 0 .type c_ftl_nand_byte_pre_oob, %object .size c_ftl_nand_byte_pre_oob, 2 c_ftl_nand_byte_pre_oob: .space 2 .section .bss.c_ftl_nand_byte_pre_page,"aw",%nobits .align 1 - .set .LANCHOR58,. + 0 + .set .LANCHOR57,. + 0 .type c_ftl_nand_byte_pre_page, %object .size c_ftl_nand_byte_pre_page, 2 c_ftl_nand_byte_pre_page: @@ -22544,28 +22956,28 @@ c_ftl_nand_ext_blk_pre_plane: .space 2 .section .bss.c_ftl_nand_init_sys_blks_per_plane,"aw",%nobits .align 2 - .set .LANCHOR66,. + 0 + .set .LANCHOR65,. + 0 .type c_ftl_nand_init_sys_blks_per_plane, %object .size c_ftl_nand_init_sys_blks_per_plane, 4 c_ftl_nand_init_sys_blks_per_plane: .space 4 .section .bss.c_ftl_nand_l2pmap_ram_region_num,"aw",%nobits .align 1 - .set .LANCHOR68,. + 0 + .set .LANCHOR67,. + 0 .type c_ftl_nand_l2pmap_ram_region_num, %object .size c_ftl_nand_l2pmap_ram_region_num, 2 c_ftl_nand_l2pmap_ram_region_num: .space 2 .section .bss.c_ftl_nand_map_blks_per_plane,"aw",%nobits .align 1 - .set .LANCHOR64,. + 0 + .set .LANCHOR63,. + 0 .type c_ftl_nand_map_blks_per_plane, %object .size c_ftl_nand_map_blks_per_plane, 2 c_ftl_nand_map_blks_per_plane: .space 2 .section .bss.c_ftl_nand_map_region_num,"aw",%nobits .align 1 - .set .LANCHOR67,. + 0 + .set .LANCHOR66,. + 0 .type c_ftl_nand_map_region_num, %object .size c_ftl_nand_map_region_num, 2 c_ftl_nand_map_region_num: @@ -22579,7 +22991,7 @@ c_ftl_nand_max_data_blks: .space 4 .section .bss.c_ftl_nand_max_map_blks,"aw",%nobits .align 2 - .set .LANCHOR65,. + 0 + .set .LANCHOR64,. + 0 .type c_ftl_nand_max_map_blks, %object .size c_ftl_nand_max_map_blks, 4 c_ftl_nand_max_map_blks: @@ -22593,28 +23005,28 @@ c_ftl_nand_max_sys_blks: .space 4 .section .bss.c_ftl_nand_max_vendor_blks,"aw",%nobits .align 1 - .set .LANCHOR62,. + 0 + .set .LANCHOR61,. + 0 .type c_ftl_nand_max_vendor_blks, %object .size c_ftl_nand_max_vendor_blks, 2 c_ftl_nand_max_vendor_blks: .space 2 .section .bss.c_ftl_nand_page_pre_blk,"aw",%nobits .align 1 - .set .LANCHOR53,. + 0 + .set .LANCHOR52,. + 0 .type c_ftl_nand_page_pre_blk, %object .size c_ftl_nand_page_pre_blk, 2 c_ftl_nand_page_pre_blk: .space 2 .section .bss.c_ftl_nand_page_pre_slc_blk,"aw",%nobits .align 1 - .set .LANCHOR54,. + 0 + .set .LANCHOR53,. + 0 .type c_ftl_nand_page_pre_slc_blk, %object .size c_ftl_nand_page_pre_slc_blk, 2 c_ftl_nand_page_pre_slc_blk: .space 2 .section .bss.c_ftl_nand_page_pre_super_blk,"aw",%nobits .align 1 - .set .LANCHOR55,. + 0 + .set .LANCHOR54,. + 0 .type c_ftl_nand_page_pre_super_blk, %object .size c_ftl_nand_page_pre_super_blk, 2 c_ftl_nand_page_pre_super_blk: @@ -22635,21 +23047,21 @@ c_ftl_nand_planes_per_die: .space 2 .section .bss.c_ftl_nand_reserved_blks,"aw",%nobits .align 1 - .set .LANCHOR60,. + 0 + .set .LANCHOR59,. + 0 .type c_ftl_nand_reserved_blks, %object .size c_ftl_nand_reserved_blks, 2 c_ftl_nand_reserved_blks: .space 2 .section .bss.c_ftl_nand_sec_pre_page,"aw",%nobits .align 1 - .set .LANCHOR56,. + 0 + .set .LANCHOR55,. + 0 .type c_ftl_nand_sec_pre_page, %object .size c_ftl_nand_sec_pre_page, 2 c_ftl_nand_sec_pre_page: .space 2 .section .bss.c_ftl_nand_sec_pre_page_shift,"aw",%nobits .align 1 - .set .LANCHOR57,. + 0 + .set .LANCHOR56,. + 0 .type c_ftl_nand_sec_pre_page_shift, %object .size c_ftl_nand_sec_pre_page_shift, 2 c_ftl_nand_sec_pre_page_shift: @@ -22677,7 +23089,7 @@ c_ftl_nand_type: .space 2 .section .bss.c_ftl_nand_vendor_region_num,"aw",%nobits .align 1 - .set .LANCHOR63,. + 0 + .set .LANCHOR62,. + 0 .type c_ftl_nand_vendor_region_num, %object .size c_ftl_nand_vendor_region_num, 2 c_ftl_nand_vendor_region_num: @@ -22691,7 +23103,7 @@ c_ftl_vendor_part_size: .space 2 .section .bss.c_gc_page_buf_num,"aw",%nobits .align 2 - .set .LANCHOR108,. + 0 + .set .LANCHOR107,. + 0 .type c_gc_page_buf_num, %object .size c_gc_page_buf_num, 4 c_gc_page_buf_num: @@ -22718,7 +23130,7 @@ ftl_gc_temp_power_lost_recovery_flag: .space 4 .section .bss.gBbtInfo,"aw",%nobits .align 2 - .set .LANCHOR75,. + 0 + .set .LANCHOR74,. + 0 .type gBbtInfo, %object .size gBbtInfo, 60 gBbtInfo: @@ -22789,7 +23201,7 @@ gFlashProgCheckSpareBuffer: gFlashSdrModeEn: .space 1 .section .bss.gFlashSlcMode,"aw",%nobits - .set .LANCHOR8,. + 0 + .set .LANCHOR15,. + 0 .type gFlashSlcMode, %object .size gFlashSlcMode, 1 gFlashSlcMode: @@ -22923,7 +23335,7 @@ gNandOptPara: .space 32 .section .bss.gNandPhyInfo,"aw",%nobits .align 2 - .set .LANCHOR15,. + 0 + .set .LANCHOR14,. + 0 .type gNandPhyInfo, %object .size gNandPhyInfo, 28 gNandPhyInfo: @@ -22963,7 +23375,7 @@ gReadRetryInfo: .space 852 .section .bss.gSysFreeQueue,"aw",%nobits .align 1 - .set .LANCHOR76,. + 0 + .set .LANCHOR75,. + 0 .type gSysFreeQueue, %object .size gSysFreeQueue, 2056 gSysFreeQueue: @@ -22972,9 +23384,9 @@ gSysFreeQueue: .align 2 .set .LANCHOR209,. + 0 .type gSysInfo, %object - .size gSysInfo, 12 + .size gSysInfo, 16 gSysInfo: - .space 12 + .space 16 .section .bss.gToggleModeClkDiv,"aw",%nobits .align 2 .type gToggleModeClkDiv, %object @@ -23018,7 +23430,7 @@ g_LowFormat: .space 4 .section .bss.g_MaxLbaSector,"aw",%nobits .align 2 - .set .LANCHOR69,. + 0 + .set .LANCHOR68,. + 0 .type g_MaxLbaSector, %object .size g_MaxLbaSector, 4 g_MaxLbaSector: @@ -23032,7 +23444,7 @@ g_MaxLbn: .space 4 .section .bss.g_MaxLpn,"aw",%nobits .align 2 - .set .LANCHOR73,. + 0 + .set .LANCHOR72,. + 0 .type g_MaxLpn, %object .size g_MaxLpn, 4 g_MaxLpn: @@ -23046,14 +23458,14 @@ g_SlcPartLbaEndSector: .space 4 .section .bss.g_VaildLpn,"aw",%nobits .align 2 - .set .LANCHOR101,. + 0 + .set .LANCHOR100,. + 0 .type g_VaildLpn, %object .size g_VaildLpn, 4 g_VaildLpn: .space 4 .section .bss.g_active_superblock,"aw",%nobits .align 2 - .set .LANCHOR92,. + 0 + .set .LANCHOR91,. + 0 .type g_active_superblock, %object .size g_active_superblock, 48 g_active_superblock: @@ -23067,14 +23479,14 @@ g_all_blk_used_slc_mode: .space 4 .section .bss.g_buffer_superblock,"aw",%nobits .align 2 - .set .LANCHOR93,. + 0 + .set .LANCHOR92,. + 0 .type g_buffer_superblock, %object .size g_buffer_superblock, 48 g_buffer_superblock: .space 48 .section .bss.g_cur_erase_blk,"aw",%nobits .align 2 - .set .LANCHOR74,. + 0 + .set .LANCHOR73,. + 0 .type g_cur_erase_blk, %object .size g_cur_erase_blk, 4 g_cur_erase_blk: @@ -23095,7 +23507,7 @@ g_ect_tbl_power_up_flush: .space 2 .section .bss.g_flash_read_only_en,"aw",%nobits .align 2 - .set .LANCHOR77,. + 0 + .set .LANCHOR76,. + 0 .type g_flash_read_only_en, %object .size g_flash_read_only_en, 4 g_flash_read_only_en: @@ -23116,21 +23528,21 @@ g_ftl_nand_free_count: .space 4 .section .bss.g_gc_bad_block_gc_index,"aw",%nobits .align 1 - .set .LANCHOR119,. + 0 + .set .LANCHOR118,. + 0 .type g_gc_bad_block_gc_index, %object .size g_gc_bad_block_gc_index, 2 g_gc_bad_block_gc_index: .space 2 .section .bss.g_gc_bad_block_temp_num,"aw",%nobits .align 1 - .set .LANCHOR117,. + 0 + .set .LANCHOR116,. + 0 .type g_gc_bad_block_temp_num, %object .size g_gc_bad_block_temp_num, 2 g_gc_bad_block_temp_num: .space 2 .section .bss.g_gc_bad_block_temp_tbl,"aw",%nobits .align 1 - .set .LANCHOR118,. + 0 + .set .LANCHOR117,. + 0 .type g_gc_bad_block_temp_tbl, %object .size g_gc_bad_block_temp_tbl, 34 g_gc_bad_block_temp_tbl: @@ -23144,7 +23556,7 @@ g_gc_blk_index: .space 2 .section .bss.g_gc_blk_num,"aw",%nobits .align 1 - .set .LANCHOR110,. + 0 + .set .LANCHOR109,. + 0 .type g_gc_blk_num, %object .size g_gc_blk_num, 2 g_gc_blk_num: @@ -23193,42 +23605,42 @@ g_gc_merge_free_blk_threshold: .space 2 .section .bss.g_gc_next_blk,"aw",%nobits .align 1 - .set .LANCHOR113,. + 0 + .set .LANCHOR112,. + 0 .type g_gc_next_blk, %object .size g_gc_next_blk, 2 g_gc_next_blk: .space 2 .section .bss.g_gc_next_blk_1,"aw",%nobits .align 1 - .set .LANCHOR114,. + 0 + .set .LANCHOR113,. + 0 .type g_gc_next_blk_1, %object .size g_gc_next_blk_1, 2 g_gc_next_blk_1: .space 2 .section .bss.g_gc_next_blk_2,"aw",%nobits .align 1 - .set .LANCHOR115,. + 0 + .set .LANCHOR114,. + 0 .type g_gc_next_blk_2, %object .size g_gc_next_blk_2, 2 g_gc_next_blk_2: .space 2 .section .bss.g_gc_next_blk_3,"aw",%nobits .align 1 - .set .LANCHOR116,. + 0 + .set .LANCHOR115,. + 0 .type g_gc_next_blk_3, %object .size g_gc_next_blk_3, 2 g_gc_next_blk_3: .space 2 .section .bss.g_gc_num_req,"aw",%nobits .align 2 - .set .LANCHOR103,. + 0 + .set .LANCHOR102,. + 0 .type g_gc_num_req, %object .size g_gc_num_req, 4 g_gc_num_req: .space 4 .section .bss.g_gc_page_offset,"aw",%nobits .align 1 - .set .LANCHOR111,. + 0 + .set .LANCHOR110,. + 0 .type g_gc_page_offset, %object .size g_gc_page_offset, 2 g_gc_page_offset: @@ -23262,7 +23674,7 @@ g_gc_superblock: .space 48 .section .bss.g_gc_temp_superblock,"aw",%nobits .align 2 - .set .LANCHOR94,. + 0 + .set .LANCHOR93,. + 0 .type g_gc_temp_superblock, %object .size g_gc_temp_superblock, 48 g_gc_temp_superblock: @@ -23290,13 +23702,13 @@ g_inkDie_check_enable: .space 4 .section .bss.g_l2p_last_update_region_id,"aw",%nobits .align 1 - .set .LANCHOR98,. + 0 + .set .LANCHOR97,. + 0 .type g_l2p_last_update_region_id, %object .size g_l2p_last_update_region_id, 2 g_l2p_last_update_region_id: .space 2 .section .bss.g_maxRegNum,"aw",%nobits - .set .LANCHOR13,. + 0 + .set .LANCHOR12,. + 0 .type g_maxRegNum, %object .size g_maxRegNum, 1 g_maxRegNum: @@ -23323,42 +23735,42 @@ g_min_erase_count: .space 4 .section .bss.g_nandc_version_data,"aw",%nobits .align 2 - .set .LANCHOR29,. + 0 + .set .LANCHOR119,. + 0 .type g_nandc_version_data, %object .size g_nandc_version_data, 4 g_nandc_version_data: .space 4 .section .bss.g_num_data_superblocks,"aw",%nobits .align 1 - .set .LANCHOR86,. + 0 + .set .LANCHOR85,. + 0 .type g_num_data_superblocks, %object .size g_num_data_superblocks, 2 g_num_data_superblocks: .space 2 .section .bss.g_num_free_superblocks,"aw",%nobits .align 1 - .set .LANCHOR89,. + 0 + .set .LANCHOR88,. + 0 .type g_num_free_superblocks, %object .size g_num_free_superblocks, 2 g_num_free_superblocks: .space 2 .section .bss.g_page_map_check_enable,"aw",%nobits .align 1 - .set .LANCHOR70,. + 0 + .set .LANCHOR69,. + 0 .type g_page_map_check_enable, %object .size g_page_map_check_enable, 2 g_page_map_check_enable: .space 2 .section .bss.g_power_lost_ecc_error_blk,"aw",%nobits .align 1 - .set .LANCHOR235,. + 0 + .set .LANCHOR234,. + 0 .type g_power_lost_ecc_error_blk, %object .size g_power_lost_ecc_error_blk, 2 g_power_lost_ecc_error_blk: .space 2 .section .bss.g_power_lost_recovery_flag,"aw",%nobits .align 1 - .set .LANCHOR236,. + 0 + .set .LANCHOR235,. + 0 .type g_power_lost_recovery_flag, %object .size g_power_lost_recovery_flag, 2 g_power_lost_recovery_flag: @@ -23372,14 +23784,14 @@ g_recovery_page_min_ver: .space 4 .section .bss.g_recovery_page_num,"aw",%nobits .align 2 - .set .LANCHOR237,. + 0 + .set .LANCHOR236,. + 0 .type g_recovery_page_num, %object .size g_recovery_page_num, 4 g_recovery_page_num: .space 4 .section .bss.g_recovery_ppa_tbl,"aw",%nobits .align 2 - .set .LANCHOR238,. + 0 + .set .LANCHOR237,. + 0 .type g_recovery_ppa_tbl, %object .size g_recovery_ppa_tbl, 128 g_recovery_ppa_tbl: @@ -23392,7 +23804,7 @@ g_recovery_ppa_tbl: g_req_cache: .space 4 .section .bss.g_retryMode,"aw",%nobits - .set .LANCHOR10,. + 0 + .set .LANCHOR9,. + 0 .type g_retryMode, %object .size g_retryMode, 1 g_retryMode: @@ -23412,7 +23824,7 @@ g_sys_ext_data: .space 512 .section .bss.g_sys_save_data,"aw",%nobits .align 2 - .set .LANCHOR81,. + 0 + .set .LANCHOR80,. + 0 .type g_sys_save_data, %object .size g_sys_save_data, 48 g_sys_save_data: @@ -23503,14 +23915,14 @@ g_totle_swl_count: .space 4 .section .bss.g_totle_sys_slc_erase_count,"aw",%nobits .align 2 - .set .LANCHOR80,. + 0 + .set .LANCHOR79,. + 0 .type g_totle_sys_slc_erase_count, %object .size g_totle_sys_slc_erase_count, 4 g_totle_sys_slc_erase_count: .space 4 .section .bss.g_totle_vendor_block,"aw",%nobits .align 1 - .set .LANCHOR71,. + 0 + .set .LANCHOR70,. + 0 .type g_totle_vendor_block, %object .size g_totle_vendor_block, 2 g_totle_vendor_block: @@ -23531,7 +23943,7 @@ g_totle_write_sector: .space 4 .section .bss.gc_discard_updated,"aw",%nobits .align 2 - .set .LANCHOR232,. + 0 + .set .LANCHOR231,. + 0 .type gc_discard_updated, %object .size gc_discard_updated, 4 gc_discard_updated: @@ -23592,14 +24004,14 @@ gp_flash_check_buf: .space 262144 .section .bss.gp_gc_page_buf_info,"aw",%nobits .align 2 - .set .LANCHOR104,. + 0 + .set .LANCHOR103,. + 0 .type gp_gc_page_buf_info, %object .size gp_gc_page_buf_info, 4 gp_gc_page_buf_info: .space 4 .section .bss.gp_last_act_superblock,"aw",%nobits .align 2 - .set .LANCHOR230,. + 0 + .set .LANCHOR229,. + 0 .type gp_last_act_superblock, %object .size gp_last_act_superblock, 4 gp_last_act_superblock: @@ -23610,6 +24022,13 @@ gp_last_act_superblock: .size idb_buf, 262144 idb_buf: .space 262144 + .section .bss.idb_flash_slc_mode,"aw",%nobits + .align 2 + .set .LANCHOR29,. + 0 + .type idb_flash_slc_mode, %object + .size idb_flash_slc_mode, 4 +idb_flash_slc_mode: + .space 4 .section .bss.idb_need_write_back,"aw",%nobits .align 2 .set .LANCHOR154,. + 0 @@ -23633,63 +24052,63 @@ p_blk_mode_table: .space 4 .section .bss.p_data_block_list_head,"aw",%nobits .align 2 - .set .LANCHOR83,. + 0 + .set .LANCHOR82,. + 0 .type p_data_block_list_head, %object .size p_data_block_list_head, 4 p_data_block_list_head: .space 4 .section .bss.p_data_block_list_table,"aw",%nobits .align 2 - .set .LANCHOR82,. + 0 + .set .LANCHOR81,. + 0 .type p_data_block_list_table, %object .size p_data_block_list_table, 4 p_data_block_list_table: .space 4 .section .bss.p_data_block_list_tail,"aw",%nobits .align 2 - .set .LANCHOR85,. + 0 + .set .LANCHOR84,. + 0 .type p_data_block_list_tail, %object .size p_data_block_list_tail, 4 p_data_block_list_tail: .space 4 .section .bss.p_erase_count_table,"aw",%nobits .align 2 - .set .LANCHOR79,. + 0 + .set .LANCHOR78,. + 0 .type p_erase_count_table, %object .size p_erase_count_table, 4 p_erase_count_table: .space 4 .section .bss.p_free_data_block_list_head,"aw",%nobits .align 2 - .set .LANCHOR88,. + 0 + .set .LANCHOR87,. + 0 .type p_free_data_block_list_head, %object .size p_free_data_block_list_head, 4 p_free_data_block_list_head: .space 4 .section .bss.p_gc_blk_tbl,"aw",%nobits .align 2 - .set .LANCHOR109,. + 0 + .set .LANCHOR108,. + 0 .type p_gc_blk_tbl, %object .size p_gc_blk_tbl, 4 p_gc_blk_tbl: .space 4 .section .bss.p_gc_data_buf,"aw",%nobits .align 2 - .set .LANCHOR105,. + 0 + .set .LANCHOR104,. + 0 .type p_gc_data_buf, %object .size p_gc_data_buf, 4 p_gc_data_buf: .space 4 .section .bss.p_gc_page_info,"aw",%nobits .align 2 - .set .LANCHOR112,. + 0 + .set .LANCHOR111,. + 0 .type p_gc_page_info, %object .size p_gc_page_info, 4 p_gc_page_info: .space 4 .section .bss.p_gc_spare_buf,"aw",%nobits .align 2 - .set .LANCHOR106,. + 0 + .set .LANCHOR105,. + 0 .type p_gc_spare_buf, %object .size p_gc_spare_buf, 4 p_gc_spare_buf: @@ -23724,7 +24143,7 @@ p_l2p_map_buf: .space 4 .section .bss.p_l2p_ram_map,"aw",%nobits .align 2 - .set .LANCHOR97,. + 0 + .set .LANCHOR96,. + 0 .type p_l2p_ram_map, %object .size p_l2p_ram_map, 4 p_l2p_ram_map: @@ -23806,14 +24225,14 @@ p_valid_page_count_check_table: .space 4 .section .bss.p_valid_page_count_table,"aw",%nobits .align 2 - .set .LANCHOR84,. + 0 + .set .LANCHOR83,. + 0 .type p_valid_page_count_table, %object .size p_valid_page_count_table, 4 p_valid_page_count_table: .space 4 .section .bss.p_vendor_block_table,"aw",%nobits .align 2 - .set .LANCHOR72,. + 0 + .set .LANCHOR71,. + 0 .type p_vendor_block_table, %object .size p_vendor_block_table, 4 p_vendor_block_table: @@ -23854,14 +24273,14 @@ read_retry_cur_offset: .space 4 .section .bss.req_erase,"aw",%nobits .align 2 - .set .LANCHOR78,. + 0 + .set .LANCHOR77,. + 0 .type req_erase, %object .size req_erase, 4 req_erase: .space 4 .section .bss.req_gc,"aw",%nobits .align 2 - .set .LANCHOR107,. + 0 + .set .LANCHOR106,. + 0 .type req_gc, %object .size req_gc, 4 req_gc: @@ -23917,7 +24336,7 @@ LastWritenPbaAddr: .align 1 .set .LANCHOR142,. + 0 .type NandFlashParaTbl, %object - .size NandFlashParaTbl, 2464 + .size NandFlashParaTbl, 2592 NandFlashParaTbl: .byte 6 .byte 44 @@ -24494,6 +24913,58 @@ NandFlashParaTbl: .byte 5 .byte 44 .byte -124 + .byte 68 + .byte 50 + .byte -86 + .byte 0 + .byte 4 + .byte 1 + .byte 32 + .short 512 + .byte 2 + .byte 1 + .short 2184 + .short 1479 + .byte 5 + .byte 19 + .byte 60 + .byte 32 + .byte 1 + .byte 0 + .byte 4 + .byte 0 + .byte 1 + .byte 0 + .space 4 + .byte 5 + .byte 44 + .byte -124 + .byte 68 + .byte 52 + .byte -86 + .byte 0 + .byte 4 + .byte 1 + .byte 32 + .short 512 + .byte 2 + .byte 1 + .short 2184 + .short 1479 + .byte 5 + .byte 19 + .byte 60 + .byte 32 + .byte 1 + .byte 0 + .byte 4 + .byte 0 + .byte 1 + .byte 0 + .space 4 + .byte 5 + .byte 44 + .byte -124 .byte -60 .byte 52 .byte -86 @@ -24543,6 +25014,32 @@ NandFlashParaTbl: .byte 1 .byte 0 .space 4 + .byte 5 + .byte 44 + .byte -124 + .byte 100 + .byte 60 + .byte -87 + .byte 0 + .byte 4 + .byte 1 + .byte 32 + .short 512 + .byte 2 + .byte 2 + .short 1024 + .short 479 + .byte 3 + .byte 17 + .byte 40 + .byte 32 + .byte 1 + .byte 0 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .space 4 .byte 6 .byte -83 .byte -34 @@ -24882,6 +25379,32 @@ NandFlashParaTbl: .byte 0 .space 4 .byte 6 + .byte -83 + .byte 58 + .byte 20 + .byte 3 + .byte 8 + .byte 80 + .byte 2 + .byte 1 + .byte 32 + .short 388 + .byte 2 + .byte 2 + .short 1362 + .short 473 + .byte 9 + .byte 8 + .byte 40 + .byte 32 + .byte 3 + .byte 1 + .byte 3 + .byte 0 + .byte 0 + .byte 0 + .space 4 + .byte 6 .byte -119 .byte 100 .byte 68 @@ -25078,7 +25601,7 @@ NandFlashParaTbl: .byte 1 .short 1024 .short 455 - .byte 3 + .byte 4 .byte 17 .byte 40 .byte 32 @@ -26003,7 +26526,7 @@ NandOptPara: .byte 0 .space 14 .section .data.SamsungRefValue,"aw",%progbits - .set .LANCHOR14,. + 0 + .set .LANCHOR13,. + 0 .type SamsungRefValue, %object .size SamsungRefValue, 64 SamsungRefValue: @@ -26072,7 +26595,7 @@ SamsungRefValue: .byte 2 .byte 0 .section .data.Toshiba15RefValue,"aw",%progbits - .set .LANCHOR11,. + 0 + .set .LANCHOR10,. + 0 .type Toshiba15RefValue, %object .size Toshiba15RefValue, 95 Toshiba15RefValue: @@ -26172,7 +26695,7 @@ Toshiba15RefValue: .byte 114 .byte 0 .section .data.ToshibaA19RefValue,"aw",%progbits - .set .LANCHOR9,. + 0 + .set .LANCHOR8,. + 0 .type ToshibaA19RefValue, %object .size ToshibaA19RefValue, 45 ToshibaA19RefValue: @@ -26222,7 +26745,7 @@ ToshibaA19RefValue: .byte 124 .byte 0 .section .data.ToshibaRefValue,"aw",%progbits - .set .LANCHOR12,. + 0 + .set .LANCHOR11,. + 0 .type ToshibaRefValue, %object .size ToshibaRefValue, 8 ToshibaRefValue: @@ -26236,14 +26759,14 @@ ToshibaRefValue: .byte 112 .section .data.ftl_gc_temp_block_bops_scan_page_addr,"aw",%progbits .align 1 - .set .LANCHOR226,. + 0 + .set .LANCHOR238,. + 0 .type ftl_gc_temp_block_bops_scan_page_addr, %object .size ftl_gc_temp_block_bops_scan_page_addr, 2 ftl_gc_temp_block_bops_scan_page_addr: .short -1 .section .data.gFtlInitStatus,"aw",%progbits .align 2 - .set .LANCHOR231,. + 0 + .set .LANCHOR230,. + 0 .type gFtlInitStatus, %object .size gFtlInitStatus, 4 gFtlInitStatus: @@ -26506,7 +27029,7 @@ refValueDefault: .LC32: .ascii "prog read d error: = %x %x %x\012\000" .section .rodata.FlashReadFacBbtData.str1.1,"aMS",%progbits,1 -.LC53: +.LC52: .ascii "BBT:\000" .section .rodata.FlashReadIdbDataRaw.str1.1,"aMS",%progbits,1 .LC14: @@ -26536,13 +27059,13 @@ refValueDefault: .LC35: .ascii "FtlBbmTblFlush error = %x error count = %d\012\000" .section .rodata.FtlCheckVpc.str1.1,"aMS",%progbits,1 -.LC73: - .ascii "vpc1\000" .LC74: - .ascii "vpc2\000" + .ascii "vpc1\000" .LC75: - .ascii "FtlCheckVpc2 %x = %x %x\012\000" + .ascii "vpc2\000" .LC76: + .ascii "FtlCheckVpc2 %x = %x %x\012\000" +.LC77: .ascii "free blk vpc error %x = %x %x\012\000" .section .rodata.FtlDumpBlockInfo.str1.1,"aMS",%progbits,1 .LC45: @@ -26555,10 +27078,10 @@ refValueDefault: .ascii "id = %x,%x addr= %x,spare= %x %x %x %x data=%x %x\012" .ascii "\000" .section .rodata.FtlDumpSysBlock.str1.1,"aMS",%progbits,1 -.LC77: +.LC78: .ascii "id = %x,%x addr= %x,spare= %x %x %x %x data = %x\012" .ascii "\000" -.LC78: +.LC79: .ascii ":\000" .section .rodata.FtlFreeSysBlkQueueOut.str1.1,"aMS",%progbits,1 .LC3: @@ -26567,18 +27090,20 @@ refValueDefault: .ascii "FtlFreeSysBlkQueueOut = %x, free count = %d, error\012" .ascii "\000" .section .rodata.FtlGcFreeTempBlock.str1.1,"aMS",%progbits,1 -.LC64: +.LC65: .ascii "GC des block %x done\012\000" .section .rodata.FtlGcScanTempBlk.str1.1,"aMS",%progbits,1 -.LC52: +.LC63: + .ascii "FtlGcScanTempBlk Error ID %x %x!!!!!!! \012\000" +.LC64: .ascii "FtlGcScanTempBlkError ID %x %x!!!!!!!\012\000" .section .rodata.FtlInit.str1.1,"aMS",%progbits,1 -.LC66: - .ascii "FTL version: 5.0.50 20180905\000" .LC67: + .ascii "FTL version: 5.0.53 20190107\000" +.LC68: .ascii "...%s: no bad block mapping table, format device\012" .ascii "\000" -.LC68: +.LC69: .ascii "...%s FtlSysBlkInit error ,format device!\012\000" .section .rodata.FtlLoadEctTbl.str1.1,"aMS",%progbits,1 .LC43: @@ -26589,14 +27114,14 @@ refValueDefault: .LC41: .ascii "FtlMapWritePage error = %x error count = %d\012\000" .section .rodata.FtlProgPages.str1.1,"aMS",%progbits,1 -.LC57: +.LC56: .ascii "Ftlwrite decrement_vpc_count %x = %d\012\000" .section .rodata.FtlRecoverySuperblock.str1.1,"aMS",%progbits,1 -.LC61: +.LC60: .ascii "RSB refresh addr %x\012\000" -.LC62: +.LC61: .ascii "spuer block %x vpn is 0\012 \000" -.LC63: +.LC62: .ascii "g_recovery_ppa %x ver %x\012 \000" .section .rodata.FtlScanAllBlock.str1.1,"aMS",%progbits,1 .LC49: @@ -26614,17 +27139,17 @@ refValueDefault: .LC38: .ascii "FtlVpcTblFlush error = %x error count = %d\012\000" .section .rodata.FtlWrite.str1.1,"aMS",%progbits,1 -.LC72: +.LC73: .ascii "FtlWrite: lpa error:%x %x\012\000" .section .rodata.Ftl_load_ext_data.str1.1,"aMS",%progbits,1 .LC44: .ascii "slc mode\000" .section .rodata.Ftlscanalldata.str1.1,"aMS",%progbits,1 -.LC58: +.LC57: .ascii "Ftlscanalldata = %x\012\000" -.LC59: +.LC58: .ascii "scan lpa = %x ppa= %x\012\000" -.LC60: +.LC59: .ascii "lba = %x,addr= %x,spare= %x %x %x %x data=%x %x\012" .ascii "\000" .section .rodata.HynixGetReadRetryDefault.str1.1,"aMS",%progbits,1 @@ -26642,203 +27167,203 @@ refValueDefault: .section .rodata.MicronReadRetrial.str1.1,"aMS",%progbits,1 .LC13: .ascii "micron RR %d row=%x,count %d,status=%d\012\000" - .section .rodata.__func__.10408,"a",%progbits + .section .rodata.__func__.10518,"a",%progbits .set .LANCHOR245,. + 0 - .type __func__.10408, %object - .size __func__.10408, 8 -__func__.10408: + .type __func__.10518, %object + .size __func__.10518, 8 +__func__.10518: .ascii "FtlInit\000" - .section .rodata.__func__.10468,"a",%progbits - .set .LANCHOR229,. + 0 - .type __func__.10468, %object - .size __func__.10468, 13 -__func__.10468: - .ascii "FtlProgPages\000" - .section .rodata.__func__.10494,"a",%progbits - .set .LANCHOR247,. + 0 - .type __func__.10494, %object - .size __func__.10494, 9 -__func__.10494: - .ascii "FtlWrite\000" - .section .rodata.__func__.10577,"a",%progbits - .set .LANCHOR124,. + 0 - .type __func__.10577, %object - .size __func__.10577, 14 -__func__.10577: - .ascii "FtlBbt2Bitmap\000" - .section .rodata.__func__.10623,"a",%progbits - .set .LANCHOR211,. + 0 - .type __func__.10623, %object - .size __func__.10623, 11 -__func__.10623: - .ascii "FtlLoadBbt\000" - .section .rodata.__func__.10716,"a",%progbits - .set .LANCHOR90,. + 0 - .type __func__.10716, %object - .size __func__.10716, 17 -__func__.10716: - .ascii "INSERT_FREE_LIST\000" - .section .rodata.__func__.10720,"a",%progbits - .set .LANCHOR87,. + 0 - .type __func__.10720, %object - .size __func__.10720, 17 -__func__.10720: - .ascii "INSERT_DATA_LIST\000" - .section .rodata.__func__.10757,"a",%progbits - .set .LANCHOR91,. + 0 - .type __func__.10757, %object - .size __func__.10757, 17 -__func__.10757: - .ascii "List_remove_node\000" - .section .rodata.__func__.10787,"a",%progbits - .set .LANCHOR95,. + 0 - .type __func__.10787, %object - .size __func__.10787, 22 -__func__.10787: - .ascii "List_update_data_list\000" - .section .rodata.__func__.10794,"a",%progbits + .section .rodata.__func__.10578,"a",%progbits .set .LANCHOR228,. + 0 - .type __func__.10794, %object - .size __func__.10794, 20 -__func__.10794: - .ascii "ftl_load_l2p_region\000" - .section .rodata.__func__.10825,"a",%progbits - .set .LANCHOR96,. + 0 - .type __func__.10825, %object - .size __func__.10825, 26 -__func__.10825: - .ascii "ftl_map_blk_alloc_new_blk\000" - .section .rodata.__func__.10835,"a",%progbits - .set .LANCHOR212,. + 0 - .type __func__.10835, %object - .size __func__.10835, 15 -__func__.10835: - .ascii "ftl_map_blk_gc\000" - .section .rodata.__func__.10848,"a",%progbits - .set .LANCHOR213,. + 0 - .type __func__.10848, %object - .size __func__.10848, 31 -__func__.10848: - .ascii "Ftl_write_map_blk_to_last_page\000" - .section .rodata.__func__.10861,"a",%progbits - .set .LANCHOR214,. + 0 - .type __func__.10861, %object - .size __func__.10861, 16 -__func__.10861: - .ascii "FtlMapWritePage\000" - .section .rodata.__func__.10881,"a",%progbits - .set .LANCHOR99,. + 0 - .type __func__.10881, %object - .size __func__.10881, 22 -__func__.10881: - .ascii "select_l2p_ram_region\000" + .type __func__.10578, %object + .size __func__.10578, 13 +__func__.10578: + .ascii "FtlProgPages\000" + .section .rodata.__func__.10604,"a",%progbits + .set .LANCHOR247,. + 0 + .type __func__.10604, %object + .size __func__.10604, 9 +__func__.10604: + .ascii "FtlWrite\000" + .section .rodata.__func__.10687,"a",%progbits + .set .LANCHOR124,. + 0 + .type __func__.10687, %object + .size __func__.10687, 14 +__func__.10687: + .ascii "FtlBbt2Bitmap\000" + .section .rodata.__func__.10733,"a",%progbits + .set .LANCHOR211,. + 0 + .type __func__.10733, %object + .size __func__.10733, 11 +__func__.10733: + .ascii "FtlLoadBbt\000" + .section .rodata.__func__.10826,"a",%progbits + .set .LANCHOR89,. + 0 + .type __func__.10826, %object + .size __func__.10826, 17 +__func__.10826: + .ascii "INSERT_FREE_LIST\000" + .section .rodata.__func__.10830,"a",%progbits + .set .LANCHOR86,. + 0 + .type __func__.10830, %object + .size __func__.10830, 17 +__func__.10830: + .ascii "INSERT_DATA_LIST\000" + .section .rodata.__func__.10867,"a",%progbits + .set .LANCHOR90,. + 0 + .type __func__.10867, %object + .size __func__.10867, 17 +__func__.10867: + .ascii "List_remove_node\000" .section .rodata.__func__.10897,"a",%progbits - .set .LANCHOR227,. + 0 + .set .LANCHOR94,. + 0 .type __func__.10897, %object - .size __func__.10897, 9 + .size __func__.10897, 22 __func__.10897: + .ascii "List_update_data_list\000" + .section .rodata.__func__.10904,"a",%progbits + .set .LANCHOR227,. + 0 + .type __func__.10904, %object + .size __func__.10904, 20 +__func__.10904: + .ascii "ftl_load_l2p_region\000" + .section .rodata.__func__.10935,"a",%progbits + .set .LANCHOR95,. + 0 + .type __func__.10935, %object + .size __func__.10935, 26 +__func__.10935: + .ascii "ftl_map_blk_alloc_new_blk\000" + .section .rodata.__func__.10945,"a",%progbits + .set .LANCHOR212,. + 0 + .type __func__.10945, %object + .size __func__.10945, 15 +__func__.10945: + .ascii "ftl_map_blk_gc\000" + .section .rodata.__func__.10958,"a",%progbits + .set .LANCHOR213,. + 0 + .type __func__.10958, %object + .size __func__.10958, 31 +__func__.10958: + .ascii "Ftl_write_map_blk_to_last_page\000" + .section .rodata.__func__.10971,"a",%progbits + .set .LANCHOR214,. + 0 + .type __func__.10971, %object + .size __func__.10971, 16 +__func__.10971: + .ascii "FtlMapWritePage\000" + .section .rodata.__func__.10991,"a",%progbits + .set .LANCHOR98,. + 0 + .type __func__.10991, %object + .size __func__.10991, 22 +__func__.10991: + .ascii "select_l2p_ram_region\000" + .section .rodata.__func__.11007,"a",%progbits + .set .LANCHOR226,. + 0 + .type __func__.11007, %object + .size __func__.11007, 9 +__func__.11007: .ascii "log2phys\000" - .section .rodata.__func__.10959,"a",%progbits + .section .rodata.__func__.11069,"a",%progbits .set .LANCHOR210,. + 0 - .type __func__.10959, %object - .size __func__.10959, 15 -__func__.10959: + .type __func__.11069, %object + .size __func__.11069, 15 +__func__.11069: .ascii "FtlVpcTblFlush\000" - .section .rodata.__func__.10978,"a",%progbits + .section .rodata.__func__.11088,"a",%progbits .set .LANCHOR220,. + 0 - .type __func__.10978, %object - .size __func__.10978, 14 -__func__.10978: + .type __func__.11088, %object + .size __func__.11088, 14 +__func__.11088: .ascii "FtlScanSysBlk\000" - .section .rodata.__func__.11032,"a",%progbits + .section .rodata.__func__.11143,"a",%progbits .set .LANCHOR221,. + 0 - .type __func__.11032, %object - .size __func__.11032, 15 -__func__.11032: + .type __func__.11143, %object + .size __func__.11143, 15 +__func__.11143: .ascii "FtlLoadSysInfo\000" - .section .rodata.__func__.11043,"a",%progbits + .section .rodata.__func__.11154,"a",%progbits .set .LANCHOR248,. + 0 - .type __func__.11043, %object - .size __func__.11043, 12 -__func__.11043: + .type __func__.11154, %object + .size __func__.11154, 12 +__func__.11154: .ascii "FtlCheckVpc\000" - .section .rodata.__func__.11075,"a",%progbits + .section .rodata.__func__.11186,"a",%progbits .set .LANCHOR224,. + 0 - .type __func__.11075, %object - .size __func__.11075, 17 -__func__.11075: + .type __func__.11186, %object + .size __func__.11186, 17 +__func__.11186: .ascii "FtlDumpBlockInfo\000" - .section .rodata.__func__.11094,"a",%progbits + .section .rodata.__func__.11205,"a",%progbits .set .LANCHOR225,. + 0 - .type __func__.11094, %object - .size __func__.11094, 16 -__func__.11094: + .type __func__.11205, %object + .size __func__.11205, 16 +__func__.11205: .ascii "FtlScanAllBlock\000" - .section .rodata.__func__.11199,"a",%progbits - .set .LANCHOR233,. + 0 - .type __func__.11199, %object - .size __func__.11199, 16 -__func__.11199: + .section .rodata.__func__.11310,"a",%progbits + .set .LANCHOR232,. + 0 + .type __func__.11310, %object + .size __func__.11310, 16 +__func__.11310: .ascii "FtlReUsePrevPpa\000" - .section .rodata.__func__.11232,"a",%progbits - .set .LANCHOR234,. + 0 - .type __func__.11232, %object - .size __func__.11232, 22 -__func__.11232: + .section .rodata.__func__.11343,"a",%progbits + .set .LANCHOR233,. + 0 + .type __func__.11343, %object + .size __func__.11343, 22 +__func__.11343: .ascii "FtlRecoverySuperblock\000" - .section .rodata.__func__.11286,"a",%progbits - .set .LANCHOR102,. + 0 - .type __func__.11286, %object - .size __func__.11286, 16 -__func__.11286: - .ascii "make_superblock\000" - .section .rodata.__func__.11306,"a",%progbits - .set .LANCHOR140,. + 0 - .type __func__.11306, %object - .size __func__.11306, 18 -__func__.11306: - .ascii "SupperBlkListInit\000" - .section .rodata.__func__.11383,"a",%progbits - .set .LANCHOR203,. + 0 - .type __func__.11383, %object - .size __func__.11383, 25 -__func__.11383: - .ascii "allocate_data_superblock\000" .section .rodata.__func__.11397,"a",%progbits - .set .LANCHOR219,. + 0 + .set .LANCHOR101,. + 0 .type __func__.11397, %object - .size __func__.11397, 29 + .size __func__.11397, 16 __func__.11397: + .ascii "make_superblock\000" + .section .rodata.__func__.11417,"a",%progbits + .set .LANCHOR140,. + 0 + .type __func__.11417, %object + .size __func__.11417, 18 +__func__.11417: + .ascii "SupperBlkListInit\000" + .section .rodata.__func__.11494,"a",%progbits + .set .LANCHOR203,. + 0 + .type __func__.11494, %object + .size __func__.11494, 25 +__func__.11494: + .ascii "allocate_data_superblock\000" + .section .rodata.__func__.11508,"a",%progbits + .set .LANCHOR219,. + 0 + .type __func__.11508, %object + .size __func__.11508, 29 +__func__.11508: .ascii "allocate_new_data_superblock\000" - .section .rodata.__func__.11403,"a",%progbits + .section .rodata.__func__.11514,"a",%progbits .set .LANCHOR208,. + 0 - .type __func__.11403, %object - .size __func__.11403, 19 -__func__.11403: + .type __func__.11514, %object + .size __func__.11514, 19 +__func__.11514: .ascii "get_new_active_ppa\000" - .section .rodata.__func__.11414,"a",%progbits + .section .rodata.__func__.11525,"a",%progbits .set .LANCHOR206,. + 0 - .type __func__.11414, %object - .size __func__.11414, 16 -__func__.11414: + .type __func__.11525, %object + .size __func__.11525, 16 +__func__.11525: .ascii "update_vpc_list\000" - .section .rodata.__func__.11419,"a",%progbits + .section .rodata.__func__.11530,"a",%progbits .set .LANCHOR207,. + 0 - .type __func__.11419, %object - .size __func__.11419, 20 -__func__.11419: + .type __func__.11530, %object + .size __func__.11530, 20 +__func__.11530: .ascii "decrement_vpc_count\000" - .section .rodata.__func__.11487,"a",%progbits + .section .rodata.__func__.11598,"a",%progbits .set .LANCHOR239,. + 0 - .type __func__.11487, %object - .size __func__.11487, 19 -__func__.11487: + .type __func__.11598, %object + .size __func__.11598, 19 +__func__.11598: .ascii "FtlGcFreeTempBlock\000" - .section .rodata.__func__.11581,"a",%progbits + .section .rodata.__func__.11697,"a",%progbits .set .LANCHOR243,. + 0 - .type __func__.11581, %object - .size __func__.11581, 23 -__func__.11581: + .type __func__.11697, %object + .size __func__.11697, 23 +__func__.11697: .ascii "rk_ftl_garbage_collect\000" .section .rodata.decrement_vpc_count.str1.1,"aMS",%progbits,1 .LC36: @@ -26846,19 +27371,19 @@ __func__.11581: .LC37: .ascii "decrement_vpc_count %x = %d in free list\012\000" .section .rodata.dump_map_info.str1.1,"aMS",%progbits,1 -.LC79: +.LC80: .ascii "phyBlk = %x,addr= %x,spare= %x %x %x %x data=%x %x\012" .ascii "\000" -.LC80: - .ascii "Mblk:\000" .LC81: - .ascii "L2P:\000" + .ascii "Mblk:\000" .LC82: + .ascii "L2P:\000" +.LC83: .ascii "L2PC:\000" .section .rodata.ftl_fix_nand_power_lost_error.str1.1,"aMS",%progbits,1 -.LC70: - .ascii "fix power lost blk = %x vpc=%x\012\000" .LC71: + .ascii "fix power lost blk = %x vpc=%x\012\000" +.LC72: .ascii "erase power lost blk = %x vpc=%x\012\000" .section .rodata.ftl_map_blk_alloc_new_blk.str1.1,"aMS",%progbits,1 .LC8: @@ -26874,17 +27399,17 @@ __func__.11581: .LC17: .ascii "write_idblock fail! %x\012\000" .section .rodata.log2phys.str1.1,"aMS",%progbits,1 -.LC54: +.LC53: .ascii "region_id = %x phyAddr = %x\012\000" -.LC55: +.LC54: .ascii "map_ppn:\000" -.LC56: +.LC55: .ascii "load_l2p_region refresh = %x phyAddr = %x\012\000" .section .rodata.rk_ftl_garbage_collect.str1.1,"aMS",%progbits,1 -.LC65: +.LC66: .ascii "g_gc_superblock_free %x %x %x %x %x\012\000" .section .rodata.rk_ftl_init.str1.1,"aMS",%progbits,1 -.LC69: +.LC70: .ascii "FtlInit %x\012\000" .section .rodata.rknand_print_hex.str1.1,"aMS",%progbits,1 .LC18: diff --git a/drivers/rknand/rk_ftl_arm_v8.S b/drivers/rknand/rk_ftl_arm_v8.S index d2d1e42d45..06eaf15721 100644 --- a/drivers/rknand/rk_ftl_arm_v8.S +++ b/drivers/rknand/rk_ftl_arm_v8.S @@ -5,7 +5,7 @@ * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. - * date: 2018-09-05 + * date: 2019-01-07 */ .arch armv8-a .file "rk_ftl_arm_v8.c" @@ -138,6 +138,25 @@ FlashSetRandomizer: str w4, [x0, 336] ret .size FlashSetRandomizer, .-FlashSetRandomizer + .section .text.FlashBlockAlignInit,"ax",@progbits + .align 2 + .global FlashBlockAlignInit + .type FlashBlockAlignInit, %function +FlashBlockAlignInit: + and w0, w0, 65535 + adrp x1, .LANCHOR3 + cmp w0, 256 + bls .L36 + mov w0, 512 +.L39: + str w0, [x1, #:lo12:.LANCHOR3] + ret +.L36: + cmp w0, 128 + bls .L39 + mov w0, 256 + b .L39 + .size FlashBlockAlignInit, .-FlashBlockAlignInit .section .text.FlashReadCmd,"ax",@progbits .align 2 .global FlashReadCmd @@ -183,7 +202,7 @@ FlashReadDpDataOutCmd: ldrb w2, [x4, 8] lsr w4, w1, 8 add x2, x6, x2, lsl 8 - bne .L37 + bne .L42 mov w6, 6 str w6, [x2, 2056] str wzr, [x2, 2052] @@ -191,11 +210,11 @@ FlashReadDpDataOutCmd: str w5, [x2, 2052] str w4, [x2, 2052] str w3, [x2, 2052] -.L39: +.L44: mov w3, 224 str w3, [x2, 2056] b FlashSetRandomizer -.L37: +.L42: str wzr, [x2, 2056] str wzr, [x2, 2052] str wzr, [x2, 2052] @@ -206,52 +225,8 @@ FlashReadDpDataOutCmd: str w3, [x2, 2056] str wzr, [x2, 2052] str wzr, [x2, 2052] - b .L39 + b .L44 .size FlashReadDpDataOutCmd, .-FlashReadDpDataOutCmd - .section .text.flash_enter_slc_mode,"ax",@progbits - .align 2 - .global flash_enter_slc_mode - .type flash_enter_slc_mode, %function -flash_enter_slc_mode: - adrp x1, .LANCHOR8 - and w0, w0, 255 - ldrb w1, [x1, #:lo12:.LANCHOR8] - cbz w1, .L40 - sbfiz x0, x0, 4, 32 - adrp x1, .LANCHOR6 - add x1, x1, :lo12:.LANCHOR6 - add x2, x1, x0 - ldr x1, [x1, x0] - ldrb w0, [x2, 8] - add x0, x0, 8 - add x0, x1, x0, lsl 8 - mov w1, 218 - str w1, [x0, 8] -.L40: - ret - .size flash_enter_slc_mode, .-flash_enter_slc_mode - .section .text.flash_exit_slc_mode,"ax",@progbits - .align 2 - .global flash_exit_slc_mode - .type flash_exit_slc_mode, %function -flash_exit_slc_mode: - adrp x1, .LANCHOR8 - and w0, w0, 255 - ldrb w1, [x1, #:lo12:.LANCHOR8] - cbz w1, .L45 - sbfiz x0, x0, 4, 32 - adrp x1, .LANCHOR6 - add x1, x1, :lo12:.LANCHOR6 - add x2, x1, x0 - ldr x1, [x1, x0] - ldrb w0, [x2, 8] - add x0, x0, 8 - add x0, x1, x0, lsl 8 - mov w1, 223 - str w1, [x0, 8] -.L45: - ret - .size flash_exit_slc_mode, .-flash_exit_slc_mode .section .text.FlashProgFirstCmd,"ax",@progbits .align 2 .global FlashProgFirstCmd @@ -288,7 +263,7 @@ FlashEraseCmd: add x4, x3, x0 ldr x3, [x3, x0] ldrb w0, [x4, 8] - cbz w2, .L52 + cbz w2, .L47 add x2, x3, x0, lsl 8 mov w4, 96 str w4, [x2, 2056] @@ -301,7 +276,7 @@ FlashEraseCmd: adrp x2, .LANCHOR3 ldr w2, [x2, #:lo12:.LANCHOR3] add w1, w1, w2 -.L52: +.L47: add x0, x3, x0, lsl 8 mov w2, 96 str w2, [x0, 2056] @@ -400,28 +375,28 @@ FlashReadStatus: ldp x29, x30, [sp], 32 ret .size FlashReadStatus, .-FlashReadStatus - .section .text.JSHash,"ax",@progbits + .section .text.js_hash,"ax",@progbits .align 2 - .global JSHash - .type JSHash, %function -JSHash: + .global js_hash + .type js_hash, %function +js_hash: mov x4, x0 mov w0, 42982 mov x3, 0 movk w0, 0x47c6, lsl 16 -.L62: +.L57: cmp w1, w3 - bhi .L63 + bhi .L58 ret -.L63: +.L58: lsr w2, w0, 2 ldrb w5, [x4, x3] add w2, w2, w0, lsl 5 add x3, x3, 1 add w2, w2, w5 eor w0, w0, w2 - b .L62 - .size JSHash, .-JSHash + b .L57 + .size js_hash, .-js_hash .section .text.FlashLoadIdbInfo,"ax",@progbits .align 2 .global FlashLoadIdbInfo @@ -451,27 +426,27 @@ ToshibaSetRRPara: mov x21, x0 mov w0, 5 stp x19, x20, [sp, 16] - adrp x20, .LANCHOR9 + adrp x20, .LANCHOR8 umull x2, w2, w0 stp x23, x24, [sp, 48] - adrp x0, .LANCHOR10 - add x20, x20, :lo12:.LANCHOR9 - add x24, x0, :lo12:.LANCHOR10 + adrp x0, .LANCHOR9 + add x20, x20, :lo12:.LANCHOR8 + add x24, x0, :lo12:.LANCHOR9 stp x25, x26, [sp, 64] - adrp x23, .LANCHOR13 - adrp x25, .LANCHOR11 - adrp x26, .LANCHOR12 - add x23, x23, :lo12:.LANCHOR13 - add x25, x25, :lo12:.LANCHOR11 - add x26, x26, :lo12:.LANCHOR12 + adrp x23, .LANCHOR12 + adrp x25, .LANCHOR10 + adrp x26, .LANCHOR11 + add x23, x23, :lo12:.LANCHOR12 + add x25, x25, :lo12:.LANCHOR10 + add x26, x26, :lo12:.LANCHOR11 add x20, x20, x2 add x24, x24, x2 mov x22, x0 mov x19, 0 -.L67: +.L62: ldrb w0, [x23] cmp w0, w19 - bhi .L71 + bhi .L66 ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x23, x24, [sp, 48] @@ -479,30 +454,30 @@ ToshibaSetRRPara: ldr x27, [sp, 80] ldp x29, x30, [sp], 96 ret -.L71: +.L66: mov w0, 85 str w0, [x21, 8] - add x0, x22, :lo12:.LANCHOR10 + add x0, x22, :lo12:.LANCHOR9 ldrsb w0, [x19, x0] str w0, [x21, 4] mov x0, 200 bl udelay ldrb w0, [x25] cmp w0, 34 - bne .L68 + bne .L63 ldrsb w0, [x24, x19] -.L73: +.L68: add x19, x19, 1 str w0, [x21] - b .L67 -.L68: + b .L62 +.L63: cmp w0, 35 - bne .L70 + bne .L65 ldrsb w0, [x20, x19] - b .L73 -.L70: + b .L68 +.L65: ldrsb w0, [x26, w27, sxtw] - b .L73 + b .L68 .size ToshibaSetRRPara, .-ToshibaSetRRPara .section .text.SamsungSetRRPara,"ax",@progbits .align 2 @@ -515,26 +490,26 @@ SamsungSetRRPara: ubfiz x21, x1, 2, 8 mov x22, x0 add x21, x21, 4 - adrp x0, .LANCHOR14 - add x0, x0, :lo12:.LANCHOR14 + adrp x0, .LANCHOR13 + add x0, x0, :lo12:.LANCHOR13 stp x19, x20, [sp, 16] add x21, x0, x21 stp x23, x24, [sp, 48] mov x19, x0 - adrp x23, .LANCHOR13 - add x23, x23, :lo12:.LANCHOR13 + adrp x23, .LANCHOR12 + add x23, x23, :lo12:.LANCHOR12 mov x20, 0 mov w24, 161 -.L75: +.L70: ldrb w0, [x23] cmp w0, w20 - bhi .L76 + bhi .L71 ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x23, x24, [sp, 48] ldp x29, x30, [sp], 64 ret -.L76: +.L71: str w24, [x22, 8] str wzr, [x22] ldrsb w0, [x20, x19] @@ -544,15 +519,15 @@ SamsungSetRRPara: str w0, [x22] mov x0, 300 bl udelay - b .L75 + b .L70 .size SamsungSetRRPara, .-SamsungSetRRPara .section .text.LogAddr2PhyAddr,"ax",@progbits .align 2 .global LogAddr2PhyAddr .type LogAddr2PhyAddr, %function LogAddr2PhyAddr: - adrp x6, .LANCHOR15 - add x6, x6, :lo12:.LANCHOR15 + adrp x6, .LANCHOR14 + add x6, x6, :lo12:.LANCHOR14 and w4, w4, 255 ldrh w8, [x6, 12] ldrh w5, [x6, 14] @@ -573,14 +548,14 @@ LogAddr2PhyAddr: and w10, w5, 65535 msub w5, w5, w8, w11 and w5, w5, 65535 - bne .L80 - adrp x1, .LANCHOR8 - ldrb w1, [x1, #:lo12:.LANCHOR8] - cbnz w1, .L80 + bne .L75 + adrp x1, .LANCHOR15 + ldrb w1, [x1, #:lo12:.LANCHOR15] + cbnz w1, .L75 adrp x1, .LANCHOR16 add x1, x1, :lo12:.LANCHOR16 ldrh w6, [x1, w6, sxtw 1] -.L80: +.L75: uxtw x8, w10 adrp x1, .LANCHOR17 add x1, x1, :lo12:.LANCHOR17 @@ -590,14 +565,14 @@ LogAddr2PhyAddr: add w5, w5, w6 str w5, [x2] str w10, [x3] - bls .L82 + bls .L77 ldr w1, [x0, 4] ldr w0, [x0, 60] add w1, w1, 1024 cmp w1, w0 cset w0, eq ret -.L82: +.L77: mov w0, 0 ret .size LogAddr2PhyAddr, .-LogAddr2PhyAddr @@ -619,26 +594,26 @@ FlashReadStatusEN: ldrb w19, [x4, 8] ldrb w0, [x0, 8] cmp w0, 2 - bne .L84 + bne .L79 and w2, w2, 255 adrp x0, .LANCHOR7 - cbnz w2, .L85 + cbnz w2, .L80 add x2, x0, :lo12:.LANCHOR7 ldrb w3, [x2, 13] -.L95: +.L90: add x2, x19, 8 add x0, x0, :lo12:.LANCHOR7 add x2, x20, x2, lsl 8 str w3, [x2, 8] ldrb w4, [x0, 15] - cbz w4, .L89 + cbz w4, .L84 add x3, x19, 8 mov w2, 0 add x3, x20, x3, lsl 8 -.L88: +.L83: cmp w2, w4 - bcc .L90 -.L89: + bcc .L85 +.L84: add x19, x19, 8 mov x0, 80 lsl x19, x19, 8 @@ -648,23 +623,23 @@ FlashReadStatusEN: and w0, w0, 255 ldp x29, x30, [sp], 32 ret -.L85: +.L80: add x2, x0, :lo12:.LANCHOR7 ldrb w3, [x2, 14] - b .L95 -.L90: + b .L90 +.L85: lsl w0, w2, 3 add w2, w2, 1 lsr w0, w1, w0 and w0, w0, 255 str w0, [x3, 4] - b .L88 -.L84: + b .L83 +.L79: add x0, x19, 8 mov w1, 112 add x0, x20, x0, lsl 8 str w1, [x0, 8] - b .L89 + b .L84 .size FlashReadStatusEN, .-FlashReadStatusEN .section .text.FlashWaitReadyEN,"ax",@progbits .align 2 @@ -678,15 +653,15 @@ FlashWaitReadyEN: str x21, [sp, 32] mov w20, w1 and w21, w2, 255 -.L100: +.L95: mov w1, w20 mov w2, w21 mov w0, w19 bl FlashReadStatusEN mov w1, w0 cmp w0, 255 - beq .L100 - tbz x1, 6, .L100 + beq .L95 + tbz x1, 6, .L95 ldp x19, x20, [sp, 16] ldr x21, [sp, 32] ldp x29, x30, [sp], 48 @@ -766,7 +741,7 @@ NandcSetMode: tst w0, 6 ldr x2, [x1, #:lo12:.LANCHOR19] ldr w1, [x2] - beq .L112 + beq .L107 orr w1, w1, 24576 tst x0, 4 and w1, w1, -32769 @@ -782,13 +757,13 @@ NandcSetMode: str w0, [x2, 308] mov w0, 39 str w0, [x2, 308] -.L114: +.L109: mov w0, 0 str w1, [x2] ret -.L112: +.L107: and w1, w1, -8193 - b .L114 + b .L109 .size NandcSetMode, .-NandcSetMode .section .text.NandcFlashCs,"ax",@progbits .align 2 @@ -835,22 +810,22 @@ HynixSetRRPara: adrp x0, .LANCHOR18 stp x19, x20, [sp, 16] stp x25, x26, [sp, 64] - mov x21, x2 + mov x20, x2 ldr x0, [x0, #:lo12:.LANCHOR18] and w26, w1, 255 stp x23, x24, [sp, 48] - and w20, w3, 255 + and w21, w3, 255 adrp x19, .LANCHOR20 ldrb w0, [x0, 19] cmp w0, 6 - bne .L120 + bne .L115 add x0, x19, :lo12:.LANCHOR20 ubfiz x19, x22, 6, 8 add x19, x19, 20 - add x19, x19, x20, uxtw 2 -.L126: + add x19, x19, x21, uxtw 2 +.L122: add x19, x0, x19 -.L121: +.L116: sxtw x25, w22 adrp x0, .LANCHOR6 lsl x1, x25, 4 @@ -866,48 +841,57 @@ HynixSetRRPara: add x23, x23, x5 mov w0, 54 str w0, [x23, 2056] -.L123: +.L119: cmp x24, x26 - bne .L124 + bne .L120 mov w0, 22 str w0, [x23, 2056] mov w0, w22 bl NandcFlashDeCs adrp x0, .LANCHOR21 add x0, x0, :lo12:.LANCHOR21 - strb w20, [x0, x25] + strb w21, [x0, x25] ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x23, x24, [sp, 48] ldp x25, x26, [sp, 64] ldp x29, x30, [sp], 80 ret -.L120: +.L115: cmp w0, 7 + bne .L117 add x0, x19, :lo12:.LANCHOR20 - bne .L122 - mov w19, 160 mov x1, 28 + mov w19, 160 umaddl x1, w19, w22, x1 mov w19, 10 - umaddl x19, w20, w19, x1 - b .L126 -.L122: - and x19, x20, 255 + umaddl x19, w21, w19, x1 + b .L122 +.L117: + cmp w0, 8 + bne .L118 + add x19, x19, :lo12:.LANCHOR20 + add x0, x19, 28 + add w19, w21, w21, lsl 2 + add x19, x0, x19, sxtw + b .L116 +.L118: + add x0, x19, :lo12:.LANCHOR20 + and x19, x21, 255 add x19, x19, 2 add x19, x19, x22, uxtw 3 add x19, x0, x19, lsl 3 add x19, x19, 4 - b .L121 -.L124: - ldrb w0, [x21, x24] + b .L116 +.L120: + ldrb w0, [x20, x24] str w0, [x23, 2052] mov x0, 200 bl udelay ldrsb w0, [x19, x24] add x24, x24, 1 str w0, [x23, 2048] - b .L123 + b .L119 .size HynixSetRRPara, .-HynixSetRRPara .section .text.FlashSetReadRetryDefault,"ax",@progbits .align 2 @@ -919,8 +903,8 @@ FlashSetReadRetryDefault: ldrb w0, [x0, 19] sub w0, w0, #1 and w0, w0, 255 - cmp w0, 6 - bhi .L134 + cmp w0, 7 + bhi .L130 stp x29, x30, [sp, -48]! add x29, sp, 0 stp x19, x20, [sp, 16] @@ -931,25 +915,25 @@ FlashSetReadRetryDefault: add x22, x20, 4 add x21, x21, :lo12:.LANCHOR22 mov x19, 0 -.L130: +.L126: lsl x1, x19, 3 and w0, w19, 255 ldrb w1, [x1, x21] cmp w1, 173 - bne .L129 + bne .L125 ldrb w1, [x20, 1] mov w3, 0 mov x2, x22 bl HynixSetRRPara -.L129: +.L125: add x19, x19, 1 cmp x19, 4 - bne .L130 + bne .L126 ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x29, x30, [sp], 48 ret -.L134: +.L130: ret .size FlashSetReadRetryDefault, .-FlashSetReadRetryDefault .section .text.FlashWaitCmdDone,"ax",@progbits @@ -967,7 +951,7 @@ FlashWaitCmdDone: stp x19, x20, [sp, 16] add x19, x1, x0 ldr x2, [x19, 8] - cbz x2, .L139 + cbz x2, .L135 ldrb w20, [x1, x0] mov w0, w20 bl NandcFlashCs @@ -987,10 +971,10 @@ FlashWaitCmdDone: str w0, [x1] ldr x1, [x19, 16] str xzr, [x19, 8] - cbz x1, .L139 + cbz x1, .L135 str w0, [x1] str xzr, [x19, 16] -.L139: +.L135: mov w0, 0 ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 32 @@ -1009,6 +993,38 @@ NandcDelayns: ldp x29, x30, [sp], 16 ret .size NandcDelayns, .-NandcDelayns + .section .text.NandcWaitFlashReadyNoDelay,"ax",@progbits + .align 2 + .global NandcWaitFlashReadyNoDelay + .type NandcWaitFlashReadyNoDelay, %function +NandcWaitFlashReadyNoDelay: + stp x29, x30, [sp, -48]! + ubfiz x0, x0, 4, 8 + adrp x1, .LANCHOR6 + add x1, x1, :lo12:.LANCHOR6 + add x29, sp, 0 + stp x19, x20, [sp, 16] + mov w19, 34464 + ldr x20, [x1, x0] + movk w19, 0x1, lsl 16 +.L145: + ldr w0, [x20] + str w0, [x29, 40] + ldr w0, [x29, 40] + tbnz x0, 9, .L146 + mov x0, 10 + bl udelay + subs w19, w19, #1 + bne .L145 + mov w0, -1 +.L143: + ldp x19, x20, [sp, 16] + ldp x29, x30, [sp], 48 + ret +.L146: + mov w0, 0 + b .L143 + .size NandcWaitFlashReadyNoDelay, .-NandcWaitFlashReadyNoDelay .section .text.NandcWaitFlashReady,"ax",@progbits .align 2 .global NandcWaitFlashReady @@ -1021,25 +1037,27 @@ NandcWaitFlashReady: add x29, sp, 0 stp x19, x20, [sp, 16] mov w19, 34464 - ldr x20, [x1, x0] movk w19, 0x1, lsl 16 -.L149: - mov x0, 100 + ldr x20, [x1, x0] + mov x0, 150 bl udelay +.L151: ldr w0, [x20] str w0, [x29, 40] ldr w0, [x29, 40] - tbnz x0, 9, .L150 + tbnz x0, 9, .L152 + mov x0, 10 + bl udelay subs w19, w19, #1 - bne .L149 + bne .L151 mov w0, -1 -.L147: +.L149: ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 48 ret -.L150: +.L152: mov w0, 0 - b .L147 + b .L149 .size NandcWaitFlashReady, .-NandcWaitFlashReady .section .text.FlashReset,"ax",@progbits .align 2 @@ -1069,6 +1087,101 @@ FlashReset: ldp x29, x30, [sp], 32 b NandcFlashDeCs .size FlashReset, .-FlashReset + .section .text.flash_enter_slc_mode,"ax",@progbits + .align 2 + .global flash_enter_slc_mode + .type flash_enter_slc_mode, %function +flash_enter_slc_mode: + stp x29, x30, [sp, -32]! + add x29, sp, 0 + stp x19, x20, [sp, 16] + and w20, w0, 255 + adrp x0, .LANCHOR15 + ldrb w0, [x0, #:lo12:.LANCHOR15] + cbz w0, .L157 + mov w0, w20 + bl NandcFlashCs + sbfiz x1, x20, 4, 32 + adrp x0, .LANCHOR6 + add x0, x0, :lo12:.LANCHOR6 + add x2, x0, x1 + ldr x0, [x0, x1] + ldrb w19, [x2, 8] + add x19, x0, x19, lsl 8 + mov w0, 239 + str w0, [x19, 2056] + mov w0, 145 + str w0, [x19, 2052] + mov x0, 100 + bl udelay + str wzr, [x19, 2048] + mov w0, 1 + str w0, [x19, 2048] + str wzr, [x19, 2048] + mov x0, 100 + str wzr, [x19, 2048] + bl udelay + mov w0, w20 + bl NandcWaitFlashReadyNoDelay + mov w0, 218 + str w0, [x19, 2056] + mov w0, w20 + ldp x19, x20, [sp, 16] + ldp x29, x30, [sp], 32 + b NandcWaitFlashReady +.L157: + ldp x19, x20, [sp, 16] + ldp x29, x30, [sp], 32 + ret + .size flash_enter_slc_mode, .-flash_enter_slc_mode + .section .text.flash_exit_slc_mode,"ax",@progbits + .align 2 + .global flash_exit_slc_mode + .type flash_exit_slc_mode, %function +flash_exit_slc_mode: + stp x29, x30, [sp, -32]! + add x29, sp, 0 + stp x19, x20, [sp, 16] + and w20, w0, 255 + adrp x0, .LANCHOR15 + ldrb w0, [x0, #:lo12:.LANCHOR15] + cbz w0, .L160 + mov w0, w20 + bl NandcFlashCs + sbfiz x1, x20, 4, 32 + adrp x0, .LANCHOR6 + add x0, x0, :lo12:.LANCHOR6 + add x2, x0, x1 + ldr x0, [x0, x1] + ldrb w19, [x2, 8] + add x19, x0, x19, lsl 8 + mov w0, 239 + str w0, [x19, 2056] + mov w0, 145 + str w0, [x19, 2052] + mov x0, 100 + bl udelay + mov w0, 2 + str w0, [x19, 2048] + mov w0, 1 + str w0, [x19, 2048] + str wzr, [x19, 2048] + mov x0, 100 + str wzr, [x19, 2048] + bl udelay + mov w0, w20 + bl NandcWaitFlashReadyNoDelay + mov w0, 223 + str w0, [x19, 2056] + mov w0, w20 + ldp x19, x20, [sp, 16] + ldp x29, x30, [sp], 32 + b NandcWaitFlashReady +.L160: + ldp x19, x20, [sp, 16] + ldp x29, x30, [sp], 32 + ret + .size flash_exit_slc_mode, .-flash_exit_slc_mode .section .text.FlashEraseBlock,"ax",@progbits .align 2 .global FlashEraseBlock @@ -1128,71 +1241,71 @@ FlashSetInterfaceMode: mov w15, 32 mov w16, 5 mov w17, 44 -.L167: +.L175: ldrb w3, [x5, x7] ldrb w4, [x2] cmp w3, 152 ccmp w3, w13, 4, ne - beq .L158 + beq .L166 cmp w3, 173 ccmp w3, w17, 4, ne - bne .L159 -.L158: + bne .L167 +.L166: cmp w0, 1 ldr x1, [x2, -8] - bne .L160 - cbz w6, .L159 + bne .L168 + cbz w6, .L167 ubfiz x4, x4, 8, 8 cmp w3, 173 add x1, x1, x4 str w8, [x1, 2056] - bne .L161 + bne .L169 str w0, [x1, 2052] -.L179: +.L187: str wzr, [x1, 2048] - b .L165 -.L161: + b .L173 +.L169: cmp w3, 44 - bne .L163 + bne .L171 str w0, [x1, 2052] str w16, [x1, 2048] -.L165: +.L173: str wzr, [x1, 2048] str wzr, [x1, 2048] str wzr, [x1, 2048] -.L159: +.L167: add x5, x5, 8 add x2, x2, 16 cmp x5, 32 - bne .L167 + bne .L175 mov w0, 0 bl NandcWaitFlashReady mov w0, 0 ldp x29, x30, [sp], 16 ret -.L163: +.L171: str w10, [x1, 2052] str w0, [x1, 2048] - b .L165 -.L160: - cbz w12, .L159 + b .L173 +.L168: + cbz w12, .L167 ubfiz x4, x4, 8, 8 cmp w3, 173 add x1, x1, x4 str w8, [x1, 2056] - bne .L164 + bne .L172 str w11, [x1, 2052] str w15, [x1, 2048] - b .L165 -.L164: + b .L173 +.L172: cmp w3, 44 - bne .L166 + bne .L174 str w11, [x1, 2052] str w14, [x1, 2048] - b .L165 -.L166: + b .L173 +.L174: str w10, [x1, 2052] - b .L179 + b .L187 .size FlashSetInterfaceMode, .-FlashSetInterfaceMode .section .text.SandiskSetRRPara,"ax",@progbits .align 2 @@ -1210,38 +1323,38 @@ SandiskSetRRPara: str w0, [x20, 4] mov x0, 200 bl udelay - adrp x0, .LANCHOR13 + adrp x0, .LANCHOR12 add w1, w19, 1 - adrp x2, .LANCHOR9 - add x2, x2, :lo12:.LANCHOR9 - ldrb w3, [x0, #:lo12:.LANCHOR13] - adrp x0, .LANCHOR11 - ldrb w4, [x0, #:lo12:.LANCHOR11] + adrp x2, .LANCHOR8 + add x2, x2, :lo12:.LANCHOR8 + ldrb w3, [x0, #:lo12:.LANCHOR12] + adrp x0, .LANCHOR10 + ldrb w4, [x0, #:lo12:.LANCHOR10] mov w0, 5 umull x1, w1, w0 - adrp x0, .LANCHOR10 - add x0, x0, :lo12:.LANCHOR10 + adrp x0, .LANCHOR9 + add x0, x0, :lo12:.LANCHOR9 add x2, x2, x1 add x1, x0, x1 mov x0, 0 -.L181: +.L189: cmp w3, w0 - bhi .L184 + bhi .L192 ldp x19, x20, [sp, 16] mov w0, 0 ldp x29, x30, [sp], 32 b NandcWaitFlashReady -.L184: +.L192: cmp w4, 67 - bne .L182 + bne .L190 ldrsb w5, [x1, x0] -.L186: +.L194: add x0, x0, 1 str w5, [x20] - b .L181 -.L182: + b .L189 +.L190: ldrsb w5, [x2, x0] - b .L186 + b .L194 .size SandiskSetRRPara, .-SandiskSetRRPara .section .text.micron_auto_read_calibration_config,"ax",@progbits .align 2 @@ -1293,16 +1406,16 @@ FlashEraseSLc2KBlocks: mov x20, x0 add x23, x23, :lo12:.LANCHOR25 adrp x24, .LANCHOR26 -.L190: +.L198: cmp x20, x22 - bne .L195 + bne .L203 ldp x19, x20, [sp, 16] mov w0, 0 ldp x21, x22, [sp, 32] ldp x23, x24, [sp, 48] ldp x29, x30, [sp], 80 ret -.L195: +.L203: mov w1, 0 mov w4, w21 add x3, x29, 76 @@ -1312,15 +1425,15 @@ FlashEraseSLc2KBlocks: ldrb w1, [x23] ldr w0, [x29, 76] cmp w1, w0 - bhi .L191 + bhi .L199 mov w0, -1 str w0, [x20] -.L192: +.L200: sub w21, w21, #1 add x20, x20, 56 and w21, w21, 255 - b .L190 -.L191: + b .L198 +.L199: uxtw x0, w0 add x1, x24, :lo12:.LANCHOR26 ldrb w19, [x1, x0] @@ -1356,21 +1469,21 @@ FlashEraseSLc2KBlocks: ldr w1, [x29, 72] mov w0, w19 bl FlashReadStatus - tbz x0, 0, .L193 + tbz x0, 0, .L201 mov w0, -1 str w0, [x20] -.L193: +.L201: ldr w0, [x20] cmn w0, #1 - bne .L194 + bne .L202 ldr w1, [x29, 72] adrp x0, .LC1 add x0, x0, :lo12:.LC1 bl printf -.L194: +.L202: mov w0, w19 bl NandcFlashDeCs - b .L192 + b .L200 .size FlashEraseSLc2KBlocks, .-FlashEraseSLc2KBlocks .section .text.FlashEraseBlocks,"ax",@progbits .align 2 @@ -1387,42 +1500,42 @@ FlashEraseBlocks: mov w22, w2 ldrb w1, [x1, #:lo12:.LANCHOR1] stp x25, x26, [sp, 64] - cbnz w1, .L201 + cbnz w1, .L209 adrp x25, .LANCHOR23 mov x19, x0 add x26, x25, :lo12:.LANCHOR23 mov w20, 0 -.L202: +.L210: cmp w20, w22 adrp x13, .LANCHOR25 - bcc .L211 - adrp x21, .LANCHOR8 + bcc .L219 + adrp x21, .LANCHOR15 adrp x23, .LANCHOR23 add x25, x13, :lo12:.LANCHOR25 - add x21, x21, :lo12:.LANCHOR8 + add x21, x21, :lo12:.LANCHOR15 add x23, x23, :lo12:.LANCHOR23 mov x20, 0 -.L212: +.L220: ldrb w0, [x25] cmp w0, w20 - bhi .L214 + bhi .L222 adrp x0, .LANCHOR28 ldr w0, [x0, #:lo12:.LANCHOR28] - cbnz w0, .L215 -.L216: + cbnz w0, .L223 +.L224: mov w0, 0 - b .L200 -.L201: + b .L208 +.L209: mov w1, w2 bl FlashEraseSLc2KBlocks -.L200: +.L208: 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 -.L211: +.L219: mov w12, 56 mov w1, 0 sub w4, w22, w20 @@ -1436,13 +1549,13 @@ FlashEraseBlocks: ldrb w1, [x13, #:lo12:.LANCHOR25] ldr w0, [x29, 92] cmp w1, w0 - bhi .L204 + bhi .L212 mov w0, -1 str w0, [x19, x12] -.L205: +.L213: add w20, w20, 1 - b .L202 -.L204: + b .L210 +.L212: adrp x1, .LANCHOR27 add x2, x25, :lo12:.LANCHOR23 mov x3, 24 @@ -1452,20 +1565,20 @@ FlashEraseBlocks: csel w23, w23, wzr, ne madd x1, x1, x3, x2 ldr x1, [x1, 8] - cbz x1, .L207 + cbz x1, .L215 bl FlashWaitCmdDone -.L207: +.L215: ldp w2, w1, [x29, 88] mov x0, 24 madd x0, x1, x0, x26 str w2, [x0, 4] stp x21, xzr, [x0, 8] - cbz w23, .L208 + cbz w23, .L216 add w2, w20, 1 mov w3, 56 umaddl x2, w2, w3, x19 str x2, [x0, 16] -.L208: +.L216: adrp x0, .LANCHOR26 add x0, x0, :lo12:.LANCHOR26 ldrb w21, [x0, x1] @@ -1475,13 +1588,13 @@ FlashEraseBlocks: strb w21, [x26, x1] bl NandcFlashCs cmp w24, 1 - bne .L209 - adrp x0, .LANCHOR8 - ldrb w0, [x0, #:lo12:.LANCHOR8] - cbz w0, .L209 + bne .L217 + adrp x0, .LANCHOR15 + ldrb w0, [x0, #:lo12:.LANCHOR15] + cbz w0, .L217 mov w0, w21 bl flash_enter_slc_mode -.L210: +.L218: ldr w1, [x29, 92] adrp x0, .LANCHOR17 add x0, x0, :lo12:.LANCHOR17 @@ -1498,37 +1611,37 @@ FlashEraseBlocks: bl FlashEraseCmd mov w0, w21 bl NandcFlashDeCs - b .L205 -.L209: + b .L213 +.L217: mov w0, w21 bl flash_exit_slc_mode - b .L210 -.L214: + b .L218 +.L222: mov w0, w20 bl FlashWaitCmdDone cmp w24, 1 - bne .L213 + bne .L221 ldrb w0, [x21] - cbz w0, .L213 + cbz w0, .L221 mov x0, 24 mul x0, x20, x0 ldrb w0, [x0, x23] bl flash_exit_slc_mode -.L213: +.L221: add x20, x20, 1 - b .L212 -.L215: + b .L220 +.L223: adrp x0, .LANCHOR22 ldrb w0, [x0, #:lo12:.LANCHOR22] cmp w0, 69 - bne .L216 + bne .L224 mov w0, 56 umaddl x22, w22, w0, x19 -.L217: +.L225: cmp x22, x19 - beq .L216 + beq .L224 str wzr, [x19], 56 - b .L217 + b .L225 .size FlashEraseBlocks, .-FlashEraseBlocks .section .text.FlashReadDpCmd,"ax",@progbits .align 2 @@ -1562,7 +1675,7 @@ FlashReadDpCmd: str w5, [x19, 2056] cmp w1, 1 lsr w1, w21, 16 - bne .L233 + bne .L241 str wzr, [x19, 2052] str wzr, [x19, 2052] str w4, [x19, 2052] @@ -1574,7 +1687,7 @@ FlashReadDpCmd: str wzr, [x19, 2056] str wzr, [x19, 2052] str wzr, [x19, 2052] -.L236: +.L244: str w24, [x19, 2052] mov w0, 48 str w23, [x19, 2052] @@ -1587,12 +1700,12 @@ FlashReadDpCmd: ldp x23, x24, [sp, 48] ldp x29, x30, [sp], 64 b FlashSetRandomizer -.L233: +.L241: str w4, [x19, 2052] str w3, [x19, 2052] str w1, [x19, 2052] str w0, [x19, 2056] - b .L236 + b .L244 .size FlashReadDpCmd, .-FlashReadDpCmd .section .text.FlashDeInit,"ax",@progbits .align 2 @@ -1606,26 +1719,23 @@ FlashDeInit: bl NandcWaitFlashReady bl FlashSetReadRetryDefault adrp x0, .LANCHOR29 - ldr w1, [x0, #:lo12:.LANCHOR29] - mov w0, 12336 - movk w0, 0x5638, lsl 16 - cmp w1, w0 - bne .L238 + ldr w0, [x0, #:lo12:.LANCHOR29] + cbz w0, .L246 mov w0, 0 bl flash_enter_slc_mode -.L238: +.L247: adrp x19, .LANCHOR30 ldrb w0, [x19, #:lo12:.LANCHOR30] - cbz w0, .L239 + cbz w0, .L248 adrp x0, .LANCHOR24 ldrb w0, [x0, #:lo12:.LANCHOR24] - tbz x0, 0, .L239 + tbz x0, 0, .L248 mov w0, 1 bl FlashSetInterfaceMode mov w0, 1 bl NandcSetMode strb wzr, [x19, #:lo12:.LANCHOR30] -.L239: +.L248: adrp x0, .LANCHOR6 ldr x0, [x0, #:lo12:.LANCHOR6] str wzr, [x0, 336] @@ -1633,6 +1743,10 @@ FlashDeInit: ldr x19, [sp, 16] ldp x29, x30, [sp], 32 ret +.L246: + mov w0, 0 + bl flash_exit_slc_mode + b .L247 .size FlashDeInit, .-FlashDeInit .section .text.NandcRandmzSel,"ax",@progbits .align 2 @@ -1653,21 +1767,21 @@ NandcRandmzSel: NandcTimeCfg: cmp w0, 35 adrp x1, .LANCHOR19 - bhi .L249 + bhi .L258 ldr x0, [x1, #:lo12:.LANCHOR19] mov w1, 4193 -.L252: +.L261: str w1, [x0, 4] ret -.L249: +.L258: cmp w0, 99 ldr x0, [x1, #:lo12:.LANCHOR19] - bls .L251 + bls .L260 mov w1, 8322 - b .L252 -.L251: + b .L261 +.L260: mov w1, 4225 - b .L252 + b .L261 .size NandcTimeCfg, .-NandcTimeCfg .section .text.FlashTimingCfg,"ax",@progbits .align 2 @@ -1692,24 +1806,24 @@ NandcBchSel: adrp x1, .LANCHOR32 str w0, [x1, #:lo12:.LANCHOR32] mov w1, 4096 - bne .L255 -.L258: + bne .L264 +.L267: and w1, w1, -17 -.L256: +.L265: orr w1, w1, 1 str w1, [x2, 12] ret -.L255: +.L264: cmp w0, 24 - bne .L257 + bne .L266 orr w1, w1, 16 - b .L256 -.L257: + b .L265 +.L266: orr w1, w1, 262144 cmp w0, 40 orr w1, w1, 16 - bne .L256 - b .L258 + bne .L265 + b .L267 .size NandcBchSel, .-NandcBchSel .section .text.FlashBchSel,"ax",@progbits .align 2 @@ -1791,11 +1905,11 @@ NandcSendDumpDataStart: .type NandcSendDumpDataDone, %function NandcSendDumpDataDone: sub sp, sp, #16 -.L272: +.L281: ldr w1, [x0, 8] str w1, [sp, 8] ldr w1, [sp, 8] - tbz x1, 20, .L272 + tbz x1, 20, .L281 add sp, sp, 16 ret .size NandcSendDumpDataDone, .-NandcSendDumpDataDone @@ -1833,7 +1947,7 @@ NandcXferStart: ldr w0, [x0, #:lo12:.LANCHOR34] bfi w19, w3, 4, 1 cmp w0, 3 - bls .L277 + bls .L286 ldr w0, [x21, 16] cmp x5, 0 str w0, [x29, 88] @@ -1841,11 +1955,11 @@ NandcXferStart: ldr w0, [x29, 88] and w0, w0, -5 str w0, [x29, 88] - beq .L278 + beq .L287 and w2, w2, 255 adrp x20, .LANCHOR35 - cbnz w24, .L279 -.L287: + cbnz w24, .L288 +.L296: ldr x0, [x20, #:lo12:.LANCHOR35] add w2, w2, 1 cmp x4, 0 @@ -1887,12 +2001,12 @@ NandcXferStart: ldr w0, [x29, 88] orr w0, w0, 448 str w0, [x29, 88] - bne .L288 + bne .L297 ldr w0, [x29, 88] mov w1, 2 bfi w0, w1, 3, 3 str w0, [x29, 88] -.L288: +.L297: ldr w0, [x29, 88] cmp w24, 0 cset w1, eq @@ -1904,10 +2018,10 @@ NandcXferStart: ldr w0, [x29, 88] orr w0, w0, 1 str w0, [x29, 88] -.L278: +.L287: ldr w0, [x29, 88] str w0, [x21, 16] -.L277: +.L286: str w22, [x21, 12] str w19, [x21, 8] orr w19, w19, 4 @@ -1918,7 +2032,7 @@ NandcXferStart: ldr x25, [sp, 64] ldp x29, x30, [sp], 96 ret -.L279: +.L288: adrp x0, .LANCHOR32 mov w6, 64 lsr w11, w2, 1 @@ -1932,24 +2046,24 @@ NandcXferStart: csel w6, w6, w0, cc add x0, x20, :lo12:.LANCHOR35 ldr x10, [x0, 8] -.L283: +.L292: cmp w3, w11 - bcs .L287 + bcs .L296 lsr w0, w7, 2 lsl w0, w0, 2 - cbz x5, .L284 + cbz x5, .L293 ldrh w13, [x1] add x1, x1, 4 ldrh w8, [x1, -2] orr x8, x13, x8, lsl 16 str w8, [x10, x0] -.L285: +.L294: add w3, w3, 1 add w7, w7, w6 - b .L283 -.L284: + b .L292 +.L293: str w12, [x10, x0] - b .L285 + b .L294 .size NandcXferStart, .-NandcXferStart .section .text.NandcXferComp,"ax",@progbits .align 2 @@ -1965,57 +2079,57 @@ NandcXferComp: adrp x0, .LANCHOR34 ldr w2, [x0, #:lo12:.LANCHOR34] cmp w2, 3 - bls .L316 + bls .L325 ldr w0, [x3, 16] - tbz x0, 2, .L316 + tbz x0, 2, .L325 ldr w0, [x3, 16] - tbz x0, 1, .L304 + tbz x0, 1, .L313 ldr w0, [x3, 8] str w0, [x29, 16] -.L299: +.L308: ldr w1, [x3, 28] ldr w0, [x29, 16] ubfx x1, x1, 16, 5 ubfx x0, x0, 22, 6 cmp w1, w0 - bge .L300 + bge .L309 cmp w2, 5 - bls .L299 + bls .L308 ldr w0, [x3] str w0, [x29, 24] ldr w0, [x29, 24] - tbz x0, 13, .L299 + tbz x0, 13, .L308 ldr w0, [x29, 24] - tbz x0, 17, .L299 -.L300: + tbz x0, 17, .L308 +.L309: adrp x0, .LANCHOR35+40 str wzr, [x0, #:lo12:.LANCHOR35+40] -.L295: +.L304: ldp x29, x30, [sp], 32 ret -.L304: +.L313: ldr w0, [x3, 8] str w0, [x29, 16] ldr w0, [x29, 16] - tbz x0, 20, .L304 + tbz x0, 20, .L313 adrp x0, .LANCHOR36 mov x4, x0 ldr w1, [x0, #:lo12:.LANCHOR36] - cbz w1, .L305 + cbz w1, .L314 mov x0, x3 bl NandcSendDumpDataStart -.L305: +.L314: ldr w0, [x4, #:lo12:.LANCHOR36] - cbz w0, .L300 + cbz w0, .L309 mov x0, x3 bl NandcSendDumpDataDone - b .L300 -.L316: + b .L309 +.L325: ldr w0, [x3, 8] str w0, [x29, 16] ldr w0, [x29, 16] - tbz x0, 20, .L316 - b .L295 + tbz x0, 20, .L325 + b .L304 .size NandcXferComp, .-NandcXferComp .section .text.Ftl_log2,"ax",@progbits .align 2 @@ -2024,16 +2138,16 @@ NandcXferComp: Ftl_log2: mov w2, 1 mov w1, 0 -.L325: +.L334: cmp w2, w0 - bls .L326 + bls .L335 sub w0, w1, #1 ret -.L326: +.L335: add w1, w1, 1 lsl w2, w2, 1 and w1, w1, 65535 - b .L325 + b .L334 .size Ftl_log2, .-Ftl_log2 .section .text.FtlPrintInfo,"ax",@progbits .align 2 @@ -2096,28 +2210,28 @@ FtlConstantsInit: strh w2, [x4, #:lo12:.LANCHOR45] strh w8, [x6, #:lo12:.LANCHOR41] str x19, [sp, 16] -.L330: +.L339: strb w3, [x3, x7] add x3, x3, 1 cmp x3, 32 - bne .L330 + bne .L339 ldrh w7, [x5, 20] ldrb w3, [x5, 15] cmp w7, w3 - bcs .L331 + bcs .L340 and w13, w0, 255 mul w15, w0, w2 ubfiz w14, w13, 1, 7 add x1, x1, :lo12:.LANCHOR47 mov w7, 0 -.L332: +.L341: cmp w7, w0 - bcs .L334 + bcs .L343 and w3, w7, 255 mov w10, w7 mov w12, 0 - b .L335 -.L333: + b .L344 +.L342: add w16, w15, w10 strb w3, [x1, w10, uxtw] add w17, w13, w3 @@ -2126,223 +2240,219 @@ FtlConstantsInit: and w3, w3, 255 add w10, w10, w0 strb w17, [x1, x16] -.L335: +.L344: cmp w12, w2 - bcc .L333 + bcc .L342 add w7, w7, 1 - b .L332 -.L334: + b .L341 +.L343: ubfiz w2, w2, 1, 15 lsr w8, w8, 1 strh w2, [x4, #:lo12:.LANCHOR45] strh w8, [x6, #:lo12:.LANCHOR41] -.L331: +.L340: adrp x1, .LANCHOR48 adrp x13, .LANCHOR49 mov w2, 5 cmp w11, 1 strh w2, [x1, #:lo12:.LANCHOR48] strh wzr, [x13, #:lo12:.LANCHOR49] - bne .L336 + bne .L345 strh w11, [x1, #:lo12:.LANCHOR48] -.L336: +.L345: adrp x8, .LANCHOR50 mov w1, 4352 strh w1, [x8, #:lo12:.LANCHOR50] adrp x1, .LANCHOR1 ldrb w11, [x1, #:lo12:.LANCHOR1] - cbz w11, .L337 + cbz w11, .L346 mov w1, 384 strh w1, [x8, #:lo12:.LANCHOR50] -.L337: +.L346: ldrh w4, [x4, #:lo12:.LANCHOR45] adrp x1, .LANCHOR38 ldrh w3, [x6, #:lo12:.LANCHOR41] + adrp x7, .LANCHOR52 + ldrh w19, [x5, 16] + adrp x15, .LANCHOR55 + ldrh w10, [x5, 20] mul w4, w0, w4 + ldrh w14, [x5, 18] mul w0, w0, w3 + strh w19, [x7, #:lo12:.LANCHOR52] and w4, w4, 65535 strh w4, [x1, #:lo12:.LANCHOR38] adrp x1, .LANCHOR51 - and w0, w0, 65535 + strh w10, [x15, #:lo12:.LANCHOR55] strh w0, [x1, #:lo12:.LANCHOR51] - bl Ftl_log2 - ldrh w19, [x5, 16] - adrp x1, .LANCHOR52 - ldrh w10, [x5, 20] - adrp x7, .LANCHOR53 - strh w0, [x1, #:lo12:.LANCHOR52] - adrp x0, .LANCHOR54 - ldrh w14, [x5, 18] - adrp x15, .LANCHOR56 mul w1, w4, w19 - strh w14, [x0, #:lo12:.LANCHOR54] - adrp x0, .LANCHOR55 - strh w19, [x7, #:lo12:.LANCHOR53] - strh w10, [x15, #:lo12:.LANCHOR56] - strh w1, [x0, #:lo12:.LANCHOR55] + adrp x0, .LANCHOR53 + strh w14, [x0, #:lo12:.LANCHOR53] + adrp x0, .LANCHOR54 + strh w1, [x0, #:lo12:.LANCHOR54] mov w0, w10 bl Ftl_log2 and w12, w0, 65535 - adrp x6, .LANCHOR57 + adrp x6, .LANCHOR56 ubfiz w2, w10, 9, 7 ldrh w1, [x5, 26] cmp w3, 1024 - strh w0, [x6, #:lo12:.LANCHOR57] + strh w0, [x6, #:lo12:.LANCHOR56] + adrp x0, .LANCHOR57 + strh w2, [x0, #:lo12:.LANCHOR57] adrp x0, .LANCHOR58 + ubfx w2, w2, 8, 8 strh w2, [x0, #:lo12:.LANCHOR58] adrp x0, .LANCHOR59 - ubfx w2, w2, 8, 8 - strh w2, [x0, #:lo12:.LANCHOR59] - adrp x0, .LANCHOR60 - strh w1, [x0, #:lo12:.LANCHOR60] + strh w1, [x0, #:lo12:.LANCHOR59] adrp x0, .LANCHOR43 mul w1, w4, w3 str w1, [x0, #:lo12:.LANCHOR43] - bls .L338 + bls .L347 and w0, w3, 255 strh w0, [x13, #:lo12:.LANCHOR49] -.L338: +.L347: ldrh w0, [x13, #:lo12:.LANCHOR49] - adrp x1, .LANCHOR61 + adrp x1, .LANCHOR60 sub w0, w3, w0 mul w0, w0, w4 mul w0, w0, w10 mul w0, w0, w19 asr w0, w0, 11 - str w0, [x1, #:lo12:.LANCHOR61] + str w0, [x1, #:lo12:.LANCHOR60] ldrh w0, [x8, #:lo12:.LANCHOR50] mul w1, w14, w10 - adrp x10, .LANCHOR62 + adrp x10, .LANCHOR61 lsl w0, w0, 3 sdiv w0, w0, w1 and w0, w0, 65535 cmp w0, 4 - bls .L339 -.L355: - strh w0, [x10, #:lo12:.LANCHOR62] - cbz w11, .L341 + bls .L348 +.L364: + strh w0, [x10, #:lo12:.LANCHOR61] + cbz w11, .L350 mov w0, 640 strh w0, [x8, #:lo12:.LANCHOR50] -.L341: +.L350: ldrh w0, [x8, #:lo12:.LANCHOR50] - adrp x1, .LANCHOR63 + adrp x1, .LANCHOR62 lsl w3, w3, 6 cmp w4, 1 adrp x8, .LANCHOR37 asr w0, w0, w12 add w0, w0, 2 - strh w0, [x1, #:lo12:.LANCHOR63] + strh w0, [x1, #:lo12:.LANCHOR62] add w0, w12, 9 - adrp x1, .LANCHOR65 + adrp x1, .LANCHOR64 asr w3, w3, w0 - adrp x0, .LANCHOR64 - strh w3, [x0, #:lo12:.LANCHOR64] + adrp x0, .LANCHOR63 + strh w3, [x0, #:lo12:.LANCHOR63] and w3, w3, 65535 mul w0, w4, w3 add w3, w3, 8 - str w0, [x1, #:lo12:.LANCHOR65] - ldrh w0, [x10, #:lo12:.LANCHOR62] + str w0, [x1, #:lo12:.LANCHOR64] + ldrh w0, [x10, #:lo12:.LANCHOR61] udiv w0, w0, w4 mov x4, x1 add w3, w0, w3 - beq .L342 -.L356: + beq .L351 +.L365: str w3, [x8, #:lo12:.LANCHOR37] ldrh w0, [x8, #:lo12:.LANCHOR37] bl FtlSysBlkNumInit ldr w1, [x8, #:lo12:.LANCHOR37] - adrp x0, .LANCHOR66 + adrp x0, .LANCHOR65 mov w2, 24 - str w1, [x0, #:lo12:.LANCHOR66] + str w1, [x0, #:lo12:.LANCHOR65] adrp x0, .LANCHOR42 - ldrh w1, [x7, #:lo12:.LANCHOR53] + ldrh w1, [x7, #:lo12:.LANCHOR52] ldr w0, [x0, #:lo12:.LANCHOR42] lsl w0, w0, 2 mul w0, w0, w1 - ldrh w1, [x6, #:lo12:.LANCHOR57] - adrp x6, .LANCHOR8 + ldrh w1, [x6, #:lo12:.LANCHOR56] + adrp x6, .LANCHOR15 add w1, w1, 9 - ldrb w6, [x6, #:lo12:.LANCHOR8] + ldrb w6, [x6, #:lo12:.LANCHOR15] lsr w0, w0, w1 - adrp x1, .LANCHOR67 + adrp x1, .LANCHOR66 add w0, w0, 2 and w0, w0, 65535 - strh w0, [x1, #:lo12:.LANCHOR67] + strh w0, [x1, #:lo12:.LANCHOR66] + adrp x1, .LANCHOR67 + strh w2, [x1, #:lo12:.LANCHOR67] adrp x1, .LANCHOR68 - strh w2, [x1, #:lo12:.LANCHOR68] - adrp x1, .LANCHOR69 - ldrh w2, [x10, #:lo12:.LANCHOR62] - str wzr, [x1, #:lo12:.LANCHOR69] + ldrh w2, [x10, #:lo12:.LANCHOR61] + str wzr, [x1, #:lo12:.LANCHOR68] add w1, w2, 3 - strh w1, [x10, #:lo12:.LANCHOR62] - ldr w1, [x4, #:lo12:.LANCHOR65] + strh w1, [x10, #:lo12:.LANCHOR61] + ldr w1, [x4, #:lo12:.LANCHOR64] add w3, w1, 3 - str w3, [x4, #:lo12:.LANCHOR65] - cbz w6, .L344 + str w3, [x4, #:lo12:.LANCHOR64] + cbz w6, .L353 add w1, w1, 5 add w2, w2, 4 - strh w2, [x10, #:lo12:.LANCHOR62] -.L357: - str w1, [x4, #:lo12:.LANCHOR65] -.L345: + strh w2, [x10, #:lo12:.LANCHOR61] +.L366: + str w1, [x4, #:lo12:.LANCHOR64] +.L354: adrp x1, .LANCHOR40 - adrp x3, .LANCHOR70 + adrp x3, .LANCHOR69 ldrh w1, [x1, #:lo12:.LANCHOR40] - strh wzr, [x3, #:lo12:.LANCHOR70] + strh wzr, [x3, #:lo12:.LANCHOR69] lsl w2, w1, 1 lsr w1, w1, 3 add w2, w2, 48 add w1, w1, 4 add w0, w2, w0, lsl 2 add w0, w0, w1 - ldrh w1, [x15, #:lo12:.LANCHOR56] + ldrh w1, [x15, #:lo12:.LANCHOR55] cmp w0, w1, lsl 9 - bcs .L346 + bcs .L355 mov w0, 1 - strh w0, [x3, #:lo12:.LANCHOR70] -.L346: + strh w0, [x3, #:lo12:.LANCHOR69] +.L355: mov w0, 0 ldr x19, [sp, 16] ldp x29, x30, [sp], 32 ret -.L339: +.L348: mov w0, 4 - b .L355 -.L342: + b .L364 +.L351: add w3, w3, 4 - b .L356 -.L344: + b .L365 +.L353: cmp w3, 7 - bhi .L345 + bhi .L354 mov w1, 8 - b .L357 + b .L366 .size FtlConstantsInit, .-FtlConstantsInit .section .text.IsBlkInVendorPart,"ax",@progbits .align 2 .global IsBlkInVendorPart .type IsBlkInVendorPart, %function IsBlkInVendorPart: - adrp x1, .LANCHOR71 + adrp x1, .LANCHOR70 and w0, w0, 65535 - ldrh w1, [x1, #:lo12:.LANCHOR71] - cbz w1, .L362 - adrp x1, .LANCHOR62 - ldrh w2, [x1, #:lo12:.LANCHOR62] - adrp x1, .LANCHOR72 - ldr x3, [x1, #:lo12:.LANCHOR72] + ldrh w1, [x1, #:lo12:.LANCHOR70] + cbz w1, .L371 + adrp x1, .LANCHOR61 + ldrh w2, [x1, #:lo12:.LANCHOR61] + adrp x1, .LANCHOR71 + ldr x3, [x1, #:lo12:.LANCHOR71] mov x1, 0 -.L360: +.L369: cmp w2, w1, uxth - bhi .L361 -.L362: + bhi .L370 +.L371: mov w0, 0 ret -.L361: +.L370: add x1, x1, 1 add x4, x3, x1, lsl 1 ldrh w4, [x4, -2] cmp w4, w0 - bne .L360 + bne .L369 mov w0, 1 ret .size IsBlkInVendorPart, .-IsBlkInVendorPart @@ -2351,8 +2461,8 @@ IsBlkInVendorPart: .global FtlGetCap .type FtlGetCap, %function FtlGetCap: - adrp x0, .LANCHOR69 - ldr w0, [x0, #:lo12:.LANCHOR69] + adrp x0, .LANCHOR68 + ldr w0, [x0, #:lo12:.LANCHOR68] ret .size FtlGetCap, .-FtlGetCap .section .text.FtlGetCapacity,"ax",@progbits @@ -2360,8 +2470,8 @@ FtlGetCap: .global FtlGetCapacity .type FtlGetCapacity, %function FtlGetCapacity: - adrp x0, .LANCHOR69 - ldr w0, [x0, #:lo12:.LANCHOR69] + adrp x0, .LANCHOR68 + ldr w0, [x0, #:lo12:.LANCHOR68] ret .size FtlGetCapacity, .-FtlGetCapacity .section .text.ftl_get_density,"ax",@progbits @@ -2369,8 +2479,8 @@ FtlGetCapacity: .global ftl_get_density .type ftl_get_density, %function ftl_get_density: - adrp x0, .LANCHOR69 - ldr w0, [x0, #:lo12:.LANCHOR69] + adrp x0, .LANCHOR68 + ldr w0, [x0, #:lo12:.LANCHOR68] ret .size ftl_get_density, .-ftl_get_density .section .text.FtlGetLpn,"ax",@progbits @@ -2378,8 +2488,8 @@ ftl_get_density: .global FtlGetLpn .type FtlGetLpn, %function FtlGetLpn: - adrp x0, .LANCHOR73 - ldr w0, [x0, #:lo12:.LANCHOR73] + adrp x0, .LANCHOR72 + ldr w0, [x0, #:lo12:.LANCHOR72] ret .size FtlGetLpn, .-FtlGetLpn .section .text.FtlGetCurEraseBlock,"ax",@progbits @@ -2389,8 +2499,8 @@ FtlGetLpn: FtlGetCurEraseBlock: adrp x0, .LANCHOR38 ldrh w1, [x0, #:lo12:.LANCHOR38] - adrp x0, .LANCHOR74 - ldr w0, [x0, #:lo12:.LANCHOR74] + adrp x0, .LANCHOR73 + ldr w0, [x0, #:lo12:.LANCHOR73] mul w0, w1, w0 ret .size FtlGetCurEraseBlock, .-FtlGetCurEraseBlock @@ -2418,8 +2528,8 @@ FtlBbmMapBadBlock: add x29, sp, 0 ldrh w0, [x0, #:lo12:.LANCHOR51] str x19, [sp, 16] - adrp x19, .LANCHOR75 - add x19, x19, :lo12:.LANCHOR75 + adrp x19, .LANCHOR74 + add x19, x19, :lo12:.LANCHOR74 udiv w3, w1, w0 and w2, w3, 65535 msub w3, w3, w0, w1 @@ -2454,8 +2564,8 @@ FtlBbmIsBadBlock: ldrh w1, [x1, #:lo12:.LANCHOR51] udiv w2, w0, w1 msub w0, w2, w1, w0 - adrp x1, .LANCHOR75 - add x1, x1, :lo12:.LANCHOR75 + adrp x1, .LANCHOR74 + add x1, x1, :lo12:.LANCHOR74 add x2, x1, x2, uxth 3 and w0, w0, 65535 ubfx x3, x0, 5, 11 @@ -2529,12 +2639,12 @@ P2V_block_in_plane: ftl_cmp_data_ver: cmp w0, w1 mov w2, -2147483648 - bls .L378 + bls .L387 sub w1, w0, w1 cmp w1, w2 cset w0, ls ret -.L378: +.L387: sub w1, w1, w0 cmp w1, w2 cset w0, hi @@ -2545,8 +2655,8 @@ ftl_cmp_data_ver: .global FtlFreeSysBlkQueueEmpty .type FtlFreeSysBlkQueueEmpty, %function FtlFreeSysBlkQueueEmpty: - adrp x0, .LANCHOR76+6 - ldrh w0, [x0, #:lo12:.LANCHOR76+6] + adrp x0, .LANCHOR75+6 + ldrh w0, [x0, #:lo12:.LANCHOR75+6] cmp w0, 0 cset w0, eq ret @@ -2556,8 +2666,8 @@ FtlFreeSysBlkQueueEmpty: .global FtlFreeSysBlkQueueFull .type FtlFreeSysBlkQueueFull, %function FtlFreeSysBlkQueueFull: - adrp x0, .LANCHOR76+6 - ldrh w0, [x0, #:lo12:.LANCHOR76+6] + adrp x0, .LANCHOR75+6 + ldrh w0, [x0, #:lo12:.LANCHOR75+6] cmp w0, 1024 cset w0, eq ret @@ -2575,40 +2685,40 @@ FtlFreeSysBlkQueueIn: sub w2, w20, #1 mov w0, 65533 cmp w0, w2, uxth - bcc .L382 - adrp x0, .LANCHOR76 - add x2, x0, :lo12:.LANCHOR76 + bcc .L391 + adrp x0, .LANCHOR75 + add x2, x0, :lo12:.LANCHOR75 mov x19, x0 ldrh w2, [x2, 6] cmp w2, 1024 - beq .L382 + beq .L391 and w1, w1, 65535 - cbz w1, .L384 - adrp x0, .LANCHOR77 - ldr w0, [x0, #:lo12:.LANCHOR77] - cbnz w0, .L384 + cbz w1, .L393 + adrp x0, .LANCHOR76 + ldr w0, [x0, #:lo12:.LANCHOR76] + cbnz w0, .L393 mov w0, w20 bl P2V_block_in_plane and w21, w0, 65535 - adrp x0, .LANCHOR78 + adrp x0, .LANCHOR77 lsl w1, w20, 10 mov w2, 1 - ldr x0, [x0, #:lo12:.LANCHOR78] + ldr x0, [x0, #:lo12:.LANCHOR77] str w1, [x0, 4] mov w1, w2 bl FlashEraseBlocks - adrp x1, .LANCHOR79 + adrp x1, .LANCHOR78 ubfiz x0, x21, 1, 16 - ldr x2, [x1, #:lo12:.LANCHOR79] + ldr x2, [x1, #:lo12:.LANCHOR78] ldrh w1, [x2, x0] add w1, w1, 1 strh w1, [x2, x0] - adrp x1, .LANCHOR80 - ldr w0, [x1, #:lo12:.LANCHOR80] + adrp x1, .LANCHOR79 + ldr w0, [x1, #:lo12:.LANCHOR79] add w0, w0, 1 - str w0, [x1, #:lo12:.LANCHOR80] -.L384: - add x0, x19, :lo12:.LANCHOR76 + str w0, [x1, #:lo12:.LANCHOR79] +.L393: + add x0, x19, :lo12:.LANCHOR75 ldrh w1, [x0, 6] add w1, w1, 1 strh w1, [x0, 6] @@ -2618,7 +2728,7 @@ FtlFreeSysBlkQueueIn: and w1, w1, 1023 strh w1, [x0, 4] strh w20, [x2, 8] -.L382: +.L391: ldp x19, x20, [sp, 16] ldr x21, [sp, 32] ldp x29, x30, [sp], 48 @@ -2629,27 +2739,27 @@ FtlFreeSysBlkQueueIn: .global FtlFreeSysBLkSort .type FtlFreeSysBLkSort, %function FtlFreeSysBLkSort: - adrp x0, .LANCHOR76 - add x1, x0, :lo12:.LANCHOR76 + adrp x0, .LANCHOR75 + add x1, x0, :lo12:.LANCHOR75 ldrh w2, [x1, 6] - cbz w2, .L392 - adrp x2, .LANCHOR81+28 + cbz w2, .L401 + adrp x2, .LANCHOR80+28 ldrh w3, [x1, 2] mov w6, 0 mov w4, 0 - ldrh w5, [x2, #:lo12:.LANCHOR81+28] + ldrh w5, [x2, #:lo12:.LANCHOR80+28] ldrh w2, [x1, 4] and w5, w5, 31 -.L394: +.L403: cmp w5, w4 - bgt .L395 - cbz w6, .L392 - add x0, x0, :lo12:.LANCHOR76 + bgt .L404 + cbz w6, .L401 + add x0, x0, :lo12:.LANCHOR75 strh w3, [x0, 2] strh w2, [x0, 4] -.L392: +.L401: ret -.L395: +.L404: add x6, x1, x3, sxtw 1 add w4, w4, 1 add w3, w3, 1 @@ -2661,7 +2771,7 @@ FtlFreeSysBLkSort: mov w6, 1 add w2, w2, w6 and w2, w2, 1023 - b .L394 + b .L403 .size FtlFreeSysBLkSort, .-FtlFreeSysBLkSort .section .text.FtlFreeSysBlkQueueOut,"ax",@progbits .align 2 @@ -2671,16 +2781,16 @@ FtlFreeSysBlkQueueOut: stp x29, x30, [sp, -64]! add x29, sp, 0 stp x19, x20, [sp, 16] - adrp x19, .LANCHOR76 - add x19, x19, :lo12:.LANCHOR76 + adrp x19, .LANCHOR75 + add x19, x19, :lo12:.LANCHOR75 stp x21, x22, [sp, 32] stp x23, x24, [sp, 48] - adrp x22, .LANCHOR77 + adrp x22, .LANCHOR76 mov x23, x19 - add x22, x22, :lo12:.LANCHOR77 -.L402: + add x22, x22, :lo12:.LANCHOR76 +.L411: ldrh w1, [x19, 6] - cbz w1, .L403 + cbz w1, .L412 ldrh w0, [x19, 2] sub w1, w1, #1 strh w1, [x19, 6] @@ -2690,55 +2800,55 @@ FtlFreeSysBlkQueueOut: strh w0, [x19, 2] ldr w0, [x22] ldrh w20, [x2, 8] - cbnz w0, .L404 + cbnz w0, .L413 mov w0, w20 bl P2V_block_in_plane - adrp x1, .LANCHOR78 + adrp x1, .LANCHOR77 and w21, w0, 65535 lsl w2, w20, 10 mov x24, x1 - ldr x0, [x1, #:lo12:.LANCHOR78] + ldr x0, [x1, #:lo12:.LANCHOR77] str w2, [x0, 4] - adrp x2, .LANCHOR8 - ldrb w2, [x2, #:lo12:.LANCHOR8] - cbz w2, .L405 + adrp x2, .LANCHOR15 + ldrb w2, [x2, #:lo12:.LANCHOR15] + cbz w2, .L414 mov w2, 1 mov w1, 0 bl FlashEraseBlocks -.L405: - ldr x0, [x24, #:lo12:.LANCHOR78] +.L414: + ldr x0, [x24, #:lo12:.LANCHOR77] mov w2, 1 mov w1, w2 bl FlashEraseBlocks - adrp x1, .LANCHOR79 + adrp x1, .LANCHOR78 ubfiz x0, x21, 1, 16 - ldr x2, [x1, #:lo12:.LANCHOR79] + ldr x2, [x1, #:lo12:.LANCHOR78] ldrh w1, [x2, x0] add w1, w1, 1 strh w1, [x2, x0] - adrp x1, .LANCHOR80 - ldr w0, [x1, #:lo12:.LANCHOR80] + adrp x1, .LANCHOR79 + ldr w0, [x1, #:lo12:.LANCHOR79] add w0, w0, 1 - str w0, [x1, #:lo12:.LANCHOR80] -.L404: + str w0, [x1, #:lo12:.LANCHOR79] +.L413: sub w0, w20, #1 mov w1, 65533 cmp w1, w0, uxth - bcs .L407 + bcs .L416 ldrh w2, [x23, 6] mov w1, w20 adrp x0, .LC4 add x0, x0, :lo12:.LC4 bl printf - b .L402 -.L403: + b .L411 +.L412: adrp x0, .LC3 mov w1, 0 add x0, x0, :lo12:.LC3 bl printf -.L406: - b .L406 -.L407: +.L415: + b .L415 +.L416: mov w0, w20 ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] @@ -2752,10 +2862,10 @@ FtlFreeSysBlkQueueOut: .type test_node_in_list, %function test_node_in_list: ldr x2, [x0] - adrp x0, .LANCHOR82 + adrp x0, .LANCHOR81 mov x4, -6148914691236517206 and w1, w1, 65535 - ldr x3, [x0, #:lo12:.LANCHOR82] + ldr x3, [x0, #:lo12:.LANCHOR81] movk x4, 0xaaab, lsl 0 mov w5, 65535 sub x0, x2, x3 @@ -2763,18 +2873,18 @@ test_node_in_list: mul x0, x0, x4 mov w4, 6 and w0, w0, 65535 -.L414: +.L423: cmp w0, w1 - beq .L415 + beq .L424 ldrh w0, [x2] cmp w0, w5 - beq .L416 + beq .L425 umaddl x2, w0, w4, x3 - b .L414 -.L415: + b .L423 +.L424: mov w0, 1 ret -.L416: +.L425: mov w0, 0 ret .size test_node_in_list, .-test_node_in_list @@ -2787,30 +2897,30 @@ insert_data_list: and w0, w0, 65535 ldrh w14, [x1, #:lo12:.LANCHOR40] cmp w14, w0 - bls .L433 - adrp x1, .LANCHOR82 + bls .L442 + adrp x1, .LANCHOR81 mov w3, 6 - ldr x6, [x1, #:lo12:.LANCHOR82] + ldr x6, [x1, #:lo12:.LANCHOR81] umull x13, w0, w3 mov w1, -1 add x5, x6, x13 strh w1, [x5, 2] strh w1, [x6, x13] - adrp x1, .LANCHOR83 + adrp x1, .LANCHOR82 mov x15, x1 - ldr x12, [x1, #:lo12:.LANCHOR83] - cbnz x12, .L420 - str x5, [x1, #:lo12:.LANCHOR83] -.L433: + ldr x12, [x1, #:lo12:.LANCHOR82] + cbnz x12, .L429 + str x5, [x1, #:lo12:.LANCHOR82] +.L442: mov w0, 0 ret -.L420: +.L429: stp x29, x30, [sp, -32]! - adrp x1, .LANCHOR84 + adrp x1, .LANCHOR83 ubfiz x2, x0, 1, 16 mov x4, -6148914691236517206 add x29, sp, 0 - ldr x16, [x1, #:lo12:.LANCHOR84] + ldr x16, [x1, #:lo12:.LANCHOR83] movk x4, 0xaaab, lsl 0 ldrh w1, [x5, 4] mov w8, -1 @@ -2825,19 +2935,19 @@ insert_data_list: csel w7, w7, w8, ne mov w8, w3 mul x1, x1, x4 - adrp x4, .LANCHOR79 - ldr x17, [x4, #:lo12:.LANCHOR79] + adrp x4, .LANCHOR78 + ldr x17, [x4, #:lo12:.LANCHOR78] and w1, w1, 65535 mov x4, x12 add x10, x17, x2 mov w2, 0 -.L428: +.L437: add w2, w2, 1 and w2, w2, 65535 cmp w14, w2 - bcc .L419 + bcc .L428 cmp w1, w0 - beq .L419 + beq .L428 ubfiz x30, x1, 1, 16 ldrh w19, [x4, 4] cmp w19, 0 @@ -2845,46 +2955,46 @@ insert_data_list: mul w3, w3, w19 csel w3, w3, w11, ne cmp w7, w3 - bne .L424 + bne .L433 ldrh w19, [x17, x30] ldrh w3, [x10] cmp w19, w3 - bcc .L426 -.L425: + bcc .L435 +.L434: strh w1, [x6, x13] cmp x4, x12 ldrh w1, [x4, 2] strh w1, [x5, 2] - bne .L429 + bne .L438 strh w0, [x4, 2] - str x5, [x15, #:lo12:.LANCHOR83] - b .L419 -.L424: - bcc .L425 -.L426: + str x5, [x15, #:lo12:.LANCHOR82] + b .L428 +.L433: + bcc .L434 +.L435: ldrh w3, [x4] cmp w3, w20 - bne .L427 + bne .L436 strh w1, [x5, 2] strh w0, [x4] - adrp x0, .LANCHOR85 - str x5, [x0, #:lo12:.LANCHOR85] -.L419: + adrp x0, .LANCHOR84 + str x5, [x0, #:lo12:.LANCHOR84] +.L428: mov w0, 0 ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 32 ret -.L427: +.L436: umaddl x4, w3, w8, x6 mov w1, w3 - b .L428 -.L429: + b .L437 +.L438: ldrh w1, [x4, 2] mov w2, 6 umull x1, w1, w2 strh w0, [x6, x1] strh w0, [x4, 2] - b .L419 + b .L428 .size insert_data_list, .-insert_data_list .section .text.INSERT_DATA_LIST,"ax",@progbits .align 2 @@ -2894,19 +3004,19 @@ INSERT_DATA_LIST: stp x29, x30, [sp, -16]! add x29, sp, 0 bl insert_data_list - adrp x1, .LANCHOR86 - ldrh w0, [x1, #:lo12:.LANCHOR86] + adrp x1, .LANCHOR85 + ldrh w0, [x1, #:lo12:.LANCHOR85] add w0, w0, 1 and w0, w0, 65535 - strh w0, [x1, #:lo12:.LANCHOR86] + strh w0, [x1, #:lo12:.LANCHOR85] adrp x1, .LANCHOR40 ldrh w1, [x1, #:lo12:.LANCHOR40] cmp w1, w0 - bcs .L435 + bcs .L444 mov w2, 210 - adrp x1, .LANCHOR87 + adrp x1, .LANCHOR86 adrp x0, .LC5 - add x1, x1, :lo12:.LANCHOR87 + add x1, x1, :lo12:.LANCHOR86 add x0, x0, :lo12:.LC5 bl printf ldp x29, x30, [sp], 16 @@ -2915,7 +3025,7 @@ INSERT_DATA_LIST: add x1, x1, :lo12:.LC6 add x0, x0, :lo12:.LC7 b printf -.L435: +.L444: ldp x29, x30, [sp], 16 ret .size INSERT_DATA_LIST, .-INSERT_DATA_LIST @@ -2927,28 +3037,28 @@ insert_free_list: and w0, w0, 65535 mov w7, 65535 cmp w0, w7 - beq .L439 - adrp x1, .LANCHOR82 + beq .L448 + adrp x1, .LANCHOR81 mov w6, 6 - ldr x3, [x1, #:lo12:.LANCHOR82] + ldr x3, [x1, #:lo12:.LANCHOR81] umull x8, w0, w6 mov w1, -1 add x4, x3, x8 strh w1, [x4, 2] strh w1, [x3, x8] - adrp x1, .LANCHOR88 + adrp x1, .LANCHOR87 mov x12, x1 - ldr x5, [x1, #:lo12:.LANCHOR88] - cbnz x5, .L440 - str x4, [x1, #:lo12:.LANCHOR88] -.L439: + ldr x5, [x1, #:lo12:.LANCHOR87] + cbnz x5, .L449 + str x4, [x1, #:lo12:.LANCHOR87] +.L448: mov w0, 0 ret -.L440: - adrp x1, .LANCHOR79 +.L449: + adrp x1, .LANCHOR78 mov x2, -6148914691236517206 movk x2, 0xaaab, lsl 0 - ldr x11, [x1, #:lo12:.LANCHOR79] + ldr x11, [x1, #:lo12:.LANCHOR78] ubfiz x1, x0, 1, 16 ldrh w13, [x11, x1] sub x1, x5, x3 @@ -2956,37 +3066,37 @@ insert_free_list: mul x1, x1, x2 mov x2, x5 and w1, w1, 65535 -.L443: +.L452: ubfiz x10, x1, 1, 16 ldrh w10, [x11, x10] cmp w10, w13 - bcs .L441 + bcs .L450 ldrh w10, [x2] cmp w10, w7 - bne .L442 + bne .L451 strh w1, [x4, 2] strh w0, [x2] - b .L439 -.L442: + b .L448 +.L451: umaddl x2, w10, w6, x3 mov w1, w10 - b .L443 -.L441: + b .L452 +.L450: ldrh w6, [x2, 2] cmp x2, x5 strh w6, [x4, 2] strh w1, [x3, x8] - bne .L444 + bne .L453 strh w0, [x2, 2] - str x4, [x12, #:lo12:.LANCHOR88] - b .L439 -.L444: + str x4, [x12, #:lo12:.LANCHOR87] + b .L448 +.L453: ldrh w1, [x2, 2] mov w4, 6 umull x1, w1, w4 strh w0, [x3, x1] strh w0, [x2, 2] - b .L439 + b .L448 .size insert_free_list, .-insert_free_list .section .text.INSERT_FREE_LIST,"ax",@progbits .align 2 @@ -2996,19 +3106,19 @@ INSERT_FREE_LIST: stp x29, x30, [sp, -16]! add x29, sp, 0 bl insert_free_list - adrp x1, .LANCHOR89 - ldrh w0, [x1, #:lo12:.LANCHOR89] + adrp x1, .LANCHOR88 + ldrh w0, [x1, #:lo12:.LANCHOR88] add w0, w0, 1 and w0, w0, 65535 - strh w0, [x1, #:lo12:.LANCHOR89] + strh w0, [x1, #:lo12:.LANCHOR88] adrp x1, .LANCHOR40 ldrh w1, [x1, #:lo12:.LANCHOR40] cmp w1, w0 - bcs .L445 + bcs .L454 mov w2, 203 - adrp x1, .LANCHOR90 + adrp x1, .LANCHOR89 adrp x0, .LC5 - add x1, x1, :lo12:.LANCHOR90 + add x1, x1, :lo12:.LANCHOR89 add x0, x0, :lo12:.LC5 bl printf ldp x29, x30, [sp], 16 @@ -3017,7 +3127,7 @@ INSERT_FREE_LIST: add x1, x1, :lo12:.LC6 add x0, x0, :lo12:.LC7 b printf -.L445: +.L454: ldp x29, x30, [sp], 16 ret .size INSERT_FREE_LIST, .-INSERT_FREE_LIST @@ -3030,25 +3140,25 @@ List_remove_node: and w1, w1, 65535 add x29, sp, 0 stp x19, x20, [sp, 16] - adrp x20, .LANCHOR82 + adrp x20, .LANCHOR81 stp x21, x22, [sp, 32] mov x22, x0 mov w0, 6 str x23, [sp, 48] - ldr x23, [x20, #:lo12:.LANCHOR82] + ldr x23, [x20, #:lo12:.LANCHOR81] umull x21, w1, w0 mov w0, 65535 add x19, x23, x21 ldrh w1, [x19, 2] cmp w1, w0 - bne .L449 + bne .L458 ldr x0, [x22] cmp x19, x0 - beq .L449 + beq .L458 mov w2, 386 - adrp x1, .LANCHOR91 + adrp x1, .LANCHOR90 adrp x0, .LC5 - add x1, x1, :lo12:.LANCHOR91 + add x1, x1, :lo12:.LANCHOR90 add x0, x0, :lo12:.LC5 bl printf adrp x1, .LC6 @@ -3056,16 +3166,16 @@ List_remove_node: add x1, x1, :lo12:.LC6 add x0, x0, :lo12:.LC7 bl printf -.L449: +.L458: ldr x0, [x22] mov w1, 65535 cmp x19, x0 ldrh w0, [x23, x21] - bne .L450 + bne .L459 cmp w0, w1 - bne .L451 + bne .L460 str xzr, [x22] -.L452: +.L461: mov w0, -1 strh w0, [x23, x21] strh w0, [x19, 2] @@ -3075,35 +3185,35 @@ List_remove_node: ldr x23, [sp, 48] ldp x29, x30, [sp], 64 ret -.L451: - ldr x1, [x20, #:lo12:.LANCHOR82] +.L460: + ldr x1, [x20, #:lo12:.LANCHOR81] mov w2, 6 umaddl x0, w0, w2, x1 mov w1, -1 str x0, [x22] strh w1, [x0, 2] - b .L452 -.L450: + b .L461 +.L459: cmp w0, w1 ldrh w1, [x19, 2] - bne .L453 + bne .L462 cmp w1, w0 - beq .L452 + beq .L461 mov w0, 6 mov w2, -1 umull x1, w1, w0 - ldr x0, [x20, #:lo12:.LANCHOR82] + ldr x0, [x20, #:lo12:.LANCHOR81] strh w2, [x0, x1] - b .L452 -.L453: - ldr x2, [x20, #:lo12:.LANCHOR82] + b .L461 +.L462: + ldr x2, [x20, #:lo12:.LANCHOR81] mov w3, 6 umaddl x4, w0, w3, x2 strh w1, [x4, 2] ldrh w1, [x19, 2] umull x1, w1, w3 strh w0, [x2, x1] - b .L452 + b .L461 .size List_remove_node, .-List_remove_node .section .text.List_pop_index_node,"ax",@progbits .align 2 @@ -3111,18 +3221,18 @@ List_remove_node: .type List_pop_index_node, %function List_pop_index_node: ldr x2, [x0] - cbz x2, .L461 + cbz x2, .L470 stp x29, x30, [sp, -32]! - adrp x3, .LANCHOR82 + adrp x3, .LANCHOR81 and w1, w1, 65535 mov w4, 65535 add x29, sp, 0 str x19, [sp, 16] mov w5, 6 - ldr x19, [x3, #:lo12:.LANCHOR82] -.L457: - cbnz w1, .L458 -.L460: + ldr x19, [x3, #:lo12:.LANCHOR81] +.L466: + cbnz w1, .L467 +.L469: sub x19, x2, x19 mov x2, -6148914691236517206 asr x19, x19, 1 @@ -3135,15 +3245,15 @@ List_pop_index_node: ldr x19, [sp, 16] ldp x29, x30, [sp], 32 ret -.L458: +.L467: ldrh w3, [x2] cmp w3, w4 - beq .L460 + beq .L469 sub w1, w1, #1 umaddl x2, w3, w5, x19 and w1, w1, 65535 - b .L457 -.L461: + b .L466 +.L470: mov w0, 65535 ret .size List_pop_index_node, .-List_pop_index_node @@ -3153,28 +3263,28 @@ List_pop_index_node: .type List_get_gc_head_node, %function List_get_gc_head_node: and w2, w0, 65535 - adrp x0, .LANCHOR83 - ldr x1, [x0, #:lo12:.LANCHOR83] - cbz x1, .L471 adrp x0, .LANCHOR82 + ldr x1, [x0, #:lo12:.LANCHOR82] + cbz x1, .L480 + adrp x0, .LANCHOR81 mov w4, 6 - ldr x3, [x0, #:lo12:.LANCHOR82] + ldr x3, [x0, #:lo12:.LANCHOR81] mov w0, 65535 -.L468: - cbz w2, .L469 +.L477: + cbz w2, .L478 ldrh w1, [x1] cmp w1, w0 - bne .L470 + bne .L479 ret -.L470: +.L479: sub w2, w2, #1 umaddl x1, w1, w4, x3 and w2, w2, 65535 - b .L468 -.L471: + b .L477 +.L480: mov w0, 65535 ret -.L469: +.L478: sub x0, x1, x3 mov x1, -6148914691236517206 asr x0, x0, 1 @@ -3192,35 +3302,35 @@ List_update_data_list: add x29, sp, 0 stp x19, x20, [sp, 16] and w19, w0, 65535 - adrp x0, .LANCHOR92 + adrp x0, .LANCHOR91 stp x21, x22, [sp, 32] stp x23, x24, [sp, 48] - ldrh w0, [x0, #:lo12:.LANCHOR92] + ldrh w0, [x0, #:lo12:.LANCHOR91] stp x25, x26, [sp, 64] cmp w0, w19 - beq .L474 + beq .L483 + adrp x0, .LANCHOR92 + ldrh w0, [x0, #:lo12:.LANCHOR92] + cmp w0, w19 + beq .L483 adrp x0, .LANCHOR93 ldrh w0, [x0, #:lo12:.LANCHOR93] cmp w0, w19 - beq .L474 - adrp x0, .LANCHOR94 - ldrh w0, [x0, #:lo12:.LANCHOR94] - cmp w0, w19 - beq .L474 - adrp x0, .LANCHOR82 + beq .L483 + adrp x0, .LANCHOR81 mov w21, 6 - adrp x24, .LANCHOR83 + adrp x24, .LANCHOR82 mov x26, x0 umull x21, w19, w21 - ldr x23, [x0, #:lo12:.LANCHOR82] - ldr x1, [x24, #:lo12:.LANCHOR83] + ldr x23, [x0, #:lo12:.LANCHOR81] + ldr x1, [x24, #:lo12:.LANCHOR82] add x22, x23, x21 cmp x22, x1 - beq .L474 - adrp x1, .LANCHOR84 + beq .L483 + adrp x1, .LANCHOR83 ubfiz x0, x19, 1, 16 mov x25, x1 - ldr x2, [x1, #:lo12:.LANCHOR84] + ldr x2, [x1, #:lo12:.LANCHOR83] mov w1, 65535 ldrh w20, [x2, x0] ldrh w0, [x22, 4] @@ -3229,14 +3339,14 @@ List_update_data_list: ldrh w0, [x22, 2] csinv w20, w20, wzr, ne cmp w0, w1 - bne .L477 + bne .L486 ldrh w1, [x23, x21] cmp w1, w0 - bne .L477 + bne .L486 mov w2, 504 - adrp x1, .LANCHOR95 + adrp x1, .LANCHOR94 adrp x0, .LC5 - add x1, x1, :lo12:.LANCHOR95 + add x1, x1, :lo12:.LANCHOR94 add x0, x0, :lo12:.LC5 bl printf adrp x1, .LC6 @@ -3244,41 +3354,41 @@ List_update_data_list: add x1, x1, :lo12:.LC6 add x0, x0, :lo12:.LC7 bl printf -.L477: +.L486: ldrh w0, [x22, 2] mov w1, 65535 cmp w0, w1 - bne .L478 + bne .L487 ldrh w1, [x23, x21] cmp w1, w0 - beq .L474 -.L478: + beq .L483 +.L487: mov w1, 6 mov x2, -6148914691236517206 movk x2, 0xaaab, lsl 0 umull x0, w0, w1 asr x1, x0, 1 mul x1, x1, x2 - ldr x2, [x25, #:lo12:.LANCHOR84] + ldr x2, [x25, #:lo12:.LANCHOR83] ldrh w1, [x2, x1, lsl 1] - ldr x2, [x26, #:lo12:.LANCHOR82] + ldr x2, [x26, #:lo12:.LANCHOR81] add x0, x2, x0 ldrh w2, [x0, 4] cmp w2, 0 mul w0, w1, w2 csinv w0, w0, wzr, ne cmp w20, w0 - bcs .L474 - adrp x20, .LANCHOR86 + bcs .L483 + adrp x20, .LANCHOR85 mov w1, w19 - add x0, x24, :lo12:.LANCHOR83 + add x0, x24, :lo12:.LANCHOR82 bl List_remove_node - ldrh w0, [x20, #:lo12:.LANCHOR86] - cbnz w0, .L480 + ldrh w0, [x20, #:lo12:.LANCHOR85] + cbnz w0, .L489 mov w2, 515 - adrp x1, .LANCHOR95 + adrp x1, .LANCHOR94 adrp x0, .LC5 - add x1, x1, :lo12:.LANCHOR95 + add x1, x1, :lo12:.LANCHOR94 add x0, x0, :lo12:.LC5 bl printf adrp x1, .LC6 @@ -3286,13 +3396,13 @@ List_update_data_list: add x1, x1, :lo12:.LC6 add x0, x0, :lo12:.LC7 bl printf -.L480: - ldrh w0, [x20, #:lo12:.LANCHOR86] +.L489: + ldrh w0, [x20, #:lo12:.LANCHOR85] sub w0, w0, #1 - strh w0, [x20, #:lo12:.LANCHOR86] + strh w0, [x20, #:lo12:.LANCHOR85] mov w0, w19 bl INSERT_DATA_LIST -.L474: +.L483: mov w0, 0 ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] @@ -3314,27 +3424,27 @@ ftl_map_blk_alloc_new_blk: mov w20, 0 ldr x0, [x0, 16] str x21, [sp, 32] -.L485: +.L494: cmp w20, w1 - beq .L489 + beq .L498 mov x21, x0 ldrh w2, [x0], 2 - cbnz w2, .L486 + cbnz w2, .L495 bl FtlFreeSysBlkQueueOut and w1, w0, 65535 strh w0, [x21] sub w2, w1, #1 mov w0, 65533 cmp w0, w2, uxth - bcs .L487 - adrp x0, .LANCHOR76+6 - ldrh w2, [x0, #:lo12:.LANCHOR76+6] + bcs .L496 + adrp x0, .LANCHOR75+6 + ldrh w2, [x0, #:lo12:.LANCHOR75+6] adrp x0, .LC8 add x0, x0, :lo12:.LC8 bl printf -.L488: - b .L488 -.L487: +.L497: + b .L497 +.L496: ldr w0, [x19, 48] strh wzr, [x19, 2] add w0, w0, 1 @@ -3343,14 +3453,14 @@ ftl_map_blk_alloc_new_blk: strh w20, [x19] add w0, w0, 1 strh w0, [x19, 8] -.L489: +.L498: ldrh w0, [x19, 10] cmp w0, w20 - bhi .L491 + bhi .L500 mov w2, 629 - adrp x1, .LANCHOR96 + adrp x1, .LANCHOR95 adrp x0, .LC5 - add x1, x1, :lo12:.LANCHOR96 + add x1, x1, :lo12:.LANCHOR95 add x0, x0, :lo12:.LC5 bl printf adrp x1, .LC6 @@ -3358,16 +3468,16 @@ ftl_map_blk_alloc_new_blk: add x1, x1, :lo12:.LC6 add x0, x0, :lo12:.LC7 bl printf -.L491: +.L500: mov w0, 0 ldr x21, [sp, 32] ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 48 ret -.L486: +.L495: add w20, w20, 1 and w20, w20, 65535 - b .L485 + b .L494 .size ftl_map_blk_alloc_new_blk, .-ftl_map_blk_alloc_new_blk .section .text.select_l2p_ram_region,"ax",@progbits .align 2 @@ -3375,41 +3485,41 @@ ftl_map_blk_alloc_new_blk: .type select_l2p_ram_region, %function select_l2p_ram_region: stp x29, x30, [sp, -32]! - adrp x0, .LANCHOR68 + adrp x0, .LANCHOR67 mov x1, 0 mov w3, 65535 add x29, sp, 0 - ldrh w2, [x0, #:lo12:.LANCHOR68] - adrp x0, .LANCHOR97 + ldrh w2, [x0, #:lo12:.LANCHOR67] + adrp x0, .LANCHOR96 str x19, [sp, 16] - ldr x0, [x0, #:lo12:.LANCHOR97] -.L494: + ldr x0, [x0, #:lo12:.LANCHOR96] +.L503: and w19, w1, 65535 cmp w19, w2 - bcc .L496 + bcc .L505 add x3, x0, 4 mov w19, w2 mov w5, -2147483648 mov w1, 0 -.L497: +.L506: cmp w1, w2 - bne .L499 + bne .L508 cmp w19, w2 - bcc .L495 - adrp x1, .LANCHOR98 + bcc .L504 + adrp x1, .LANCHOR97 mov w19, w2 mov w3, -1 - ldrh w4, [x1, #:lo12:.LANCHOR98] + ldrh w4, [x1, #:lo12:.LANCHOR97] mov w1, 0 -.L500: +.L509: cmp w1, w2 - bne .L502 + bne .L511 cmp w19, w1 - bcc .L495 - mov w2, 855 - adrp x1, .LANCHOR99 + bcc .L504 + mov w2, 859 + adrp x1, .LANCHOR98 adrp x0, .LC5 - add x1, x1, :lo12:.LANCHOR99 + add x1, x1, :lo12:.LANCHOR98 add x0, x0, :lo12:.LC5 bl printf adrp x1, .LC6 @@ -3417,86 +3527,86 @@ select_l2p_ram_region: add x1, x1, :lo12:.LC6 add x0, x0, :lo12:.LC7 bl printf - b .L495 -.L496: + b .L504 +.L505: add x1, x1, 1 add x4, x0, x1, lsl 4 ldrh w4, [x4, -16] cmp w4, w3 - bne .L494 -.L495: + bne .L503 +.L504: mov w0, w19 ldr x19, [sp, 16] ldp x29, x30, [sp], 32 ret -.L499: +.L508: ldr w4, [x3] - tbnz w4, #31, .L498 + tbnz w4, #31, .L507 cmp w5, w4 - bls .L498 + bls .L507 mov w5, w4 mov w19, w1 -.L498: +.L507: add w1, w1, 1 add x3, x3, 16 and w1, w1, 65535 - b .L497 -.L502: + b .L506 +.L511: ldr w6, [x0, 4] cmp w3, w6 - bls .L501 + bls .L510 ldrh w5, [x0] cmp w5, w4 csel w3, w3, w6, eq csel w19, w19, w1, eq -.L501: +.L510: add w1, w1, 1 add x0, x0, 16 and w1, w1, 65535 - b .L500 + b .L509 .size select_l2p_ram_region, .-select_l2p_ram_region .section .text.FtlUpdateVaildLpn,"ax",@progbits .align 2 .global FtlUpdateVaildLpn .type FtlUpdateVaildLpn, %function FtlUpdateVaildLpn: - adrp x2, .LANCHOR100 + adrp x2, .LANCHOR99 mov x3, x2 - ldrh w1, [x2, #:lo12:.LANCHOR100] + ldrh w1, [x2, #:lo12:.LANCHOR99] cmp w1, 4 - bhi .L505 - cbnz w0, .L505 + bhi .L514 + cbnz w0, .L514 add w1, w1, 1 - strh w1, [x2, #:lo12:.LANCHOR100] + strh w1, [x2, #:lo12:.LANCHOR99] ret -.L505: +.L514: adrp x1, .LANCHOR40 - adrp x0, .LANCHOR101 - strh wzr, [x3, #:lo12:.LANCHOR100] + adrp x0, .LANCHOR100 + strh wzr, [x3, #:lo12:.LANCHOR99] mov w2, 0 ldrh w5, [x1, #:lo12:.LANCHOR40] - adrp x1, .LANCHOR84 - str wzr, [x0, #:lo12:.LANCHOR101] + adrp x1, .LANCHOR83 + str wzr, [x0, #:lo12:.LANCHOR100] mov w3, 0 - ldr x6, [x1, #:lo12:.LANCHOR84] + ldr x6, [x1, #:lo12:.LANCHOR83] mov w7, 65535 mov x1, 0 -.L506: +.L515: cmp w5, w1, uxth - bhi .L508 - cbz w3, .L504 - str w2, [x0, #:lo12:.LANCHOR101] -.L504: + bhi .L517 + cbz w3, .L513 + str w2, [x0, #:lo12:.LANCHOR100] +.L513: ret -.L508: +.L517: ldrh w4, [x6, x1, lsl 1] cmp w4, w7 - beq .L507 + beq .L516 add w2, w2, w4 mov w3, 1 -.L507: +.L516: add x1, x1, 1 - b .L506 + b .L515 .size FtlUpdateVaildLpn, .-FtlUpdateVaildLpn .section .text.ftl_set_blk_mode,"ax",@progbits .align 2 @@ -3504,9 +3614,9 @@ FtlUpdateVaildLpn: .type ftl_set_blk_mode, %function ftl_set_blk_mode: and w0, w0, 65535 - cbz w1, .L515 + cbz w1, .L524 b ftl_set_blk_mode.part.10 -.L515: +.L524: adrp x1, .LANCHOR0 ubfx x2, x0, 5, 11 lsl x2, x2, 2 @@ -3548,45 +3658,45 @@ ftl_sb_update_avl_pages: add x4, x0, x4 ldrh w3, [x1, #:lo12:.LANCHOR38] mov w1, 65535 -.L518: +.L527: cmp w2, w3 - bcc .L520 - adrp x1, .LANCHOR53 + bcc .L529 + adrp x1, .LANCHOR52 ubfiz x3, x3, 1, 16 add x3, x3, 16 add x2, x0, 16 - ldrh w1, [x1, #:lo12:.LANCHOR53] + ldrh w1, [x1, #:lo12:.LANCHOR52] add x3, x0, x3 mov w5, 65535 sub w1, w1, #1 and w1, w1, 65535 sub w1, w1, w6 -.L521: +.L530: cmp x2, x3 - bne .L523 + bne .L532 ret -.L520: +.L529: ldrh w5, [x4] cmp w5, w1 - beq .L519 + beq .L528 ldrh w5, [x0, 4] add w5, w5, 1 strh w5, [x0, 4] -.L519: +.L528: add w2, w2, 1 add x4, x4, 2 and w2, w2, 65535 - b .L518 -.L523: + b .L527 +.L532: ldrh w4, [x2] cmp w4, w5 - beq .L522 + beq .L531 ldrh w4, [x0, 4] add w4, w1, w4 strh w4, [x0, 4] -.L522: +.L531: add x2, x2, 2 - b .L521 + b .L530 .size ftl_sb_update_avl_pages, .-ftl_sb_update_avl_pages .section .text.make_superblock,"ax",@progbits .align 2 @@ -3601,11 +3711,11 @@ make_superblock: adrp x0, .LANCHOR40 ldrh w0, [x0, #:lo12:.LANCHOR40] cmp w1, w0 - bcc .L525 - mov w2, 2544 - adrp x1, .LANCHOR102 + bcc .L534 + mov w2, 2575 + adrp x1, .LANCHOR101 adrp x0, .LC5 - add x1, x1, :lo12:.LANCHOR102 + add x1, x1, :lo12:.LANCHOR101 add x0, x0, :lo12:.LC5 bl printf adrp x1, .LC6 @@ -3613,7 +3723,7 @@ make_superblock: add x1, x1, :lo12:.LC6 add x0, x0, :lo12:.LC7 bl printf -.L525: +.L534: adrp x0, .LANCHOR38 adrp x7, .LANCHOR47 add x6, x19, 16 @@ -3623,53 +3733,53 @@ make_superblock: strh wzr, [x19, 4] mov w10, -1 strb wzr, [x19, 7] -.L526: +.L535: cmp w8, w5, uxth - bhi .L528 - adrp x1, .LANCHOR53 + bhi .L537 + adrp x1, .LANCHOR52 ldrb w0, [x19, 7] strb wzr, [x19, 9] - ldrh w1, [x1, #:lo12:.LANCHOR53] + ldrh w1, [x1, #:lo12:.LANCHOR52] mul w0, w0, w1 strh w0, [x19, 4] adrp x0, .LANCHOR28 ldr w0, [x0, #:lo12:.LANCHOR28] - cbz w0, .L529 - adrp x0, .LANCHOR79 + cbz w0, .L538 + adrp x0, .LANCHOR78 ldrh w1, [x19] - ldr x0, [x0, #:lo12:.LANCHOR79] + ldr x0, [x0, #:lo12:.LANCHOR78] ldrh w0, [x0, x1, lsl 1] cmp w0, 79 - bhi .L529 + bhi .L538 mov w0, 1 strb w0, [x19, 9] -.L529: +.L538: adrp x0, .LANCHOR1 ldrb w0, [x0, #:lo12:.LANCHOR1] - cbz w0, .L530 + cbz w0, .L539 mov w0, 1 strb w0, [x19, 9] -.L530: +.L539: mov w0, 0 ldr x19, [sp, 16] ldp x29, x30, [sp], 32 ret -.L528: +.L537: ldrh w1, [x19] ldrb w0, [x7, x5] bl V2P_block mov w4, w0 strh w10, [x6] bl FtlBbmIsBadBlock - cbnz w0, .L527 + cbnz w0, .L536 strh w4, [x6] ldrb w0, [x19, 7] add w0, w0, 1 strb w0, [x19, 7] -.L527: +.L536: add x5, x5, 1 add x6, x6, 2 - b .L526 + b .L535 .size make_superblock, .-make_superblock .section .text.update_multiplier_value,"ax",@progbits .align 2 @@ -3681,51 +3791,51 @@ update_multiplier_value: mov x7, 0 adrp x8, .LANCHOR47 ldrh w10, [x0, #:lo12:.LANCHOR38] - adrp x0, .LANCHOR53 + adrp x0, .LANCHOR52 mov w5, 0 add x8, x8, :lo12:.LANCHOR47 - ldrh w11, [x0, #:lo12:.LANCHOR53] + ldrh w11, [x0, #:lo12:.LANCHOR52] cmp w10, w7, uxth - bhi .L550 - cbz w5, .L548 + bhi .L559 + cbz w5, .L557 mov w0, 32768 sdiv w5, w0, w5 -.L549: - adrp x0, .LANCHOR82 +.L558: + adrp x0, .LANCHOR81 mov w1, 6 - ldr x0, [x0, #:lo12:.LANCHOR82] + ldr x0, [x0, #:lo12:.LANCHOR81] umaddl x6, w6, w1, x0 mov w0, 0 strh w5, [x6, 4] ret -.L543: +.L552: mov w5, 0 - b .L542 -.L548: + b .L551 +.L557: mov w5, 0 - b .L549 -.L550: + b .L558 +.L559: stp x29, x30, [sp, -16]! add x29, sp, 0 -.L541: +.L550: ldrb w0, [x8, x7] mov w1, w6 bl V2P_block bl FtlBbmIsBadBlock - cbnz w0, .L540 + cbnz w0, .L549 add w5, w5, w11 and w5, w5, 65535 -.L540: +.L549: add x7, x7, 1 cmp w10, w7, uxth - bhi .L541 - cbz w5, .L543 + bhi .L550 + cbz w5, .L552 mov w0, 32768 sdiv w5, w0, w5 -.L542: - adrp x0, .LANCHOR82 +.L551: + adrp x0, .LANCHOR81 mov w1, 6 - ldr x0, [x0, #:lo12:.LANCHOR82] + ldr x0, [x0, #:lo12:.LANCHOR81] umaddl x6, w6, w1, x0 mov w0, 0 strh w5, [x6, 4] @@ -3737,22 +3847,22 @@ update_multiplier_value: .global GetFreeBlockMinEraseCount .type GetFreeBlockMinEraseCount, %function GetFreeBlockMinEraseCount: - adrp x0, .LANCHOR88 - ldr x0, [x0, #:lo12:.LANCHOR88] - cbz x0, .L553 - adrp x1, .LANCHOR82 - ldr x1, [x1, #:lo12:.LANCHOR82] + adrp x0, .LANCHOR87 + ldr x0, [x0, #:lo12:.LANCHOR87] + cbz x0, .L562 + adrp x1, .LANCHOR81 + ldr x1, [x1, #:lo12:.LANCHOR81] sub x0, x0, x1 mov x1, -6148914691236517206 asr x0, x0, 1 movk x1, 0xaaab, lsl 0 mul x0, x0, x1 - adrp x1, .LANCHOR79 - ldr x1, [x1, #:lo12:.LANCHOR79] + adrp x1, .LANCHOR78 + ldr x1, [x1, #:lo12:.LANCHOR78] and x0, x0, 65535 ldrh w0, [x1, x0, lsl 1] ret -.L553: +.L562: mov w0, 0 ret .size GetFreeBlockMinEraseCount, .-GetFreeBlockMinEraseCount @@ -3761,21 +3871,21 @@ GetFreeBlockMinEraseCount: .global GetFreeBlockMaxEraseCount .type GetFreeBlockMaxEraseCount, %function GetFreeBlockMaxEraseCount: - adrp x1, .LANCHOR88 + adrp x1, .LANCHOR87 and w0, w0, 65535 - ldr x1, [x1, #:lo12:.LANCHOR88] - cbz x1, .L561 - adrp x2, .LANCHOR89 + ldr x1, [x1, #:lo12:.LANCHOR87] + cbz x1, .L570 + adrp x2, .LANCHOR88 mov w3, 7 mov w5, 6 mov w6, 65535 - ldrh w2, [x2, #:lo12:.LANCHOR89] + ldrh w2, [x2, #:lo12:.LANCHOR88] mul w2, w2, w3 asr w2, w2, 3 cmp w0, w2 csel w0, w2, w0, gt - adrp x2, .LANCHOR82 - ldr x3, [x2, #:lo12:.LANCHOR82] + adrp x2, .LANCHOR81 + ldr x3, [x2, #:lo12:.LANCHOR81] mov x2, -6148914691236517206 movk x2, 0xaaab, lsl 0 sub x1, x1, x3 @@ -3783,25 +3893,25 @@ GetFreeBlockMaxEraseCount: mul x1, x1, x2 mov w2, 0 and w1, w1, 65535 -.L557: +.L566: cmp w0, w2 - beq .L560 + beq .L569 umull x4, w1, w5 ldrh w4, [x3, x4] cmp w4, w6 - bne .L558 -.L560: - adrp x0, .LANCHOR79 + bne .L567 +.L569: + adrp x0, .LANCHOR78 ubfiz x1, x1, 1, 16 - ldr x0, [x0, #:lo12:.LANCHOR79] + ldr x0, [x0, #:lo12:.LANCHOR78] ldrh w0, [x0, x1] ret -.L558: +.L567: add w2, w2, 1 mov w1, w4 and w2, w2, 65535 - b .L557 -.L561: + b .L566 +.L570: mov w0, 0 ret .size GetFreeBlockMaxEraseCount, .-GetFreeBlockMaxEraseCount @@ -3813,18 +3923,18 @@ free_data_superblock: and w0, w0, 65535 mov w1, 65535 cmp w0, w1 - beq .L565 + beq .L574 stp x29, x30, [sp, -16]! - adrp x2, .LANCHOR84 + adrp x2, .LANCHOR83 ubfiz x1, x0, 1, 16 add x29, sp, 0 - ldr x2, [x2, #:lo12:.LANCHOR84] + ldr x2, [x2, #:lo12:.LANCHOR83] strh wzr, [x2, x1] bl INSERT_FREE_LIST mov w0, 0 ldp x29, x30, [sp], 16 ret -.L565: +.L574: mov w0, 0 ret .size free_data_superblock, .-free_data_superblock @@ -3833,45 +3943,45 @@ free_data_superblock: .global FtlGcBufInit .type FtlGcBufInit, %function FtlGcBufInit: - adrp x1, .LANCHOR104 - adrp x0, .LANCHOR103 - adrp x7, .LANCHOR105 - adrp x6, .LANCHOR106 - ldr x5, [x1, #:lo12:.LANCHOR104] - adrp x1, .LANCHOR58 - str wzr, [x0, #:lo12:.LANCHOR103] + adrp x1, .LANCHOR103 + adrp x0, .LANCHOR102 + adrp x7, .LANCHOR104 + adrp x6, .LANCHOR105 + ldr x5, [x1, #:lo12:.LANCHOR103] + adrp x1, .LANCHOR57 + str wzr, [x0, #:lo12:.LANCHOR102] adrp x0, .LANCHOR38 - ldrh w10, [x1, #:lo12:.LANCHOR58] - adrp x1, .LANCHOR59 + ldrh w10, [x1, #:lo12:.LANCHOR57] + adrp x1, .LANCHOR58 ldrh w0, [x0, #:lo12:.LANCHOR38] mov w8, 24 - ldrh w11, [x1, #:lo12:.LANCHOR59] - adrp x1, .LANCHOR107 - ldr x14, [x7, #:lo12:.LANCHOR105] + ldrh w11, [x1, #:lo12:.LANCHOR58] + adrp x1, .LANCHOR106 + ldr x14, [x7, #:lo12:.LANCHOR104] mov x3, x5 - ldr x4, [x1, #:lo12:.LANCHOR107] + ldr x4, [x1, #:lo12:.LANCHOR106] mov w2, 0 - ldr x15, [x6, #:lo12:.LANCHOR106] + ldr x15, [x6, #:lo12:.LANCHOR105] nop // between mem op and mult-accumulate umaddl x8, w0, w8, x5 add x4, x4, 8 mov w1, 0 mov w16, 1 -.L569: +.L578: add w13, w2, w10 add w12, w1, w11 cmp x3, x8 - bne .L570 - adrp x1, .LANCHOR108 - ldr x7, [x7, #:lo12:.LANCHOR105] - ldr x6, [x6, #:lo12:.LANCHOR106] + bne .L579 + adrp x1, .LANCHOR107 + ldr x7, [x7, #:lo12:.LANCHOR104] + ldr x6, [x6, #:lo12:.LANCHOR105] mov w8, 24 - ldr w4, [x1, #:lo12:.LANCHOR108] -.L571: + ldr w4, [x1, #:lo12:.LANCHOR107] +.L580: cmp w0, w4 - bcc .L572 + bcc .L581 ret -.L570: +.L579: asr w2, w2, 2 asr w1, w1, 2 add x2, x14, x2, sxtw 2 @@ -3883,8 +3993,8 @@ FtlGcBufInit: add x4, x4, 56 mov w1, w12 mov w2, w13 - b .L569 -.L572: + b .L578 +.L581: umull x3, w0, w8 mul w1, w10, w0 add x2, x5, x3 @@ -3898,44 +4008,44 @@ FtlGcBufInit: asr w1, w1, 2 add x1, x6, x1, sxtw 2 str x1, [x2, 8] - b .L571 + b .L580 .size FtlGcBufInit, .-FtlGcBufInit .section .text.FtlGcBufFree,"ax",@progbits .align 2 .global FtlGcBufFree .type FtlGcBufFree, %function FtlGcBufFree: - adrp x2, .LANCHOR108 + adrp x2, .LANCHOR107 mov w3, 0 mov w7, 56 mov w10, 24 - ldr w8, [x2, #:lo12:.LANCHOR108] - adrp x2, .LANCHOR104 - ldr x4, [x2, #:lo12:.LANCHOR104] -.L574: + ldr w8, [x2, #:lo12:.LANCHOR107] + adrp x2, .LANCHOR103 + ldr x4, [x2, #:lo12:.LANCHOR103] +.L583: cmp w3, w1 - bcs .L573 + bcs .L582 umaddl x6, w3, w7, x0 mov w2, 0 - b .L579 -.L575: + b .L588 +.L584: add w2, w2, 1 and w2, w2, 65535 -.L579: +.L588: cmp w2, w8 - bcs .L576 + bcs .L585 umull x5, w2, w10 add x11, x4, x5 ldr x12, [x4, x5] ldr x5, [x6, 8] cmp x12, x5 - bne .L575 + bne .L584 str wzr, [x11, 16] -.L576: +.L585: add w3, w3, 1 and w3, w3, 65535 - b .L574 -.L573: + b .L583 +.L582: ret .size FtlGcBufFree, .-FtlGcBufFree .section .text.FtlGcBufAlloc,"ax",@progbits @@ -3943,38 +4053,38 @@ FtlGcBufFree: .global FtlGcBufAlloc .type FtlGcBufAlloc, %function FtlGcBufAlloc: - adrp x2, .LANCHOR108 + adrp x2, .LANCHOR107 mov w3, 0 mov w7, 24 mov w8, 1 - ldr w5, [x2, #:lo12:.LANCHOR108] - adrp x2, .LANCHOR104 + ldr w5, [x2, #:lo12:.LANCHOR107] + adrp x2, .LANCHOR103 mov w10, 56 - ldr x6, [x2, #:lo12:.LANCHOR104] -.L581: + ldr x6, [x2, #:lo12:.LANCHOR103] +.L590: cmp w3, w1 - bcs .L580 + bcs .L589 mov w2, 0 - b .L586 -.L582: + b .L595 +.L591: add w2, w2, 1 and w2, w2, 65535 -.L586: +.L595: cmp w2, w5 - bcs .L583 + bcs .L592 umaddl x4, w2, w7, x6 ldr w11, [x4, 16] - cbnz w11, .L582 + cbnz w11, .L591 umaddl x2, w3, w10, x0 ldr x11, [x4] str w8, [x4, 16] ldr x4, [x4, 8] stp x11, x4, [x2, 8] -.L583: +.L592: add w3, w3, 1 and w3, w3, 65535 - b .L581 -.L580: + b .L590 +.L589: ret .size FtlGcBufAlloc, .-FtlGcBufAlloc .section .text.IsBlkInGcList,"ax",@progbits @@ -3982,23 +4092,23 @@ FtlGcBufAlloc: .global IsBlkInGcList .type IsBlkInGcList, %function IsBlkInGcList: - adrp x1, .LANCHOR109 + adrp x1, .LANCHOR108 and w0, w0, 65535 - ldrh w2, [x1, #:lo12:.LANCHOR109] - adrp x1, .LANCHOR110 - ldr x3, [x1, #:lo12:.LANCHOR110] + ldrh w2, [x1, #:lo12:.LANCHOR108] + adrp x1, .LANCHOR109 + ldr x3, [x1, #:lo12:.LANCHOR109] mov x1, 0 -.L588: +.L597: cmp w2, w1, uxth - bhi .L590 + bhi .L599 mov w0, 0 ret -.L590: +.L599: add x1, x1, 1 add x4, x3, x1, lsl 1 ldrh w4, [x4, -2] cmp w4, w0 - bne .L588 + bne .L597 mov w0, 1 ret .size IsBlkInGcList, .-IsBlkInGcList @@ -4015,40 +4125,40 @@ FtlGcUpdatePage: add x29, sp, 0 bl P2V_block_in_plane and w7, w0, 65535 - adrp x4, .LANCHOR109 - adrp x2, .LANCHOR110 + adrp x4, .LANCHOR108 + adrp x2, .LANCHOR109 mov x3, 0 - ldrh w1, [x4, #:lo12:.LANCHOR109] - ldr x5, [x2, #:lo12:.LANCHOR110] -.L593: + ldrh w1, [x4, #:lo12:.LANCHOR108] + ldr x5, [x2, #:lo12:.LANCHOR109] +.L602: and w2, w3, 65535 cmp w2, w1 - bcc .L595 - bne .L594 + bcc .L604 + bne .L603 and x3, x3, 65535 strh w0, [x5, x3, lsl 1] - ldrh w0, [x4, #:lo12:.LANCHOR109] + ldrh w0, [x4, #:lo12:.LANCHOR108] add w0, w0, 1 - strh w0, [x4, #:lo12:.LANCHOR109] - b .L594 -.L595: + strh w0, [x4, #:lo12:.LANCHOR108] + b .L603 +.L604: add x3, x3, 1 add x2, x5, x3, lsl 1 ldrh w2, [x2, -2] cmp w2, w7 - bne .L593 -.L594: - adrp x4, .LANCHOR111 - adrp x1, .LANCHOR112 + bne .L602 +.L603: + adrp x4, .LANCHOR110 + adrp x1, .LANCHOR111 mov w3, 12 - ldrh w0, [x4, #:lo12:.LANCHOR111] - ldr x5, [x1, #:lo12:.LANCHOR112] + ldrh w0, [x4, #:lo12:.LANCHOR110] + ldr x5, [x1, #:lo12:.LANCHOR111] umull x3, w0, w3 add w0, w0, 1 add x7, x5, x3 stp w10, w8, [x7, 4] str w6, [x5, x3] - strh w0, [x4, #:lo12:.LANCHOR111] + strh w0, [x4, #:lo12:.LANCHOR110] ldp x29, x30, [sp], 16 ret .size FtlGcUpdatePage, .-FtlGcUpdatePage @@ -4057,91 +4167,91 @@ FtlGcUpdatePage: .global FtlGcRefreshOpenBlock .type FtlGcRefreshOpenBlock, %function FtlGcRefreshOpenBlock: - adrp x8, .LANCHOR113 + adrp x8, .LANCHOR112 and w0, w0, 65535 - ldrh w10, [x8, #:lo12:.LANCHOR113] + ldrh w10, [x8, #:lo12:.LANCHOR112] cmp w10, w0 - beq .L598 - adrp x6, .LANCHOR114 - ldrh w7, [x6, #:lo12:.LANCHOR114] + beq .L607 + adrp x6, .LANCHOR113 + ldrh w7, [x6, #:lo12:.LANCHOR113] cmp w0, w7 - beq .L598 - adrp x4, .LANCHOR115 - ldrh w5, [x4, #:lo12:.LANCHOR115] + beq .L607 + adrp x4, .LANCHOR114 + ldrh w5, [x4, #:lo12:.LANCHOR114] cmp w0, w5 - beq .L598 - adrp x2, .LANCHOR116 - ldrh w3, [x2, #:lo12:.LANCHOR116] + beq .L607 + adrp x2, .LANCHOR115 + ldrh w3, [x2, #:lo12:.LANCHOR115] cmp w0, w3 - beq .L598 + beq .L607 mov w1, 65535 cmp w10, w1 - bne .L599 - strh w0, [x8, #:lo12:.LANCHOR113] -.L598: + bne .L608 + strh w0, [x8, #:lo12:.LANCHOR112] +.L607: mov w0, 0 ret -.L599: +.L608: cmp w7, w1 - bne .L600 - strh w0, [x6, #:lo12:.LANCHOR114] - b .L598 -.L600: + bne .L609 + strh w0, [x6, #:lo12:.LANCHOR113] + b .L607 +.L609: cmp w5, w1 - bne .L601 - strh w0, [x4, #:lo12:.LANCHOR115] - b .L598 -.L601: + bne .L610 + strh w0, [x4, #:lo12:.LANCHOR114] + b .L607 +.L610: cmp w3, w1 - bne .L598 - strh w0, [x2, #:lo12:.LANCHOR116] - b .L598 + bne .L607 + strh w0, [x2, #:lo12:.LANCHOR115] + b .L607 .size FtlGcRefreshOpenBlock, .-FtlGcRefreshOpenBlock .section .text.FtlGcRefreshBlock,"ax",@progbits .align 2 .global FtlGcRefreshBlock .type FtlGcRefreshBlock, %function FtlGcRefreshBlock: - adrp x8, .LANCHOR113 + adrp x8, .LANCHOR112 and w0, w0, 65535 - ldrh w10, [x8, #:lo12:.LANCHOR113] + ldrh w10, [x8, #:lo12:.LANCHOR112] cmp w10, w0 - beq .L610 - adrp x6, .LANCHOR114 - ldrh w7, [x6, #:lo12:.LANCHOR114] + beq .L619 + adrp x6, .LANCHOR113 + ldrh w7, [x6, #:lo12:.LANCHOR113] cmp w0, w7 - beq .L610 - adrp x4, .LANCHOR115 - ldrh w5, [x4, #:lo12:.LANCHOR115] + beq .L619 + adrp x4, .LANCHOR114 + ldrh w5, [x4, #:lo12:.LANCHOR114] cmp w0, w5 - beq .L610 - adrp x2, .LANCHOR116 - ldrh w3, [x2, #:lo12:.LANCHOR116] + beq .L619 + adrp x2, .LANCHOR115 + ldrh w3, [x2, #:lo12:.LANCHOR115] cmp w0, w3 - beq .L610 + beq .L619 mov w1, 65535 cmp w10, w1 - bne .L604 - strh w0, [x8, #:lo12:.LANCHOR113] -.L610: + bne .L613 + strh w0, [x8, #:lo12:.LANCHOR112] +.L619: mov w0, 0 ret -.L604: +.L613: cmp w7, w1 - bne .L605 - strh w0, [x6, #:lo12:.LANCHOR114] - b .L610 -.L605: + bne .L614 + strh w0, [x6, #:lo12:.LANCHOR113] + b .L619 +.L614: cmp w5, w1 - bne .L606 - strh w0, [x4, #:lo12:.LANCHOR115] - b .L610 -.L606: + bne .L615 + strh w0, [x4, #:lo12:.LANCHOR114] + b .L619 +.L615: cmp w3, w1 - bne .L611 - strh w0, [x2, #:lo12:.LANCHOR116] - b .L610 -.L611: + bne .L620 + strh w0, [x2, #:lo12:.LANCHOR115] + b .L619 +.L620: mov w0, -1 ret .size FtlGcRefreshBlock, .-FtlGcRefreshBlock @@ -4159,39 +4269,39 @@ FtlGcMarkBadPhyBlk: bl FtlGcRefreshBlock adrp x0, .LANCHOR28 ldr w0, [x0, #:lo12:.LANCHOR28] - cbz w0, .L613 - adrp x1, .LANCHOR79 + cbz w0, .L622 + adrp x1, .LANCHOR78 ubfiz x0, x11, 1, 16 - ldr x2, [x1, #:lo12:.LANCHOR79] + ldr x2, [x1, #:lo12:.LANCHOR78] ldrh w1, [x2, x0] cmp w1, 39 - bls .L613 + bls .L622 sub w1, w1, #40 strh w1, [x2, x0] -.L613: - adrp x1, .LANCHOR117 - adrp x3, .LANCHOR118 - add x3, x3, :lo12:.LANCHOR118 +.L622: + adrp x1, .LANCHOR116 + adrp x3, .LANCHOR117 + add x3, x3, :lo12:.LANCHOR117 mov x2, 0 - ldrh w0, [x1, #:lo12:.LANCHOR117] -.L614: + ldrh w0, [x1, #:lo12:.LANCHOR116] +.L623: cmp w0, w2, uxth - bhi .L616 + bhi .L625 cmp w0, 15 - bhi .L615 + bhi .L624 add w2, w0, 1 - strh w2, [x1, #:lo12:.LANCHOR117] - adrp x1, .LANCHOR118 - add x1, x1, :lo12:.LANCHOR118 + strh w2, [x1, #:lo12:.LANCHOR116] + adrp x1, .LANCHOR117 + add x1, x1, :lo12:.LANCHOR117 strh w12, [x1, w0, sxtw 1] - b .L615 -.L616: + b .L624 +.L625: add x2, x2, 1 add x4, x3, x2, lsl 1 ldrh w4, [x4, -2] cmp w4, w12 - bne .L614 -.L615: + bne .L623 +.L624: mov w0, 0 ldp x29, x30, [sp], 16 ret @@ -4201,35 +4311,35 @@ FtlGcMarkBadPhyBlk: .global FtlGcReFreshBadBlk .type FtlGcReFreshBadBlk, %function FtlGcReFreshBadBlk: - adrp x0, .LANCHOR117 - ldrh w0, [x0, #:lo12:.LANCHOR117] - cbz w0, .L628 - adrp x1, .LANCHOR113 - ldrh w2, [x1, #:lo12:.LANCHOR113] + adrp x0, .LANCHOR116 + ldrh w0, [x0, #:lo12:.LANCHOR116] + cbz w0, .L637 + adrp x1, .LANCHOR112 + ldrh w2, [x1, #:lo12:.LANCHOR112] mov w1, 65535 cmp w2, w1 - bne .L628 + bne .L637 stp x29, x30, [sp, -16]! - adrp x11, .LANCHOR119 + adrp x11, .LANCHOR118 add x29, sp, 0 - ldrh w1, [x11, #:lo12:.LANCHOR119] + ldrh w1, [x11, #:lo12:.LANCHOR118] cmp w1, w0 - bcc .L623 - strh wzr, [x11, #:lo12:.LANCHOR119] -.L623: - ldrh w1, [x11, #:lo12:.LANCHOR119] - adrp x0, .LANCHOR118 - add x0, x0, :lo12:.LANCHOR118 + bcc .L632 + strh wzr, [x11, #:lo12:.LANCHOR118] +.L632: + ldrh w1, [x11, #:lo12:.LANCHOR118] + adrp x0, .LANCHOR117 + add x0, x0, :lo12:.LANCHOR117 ldrh w0, [x0, x1, lsl 1] bl P2V_block_in_plane bl FtlGcRefreshBlock - ldrh w0, [x11, #:lo12:.LANCHOR119] + ldrh w0, [x11, #:lo12:.LANCHOR118] ldp x29, x30, [sp], 16 add w0, w0, 1 - strh w0, [x11, #:lo12:.LANCHOR119] + strh w0, [x11, #:lo12:.LANCHOR118] mov w0, 0 ret -.L628: +.L637: mov w0, 0 ret .size FtlGcReFreshBadBlk, .-FtlGcReFreshBadBlk @@ -4238,15 +4348,15 @@ FtlGcReFreshBadBlk: .global flash_boot_enter_slc_mode .type flash_boot_enter_slc_mode, %function flash_boot_enter_slc_mode: - adrp x1, .LANCHOR29 + adrp x1, .LANCHOR119 and w0, w0, 255 - ldr w2, [x1, #:lo12:.LANCHOR29] + ldr w2, [x1, #:lo12:.LANCHOR119] mov w1, 12336 movk w1, 0x5638, lsl 16 cmp w2, w1 - bne .L631 + bne .L640 b flash_enter_slc_mode -.L631: +.L640: ret .size flash_boot_enter_slc_mode, .-flash_boot_enter_slc_mode .section .text.flash_boot_exit_slc_mode,"ax",@progbits @@ -4254,38 +4364,40 @@ 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, .LANCHOR29 + adrp x1, .LANCHOR119 and w0, w0, 255 - ldr w2, [x1, #:lo12:.LANCHOR29] + ldr w2, [x1, #:lo12:.LANCHOR119] mov w1, 12336 movk w1, 0x5638, lsl 16 cmp w2, w1 - bne .L633 + bne .L642 b flash_exit_slc_mode -.L633: +.L642: ret .size flash_boot_exit_slc_mode, .-flash_boot_exit_slc_mode .section .text.FW_FlashBlockErase.constprop.41,"ax",@progbits .align 2 .type FW_FlashBlockErase.constprop.41, %function FW_FlashBlockErase.constprop.41: - stp x29, x30, [sp, -16]! - mov w4, w0 - adrp x0, .LANCHOR18 + stp x29, x30, [sp, -32]! add x29, sp, 0 + stp x19, x20, [sp, 16] + mov w20, w0 + adrp x0, .LANCHOR18 ldr x0, [x0, #:lo12:.LANCHOR18] - ldrb w3, [x0, 9] + ldrb w19, [x0, 9] mov w0, 0 bl flash_boot_enter_slc_mode - udiv w1, w4, w3 mov w2, 0 mov w0, 0 + udiv w1, w20, w19 bl FlashEraseBlock - mov w3, w0 + mov w19, w0 mov w0, 0 bl flash_boot_exit_slc_mode - and w0, w3, 255 - ldp x29, x30, [sp], 16 + and w0, w19, 255 + ldp x19, x20, [sp, 16] + ldp x29, x30, [sp], 32 ret .size FW_FlashBlockErase.constprop.41, .-FW_FlashBlockErase.constprop.41 .section .text.ftl_memset,"ax",@progbits @@ -4305,16 +4417,16 @@ BuildFlashLsbPageTable: add x29, sp, 0 stp x19, x20, [sp, 16] mov w20, w1 - cbnz w0, .L639 + cbnz w0, .L648 adrp x1, .LANCHOR16 add x1, x1, :lo12:.LANCHOR16 mov x0, 0 -.L640: +.L649: strh w0, [x1, x0, lsl 1] add x0, x0, 1 cmp x0, 256 - bne .L640 -.L646: + bne .L649 +.L655: adrp x19, .LANCHOR120 add x19, x19, :lo12:.LANCHOR120 mov w1, 255 @@ -4325,41 +4437,41 @@ BuildFlashLsbPageTable: and w20, w20, 65535 add x1, x1, :lo12:.LANCHOR16 mov x0, 0 -.L641: +.L650: cmp w20, w0, uxth - bhi .L663 + bhi .L674 ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 32 ret -.L639: +.L648: cmp w0, 1 - bne .L642 + bne .L651 adrp x2, .LANCHOR16 add x2, x2, :lo12:.LANCHOR16 mov x1, 0 -.L645: +.L654: and w0, w1, 65535 cmp x1, 3 - bls .L643 + bls .L652 ubfiz w3, w0, 1, 15 and w0, w0, 1 add w0, w0, 2 sub w0, w3, w0 and w0, w0, 65535 -.L643: +.L652: strh w0, [x2, x1, lsl 1] add x1, x1, 1 cmp x1, 256 - bne .L645 - b .L646 -.L642: + bne .L654 + b .L655 +.L651: cmp w0, 2 - bne .L647 + bne .L656 adrp x2, .LANCHOR16 add x2, x2, :lo12:.LANCHOR16 mov w1, 65535 mov x0, 0 -.L649: +.L658: cmp x0, 2 and w3, w0, 65535 csel w3, w3, w1, cc @@ -4368,32 +4480,32 @@ BuildFlashLsbPageTable: add x0, x0, 1 and w1, w1, 65535 cmp x0, 256 - bne .L649 - b .L646 -.L647: + bne .L658 + b .L655 +.L656: cmp w0, 3 - bne .L650 + bne .L659 adrp x2, .LANCHOR16 add x2, x2, :lo12:.LANCHOR16 mov x1, 0 -.L653: +.L662: and w0, w1, 65535 cmp x1, 5 - bls .L651 + bls .L660 ubfiz w3, w0, 1, 15 and w0, w0, 1 add w0, w0, 4 sub w0, w3, w0 and w0, w0, 65535 -.L651: +.L660: strh w0, [x2, x1, lsl 1] add x1, x1, 1 cmp x1, 256 - bne .L653 - b .L646 -.L650: + bne .L662 + b .L655 +.L659: cmp w0, 4 - bne .L654 + bne .L663 adrp x2, .LANCHOR16 add x1, x2, :lo12:.LANCHOR16 add x1, x1, 16 @@ -4412,7 +4524,7 @@ BuildFlashLsbPageTable: strh w2, [x1, -10] strh w0, [x1, -2] mov w0, 8 -.L656: +.L665: and w3, w0, 1 ubfiz w2, w0, 1, 15 add w3, w3, 6 @@ -4421,57 +4533,76 @@ BuildFlashLsbPageTable: strh w2, [x1], 2 and w0, w0, 65535 cmp w0, 256 - bne .L656 - b .L646 -.L654: + bne .L665 + b .L655 +.L663: cmp w0, 5 - bne .L657 + bne .L666 adrp x1, .LANCHOR16 add x1, x1, :lo12:.LANCHOR16 mov x0, 0 -.L658: +.L667: strh w0, [x1, x0, lsl 1] add x0, x0, 1 cmp x0, 16 - bne .L658 + bne .L667 add x1, x1, 32 -.L659: +.L668: strh w0, [x1], 2 add w0, w0, 2 and w0, w0, 65535 cmp w0, 496 - bne .L659 - b .L646 -.L657: + bne .L668 + b .L655 +.L666: cmp w0, 6 - bne .L646 + bne .L669 adrp x3, .LANCHOR16 add x3, x3, :lo12:.LANCHOR16 mov w1, 0 mov x2, 0 mov w4, 12 mov w5, 10 -.L662: +.L672: and w0, w2, 65535 cmp x2, 5 - bls .L660 + bls .L670 tst x0, 1 csel w0, w4, w5, ne sub w0, w1, w0 and w0, w0, 65535 -.L660: +.L670: strh w0, [x3, x2, lsl 1] add w1, w1, 3 and w1, w1, 65535 add x2, x2, 1 cmp w1, 768 - bne .L662 - b .L646 -.L663: + bne .L672 + b .L655 +.L669: + cmp w0, 9 + bne .L655 + adrp x1, .LANCHOR16 + add x0, x1, :lo12:.LANCHOR16 + strh wzr, [x1, #:lo12:.LANCHOR16] + mov w1, 1 + strh w1, [x0, 2] + mov w1, 2 + strh w1, [x0, 4] + add x1, x0, 6 + mov w0, 3 +.L673: + strh w0, [x1], 2 + add w0, w0, 2 + and w0, w0, 65535 + cmp w0, 509 + bne .L673 + b .L655 +.L674: ldrh w2, [x1, x0, lsl 1] add x0, x0, 1 strh w2, [x19, w2, sxtw 1] - b .L641 + b .L650 .size BuildFlashLsbPageTable, .-BuildFlashLsbPageTable .section .text.FlashDieInfoInit,"ax",@progbits .align 2 @@ -4481,32 +4612,28 @@ FlashDieInfoInit: stp x29, x30, [sp, -80]! adrp x0, .LANCHOR31+10 add x29, sp, 0 - stp x19, x20, [sp, 16] - adrp x19, .LANCHOR25 - adrp x20, .LANCHOR121 - stp x23, x24, [sp, 48] ldrh w0, [x0, #:lo12:.LANCHOR31+10] - adrp x23, .LANCHOR3 - stp x21, x22, [sp, 32] - strb wzr, [x19, #:lo12:.LANCHOR25] - cmp w0, 256 - strb wzr, [x20, #:lo12:.LANCHOR121] + stp x19, x20, [sp, 16] + adrp x19, .LANCHOR121 str x25, [sp, 64] - bls .L679 - mov w0, 512 -.L696: - adrp x25, .LANCHOR26 - add x22, x25, :lo12:.LANCHOR26 - str w0, [x23, #:lo12:.LANCHOR3] + adrp x25, .LANCHOR25 + stp x21, x22, [sp, 32] + mov x22, 0 + stp x23, x24, [sp, 48] + adrp x24, .LANCHOR26 + strb wzr, [x19, #:lo12:.LANCHOR121] + add x21, x24, :lo12:.LANCHOR26 + strb wzr, [x25, #:lo12:.LANCHOR25] + bl FlashBlockAlignInit mov w2, 8 mov w1, 0 - mov x0, x22 - adrp x24, .LANCHOR17 + adrp x23, .LANCHOR17 + mov x0, x21 + add x20, x23, :lo12:.LANCHOR17 bl ftl_memset - add x21, x24, :lo12:.LANCHOR17 mov w2, 32 mov w1, 0 - mov x0, x21 + mov x0, x20 bl ftl_memset mov w2, 192 mov w1, 0 @@ -4514,35 +4641,34 @@ FlashDieInfoInit: add x0, x0, :lo12:.LANCHOR23 bl ftl_memset adrp x0, .LANCHOR18 - adrp x12, .LANCHOR22 - add x14, x19, :lo12:.LANCHOR25 - add x15, x12, :lo12:.LANCHOR22 + adrp x13, .LANCHOR22 + add x15, x25, :lo12:.LANCHOR25 + add x10, x13, :lo12:.LANCHOR22 ldr x7, [x0, #:lo12:.LANCHOR18] - mov x8, 0 - add x10, x7, 1 - ldrb w11, [x7] -.L683: - mov w2, w11 - add x1, x15, x8, lsl 3 - mov x0, x10 + add x11, x7, 1 + ldrb w12, [x7] +.L692: + mov w2, w12 + add x1, x10, x22, lsl 3 + mov x0, x11 bl FlashMemCmp8 - cbnz w0, .L682 - ldrb w1, [x14] + cbnz w0, .L691 + ldrb w1, [x15] add w0, w1, 1 - strb w0, [x14] - str wzr, [x21, x1, lsl 2] - strb w8, [x22, x1] -.L682: - add x8, x8, 1 - cmp x8, 4 - bne .L683 - ldrb w0, [x19, #:lo12:.LANCHOR25] - strb w0, [x20, #:lo12:.LANCHOR121] + strb w0, [x15] + str wzr, [x20, x1, lsl 2] + strb w22, [x21, x1] +.L691: + add x22, x22, 1 + cmp x22, 4 + bne .L692 + ldrb w0, [x25, #:lo12:.LANCHOR25] + strb w0, [x19, #:lo12:.LANCHOR121] ldrb w0, [x7, 8] cmp w0, 2 - beq .L684 -.L688: - ldrb w0, [x19, #:lo12:.LANCHOR25] + beq .L693 +.L697: + ldrb w0, [x25, #:lo12:.LANCHOR25] ldrh w1, [x7, 14] ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] @@ -4555,45 +4681,41 @@ FlashDieInfoInit: ldp x29, x30, [sp], 80 strh w0, [x1, #:lo12:.LANCHOR122] ret -.L679: - cmp w0, 128 - bls .L696 - mov w0, 256 - b .L696 -.L684: - ldr w20, [x23, #:lo12:.LANCHOR3] - add x12, x12, :lo12:.LANCHOR22 - add x14, x19, :lo12:.LANCHOR25 - add x24, x24, :lo12:.LANCHOR17 - add x13, x25, :lo12:.LANCHOR26 - mov x15, 0 -.L687: - mov w2, w11 - add x1, x12, x15, lsl 3 - mov x0, x10 +.L693: + adrp x0, .LANCHOR3 + add x13, x13, :lo12:.LANCHOR22 + add x15, x25, :lo12:.LANCHOR25 + add x23, x23, :lo12:.LANCHOR17 + ldr w20, [x0, #:lo12:.LANCHOR3] + add x14, x24, :lo12:.LANCHOR26 + mov x19, 0 +.L696: + mov w2, w12 + add x1, x13, x19, lsl 3 + mov x0, x11 bl FlashMemCmp8 - cbnz w0, .L685 + cbnz w0, .L694 ldrb w2, [x7, 13] ldrh w0, [x7, 14] - ldrb w1, [x14] + ldrb w1, [x15] and w0, w0, 65280 mul w2, w2, w20 mul w0, w0, w2 sxtw x2, w1 - str w0, [x24, x2, lsl 2] + str w0, [x23, x2, lsl 2] ldrb w3, [x7, 23] - cbz w3, .L686 + cbz w3, .L695 lsl w0, w0, 1 - str w0, [x24, x2, lsl 2] -.L686: + str w0, [x23, x2, lsl 2] +.L695: add w1, w1, 1 - strb w15, [x13, x2] - strb w1, [x14] -.L685: - add x15, x15, 1 - cmp x15, 4 - bne .L687 - b .L688 + strb w19, [x14, x2] + strb w1, [x15] +.L694: + add x19, x19, 1 + cmp x19, 4 + bne .L696 + b .L697 .size FlashDieInfoInit, .-FlashDieInfoInit .section .text.ReadFlashInfo,"ax",@progbits .align 2 @@ -4608,7 +4730,7 @@ ReadFlashInfo: mov x19, x0 bl ftl_memset adrp x0, .LANCHOR18 - adrp x3, .LANCHOR69 + adrp x3, .LANCHOR68 mov w4, 1 ldr x1, [x0, #:lo12:.LANCHOR18] adrp x0, .LANCHOR3 @@ -4621,8 +4743,8 @@ ReadFlashInfo: adrp x0, .LANCHOR33 ldrb w0, [x0, #:lo12:.LANCHOR33] strb w0, [x19, 7] - add x0, x3, :lo12:.LANCHOR69 - ldrb w3, [x3, #:lo12:.LANCHOR69] + add x0, x3, :lo12:.LANCHOR68 + ldrb w3, [x3, #:lo12:.LANCHOR68] strb w3, [x19] ldrb w3, [x0, 1] strb w3, [x19, 1] @@ -4641,20 +4763,20 @@ ReadFlashInfo: adrp x0, .LANCHOR25 strb wzr, [x19, 10] ldrb w3, [x0, #:lo12:.LANCHOR25] -.L698: +.L706: cmp w3, w1, uxtb - bhi .L699 + bhi .L707 ldr x19, [sp, 16] ldp x29, x30, [sp], 32 ret -.L699: +.L707: ldrb w0, [x1, x2] add x1, x1, 1 ldrb w5, [x19, 10] lsl w0, w4, w0 orr w0, w0, w5 strb w0, [x19, 10] - b .L698 + b .L706 .size ReadFlashInfo, .-ReadFlashInfo .section .text.FtlBbt2Bitmap,"ax",@progbits .align 2 @@ -4680,13 +4802,13 @@ FtlBbt2Bitmap: mov w1, 0 mov x0, x20 bl ftl_memset -.L704: +.L712: ldrh w0, [x21, x19] cmp w0, w24 - beq .L701 + beq .L709 ldrh w1, [x22] cmp w1, w0 - bhi .L703 + bhi .L711 mov w2, 79 mov x1, x23 adrp x0, .LC5 @@ -4697,7 +4819,7 @@ FtlBbt2Bitmap: add x1, x1, :lo12:.LC6 add x0, x0, :lo12:.LC7 bl printf -.L703: +.L711: ldrh w1, [x21, x19] mov w2, 1 add x19, x19, 2 @@ -4709,8 +4831,8 @@ FtlBbt2Bitmap: ldr w1, [x20, x0] orr w1, w1, w2 str w1, [x20, x0] - bne .L704 -.L701: + bne .L712 +.L709: ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x23, x24, [sp, 48] @@ -4722,11 +4844,11 @@ FtlBbt2Bitmap: .global FtlBbtMemInit .type FtlBbtMemInit, %function FtlBbtMemInit: - adrp x1, .LANCHOR75 - add x0, x1, :lo12:.LANCHOR75 + adrp x1, .LANCHOR74 + add x0, x1, :lo12:.LANCHOR74 mov w2, -1 add x0, x0, 12 - strh w2, [x1, #:lo12:.LANCHOR75] + strh w2, [x1, #:lo12:.LANCHOR74] mov w2, 16 strh wzr, [x0, -6] mov w1, 255 @@ -4738,11 +4860,11 @@ FtlBbtMemInit: .type FtlFreeSysBlkQueueInit, %function FtlFreeSysBlkQueueInit: stp x29, x30, [sp, -16]! - adrp x1, .LANCHOR76 - add x3, x1, :lo12:.LANCHOR76 + adrp x1, .LANCHOR75 + add x3, x1, :lo12:.LANCHOR75 mov w2, 2048 add x29, sp, 0 - strh w0, [x1, #:lo12:.LANCHOR76] + strh w0, [x1, #:lo12:.LANCHOR75] mov w1, 0 strh wzr, [x3, 2] add x0, x3, 8 @@ -4773,21 +4895,21 @@ ftl_free_no_use_map_blk: str x25, [sp, 64] bl ftl_memset mov w0, 0 -.L712: +.L720: ldrh w1, [x19, 6] cmp w1, w0 - bhi .L716 - adrp x0, .LANCHOR54 + bhi .L724 + adrp x0, .LANCHOR53 mov w23, 0 mov w20, 0 - ldrh w1, [x0, #:lo12:.LANCHOR54] + ldrh w1, [x0, #:lo12:.LANCHOR53] ldrh w0, [x19] strh w1, [x21, x0, lsl 1] ldrh w24, [x21] -.L717: +.L725: ldrh w0, [x19, 10] cmp w0, w20 - bhi .L721 + bhi .L729 mov w0, w23 ldr x25, [sp, 64] ldp x19, x20, [sp, 16] @@ -4795,64 +4917,64 @@ ftl_free_no_use_map_blk: ldp x23, x24, [sp, 48] ldp x29, x30, [sp], 80 ret -.L716: +.L724: ubfiz x1, x0, 2, 16 ldr w2, [x20, x1] mov w1, 0 ubfx x2, x2, 10, 16 -.L713: +.L721: ldrh w3, [x19, 10] cmp w3, w1 - bhi .L715 + bhi .L723 add w0, w0, 1 and w0, w0, 65535 - b .L712 -.L715: + b .L720 +.L723: ubfiz x3, x1, 1, 16 ldrh w4, [x22, x3] cmp w4, w2 - bne .L714 - cbz w2, .L714 + bne .L722 + cbz w2, .L722 ldrh w4, [x21, x3] add w4, w4, 1 strh w4, [x21, x3] -.L714: +.L722: add w1, w1, 1 and w1, w1, 65535 - b .L713 -.L721: + b .L721 +.L729: ubfiz x0, x20, 1, 16 ldrh w1, [x21, x0] cmp w24, w1 - bls .L718 + bls .L726 add x25, x22, x0 ldrh w0, [x22, x0] - cbnz w0, .L719 -.L720: + cbnz w0, .L727 +.L728: add w20, w20, 1 and w20, w20, 65535 - b .L717 -.L718: - cbnz w1, .L720 + b .L725 +.L726: + cbnz w1, .L728 add x25, x22, x0 ldrh w0, [x22, x0] - cbz w0, .L720 -.L722: + cbz w0, .L728 +.L730: mov w1, 1 bl FtlFreeSysBlkQueueIn strh wzr, [x25] ldrh w0, [x19, 8] sub w0, w0, #1 strh w0, [x19, 8] - b .L720 -.L723: + b .L728 +.L731: mov w24, 0 - b .L722 -.L719: + b .L730 +.L727: mov w23, w20 - cbz w1, .L723 + cbz w1, .L731 mov w24, w1 - b .L720 + b .L728 .size ftl_free_no_use_map_blk, .-ftl_free_no_use_map_blk .section .text.FtlL2PDataInit,"ax",@progbits .align 2 @@ -4864,39 +4986,39 @@ FtlL2PDataInit: add x29, sp, 0 stp x19, x20, [sp, 16] adrp x19, .LANCHOR125 - adrp x20, .LANCHOR65 + adrp x20, .LANCHOR64 stp x21, x22, [sp, 32] ldr x0, [x19, #:lo12:.LANCHOR125] - adrp x22, .LANCHOR58 - ldr w2, [x20, #:lo12:.LANCHOR65] - adrp x21, .LANCHOR68 + adrp x22, .LANCHOR57 + ldr w2, [x20, #:lo12:.LANCHOR64] + adrp x21, .LANCHOR67 str x23, [sp, 48] adrp x23, .LANCHOR126 lsl w2, w2, 1 bl ftl_memset - ldrh w0, [x21, #:lo12:.LANCHOR68] + ldrh w0, [x21, #:lo12:.LANCHOR67] mov w1, 255 - ldrh w2, [x22, #:lo12:.LANCHOR58] + ldrh w2, [x22, #:lo12:.LANCHOR57] mul w2, w2, w0 ldr x0, [x23, #:lo12:.LANCHOR126] bl ftl_memset - adrp x0, .LANCHOR97 - ldrh w3, [x21, #:lo12:.LANCHOR68] + adrp x0, .LANCHOR96 + ldrh w3, [x21, #:lo12:.LANCHOR67] ldr x6, [x23, #:lo12:.LANCHOR126] mov x1, 0 - ldr x0, [x0, #:lo12:.LANCHOR97] + ldr x0, [x0, #:lo12:.LANCHOR96] mov w2, -1 - ldrh w5, [x22, #:lo12:.LANCHOR58] + ldrh w5, [x22, #:lo12:.LANCHOR57] add x3, x0, x3, lsl 4 -.L733: +.L741: add x4, x1, x5 cmp x0, x3 - bne .L734 + bne .L742 adrp x1, .LANCHOR127 add x0, x1, :lo12:.LANCHOR127 ldp x21, x22, [sp, 32] strh w2, [x1, #:lo12:.LANCHOR127] - ldr w1, [x20, #:lo12:.LANCHOR65] + ldr w1, [x20, #:lo12:.LANCHOR64] strh w1, [x0, 10] mov w1, -3902 strh w1, [x0, 4] @@ -4905,8 +5027,8 @@ FtlL2PDataInit: strh w2, [x0, 2] ldrh w1, [x1, #:lo12:.LANCHOR128] strh w1, [x0, 8] - adrp x1, .LANCHOR67 - ldrh w1, [x1, #:lo12:.LANCHOR67] + adrp x1, .LANCHOR66 + ldrh w1, [x1, #:lo12:.LANCHOR66] strh w1, [x0, 6] adrp x1, .LANCHOR129 ldr x1, [x1, #:lo12:.LANCHOR129] @@ -4922,7 +5044,7 @@ FtlL2PDataInit: str x1, [x0, 40] ldp x29, x30, [sp], 64 ret -.L734: +.L742: and x1, x1, -4 strh w2, [x0] add x1, x6, x1 @@ -4930,7 +5052,7 @@ FtlL2PDataInit: str x1, [x0, 8] add x0, x0, 16 mov x1, x4 - b .L733 + b .L741 .size FtlL2PDataInit, .-FtlL2PDataInit .section .text.FtlVariablesInit,"ax",@progbits .align 2 @@ -4956,18 +5078,18 @@ FtlVariablesInit: adrp x0, .LANCHOR28 mov w1, 0 str wzr, [x0, #:lo12:.LANCHOR28] + adrp x0, .LANCHOR70 + strh wzr, [x0, #:lo12:.LANCHOR70] + adrp x0, .LANCHOR61 + ldrh w2, [x0, #:lo12:.LANCHOR61] adrp x0, .LANCHOR71 - strh wzr, [x0, #:lo12:.LANCHOR71] - adrp x0, .LANCHOR62 - ldrh w2, [x0, #:lo12:.LANCHOR62] - adrp x0, .LANCHOR72 - ldr x0, [x0, #:lo12:.LANCHOR72] + ldr x0, [x0, #:lo12:.LANCHOR71] lsl w2, w2, 1 bl ftl_memset - adrp x0, .LANCHOR79 + adrp x0, .LANCHOR78 ldrh w2, [x19, #:lo12:.LANCHOR41] mov w1, 0 - ldr x0, [x0, #:lo12:.LANCHOR79] + ldr x0, [x0, #:lo12:.LANCHOR78] lsl w2, w2, 1 bl ftl_memset adrp x0, .LANCHOR137 @@ -4978,8 +5100,8 @@ FtlVariablesInit: bl ftl_memset mov w2, 48 mov w1, 0 - adrp x0, .LANCHOR81 - add x0, x0, :lo12:.LANCHOR81 + adrp x0, .LANCHOR80 + add x0, x0, :lo12:.LANCHOR80 bl ftl_memset mov w2, 512 mov w1, 0 @@ -5005,13 +5127,13 @@ SupperBlkListInit: ldrh w2, [x0, #:lo12:.LANCHOR41] mov w0, 6 stp x23, x24, [sp, 48] - adrp x24, .LANCHOR82 + adrp x24, .LANCHOR81 stp x19, x20, [sp, 16] - adrp x23, .LANCHOR86 + adrp x23, .LANCHOR85 stp x21, x22, [sp, 32] - adrp x22, .LANCHOR89 + adrp x22, .LANCHOR88 mul w2, w2, w0 - ldr x0, [x24, #:lo12:.LANCHOR82] + ldr x0, [x24, #:lo12:.LANCHOR81] stp x25, x26, [sp, 64] adrp x25, .LANCHOR40 str x27, [sp, 80] @@ -5020,95 +5142,95 @@ SupperBlkListInit: add x26, x26, :lo12:.LANCHOR47 bl ftl_memset mov w21, 0 - adrp x0, .LANCHOR88 + adrp x0, .LANCHOR87 mov w20, 0 mov w19, 0 - strh wzr, [x23, #:lo12:.LANCHOR86] - str xzr, [x0, #:lo12:.LANCHOR88] - adrp x0, .LANCHOR83 - strh wzr, [x22, #:lo12:.LANCHOR89] + strh wzr, [x23, #:lo12:.LANCHOR85] + str xzr, [x0, #:lo12:.LANCHOR87] + adrp x0, .LANCHOR82 + strh wzr, [x22, #:lo12:.LANCHOR88] adrp x27, .LANCHOR38 - str xzr, [x0, #:lo12:.LANCHOR83] - adrp x0, .LANCHOR85 - str xzr, [x0, #:lo12:.LANCHOR85] + str xzr, [x0, #:lo12:.LANCHOR82] + adrp x0, .LANCHOR84 + str xzr, [x0, #:lo12:.LANCHOR84] adrp x0, .LANCHOR139 strh wzr, [x0, #:lo12:.LANCHOR139] -.L739: +.L747: ldrh w0, [x25] cmp w19, w0 - bge .L746 - adrp x0, .LANCHOR53 + bge .L754 + adrp x0, .LANCHOR52 ldrh w8, [x27, #:lo12:.LANCHOR38] mov w5, 0 mov w6, 0 - ldrh w7, [x0, #:lo12:.LANCHOR53] - b .L747 -.L741: + ldrh w7, [x0, #:lo12:.LANCHOR52] + b .L755 +.L749: ldrb w0, [x26, w6, sxtw] mov w1, w19 bl V2P_block bl FtlBbmIsBadBlock - cbnz w0, .L740 + cbnz w0, .L748 add w5, w7, w5 sxth w5, w5 -.L740: +.L748: add w6, w6, 1 sxth w6, w6 -.L747: +.L755: cmp w6, w8 - blt .L741 - cbz w5, .L742 + blt .L749 + cbz w5, .L750 mov w0, 32768 sdiv w5, w0, w5 sxth w5, w5 -.L743: - ldr x1, [x24, #:lo12:.LANCHOR82] +.L751: + ldr x1, [x24, #:lo12:.LANCHOR81] mov w0, 6 smaddl x0, w19, w0, x1 strh w5, [x0, 4] + adrp x0, .LANCHOR91 + ldrh w0, [x0, #:lo12:.LANCHOR91] + cmp w19, w0 + beq .L752 adrp x0, .LANCHOR92 ldrh w0, [x0, #:lo12:.LANCHOR92] cmp w19, w0 - beq .L744 + beq .L752 adrp x0, .LANCHOR93 ldrh w0, [x0, #:lo12:.LANCHOR93] cmp w19, w0 - beq .L744 - adrp x0, .LANCHOR94 - ldrh w0, [x0, #:lo12:.LANCHOR94] - cmp w19, w0 - beq .L744 - adrp x0, .LANCHOR84 - ldr x0, [x0, #:lo12:.LANCHOR84] + beq .L752 + adrp x0, .LANCHOR83 + ldr x0, [x0, #:lo12:.LANCHOR83] ldrh w0, [x0, w19, sxtw 1] - cbnz w0, .L745 + cbnz w0, .L753 add w21, w21, 1 mov w0, w19 and w21, w21, 65535 bl INSERT_FREE_LIST -.L744: +.L752: add w19, w19, 1 sxth w19, w19 - b .L739 -.L742: - adrp x0, .LANCHOR84 + b .L747 +.L750: + adrp x0, .LANCHOR83 mov w1, -1 - ldr x0, [x0, #:lo12:.LANCHOR84] + ldr x0, [x0, #:lo12:.LANCHOR83] strh w1, [x0, w19, sxtw 1] - b .L743 -.L745: + b .L751 +.L753: add w20, w20, 1 mov w0, w19 and w20, w20, 65535 bl INSERT_DATA_LIST - b .L744 -.L746: - strh w20, [x23, #:lo12:.LANCHOR86] + b .L752 +.L754: + strh w20, [x23, #:lo12:.LANCHOR85] add w20, w20, w21 - strh w21, [x22, #:lo12:.LANCHOR89] + strh w21, [x22, #:lo12:.LANCHOR88] cmp w0, w20 - bge .L748 - mov w2, 2614 + bge .L756 + mov w2, 2645 adrp x1, .LANCHOR140 adrp x0, .LC5 add x1, x1, :lo12:.LANCHOR140 @@ -5119,7 +5241,7 @@ SupperBlkListInit: add x1, x1, :lo12:.LC6 add x0, x0, :lo12:.LC7 bl printf -.L748: +.L756: mov w0, 0 ldr x27, [sp, 80] ldp x19, x20, [sp, 16] @@ -5135,25 +5257,25 @@ SupperBlkListInit: .type FtlGcPageVarInit, %function FtlGcPageVarInit: stp x29, x30, [sp, -32]! - adrp x0, .LANCHOR109 + adrp x0, .LANCHOR108 mov w1, 255 add x29, sp, 0 - strh wzr, [x0, #:lo12:.LANCHOR109] - adrp x0, .LANCHOR111 - str x19, [sp, 16] - adrp x19, .LANCHOR55 - strh wzr, [x0, #:lo12:.LANCHOR111] + strh wzr, [x0, #:lo12:.LANCHOR108] adrp x0, .LANCHOR110 - ldrh w2, [x19, #:lo12:.LANCHOR55] - ldr x0, [x0, #:lo12:.LANCHOR110] + str x19, [sp, 16] + adrp x19, .LANCHOR54 + strh wzr, [x0, #:lo12:.LANCHOR110] + adrp x0, .LANCHOR109 + ldrh w2, [x19, #:lo12:.LANCHOR54] + ldr x0, [x0, #:lo12:.LANCHOR109] lsl w2, w2, 1 bl ftl_memset - ldrh w2, [x19, #:lo12:.LANCHOR55] + ldrh w2, [x19, #:lo12:.LANCHOR54] mov w0, 12 mov w1, 255 mul w2, w2, w0 - adrp x0, .LANCHOR112 - ldr x0, [x0, #:lo12:.LANCHOR112] + adrp x0, .LANCHOR111 + ldr x0, [x0, #:lo12:.LANCHOR111] bl ftl_memset ldr x19, [sp, 16] ldp x29, x30, [sp], 32 @@ -5203,7 +5325,7 @@ FlashReadIdbData: .global FlashLoadPhyInfoInRam .type FlashLoadPhyInfoInRam, %function FlashLoadPhyInfoInRam: - stp x29, x30, [sp, -32]! + stp x29, x30, [sp, -48]! adrp x0, .LANCHOR142 add x8, x0, :lo12:.LANCHOR142 adrp x11, .LANCHOR22 @@ -5213,57 +5335,62 @@ FlashLoadPhyInfoInRam: add x11, x11, :lo12:.LANCHOR22 stp x19, x20, [sp, 16] mov x10, 0 -.L760: + str x21, [sp, 32] +.L768: ldrb w2, [x8, -1] mov w12, w10 - lsl x20, x10, 5 + lsl x21, x10, 5 mov x1, x11 mov x0, x8 bl FlashMemCmp8 - mov w19, w0 - cbnz w0, .L758 + mov w20, w0 + cbnz w0, .L766 add x0, x7, :lo12:.LANCHOR142 ubfiz x12, x12, 5, 32 - add x20, x0, x20 + add x21, x0, x21 add x0, x0, x12 adrp x1, .LANCHOR143 add x4, x1, :lo12:.LANCHOR143 ldrb w3, [x0, 22] mov x0, 0 -.L759: +.L767: lsl x5, x0, 5 mov w2, w0 ldrb w5, [x5, x4] cmp w5, w3 - beq .L762 + beq .L770 add x0, x0, 1 cmp x0, 4 - bne .L759 + bne .L767 mov w2, w0 -.L762: +.L770: ubfiz x0, x2, 5, 32 add x1, x1, :lo12:.LANCHOR143 + adrp x19, .LANCHOR31 + add x19, x19, :lo12:.LANCHOR31 add x1, x1, x0 mov w2, 32 adrp x0, .LANCHOR7 add x0, x0, :lo12:.LANCHOR7 bl ftl_memcpy mov w2, 32 - mov x1, x20 - adrp x0, .LANCHOR31 - add x0, x0, :lo12:.LANCHOR31 + mov x1, x21 + mov x0, x19 bl ftl_memcpy - b .L757 -.L758: + ldrh w0, [x19, 10] + bl FlashBlockAlignInit + b .L765 +.L766: add x10, x10, 1 add x8, x8, 32 - cmp x10, 77 - bne .L760 - mov w19, -1 -.L757: - mov w0, w19 + cmp x10, 81 + bne .L768 + mov w20, -1 +.L765: + mov w0, w20 + ldr x21, [sp, 32] ldp x19, x20, [sp, 16] - ldp x29, x30, [sp], 32 + ldp x29, x30, [sp], 48 ret .size FlashLoadPhyInfoInRam, .-FlashLoadPhyInfoInRam .section .text.ftl_memcpy32,"ax",@progbits @@ -5272,15 +5399,15 @@ FlashLoadPhyInfoInRam: .type ftl_memcpy32, %function ftl_memcpy32: mov x3, 0 -.L767: +.L775: cmp w2, w3 - bhi .L768 + bhi .L776 ret -.L768: +.L776: ldr w4, [x1, x3, lsl 2] str w4, [x0, x3, lsl 2] add x3, x3, 1 - b .L767 + b .L775 .size ftl_memcpy32, .-ftl_memcpy32 .section .text.NandcCopy1KB,"ax",@progbits .align 2 @@ -5299,15 +5426,15 @@ NandcCopy1KB: ubfiz x0, x19, 9, 8 mov x20, x4 add x0, x2, x0 - bne .L770 - cbz x3, .L771 + bne .L778 + cbz x3, .L779 tst x3, 3 - bne .L772 + bne .L780 mov w2, 256 mov x1, x3 bl ftl_memcpy32 -.L771: - cbz x20, .L769 +.L779: + cbz x20, .L777 ldrb w0, [x20] lsr w19, w19, 1 ldrb w1, [x20, 1] @@ -5319,26 +5446,26 @@ NandcCopy1KB: mov w1, 12 mul w19, w19, w1 str w0, [x21, w19, sxtw 2] -.L769: +.L777: ldp x19, x20, [sp, 16] ldr x21, [sp, 32] ldp x29, x30, [sp], 48 ret -.L772: +.L780: mov w2, 1024 mov x1, x3 bl ftl_memcpy - b .L771 -.L770: - cbz x3, .L775 + b .L779 +.L778: + cbz x3, .L783 tst x3, 3 - bne .L776 + bne .L784 mov x1, x0 mov w2, 256 mov x0, x3 bl ftl_memcpy32 -.L775: - cbz x20, .L769 +.L783: + cbz x20, .L777 lsr w19, w19, 1 mov w0, 12 mul w19, w19, w0 @@ -5350,13 +5477,13 @@ NandcCopy1KB: lsr w0, w0, 24 strb w1, [x20, 2] strb w0, [x20, 3] - b .L769 -.L776: + b .L777 +.L784: mov x1, x0 mov w2, 1024 mov x0, x3 bl ftl_memcpy - b .L775 + b .L783 .size NandcCopy1KB, .-NandcCopy1KB .section .text.NandcXferData,"ax",@progbits .align 2 @@ -5380,14 +5507,14 @@ NandcXferData: and w24, w2, 255 mov x21, x4 ldr x19, [x0, x1] - bne .L789 - cbnz x4, .L790 + bne .L797 + cbnz x4, .L798 add x21, x29, 128 mov w2, 64 mov w1, 255 add x0, x29, 128 bl ftl_memset -.L790: +.L798: mov x5, x21 mov x4, x26 mov w2, w24 @@ -5397,7 +5524,7 @@ NandcXferData: bl NandcXferStart mov w0, w25 bl NandcXferComp - cbnz w20, .L814 + cbnz w20, .L822 adrp x0, .LANCHOR32 adrp x4, .LANCHOR35 mov x1, x0 @@ -5410,38 +5537,38 @@ NandcXferData: add x2, x21, x2, lsl 2 csel w3, w3, w0, cc mov w0, 0 -.L793: +.L801: add w5, w3, w0 cmp x21, x2 - bne .L794 + bne .L802 adrp x0, .LANCHOR34 ldr w4, [x1, #:lo12:.LANCHOR32] lsr w24, w24, 2 mov w2, 0 ldr w3, [x0, #:lo12:.LANCHOR34] mov w22, 0 -.L795: +.L803: cmp w2, w24 - bcs .L791 - cbnz w4, .L801 -.L791: + bcs .L799 + cbnz w4, .L809 +.L799: str wzr, [x19, 16] -.L802: +.L810: adrp x0, .LANCHOR34 ldr w0, [x0, #:lo12:.LANCHOR34] cmp w0, 5 - bls .L788 - cbnz w20, .L788 + bls .L796 + cbnz w20, .L796 ldr w0, [x19] mov w1, 8192 movk w1, 0x2, lsl 16 and w1, w0, w1 cmp w1, 139264 - bne .L788 + bne .L796 orr w0, w0, 131072 mov w22, -1 str w0, [x19] -.L788: +.L796: mov w0, w22 ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] @@ -5450,7 +5577,7 @@ NandcXferData: ldp x27, x28, [sp, 80] ldp x29, x30, [sp], 192 ret -.L794: +.L802: ldr x6, [x4, 8] and x0, x0, 4294967292 add x21, x21, 4 @@ -5463,18 +5590,18 @@ NandcXferData: lsr w0, w0, 24 strb w0, [x21, -1] mov w0, w5 - b .L793 -.L801: + b .L801 +.L809: uxtw x0, w2 add x0, x0, 8 ldr w0, [x19, x0, lsl 2] str w0, [x29, 120] ldr w0, [x29, 120] - tbnz x0, 2, .L817 + tbnz x0, 2, .L825 ldr w0, [x29, 120] - tbnz x0, 15, .L817 + tbnz x0, 15, .L825 cmp w3, 5 - bls .L797 + bls .L805 ldr w1, [x29, 120] ubfx x6, x1, 3, 5 ldr w1, [x29, 120] @@ -5487,26 +5614,26 @@ NandcXferData: orr w0, w5, w0, lsl 5 cmp w1, w0 ldr w0, [x29, 120] - bls .L798 + bls .L806 ubfx x1, x0, 3, 5 ldr w0, [x29, 120] ubfx x0, x0, 27, 1 -.L823: +.L831: orr w0, w1, w0, lsl 5 -.L799: +.L807: cmp w22, w0 csel w22, w22, w0, cs -.L796: +.L804: add w2, w2, 1 - b .L795 -.L798: + b .L803 +.L806: ubfx x1, x0, 16, 5 ldr w0, [x29, 120] ubfx x0, x0, 29, 1 - b .L823 -.L797: + b .L831 +.L805: cmp w3, 3 - bls .L818 + bls .L826 ldr w1, [x29, 120] ubfx x6, x1, 3, 5 ldr w1, [x29, 120] @@ -5519,45 +5646,45 @@ NandcXferData: orr w0, w5, w0, lsl 5 cmp w1, w0 ldr w0, [x29, 120] - bls .L800 + bls .L808 ubfx x1, x0, 3, 5 ldr w0, [x29, 120] ubfx x0, x0, 28, 1 - b .L823 -.L800: + b .L831 +.L808: ubfx x1, x0, 16, 5 ldr w0, [x29, 120] ubfx x0, x0, 30, 1 - b .L823 -.L818: + b .L831 +.L826: mov w0, 0 - b .L799 -.L817: + b .L807 +.L825: mov w22, -1 - b .L796 -.L814: + b .L804 +.L822: mov w22, 0 - b .L791 -.L789: + b .L799 +.L797: cmp w20, 1 - bne .L803 + bne .L811 cmp x4, 0 mov w23, 2 csel w23, w23, wzr, ne mov w27, 0 lsl w23, w23, 1 mov w22, 0 -.L804: +.L812: cmp w22, w24 - bcc .L806 + bcc .L814 mov w22, 0 - b .L802 -.L806: + b .L810 +.L814: and w28, w22, 3 - cbz x26, .L819 + cbz x26, .L827 lsl w3, w22, 9 add x3, x26, x3 -.L805: +.L813: add x4, x21, x27, uxtw mov w2, w28 mov w1, 1 @@ -5574,11 +5701,11 @@ NandcXferData: add w27, w27, w23 mov w0, w25 bl NandcXferComp - b .L804 -.L819: + b .L812 +.L827: mov x3, 0 - b .L805 -.L803: + b .L813 +.L811: mov w0, w25 mov x5, 0 mov x4, 0 @@ -5594,16 +5721,16 @@ NandcXferData: lsl w0, w27, 1 mov w22, 0 str w0, [x29, 108] -.L807: +.L815: cmp w24, w23 - bls .L802 + bls .L810 mov w0, w25 bl NandcXferComp ldr w0, [x19, 32] add w27, w23, 2 str w0, [x29, 120] cmp w24, w27 - bls .L808 + bls .L816 mov x5, 0 mov x4, 0 and w3, w27, 3 @@ -5611,9 +5738,9 @@ NandcXferData: mov w1, 0 mov w0, w25 bl NandcXferStart -.L808: +.L816: ldr w0, [x29, 120] - tbnz x0, 2, .L820 + tbnz x0, 2, .L828 ldr w0, [x29, 120] ubfx x1, x0, 3, 5 ldr w0, [x29, 120] @@ -5621,12 +5748,12 @@ NandcXferData: orr w0, w1, w0, lsl 5 cmp w22, w0 csel w22, w22, w0, cs -.L809: +.L817: and w2, w23, 3 - cbz x26, .L821 + cbz x26, .L829 lsl w3, w23, 9 add x3, x26, x3 -.L810: +.L818: add x4, x21, x28, uxtw mov x0, x19 mov w1, 0 @@ -5634,13 +5761,13 @@ NandcXferData: ldr w0, [x29, 108] mov w23, w27 add w28, w28, w0 - b .L807 -.L820: + b .L815 +.L828: mov w22, -1 - b .L809 -.L821: + b .L817 +.L829: mov x3, 0 - b .L810 + b .L818 .size NandcXferData, .-NandcXferData .section .text.FlashReadRawPage,"ax",@progbits .align 2 @@ -5658,7 +5785,7 @@ FlashReadRawPage: mov x22, x2 mov x23, x3 ldrb w20, [x1, #:lo12:.LANCHOR31+9] - bne .L825 + bne .L833 adrp x0, .LANCHOR2 adrp x1, .LANCHOR3 ldrb w0, [x0, #:lo12:.LANCHOR2] @@ -5667,7 +5794,7 @@ FlashReadRawPage: cmp w0, w21 mov w0, 4 csel w20, w20, w0, ls -.L825: +.L833: mov w0, w19 bl NandcWaitFlashReady mov w0, w19 @@ -5720,7 +5847,7 @@ FlashDdrTunningRead: cmp w0, 8 mov w0, 12 csel w22, w22, w0, cc - cbz w4, .L841 + cbz w4, .L849 mov w0, 1 bl FlashSetInterfaceMode mov w0, 1 @@ -5739,10 +5866,10 @@ FlashDdrTunningRead: ldrb w0, [x19, #:lo12:.LANCHOR24] bl NandcSetMode cmn w21, #1 - bne .L830 -.L839: + bne .L838 +.L847: mov w21, -1 -.L827: +.L835: mov w0, w21 ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] @@ -5751,7 +5878,7 @@ FlashDdrTunningRead: ldp x27, x28, [sp, 80] ldp x29, x30, [sp], 112 ret -.L830: +.L838: mov w1, w25 mov w2, w21 adrp x0, .LC9 @@ -5761,20 +5888,20 @@ FlashDdrTunningRead: ldr w0, [x1, #:lo12:.LANCHOR144] add w0, w0, 1 cmp w0, 2047 - bhi .L832 + bhi .L840 str w0, [x1, #:lo12:.LANCHOR144] - b .L827 -.L832: + b .L835 +.L840: str wzr, [x1, #:lo12:.LANCHOR144] mov x28, 0 mov x23, 0 -.L829: +.L837: mov w5, 0 mov w20, 0 mov w6, 0 mov w19, 0 mov w27, -1 -.L837: +.L845: stp w5, w6, [x29, 100] mov w0, w22 bl NandcSetDdrPara @@ -5786,65 +5913,65 @@ FlashDdrTunningRead: add w1, w21, 1 cmp w0, w1 ldp w5, w6, [x29, 100] - bhi .L833 + bhi .L841 cmp w0, 2 - bhi .L843 + bhi .L851 add w19, w19, 1 cmp w19, 9 - bls .L843 + bls .L851 mov w1, w20 mov w21, w0 sub w20, w22, w19 mov w27, 0 -.L835: +.L843: cmp w19, w6 csel w20, w20, w1, hi -.L836: - cbz w20, .L838 +.L844: + cbz w20, .L846 mov w1, w20 adrp x0, .LC10 add x0, x0, :lo12:.LC10 bl printf mov w0, w20 bl NandcSetDdrPara -.L838: - cbz w27, .L827 +.L846: + cbz w27, .L835 adrp x0, .LC11 mov w2, w25 mov w1, w24 add x0, x0, :lo12:.LC11 bl printf - cbz w26, .L839 + cbz w26, .L847 ldr w1, [x29, 108] lsr w0, w1, 8 bl NandcSetDdrPara - b .L827 -.L841: + b .L835 +.L849: mov w21, 1024 - b .L829 -.L833: + b .L837 +.L841: cmp w19, w6 - bls .L844 + bls .L852 sub w20, w5, w19 cmp w19, 7 - bhi .L836 + bhi .L844 mov w6, w19 -.L844: +.L852: mov w19, 0 - b .L834 -.L843: + b .L842 +.L851: mov w5, w22 mov w21, w0 mov w27, 0 mov x28, 0 mov x23, 0 -.L834: +.L842: add w22, w22, 2 cmp w22, 69 - bls .L837 + bls .L845 mov w1, w20 mov w20, w5 - b .L835 + b .L843 .size FlashDdrTunningRead, .-FlashDdrTunningRead .section .text.FlashReadPage,"ax",@progbits .align 2 @@ -5865,14 +5992,14 @@ FlashReadPage: bl FlashReadRawPage mov w19, w0 cmn w0, #1 - bne .L854 + bne .L862 adrp x24, .LANCHOR5 ldrb w25, [x24, #:lo12:.LANCHOR5] - cbnz w25, .L855 -.L857: + cbnz w25, .L863 +.L865: adrp x0, .LANCHOR30 ldrb w0, [x0, #:lo12:.LANCHOR30] - cbz w0, .L854 + cbz w0, .L862 adrp x0, .LANCHOR19 mov w4, 1 mov x3, x23 @@ -5884,16 +6011,16 @@ FlashReadPage: bl FlashDdrTunningRead mov w19, w0 cmn w0, #1 - beq .L858 + beq .L866 adrp x0, .LANCHOR33 ldrb w0, [x0, #:lo12:.LANCHOR33] cmp w19, w0, lsr 1 - bls .L854 -.L858: + bls .L862 +.L866: lsr w0, w24, 8 bl NandcSetDdrPara - b .L854 -.L855: + b .L862 +.L863: strb wzr, [x24, #:lo12:.LANCHOR5] mov x3, x23 mov x2, x22 @@ -5902,14 +6029,14 @@ FlashReadPage: bl FlashReadRawPage strb w25, [x24, #:lo12:.LANCHOR5] cmn w0, #1 - beq .L857 + beq .L865 mov w19, w0 -.L854: +.L862: adrp x24, .LANCHOR145 ldr x4, [x24, #:lo12:.LANCHOR145] - cbz x4, .L853 + cbz x4, .L861 cmn w19, #1 - bne .L853 + bne .L861 mov x3, x23 mov x2, x22 mov w1, w21 @@ -5923,10 +6050,10 @@ FlashReadPage: add x0, x0, :lo12:.LC12 bl printf cmn w19, #1 - bne .L853 - adrp x0, .LANCHOR8 - ldrb w0, [x0, #:lo12:.LANCHOR8] - cbz w0, .L853 + bne .L861 + adrp x0, .LANCHOR15 + ldrb w0, [x0, #:lo12:.LANCHOR15] + cbz w0, .L861 mov w0, w20 bl flash_enter_slc_mode ldr x4, [x24, #:lo12:.LANCHOR145] @@ -5938,7 +6065,7 @@ FlashReadPage: mov w19, w0 mov w0, w20 bl flash_exit_slc_mode -.L853: +.L861: mov w0, w19 ldr x25, [sp, 64] ldp x19, x20, [sp, 16] @@ -5977,27 +6104,27 @@ FlashDdrParaScan: adrp x20, .LANCHOR30 bl FlashReadRawPage cmn w0, #1 - beq .L874 + beq .L882 cmn w22, #1 - bne .L875 -.L874: + bne .L883 +.L882: ldrb w0, [x19, #:lo12:.LANCHOR24] - tbz x0, 0, .L875 + tbz x0, 0, .L883 mov w0, 1 bl FlashSetInterfaceMode mov w0, 1 bl NandcSetMode strb wzr, [x20, #:lo12:.LANCHOR30] -.L876: +.L884: mov w0, 0 ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x29, x30, [sp], 48 ret -.L875: +.L883: mov w0, 1 strb w0, [x20, #:lo12:.LANCHOR30] - b .L876 + b .L884 .size FlashDdrParaScan, .-FlashDdrParaScan .section .text.FlashLoadPhyInfo,"ax",@progbits .align 2 @@ -6007,10 +6134,10 @@ FlashLoadPhyInfo: stp x29, x30, [sp, -128]! mov w0, 60 add x29, sp, 0 - stp x19, x20, [sp, 16] - adrp x20, .LANCHOR31 stp x21, x22, [sp, 32] + adrp x21, .LANCHOR3 adrp x22, .LANCHOR147 + stp x19, x20, [sp, 16] strb w0, [x29, 120] mov w0, 40 strb w0, [x29, 121] @@ -6018,28 +6145,27 @@ FlashLoadPhyInfo: strb w0, [x29, 122] mov w0, 16 strb w0, [x29, 123] - add x0, x20, :lo12:.LANCHOR31 - stp x23, x24, [sp, 48] - adrp x21, .LANCHOR146 - adrp x24, .LANCHOR148 - stp x25, x26, [sp, 64] - ldrh w0, [x0, 10] - adrp x26, .LANCHOR7 - str w0, [x29, 108] + adrp x20, .LANCHOR146 + ldr w0, [x21, #:lo12:.LANCHOR3] mov w19, 0 - ldr x0, [x22, #:lo12:.LANCHOR147] - mov w25, 4 - str x0, [x21, #:lo12:.LANCHOR146] + stp x23, x24, [sp, 48] + adrp x24, .LANCHOR148 + str w0, [x29, 108] mov w23, -1 + ldr x0, [x22, #:lo12:.LANCHOR147] + stp x25, x26, [sp, 64] + adrp x25, .LANCHOR31 + str x0, [x20, #:lo12:.LANCHOR146] + mov w26, 4 stp x27, x28, [sp, 80] - add x26, x26, :lo12:.LANCHOR7 + add x25, x25, :lo12:.LANCHOR31 str wzr, [x24, #:lo12:.LANCHOR148] mov w0, 0 bl flash_enter_slc_mode -.L885: +.L893: add w28, w19, 1 mov x27, 0 -.L887: +.L895: add x0, x29, 120 ldrb w0, [x0, x27] bl FlashBchSel @@ -6049,85 +6175,86 @@ FlashLoadPhyInfo: mov w0, 0 bl FlashReadRawPage cmn w0, #1 - bne .L886 + bne .L894 ldr x2, [x22, #:lo12:.LANCHOR147] mov x3, 0 mov w1, w28 mov w0, 0 bl FlashReadRawPage cmn w0, #1 - bne .L886 + bne .L894 add x27, x27, 1 cmp x27, 4 - bne .L887 -.L888: + bne .L895 +.L896: ldr w0, [x29, 108] - subs w25, w25, #1 + subs w26, w26, #1 add w19, w19, w0 - bne .L885 - b .L893 -.L889: + bne .L893 + b .L901 +.L897: mov w1, 2036 add x0, x6, 12 - bl JSHash + bl js_hash ldr w1, [x6, 8] cmp w1, w0 - bne .L895 - add x23, x20, :lo12:.LANCHOR31 + bne .L903 add x1, x6, 160 mov w2, 32 - mov x0, x23 + mov x0, x25 bl ftl_memcpy - ldr x1, [x21, #:lo12:.LANCHOR146] + ldr x1, [x20, #:lo12:.LANCHOR146] mov w2, 32 - mov x0, x26 + adrp x0, .LANCHOR7 + add x0, x0, :lo12:.LANCHOR7 add x1, x1, 192 bl ftl_memcpy - ldr x1, [x21, #:lo12:.LANCHOR146] + ldr x1, [x20, #:lo12:.LANCHOR146] mov w2, 852 adrp x0, .LANCHOR20 add x0, x0, :lo12:.LANCHOR20 add x1, x1, 224 bl ftl_memcpy - ldr x1, [x21, #:lo12:.LANCHOR146] - adrp x0, .LANCHOR30 + ldrh w0, [x25, 10] + bl FlashBlockAlignInit str w19, [x24, #:lo12:.LANCHOR148] + ldr x1, [x20, #:lo12:.LANCHOR146] + adrp x0, .LANCHOR30 ldr w2, [x1, 1076] strb w2, [x0, #:lo12:.LANCHOR30] - ldrh w0, [x23, 10] + ldr w0, [x21, #:lo12:.LANCHOR3] adrp x2, .LANCHOR149 udiv w0, w19, w0 - add w3, w0, 1 - cbz w0, .L891 - str w3, [x2, #:lo12:.LANCHOR149] -.L892: + add w0, w0, 1 + cmp w0, 1 + bls .L899 +.L906: + str w0, [x2, #:lo12:.LANCHOR149] adrp x0, .LANCHOR150 ldrh w1, [x1, 14] mov w23, 0 strb w1, [x0, #:lo12:.LANCHOR150] - b .L888 -.L891: + b .L896 +.L899: mov w0, 2 - str w0, [x2, #:lo12:.LANCHOR149] - b .L892 -.L895: + b .L906 +.L903: mov w23, -1 - b .L888 -.L886: - ldr x6, [x21, #:lo12:.LANCHOR146] + b .L896 +.L894: + ldr x6, [x20, #:lo12:.LANCHOR146] mov w1, 20036 movk w1, 0x4e41, lsl 16 ldr w0, [x6] cmp w0, w1 - bne .L888 - cbnz w23, .L889 - add x20, x20, :lo12:.LANCHOR31 - ldrh w0, [x20, 10] + bne .L896 + cbnz w23, .L897 + ldr w0, [x21, #:lo12:.LANCHOR3] udiv w19, w19, w0 adrp x0, .LANCHOR149 add w19, w19, 1 str w19, [x0, #:lo12:.LANCHOR149] -.L893: +.L901: mov w0, 0 bl flash_exit_slc_mode mov w0, w23 @@ -6162,9 +6289,9 @@ ToshibaReadRetrial: add x0, x0, :lo12:.LANCHOR6 add x2, x0, x1 ldr x22, [x0, x1] - adrp x1, .LANCHOR11 + adrp x1, .LANCHOR10 ldrb w27, [x2, 8] - ldrb w0, [x1, #:lo12:.LANCHOR11] + ldrb w0, [x1, #:lo12:.LANCHOR10] str x1, [x29, 112] add x19, x27, 8 sub w0, w0, #67 @@ -6172,44 +6299,44 @@ ToshibaReadRetrial: and w0, w0, 255 add x19, x22, x19, lsl 8 cmp w0, 1 - bls .L915 + bls .L924 adrp x0, .LANCHOR30 ldrb w0, [x0, #:lo12:.LANCHOR30] - cbz w0, .L916 + cbz w0, .L925 mov w23, 1 mov w0, 0 bl NandcSetDdrMode -.L900: +.L909: add x0, x22, x27, lsl 8 mov w1, 92 str w1, [x0, 2056] mov w1, 197 str w1, [x0, 2056] -.L899: +.L908: ldrsw x0, [x29, 124] mov w20, 1 mov w24, -1 add x0, x0, 8 add x0, x22, x0, lsl 8 str x0, [x29, 104] -.L901: +.L910: adrp x0, .LANCHOR151 ldrb w0, [x0, #:lo12:.LANCHOR151] add w0, w0, 1 cmp w20, w0 - bcc .L910 + bcc .L919 mov w28, w24 -.L909: +.L918: ldr x0, [x29, 112] mov w1, 0 - ldrb w0, [x0, #:lo12:.LANCHOR11] + ldrb w0, [x0, #:lo12:.LANCHOR10] sub w0, w0, #67 and w0, w0, 255 cmp w0, 1 mov x0, x19 - bhi .L911 + bhi .L920 bl SandiskSetRRPara -.L912: +.L921: ldrsw x0, [x29, 124] add x0, x0, 8 add x22, x22, x0, lsl 8 @@ -6219,17 +6346,17 @@ ToshibaReadRetrial: ldrb w0, [x0, #:lo12:.LANCHOR33] add w0, w0, w0, lsl 1 cmp w28, w0, lsr 2 - bcc .L913 + bcc .L922 cmn w28, #1 mov w0, 256 csel w28, w28, w0, eq -.L913: +.L922: mov w0, w21 bl NandcWaitFlashReady - cbz w23, .L898 + cbz w23, .L907 mov w0, 4 bl NandcSetDdrMode -.L898: +.L907: mov w0, w28 ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] @@ -6238,42 +6365,42 @@ ToshibaReadRetrial: ldp x27, x28, [sp, 80] ldp x29, x30, [sp], 128 ret -.L916: +.L925: mov w23, 0 - b .L900 -.L915: + b .L909 +.L924: mov w23, 0 - b .L899 -.L910: + b .L908 +.L919: ldr x0, [x29, 112] mov w1, w20 - ldrb w0, [x0, #:lo12:.LANCHOR11] + ldrb w0, [x0, #:lo12:.LANCHOR10] sub w0, w0, #67 and w0, w0, 255 cmp w0, 1 mov x0, x19 - bhi .L902 + bhi .L911 bl SandiskSetRRPara -.L903: +.L912: ldr x0, [x29, 112] - ldrb w0, [x0, #:lo12:.LANCHOR11] + ldrb w0, [x0, #:lo12:.LANCHOR10] cmp w0, 34 - bne .L904 + bne .L913 adrp x0, .LANCHOR151 ldrb w0, [x0, #:lo12:.LANCHOR151] sub w0, w0, #3 cmp w20, w0 - bne .L904 + bne .L913 ldr x1, [x29, 104] mov w0, 179 str w0, [x1, 8] -.L904: +.L913: add x0, x22, x27, lsl 8 mov w1, 38 str w1, [x0, 2056] mov w1, 93 str w1, [x0, 2056] - cbz w23, .L905 + cbz w23, .L914 mov w0, 4 bl NandcSetDdrMode ldr w1, [x29, 120] @@ -6284,35 +6411,35 @@ ToshibaReadRetrial: mov w28, w0 mov w0, 0 bl NandcSetDdrMode -.L906: +.L915: cmn w28, #1 - beq .L907 + beq .L916 adrp x0, .LANCHOR33 cmn w24, #1 csel w24, w24, w28, ne ldrb w0, [x0, #:lo12:.LANCHOR33] add w0, w0, w0, lsl 1 cmp w28, w0, lsr 2 - bcc .L909 + bcc .L918 mov x26, 0 mov x25, 0 -.L907: +.L916: add w20, w20, 1 - b .L901 -.L902: + b .L910 +.L911: bl ToshibaSetRRPara - b .L903 -.L905: + b .L912 +.L914: ldr w1, [x29, 120] mov x3, x26 mov x2, x25 mov w0, w21 bl FlashReadRawPage mov w28, w0 - b .L906 -.L911: + b .L915 +.L920: bl ToshibaSetRRPara - b .L912 + b .L921 .size ToshibaReadRetrial, .-ToshibaReadRetrial .section .text.SamsungReadRetrial,"ax",@progbits .align 2 @@ -6346,12 +6473,12 @@ SamsungReadRetrial: ldrb w20, [x2, 8] add x20, x20, 8 add x20, x0, x20, lsl 8 -.L927: +.L936: ldrb w0, [x26] add w0, w0, 1 cmp w21, w0 - bcc .L931 -.L930: + bcc .L940 +.L939: mov x0, x20 mov w1, 0 bl SamsungSetRRPara @@ -6359,11 +6486,11 @@ SamsungReadRetrial: ldrb w0, [x0, #:lo12:.LANCHOR33] add w0, w0, w0, lsl 1 cmp w19, w0, lsr 2 - bcc .L926 + bcc .L935 cmn w19, #1 mov w0, 256 csel w19, w19, w0, eq -.L926: +.L935: mov w0, w19 ldr x27, [sp, 80] ldp x19, x20, [sp, 16] @@ -6372,7 +6499,7 @@ SamsungReadRetrial: ldp x25, x26, [sp, 64] ldp x29, x30, [sp], 96 ret -.L931: +.L940: mov w1, w21 mov x0, x20 bl SamsungSetRRPara @@ -6382,21 +6509,21 @@ SamsungReadRetrial: mov w0, w22 bl FlashReadRawPage cmn w0, #1 - beq .L928 + beq .L937 ldrb w1, [x27] cmn w19, #1 csel w19, w19, w0, ne add w1, w1, w1, lsl 1 cmp w0, w1, lsr 2 - bcc .L933 + bcc .L942 mov x25, 0 mov x24, 0 -.L928: +.L937: add w21, w21, 1 - b .L927 -.L933: + b .L936 +.L942: mov w19, w0 - b .L930 + b .L939 .size SamsungReadRetrial, .-SamsungReadRetrial .section .text.MicronReadRetrial,"ax",@progbits .align 2 @@ -6412,23 +6539,23 @@ MicronReadRetrial: str w1, [x29, 140] mov x24, x2 ldrb w19, [x0, #:lo12:.LANCHOR33] - adrp x0, .LANCHOR8 + adrp x0, .LANCHOR15 stp x25, x26, [sp, 64] mov x25, x3 - ldrb w1, [x0, #:lo12:.LANCHOR8] + ldrb w1, [x0, #:lo12:.LANCHOR15] stp x21, x22, [sp, 32] stp x27, x28, [sp, 80] str x0, [x29, 128] - cbnz w1, .L941 + cbnz w1, .L950 add w19, w19, w19, lsl 1 asr w19, w19, 2 -.L942: +.L951: adrp x21, .LANCHOR6 add x21, x21, :lo12:.LANCHOR6 add x21, x21, x20, sxtw 4 mov w23, 0 mov w28, 137 -.L952: +.L961: mov w0, w20 bl NandcWaitFlashReady ldrb w4, [x21, 8] @@ -6438,11 +6565,11 @@ MicronReadRetrial: mov w22, 0 mov w26, -1 add x27, x8, x4, lsl 8 -.L943: +.L952: ldrb w0, [x7] cmp w22, w0 - bcc .L947 -.L946: + bcc .L956 +.L955: add x4, x8, x4, lsl 8 mov w0, 239 str x4, [x29, 120] @@ -6456,14 +6583,14 @@ MicronReadRetrial: str wzr, [x4, 2048] str wzr, [x4, 2048] str wzr, [x4, 2048] - bcc .L948 + bcc .L957 cmn w26, #1 mov w0, 256 csel w26, w26, w0, eq -.L948: +.L957: cmp w26, 256 ccmn w26, #1, 4, ne - bne .L949 + bne .L958 ldr w2, [x29, 140] adrp x0, .LC13 mov w4, w26 @@ -6471,22 +6598,22 @@ MicronReadRetrial: mov w1, w22 add x0, x0, :lo12:.LC13 bl printf - cbnz w23, .L950 + cbnz w23, .L959 ldr x0, [x29, 128] - ldrb w0, [x0, #:lo12:.LANCHOR8] - cbz w0, .L940 + ldrb w0, [x0, #:lo12:.LANCHOR15] + cbz w0, .L949 cmn w26, #1 - bne .L940 + bne .L949 mov w1, 3 mov w0, w20 mov w23, 1 bl micron_auto_read_calibration_config - b .L952 -.L941: + b .L961 +.L950: mov w0, 3 sdiv w19, w19, w0 - b .L942 -.L947: + b .L951 +.L956: mov w0, 239 str w0, [x27, 2056] str w28, [x27, 2052] @@ -6509,29 +6636,29 @@ MicronReadRetrial: ldr w10, [x29, 120] ldp x4, x7, [x29, 96] ldr x8, [x29, 112] - beq .L944 + beq .L953 cmn w26, #1 csel w26, w26, w0, ne cmp w0, w19 - bcc .L954 + bcc .L963 mov x25, 0 mov x24, 0 -.L944: +.L953: mov w22, w10 - b .L943 -.L954: + b .L952 +.L963: mov w26, w0 mov x25, 0 mov x24, 0 - b .L946 -.L950: + b .L955 +.L959: mov w0, w20 mov w1, 0 bl micron_auto_read_calibration_config cmn w26, #1 mov w0, 256 csel w26, w26, w0, eq -.L940: +.L949: mov w0, w26 ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] @@ -6540,13 +6667,13 @@ MicronReadRetrial: ldp x27, x28, [sp, 80] ldp x29, x30, [sp], 144 ret -.L949: - cbz w23, .L940 +.L958: + cbz w23, .L949 mov w1, 0 mov w0, w20 mov w26, 256 bl micron_auto_read_calibration_config - b .L940 + b .L949 .size MicronReadRetrial, .-MicronReadRetrial .section .text.HynixReadRetrial,"ax",@progbits .align 2 @@ -6555,58 +6682,62 @@ MicronReadRetrial: HynixReadRetrial: stp x29, x30, [sp, -128]! add x29, sp, 0 - stp x25, x26, [sp, 64] - mov w25, w1 stp x19, x20, [sp, 16] adrp x19, .LANCHOR20 - add x1, x19, :lo12:.LANCHOR20 stp x27, x28, [sp, 80] - stp x21, x22, [sp, 32] - adrp x22, .LANCHOR18 - stp x23, x24, [sp, 48] and x28, x0, 255 - add x0, x1, x28 - mov x23, x28 - ldrb w24, [x1, 2] - mov x26, x2 - ldr x1, [x22, #:lo12:.LANCHOR18] - mov x27, x3 - ldrb w20, [x0, 12] - ldrb w1, [x1, 19] - cmp w1, 7 - bne .L966 - ldrb w20, [x0, 20] -.L966: - mov w0, w23 + add x0, x19, :lo12:.LANCHOR20 + stp x23, x24, [sp, 48] + stp x21, x22, [sp, 32] + mov w22, w1 + stp x25, x26, [sp, 64] + adrp x25, .LANCHOR18 + add x1, x0, x28 + mov x20, x28 + ldrb w21, [x0, 2] + mov x23, x2 + ldr x0, [x25, #:lo12:.LANCHOR18] + mov x24, x3 + ldrb w26, [x1, 12] + ldrb w0, [x0, 19] + sub w0, w0, #7 + and w0, w0, 255 + cmp w0, 1 + bhi .L975 + ldrb w26, [x1, 20] +.L975: + mov w0, w20 bl NandcWaitFlashReady add x6, x19, :lo12:.LANCHOR20 adrp x5, .LANCHOR33 add x7, x6, 4 add x5, x5, :lo12:.LANCHOR33 mov w4, 0 - mov w21, -1 -.L967: - cmp w4, w24 - bcc .L972 -.L971: - ldr x0, [x22, #:lo12:.LANCHOR18] + mov w27, -1 +.L976: + cmp w4, w21 + bcc .L981 +.L980: + ldr x0, [x25, #:lo12:.LANCHOR18] add x19, x19, :lo12:.LANCHOR20 add x19, x19, x28 ldrb w0, [x0, 19] - cmp w0, 7 - bne .L973 - strb w20, [x19, 20] -.L974: + sub w0, w0, #7 + and w0, w0, 255 + cmp w0, 1 + bhi .L982 + strb w26, [x19, 20] +.L983: adrp x0, .LANCHOR33 ldrb w0, [x0, #:lo12:.LANCHOR33] add w0, w0, w0, lsl 1 - cmp w21, w0, lsr 2 - bcc .L965 - cmn w21, #1 + cmp w27, w0, lsr 2 + bcc .L974 + cmn w27, #1 mov w0, 256 - csel w21, w21, w0, eq -.L965: - mov w0, w21 + csel w27, w27, w0, eq +.L974: + mov w0, w27 ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x23, x24, [sp, 48] @@ -6614,46 +6745,46 @@ HynixReadRetrial: ldp x27, x28, [sp, 80] ldp x29, x30, [sp], 128 ret -.L972: - add w20, w20, 1 +.L981: + add w26, w26, 1 ldrb w1, [x6, 1] - and w20, w20, 255 + and w26, w26, 255 mov x2, x7 - cmp w24, w20 + cmp w21, w26 str x5, [x29, 96] - csel w20, w20, wzr, hi + csel w26, w26, wzr, hi str w4, [x29, 108] stp x7, x6, [x29, 112] - mov w3, w20 - mov w0, w23 + mov w3, w26 + mov w0, w20 bl HynixSetRRPara - mov x3, x27 - mov x2, x26 - mov w1, w25 - mov w0, w23 + mov x3, x24 + mov x2, x23 + mov w1, w22 + mov w0, w20 bl FlashReadRawPage cmn w0, #1 ldr w4, [x29, 108] ldr x5, [x29, 96] ldp x7, x6, [x29, 112] - beq .L969 + beq .L978 ldrb w1, [x5] - cmn w21, #1 - csel w21, w21, w0, ne + cmn w27, #1 + csel w27, w27, w0, ne add w1, w1, w1, lsl 1 cmp w0, w1, lsr 2 - bcc .L976 - mov x27, 0 - mov x26, 0 -.L969: + bcc .L985 + mov x24, 0 + mov x23, 0 +.L978: add w4, w4, 1 - b .L967 -.L976: - mov w21, w0 - b .L971 -.L973: - strb w20, [x19, 12] - b .L974 + b .L976 +.L985: + mov w27, w0 + b .L980 +.L982: + strb w26, [x19, 12] + b .L983 .size HynixReadRetrial, .-HynixReadRetrial .section .text.FlashProgPage,"ax",@progbits .align 2 @@ -6671,19 +6802,19 @@ FlashProgPage: ldrb w21, [x1, #:lo12:.LANCHOR31+9] ands w19, w0, 255 mov x23, x3 - bne .L984 + bne .L993 adrp x0, .LANCHOR2 adrp x1, .LANCHOR3 ldrb w0, [x0, #:lo12:.LANCHOR2] ldr w1, [x1, #:lo12:.LANCHOR3] mul w0, w0, w1 cmp w0, w20 - bls .L984 + bls .L993 adrp x0, .LANCHOR1 ldrb w0, [x0, #:lo12:.LANCHOR1] - cbnz w0, .L985 + cbnz w0, .L994 sub w21, w21, #2 -.L984: +.L993: mov w0, w19 bl NandcWaitFlashReady mov w0, w19 @@ -6714,9 +6845,9 @@ FlashProgPage: ldp x21, x22, [sp, 32] ldp x29, x30, [sp], 64 ret -.L985: +.L994: mov w21, 4 - b .L984 + b .L993 .size FlashProgPage, .-FlashProgPage .section .text.FlashSavePhyInfo,"ax",@progbits .align 2 @@ -6798,7 +6929,7 @@ FlashSavePhyInfo: ldr x6, [x19, #:lo12:.LANCHOR146] mov w1, 2036 add x0, x6, 12 - bl JSHash + bl js_hash str w0, [x6, 8] mov w0, 1592 str w0, [x6, 4] @@ -6806,7 +6937,7 @@ FlashSavePhyInfo: str x0, [x19, #:lo12:.LANCHOR146] mov w0, 0 bl flash_enter_slc_mode -.L990: +.L999: ldr w1, [x21] mov w2, 0 mov w0, 0 @@ -6833,30 +6964,30 @@ FlashSavePhyInfo: bl FlashReadRawPage cmn w0, #1 add w7, w20, 1 - beq .L988 + beq .L997 ldr x6, [x19, #:lo12:.LANCHOR146] ldr w0, [x6] cmp w0, w25 - bne .L988 + bne .L997 mov w1, 2036 add x0, x6, 12 - bl JSHash + bl js_hash ldr w1, [x6, 8] cmp w1, w0 - bne .L988 + bne .L997 ldr w0, [x21] cmp w23, 1 str w7, [x26] mul w20, w0, w20 adrp x0, .LANCHOR148 str w20, [x0, #:lo12:.LANCHOR148] - beq .L991 + beq .L1000 mov w23, 1 -.L988: +.L997: mov w20, w7 cmp w7, 4 - bne .L990 -.L989: + bne .L999 +.L998: mov w0, 0 bl flash_exit_slc_mode cmp w23, 0 @@ -6867,9 +6998,9 @@ FlashSavePhyInfo: ldp x25, x26, [sp, 64] ldp x29, x30, [sp], 80 ret -.L991: +.L1000: mov w23, 2 - b .L989 + b .L998 .size FlashSavePhyInfo, .-FlashSavePhyInfo .section .text.FlashReadIdbDataRaw,"ax",@progbits .align 2 @@ -6877,8 +7008,6 @@ FlashSavePhyInfo: .type FlashReadIdbDataRaw, %function FlashReadIdbDataRaw: stp x29, x30, [sp, -144]! - mov w1, 12336 - movk w1, 0x5638, lsl 16 add x29, sp, 0 stp x23, x24, [sp, 48] mov x23, x0 @@ -6896,14 +7025,13 @@ FlashReadIdbDataRaw: ldrb w26, [x0, #:lo12:.LANCHOR33] adrp x0, .LANCHOR29 stp x21, x22, [sp, 32] - ldr w2, [x0, #:lo12:.LANCHOR29] + ldr w1, [x0, #:lo12:.LANCHOR29] stp x27, x28, [sp, 80] str x0, [x29, 120] - cmp w2, w1 - bne .L998 + cbz w1, .L1007 mov w0, 0 bl flash_enter_slc_mode -.L998: +.L1007: adrp x24, .LANCHOR2 adrp x22, .LANCHOR3 add x27, x29, 136 @@ -6915,22 +7043,19 @@ FlashReadIdbDataRaw: mov w1, 0 mov x0, x23 bl ftl_memset -.L999: +.L1008: ldrb w0, [x24, #:lo12:.LANCHOR2] cmp w19, w0 - bcc .L1004 -.L1003: + bcc .L1013 +.L1012: mov w0, w26 bl FlashBchSel ldr x0, [x29, 120] - ldr w1, [x0, #:lo12:.LANCHOR29] - mov w0, 12336 - movk w0, 0x5638, lsl 16 - cmp w1, w0 - bne .L997 + ldr w0, [x0, #:lo12:.LANCHOR29] + cbz w0, .L1006 mov w0, 0 bl flash_exit_slc_mode -.L997: +.L1006: mov w0, w20 ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] @@ -6939,10 +7064,10 @@ FlashReadIdbDataRaw: ldp x27, x28, [sp, 80] ldp x29, x30, [sp], 144 ret -.L1004: +.L1013: mov x4, 0 adrp x25, .LANCHOR147 -.L1001: +.L1010: ldrb w5, [x4, x27] add x21, x25, :lo12:.LANCHOR147 str w5, [x29, 116] @@ -6957,24 +7082,24 @@ FlashReadIdbDataRaw: bl FlashReadRawPage cmn w0, #1 ldr w5, [x29, 116] - bne .L1000 + bne .L1009 ldr x4, [x29, 104] add x4, x4, 1 cmp x4, 4 - bne .L1001 -.L1002: + bne .L1010 +.L1011: add w19, w19, 1 - b .L999 -.L1007: + b .L1008 +.L1016: mov w20, 0 - b .L1003 -.L1000: + b .L1012 +.L1009: ldr x0, [x21] ldr w1, [x0] mov w0, 35899 movk w0, 0xfcdc, lsl 16 cmp w1, w0 - bne .L1002 + bne .L1011 mov w1, w5 adrp x0, .LC14 add x0, x0, :lo12:.LC14 @@ -6989,11 +7114,11 @@ FlashReadIdbDataRaw: adrp x0, .LANCHOR149 ldr w1, [x0, #:lo12:.LANCHOR149] cmp w19, w1 - bcs .L1007 + bcs .L1016 str w19, [x0, #:lo12:.LANCHOR149] mov w20, 0 bl FlashSavePhyInfo - b .L1002 + b .L1011 .size FlashReadIdbDataRaw, .-FlashReadIdbDataRaw .section .text.FlashPageProgMsbFFData,"ax",@progbits .align 2 @@ -7001,69 +7126,72 @@ FlashReadIdbDataRaw: .type FlashPageProgMsbFFData, %function FlashPageProgMsbFFData: stp x29, x30, [sp, -80]! - adrp x3, .LANCHOR8 add x29, sp, 0 - stp x19, x20, [sp, 16] - and w19, w2, 65535 - adrp x2, .LANCHOR18 - stp x21, x22, [sp, 32] - ldrb w3, [x3, #:lo12:.LANCHOR8] - and w21, w0, 255 - ldr x0, [x2, #:lo12:.LANCHOR18] - mov x22, x2 stp x23, x24, [sp, 48] - str x25, [sp, 64] - ldrb w0, [x0, 19] - cbz w3, .L1011 - adrp x2, .LANCHOR29 - ldr w3, [x2, #:lo12:.LANCHOR29] - mov w2, 12336 - movk w2, 0x5638, lsl 16 - cmp w3, w2 - beq .L1010 -.L1011: - sub w0, w0, #5 - and w0, w0, 255 - cmp w0, 63 - bhi .L1010 - mov x2, 16391 + and w24, w0, 255 + adrp x0, .LANCHOR15 + stp x19, x20, [sp, 16] + stp x21, x22, [sp, 32] + and w19, w2, 65535 + ldrb w0, [x0, #:lo12:.LANCHOR15] + stp x25, x26, [sp, 64] + cbz w0, .L1026 + adrp x0, .LANCHOR29 + ldr w0, [x0, #:lo12:.LANCHOR29] + cbnz w0, .L1025 +.L1026: + adrp x2, .LANCHOR18 + mov x25, x2 + ldr x0, [x2, #:lo12:.LANCHOR18] + ldrb w23, [x0, 19] + sub w0, w23, #5 + and w3, w0, 255 + cmp w3, 63 + bhi .L1025 + mov x2, 16399 movk x2, 0x4000, lsl 16 movk x2, 0x8000, lsl 48 - lsr x0, x2, x0 - tbz x0, 0, .L1010 + lsr x0, x2, x3 + tbz x0, 0, .L1025 adrp x20, .LANCHOR120 - mov w24, w1 + mov w22, w1 add x20, x20, :lo12:.LANCHOR120 - mov w23, 65535 - adrp x25, .LANCHOR153 -.L1013: - ldr x0, [x22, #:lo12:.LANCHOR18] + mov w26, 65535 + adrp x21, .LANCHOR153 +.L1028: + ldr x0, [x25, #:lo12:.LANCHOR18] ldrh w0, [x0, 10] cmp w0, w19 - bhi .L1014 -.L1010: + bhi .L1031 +.L1025: 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], 80 ret -.L1014: +.L1031: ldrh w0, [x20, w19, sxtw 1] - cmp w0, w23 - bne .L1010 - ldr x0, [x25, #:lo12:.LANCHOR153] + cmp w0, w26 + bne .L1025 mov w2, 32768 - mov w1, 255 + cmp w23, 8 + bne .L1029 + mov w1, 0 +.L1036: + ldr x0, [x21, #:lo12:.LANCHOR153] bl ftl_memset - ldr x2, [x25, #:lo12:.LANCHOR153] - add w1, w19, w24 + ldr x3, [x21, #:lo12:.LANCHOR153] + add w1, w19, w22 add w19, w19, 1 - mov x3, 0 - mov w0, w21 + mov w0, w24 + mov x2, x3 and w19, w19, 65535 bl FlashProgPage - b .L1013 + b .L1028 +.L1029: + mov w1, 255 + b .L1036 .size FlashPageProgMsbFFData, .-FlashPageProgMsbFFData .section .text.idb_write_data,"ax",@progbits .align 2 @@ -7080,16 +7208,16 @@ idb_write_data: stp x23, x24, [sp, 48] stp x25, x26, [sp, 64] stp x27, x28, [sp, 80] - bls .L1020 + bls .L1038 cmp w1, 575 - bhi .L1021 + bhi .L1039 adrp x0, .LANCHOR154 mov x1, x2 mov w2, 1 cmp w4, 64 str w2, [x0, #:lo12:.LANCHOR154] adrp x0, idb_buf - bhi .L1022 + bhi .L1040 mov w2, 64 sub w4, w2, w4 sub w2, w3, w4 @@ -7097,9 +7225,9 @@ idb_write_data: lsl w2, w2, 9 add x1, x1, x4 add x0, x0, :lo12:idb_buf -.L1072: +.L1090: bl ftl_memcpy -.L1055: +.L1073: ldp x19, x20, [sp, 16] mov w0, 0 ldp x21, x22, [sp, 32] @@ -7108,7 +7236,7 @@ idb_write_data: ldp x27, x28, [sp, 80] ldp x29, x30, [sp], 240 ret -.L1022: +.L1040: mov w2, 576 sub w2, w2, w4 cmp w3, w2 @@ -7118,15 +7246,15 @@ idb_write_data: add x0, x0, :lo12:idb_buf lsl w2, w2, 9 add x0, x0, x4 - b .L1072 -.L1020: + b .L1090 +.L1038: cmp w1, 575 - bls .L1055 -.L1021: + bls .L1073 +.L1039: adrp x0, .LANCHOR154 - str x0, [x29, 112] + str x0, [x29, 104] ldr w1, [x0, #:lo12:.LANCHOR154] - cbz w1, .L1055 + cbz w1, .L1073 adrp x21, .LANCHOR18 adrp x1, idb_buf+262140 adrp x25, idb_buf @@ -7143,9 +7271,9 @@ idb_write_data: udiv w0, w0, w20 str w0, [x29, 172] mov w0, 0 -.L1026: +.L1044: ldr w4, [x1] - cbnz w4, .L1024 + cbnz w4, .L1042 ldr w4, [x5, w0, uxtw 2] add w0, w0, 1 str w4, [x1], -4 @@ -7153,8 +7281,8 @@ idb_write_data: sub w2, w2, #1 csel w0, w0, wzr, cc cmp w2, 4096 - bne .L1026 -.L1024: + bne .L1044 +.L1042: add x0, x25, :lo12:idb_buf mov w3, 512 mov w23, 0 @@ -7167,23 +7295,23 @@ idb_write_data: ldr w0, [x29, 172] mul w19, w20, w24 mul w0, w20, w0 - str w0, [x29, 120] + str w0, [x29, 136] adrp x0, .LANCHOR16 add x0, x0, :lo12:.LANCHOR16 str x0, [x29, 160] -.L1027: +.L1045: cmp w24, 15 - bls .L1045 - cbnz w23, .L1047 + bls .L1063 + cbnz w23, .L1065 adrp x0, .LC17 mov w1, 0 add x0, x0, :lo12:.LC17 bl printf -.L1047: - ldr x0, [x29, 112] +.L1065: + ldr x0, [x29, 104] str wzr, [x0, #:lo12:.LANCHOR154] - b .L1055 -.L1045: + b .L1073 +.L1063: adrp x27, gp_flash_check_buf mov x2, 512 mov w1, 0 @@ -7194,98 +7322,104 @@ idb_write_data: ldrh w26, [x0, 10] mov w0, w19 bl FW_FlashBlockErase.constprop.41 - str x27, [x29, 136] + str x27, [x29, 128] mul w26, w22, w26 and w26, w26, 65535 cmp w26, 511 - bhi .L1028 + bhi .L1046 add w0, w26, w19 bl FW_FlashBlockErase.constprop.41 -.L1028: +.L1046: udiv w4, w19, w26 - adrp x5, .LANCHOR8 - add x5, x5, :lo12:.LANCHOR8 + adrp x5, .LANCHOR15 + add x5, x5, :lo12:.LANCHOR15 mov x28, 0 msub w4, w4, w26, w19 sub w26, w19, w4 -.L1029: - add x6, x25, :lo12:idb_buf +.L1047: + add x2, x25, :lo12:idb_buf cmp x28, 128 - add x6, x6, x28, lsl 11 - bne .L1033 + add x2, x2, x28, lsl 11 + bne .L1051 ldr x0, [x21, #:lo12:.LANCHOR18] mov w26, 0 - ldr x1, [x29, 136] + ldr x1, [x29, 128] add x27, x1, :lo12:gp_flash_check_buf - adrp x1, .LANCHOR8 + adrp x1, .LANCHOR15 ldrb w28, [x0, 9] - add x1, x1, :lo12:.LANCHOR8 + add x1, x1, :lo12:.LANCHOR15 ldrh w22, [x0, 10] - str x1, [x29, 104] + str x1, [x29, 96] mul w22, w28, w22 and w0, w22, 65535 udiv w22, w19, w0 msub w22, w22, w0, w19 sub w0, w19, w22 - str w0, [x29, 128] + str w0, [x29, 120] mul w0, w22, w28 ubfx x0, x0, 2, 2 -.L1034: +.L1052: cmp w26, 511 - bhi .L1041 - ldr x3, [x29, 104] + bhi .L1059 + ldr x3, [x29, 96] mov w1, 4 sub w1, w1, w0 - add w2, w22, w26 + ldr x2, [x29, 160] and w1, w1, 65535 str w1, [x29, 144] - ldr x1, [x29, 160] - lsr w2, w2, 2 + add w1, w22, w26 ldrb w3, [x3] - ldrh w1, [x1, w2, sxtw 1] - cbz w3, .L1035 - adrp x3, .LANCHOR29 + lsr w1, w1, 2 + ldrh w2, [x2, w1, sxtw 1] + cbz w3, .L1053 + adrp x3, .LANCHOR119 mov w4, 12336 movk w4, 0x5638, lsl 16 - ldr w3, [x3, #:lo12:.LANCHOR29] + ldr w3, [x3, #:lo12:.LANCHOR119] cmp w3, w4 - csel w1, w1, w2, ne -.L1035: - ldr w2, [x29, 128] - add w0, w0, w2 - madd w3, w28, w1, w0 - adrp x0, .LANCHOR33 + csel w2, w2, w1, ne +.L1053: + ldr w1, [x29, 120] + add w0, w0, w1 adrp x1, .LANCHOR3 - ldrb w0, [x0, #:lo12:.LANCHOR33] - str w0, [x29, 124] - ldr x0, [x21, #:lo12:.LANCHOR18] ldr w1, [x1, #:lo12:.LANCHOR3] - ldrb w4, [x0, 9] - adrp x0, .LANCHOR15+26 - ldrh w0, [x0, #:lo12:.LANCHOR15+26] + madd w0, w28, w2, w0 + str w0, [x29, 168] + adrp x0, .LANCHOR33 + ldrb w0, [x0, #:lo12:.LANCHOR33] + str w0, [x29, 112] + ldr x0, [x21, #:lo12:.LANCHOR18] + ldrb w0, [x0, 9] + str w0, [x29, 140] + adrp x0, .LANCHOR14+26 + ldrh w0, [x0, #:lo12:.LANCHOR14+26] mul w0, w0, w1 - mul w0, w0, w4 - cmp w3, w0 - bcs .L1036 + ldr w1, [x29, 140] + mul w0, w0, w1 + ldr w1, [x29, 168] + cmp w1, w0 + bcs .L1054 adrp x0, .LANCHOR152 ldrb w0, [x0, #:lo12:.LANCHOR152] bl FlashBchSel -.L1036: +.L1054: mov w0, 0 bl flash_boot_enter_slc_mode - udiv w1, w3, w4 + ldr w0, [x29, 168] add x3, x29, 176 + ldr w1, [x29, 140] mov x2, x27 + udiv w1, w0, w1 mov w0, 0 str w1, [x29, 168] bl FlashReadPage - mov w3, w0 + mov w1, w0 cmn w0, #1 - bne .L1037 + bne .L1055 adrp x0, .LANCHOR152 ldrb w0, [x0, #:lo12:.LANCHOR152] cmp w0, 40 - beq .L1037 + beq .L1055 mov w0, 40 bl FlashBchSel ldr w1, [x29, 168] @@ -7293,27 +7427,29 @@ idb_write_data: mov x2, x27 mov w0, 0 bl FlashReadPage - mov w3, w0 -.L1037: + mov w1, w0 +.L1055: + str w1, [x29, 168] mov w0, 0 bl flash_boot_exit_slc_mode - ldrb w0, [x29, 124] + ldrb w0, [x29, 112] bl FlashBchSel - cmn w3, #1 - bne .L1038 -.L1041: - ldr x0, [x29, 136] + ldr w1, [x29, 168] + cmn w1, #1 + bne .L1056 +.L1059: + ldr x0, [x29, 128] add x1, x25, :lo12:idb_buf mov x22, 0 add x26, x0, :lo12:gp_flash_check_buf -.L1039: +.L1057: lsl x0, x22, 2 mov w27, w22 add x28, x0, x1 ldr w2, [x0, x26] ldr w0, [x0, x1] cmp w2, w0 - beq .L1042 + beq .L1060 mov x2, 512 mov w1, 0 mov x0, x26 @@ -7329,80 +7465,81 @@ idb_write_data: bl FW_FlashBlockErase.constprop.41 ldr w0, [x29, 172] cmp w0, 1 - bls .L1043 + bls .L1061 add w0, w20, w19 bl FW_FlashBlockErase.constprop.41 -.L1043: +.L1061: ldr w0, [x29, 172] add w24, w24, w0 - ldr w0, [x29, 120] + ldr w0, [x29, 136] add w19, w19, w0 - b .L1027 -.L1033: + b .L1045 +.L1051: add w1, w4, w28, lsl 2 lsr w1, w1, 2 - cbz w1, .L1030 + cbz w1, .L1048 ldr x0, [x29, 160] - add w2, w1, 1 - ldrb w3, [x5] - ldrh w0, [x0, w2, sxtw 1] - cbz w3, .L1031 - adrp x3, .LANCHOR29 + add w3, w1, 1 + ldrb w6, [x5] + ldrh w0, [x0, w3, sxtw 1] + cbz w6, .L1049 + adrp x6, .LANCHOR119 mov w7, 12336 movk w7, 0x5638, lsl 16 - ldr w3, [x3, #:lo12:.LANCHOR29] - cmp w3, w7 - csel w0, w0, w2, ne -.L1031: + ldr w6, [x6, #:lo12:.LANCHOR119] + cmp w6, w7 + csel w0, w0, w3, ne +.L1049: lsl w0, w0, 2 sub w0, w0, #4 str w0, [x29, 176] -.L1030: +.L1048: mov w0, 61424 str w0, [x29, 180] ldr x0, [x29, 160] ldrh w27, [x0, w1, sxtw 1] ldrb w0, [x5] - cbz w0, .L1032 - adrp x0, .LANCHOR29 - mov w2, 12336 - movk w2, 0x5638, lsl 16 - ldr w0, [x0, #:lo12:.LANCHOR29] - cmp w0, w2 + cbz w0, .L1050 + adrp x0, .LANCHOR119 + mov w3, 12336 + movk w3, 0x5638, lsl 16 + ldr w0, [x0, #:lo12:.LANCHOR119] + cmp w0, w3 csel w27, w27, w1, ne -.L1032: +.L1050: adrp x0, .LANCHOR33 - madd w8, w22, w27, w26 - str x5, [x29, 128] + madd w1, w22, w27, w26 + stp x5, x2, [x29, 112] add x28, x28, 1 - ldrb w7, [x0, #:lo12:.LANCHOR33] + ldrb w6, [x0, #:lo12:.LANCHOR33] adrp x0, .LANCHOR152 - str w4, [x29, 168] + stp w4, w6, [x29, 140] ldrb w0, [x0, #:lo12:.LANCHOR152] - str w7, [x29, 144] + str w1, [x29, 168] bl FlashBchSel mov w0, 0 bl flash_boot_enter_slc_mode ldr x0, [x21, #:lo12:.LANCHOR18] - mov x2, x6 add x3, x29, 176 - ldrb w1, [x0, 9] + ldr w1, [x29, 168] + ldr x2, [x29, 120] + ldrb w0, [x0, 9] + udiv w1, w1, w0 mov w0, 0 - udiv w1, w8, w1 bl FlashProgPage mov w0, 0 bl flash_boot_exit_slc_mode - ldr w7, [x29, 144] - mov w0, w7 + ldr w6, [x29, 144] + mov w0, w6 bl FlashBchSel udiv w1, w26, w22 add w2, w27, 1 mov w0, 0 bl FlashPageProgMsbFFData - ldr w4, [x29, 168] - ldr x5, [x29, 128] - b .L1029 -.L1038: + ldr w4, [x29, 140] + ldr x5, [x29, 112] + b .L1047 +.L1056: ldr x0, [x29, 144] ubfiz x0, x0, 9, 16 add x27, x27, x0 @@ -7410,15 +7547,15 @@ idb_write_data: add w26, w0, w26 mov w0, 0 and w26, w26, 65535 - b .L1034 -.L1042: + b .L1052 +.L1060: add x22, x22, 1 cmp x22, 65536 - bne .L1039 + bne .L1057 add w23, w23, 1 cmp w23, 5 - bls .L1043 - b .L1047 + bls .L1061 + b .L1065 .size idb_write_data, .-idb_write_data .section .text.ftl_memcmp,"ax",@progbits .align 2 @@ -7454,7 +7591,7 @@ NandcInit: stp x29, x30, [sp, -16]! adrp x2, .LANCHOR6 add x1, x2, :lo12:.LANCHOR6 - adrp x4, .LANCHOR29 + adrp x4, .LANCHOR119 add x29, sp, 0 str x0, [x2, #:lo12:.LANCHOR6] mov w2, 1 @@ -7480,12 +7617,12 @@ NandcInit: ubfx x2, x2, 16, 4 str w2, [x3, #:lo12:.LANCHOR34] ldr w2, [x0, 352] - str w2, [x4, #:lo12:.LANCHOR29] + str w2, [x4, #:lo12:.LANCHOR119] cmp w2, 2049 - bne .L1077 + bne .L1095 mov w2, 8 str w2, [x3, #:lo12:.LANCHOR34] -.L1077: +.L1095: str w1, [x0] mov w1, 4225 str wzr, [x0, 336] @@ -7522,7 +7659,7 @@ FtlMemInit: strh wzr, [x0, #:lo12:.LANCHOR139] adrp x0, .LANCHOR157 stp x19, x20, [sp, 16] - adrp x19, .LANCHOR55 + adrp x19, .LANCHOR54 str wzr, [x0, #:lo12:.LANCHOR157] adrp x0, .LANCHOR158 stp x21, x22, [sp, 32] @@ -7530,10 +7667,10 @@ FtlMemInit: str wzr, [x0, #:lo12:.LANCHOR158] adrp x0, .LANCHOR159 str x23, [sp, 48] - adrp x21, .LANCHOR58 + adrp x21, .LANCHOR57 str wzr, [x0, #:lo12:.LANCHOR159] adrp x0, .LANCHOR160 - adrp x23, .LANCHOR59 + adrp x23, .LANCHOR58 str wzr, [x0, #:lo12:.LANCHOR160] adrp x0, .LANCHOR161 str wzr, [x0, #:lo12:.LANCHOR161] @@ -7551,8 +7688,8 @@ FtlMemInit: str wzr, [x0, #:lo12:.LANCHOR167] adrp x0, .LANCHOR168 str wzr, [x0, #:lo12:.LANCHOR168] - adrp x0, .LANCHOR80 - str wzr, [x0, #:lo12:.LANCHOR80] + adrp x0, .LANCHOR79 + str wzr, [x0, #:lo12:.LANCHOR79] adrp x0, .LANCHOR169 str wzr, [x0, #:lo12:.LANCHOR169] adrp x0, .LANCHOR170 @@ -7564,20 +7701,20 @@ FtlMemInit: adrp x0, .LANCHOR173 str w1, [x0, #:lo12:.LANCHOR173] adrp x0, .LANCHOR174 - adrp x1, .LANCHOR113 + adrp x1, .LANCHOR112 str wzr, [x0, #:lo12:.LANCHOR174] adrp x0, .LANCHOR175 str wzr, [x0, #:lo12:.LANCHOR175] - adrp x0, .LANCHOR74 - str wzr, [x0, #:lo12:.LANCHOR74] + adrp x0, .LANCHOR73 + str wzr, [x0, #:lo12:.LANCHOR73] mov w0, -1 + strh w0, [x1, #:lo12:.LANCHOR112] + adrp x1, .LANCHOR113 strh w0, [x1, #:lo12:.LANCHOR113] adrp x1, .LANCHOR114 strh w0, [x1, #:lo12:.LANCHOR114] adrp x1, .LANCHOR115 strh w0, [x1, #:lo12:.LANCHOR115] - adrp x1, .LANCHOR116 - strh w0, [x1, #:lo12:.LANCHOR116] adrp x0, .LANCHOR176 mov w1, 32 strh w1, [x0, #:lo12:.LANCHOR176] @@ -7586,24 +7723,24 @@ FtlMemInit: strh w1, [x0, #:lo12:.LANCHOR177] adrp x0, .LANCHOR178 strh wzr, [x0, #:lo12:.LANCHOR178] - adrp x0, .LANCHOR117 - strh wzr, [x0, #:lo12:.LANCHOR117] + adrp x0, .LANCHOR116 + strh wzr, [x0, #:lo12:.LANCHOR116] adrp x0, .LANCHOR179 strh wzr, [x0, #:lo12:.LANCHOR179] - adrp x0, .LANCHOR119 - strh wzr, [x0, #:lo12:.LANCHOR119] - ldrh w0, [x19, #:lo12:.LANCHOR55] + adrp x0, .LANCHOR118 + strh wzr, [x0, #:lo12:.LANCHOR118] + ldrh w0, [x19, #:lo12:.LANCHOR54] lsl w0, w0, 1 bl ftl_malloc - adrp x1, .LANCHOR110 - str x0, [x1, #:lo12:.LANCHOR110] + adrp x1, .LANCHOR109 + str x0, [x1, #:lo12:.LANCHOR109] mov w0, 12 - ldrh w1, [x19, #:lo12:.LANCHOR55] + ldrh w1, [x19, #:lo12:.LANCHOR54] mul w0, w1, w0 bl ftl_malloc ldrh w19, [x22, #:lo12:.LANCHOR38] - adrp x1, .LANCHOR112 - str x0, [x1, #:lo12:.LANCHOR112] + adrp x1, .LANCHOR111 + str x0, [x1, #:lo12:.LANCHOR111] mov w0, 56 mul w19, w19, w0 lsl w20, w19, 2 @@ -7617,22 +7754,22 @@ FtlMemInit: str x0, [x1, #:lo12:.LANCHOR181] mov w0, w20 bl ftl_malloc - adrp x20, .LANCHOR108 + adrp x20, .LANCHOR107 adrp x1, .LANCHOR182 str x0, [x1, #:lo12:.LANCHOR182] mov w0, w19 bl ftl_malloc - adrp x1, .LANCHOR78 - str x0, [x1, #:lo12:.LANCHOR78] + adrp x1, .LANCHOR77 + str x0, [x1, #:lo12:.LANCHOR77] mov w0, w19 bl ftl_malloc - ldrh w19, [x21, #:lo12:.LANCHOR58] - adrp x1, .LANCHOR107 - str x0, [x1, #:lo12:.LANCHOR107] + ldrh w19, [x21, #:lo12:.LANCHOR57] + adrp x1, .LANCHOR106 + str x0, [x1, #:lo12:.LANCHOR106] ldrh w0, [x22, #:lo12:.LANCHOR38] lsl w0, w0, 1 add w0, w0, 1 - str w0, [x20, #:lo12:.LANCHOR108] + str w0, [x20, #:lo12:.LANCHOR107] mov w0, w19 bl ftl_malloc adrp x1, .LANCHOR183 @@ -7645,11 +7782,11 @@ FtlMemInit: bl ftl_malloc adrp x1, .LANCHOR185 str x0, [x1, #:lo12:.LANCHOR185] - ldr w0, [x20, #:lo12:.LANCHOR108] + ldr w0, [x20, #:lo12:.LANCHOR107] mul w0, w19, w0 bl ftl_malloc - adrp x1, .LANCHOR105 - str x0, [x1, #:lo12:.LANCHOR105] + adrp x1, .LANCHOR104 + str x0, [x1, #:lo12:.LANCHOR104] mov w0, w19 bl ftl_malloc adrp x1, .LANCHOR186 @@ -7659,14 +7796,14 @@ FtlMemInit: adrp x1, .LANCHOR187 str x0, [x1, #:lo12:.LANCHOR187] mov w0, 24 - ldr w1, [x20, #:lo12:.LANCHOR108] + ldr w1, [x20, #:lo12:.LANCHOR107] mul w0, w1, w0 bl ftl_malloc - ldrh w19, [x23, #:lo12:.LANCHOR59] - adrp x1, .LANCHOR104 - str x0, [x1, #:lo12:.LANCHOR104] + ldrh w19, [x23, #:lo12:.LANCHOR58] + adrp x1, .LANCHOR103 + str x0, [x1, #:lo12:.LANCHOR103] ldrh w0, [x22, #:lo12:.LANCHOR38] - adrp x22, .LANCHOR65 + adrp x22, .LANCHOR64 mul w19, w19, w0 mov w0, w19 bl ftl_malloc @@ -7677,13 +7814,13 @@ FtlMemInit: adrp x19, .LANCHOR41 adrp x1, .LANCHOR189 str x0, [x1, #:lo12:.LANCHOR189] - ldrh w1, [x23, #:lo12:.LANCHOR59] - ldr w0, [x20, #:lo12:.LANCHOR108] + ldrh w1, [x23, #:lo12:.LANCHOR58] + ldr w0, [x20, #:lo12:.LANCHOR107] adrp x20, .LANCHOR190 mul w0, w1, w0 bl ftl_malloc - adrp x1, .LANCHOR106 - str x0, [x1, #:lo12:.LANCHOR106] + adrp x1, .LANCHOR105 + str x0, [x1, #:lo12:.LANCHOR105] ldrh w0, [x19, #:lo12:.LANCHOR41] ubfiz w0, w0, 1, 15 strh w0, [x20, #:lo12:.LANCHOR190] @@ -7699,15 +7836,15 @@ FtlMemInit: bl ftl_malloc adrp x1, .LANCHOR191 str x0, [x1, #:lo12:.LANCHOR191] - adrp x1, .LANCHOR79 + adrp x1, .LANCHOR78 add x0, x0, 32 - str x0, [x1, #:lo12:.LANCHOR79] + str x0, [x1, #:lo12:.LANCHOR78] ldrh w0, [x19, #:lo12:.LANCHOR41] lsl w0, w0, 1 bl ftl_malloc - ldr w20, [x22, #:lo12:.LANCHOR65] - adrp x1, .LANCHOR84 - str x0, [x1, #:lo12:.LANCHOR84] + ldr w20, [x22, #:lo12:.LANCHOR64] + adrp x1, .LANCHOR83 + str x0, [x1, #:lo12:.LANCHOR83] lsl w20, w20, 1 mov w0, w20 bl ftl_malloc @@ -7715,7 +7852,7 @@ FtlMemInit: str x0, [x1, #:lo12:.LANCHOR129] mov w0, w20 bl ftl_malloc - adrp x20, .LANCHOR62 + adrp x20, .LANCHOR61 adrp x1, .LANCHOR125 str x0, [x1, #:lo12:.LANCHOR125] ldrh w0, [x19, #:lo12:.LANCHOR41] @@ -7724,33 +7861,33 @@ FtlMemInit: bl ftl_malloc adrp x1, .LANCHOR0 str x0, [x1, #:lo12:.LANCHOR0] - ldrh w0, [x20, #:lo12:.LANCHOR62] + ldrh w0, [x20, #:lo12:.LANCHOR61] lsl w0, w0, 1 bl ftl_malloc - adrp x1, .LANCHOR72 - str x0, [x1, #:lo12:.LANCHOR72] - ldrh w0, [x20, #:lo12:.LANCHOR62] + adrp x1, .LANCHOR71 + str x0, [x1, #:lo12:.LANCHOR71] + ldrh w0, [x20, #:lo12:.LANCHOR61] lsl w0, w0, 1 bl ftl_malloc adrp x1, .LANCHOR192 str x0, [x1, #:lo12:.LANCHOR192] - ldrh w0, [x20, #:lo12:.LANCHOR62] - adrp x20, .LANCHOR63 + ldrh w0, [x20, #:lo12:.LANCHOR61] + adrp x20, .LANCHOR62 lsl w0, w0, 2 bl ftl_malloc adrp x1, .LANCHOR193 str x0, [x1, #:lo12:.LANCHOR193] - ldrh w0, [x20, #:lo12:.LANCHOR63] + ldrh w0, [x20, #:lo12:.LANCHOR62] lsl w0, w0, 2 bl ftl_malloc - ldrh w2, [x20, #:lo12:.LANCHOR63] + ldrh w2, [x20, #:lo12:.LANCHOR62] adrp x1, .LANCHOR194 str x0, [x1, #:lo12:.LANCHOR194] mov w1, 0 lsl w2, w2, 2 bl ftl_memset - adrp x0, .LANCHOR67 - ldrh w20, [x0, #:lo12:.LANCHOR67] + adrp x0, .LANCHOR66 + ldrh w20, [x0, #:lo12:.LANCHOR66] lsl w20, w20, 2 mov w0, w20 bl ftl_malloc @@ -7758,22 +7895,22 @@ FtlMemInit: str x0, [x1, #:lo12:.LANCHOR131] mov w0, w20 bl ftl_malloc - adrp x20, .LANCHOR68 + adrp x20, .LANCHOR67 adrp x1, .LANCHOR195 str x0, [x1, #:lo12:.LANCHOR195] - ldr w0, [x22, #:lo12:.LANCHOR65] + ldr w0, [x22, #:lo12:.LANCHOR64] lsl w0, w0, 2 bl ftl_malloc adrp x1, .LANCHOR130 str x0, [x1, #:lo12:.LANCHOR130] - ldrh w0, [x20, #:lo12:.LANCHOR68] + ldrh w0, [x20, #:lo12:.LANCHOR67] lsl w0, w0, 4 bl ftl_malloc - adrp x1, .LANCHOR97 - str x0, [x1, #:lo12:.LANCHOR97] - ldrh w1, [x20, #:lo12:.LANCHOR68] + adrp x1, .LANCHOR96 + str x0, [x1, #:lo12:.LANCHOR96] + ldrh w1, [x20, #:lo12:.LANCHOR67] adrp x20, .LANCHOR45 - ldrh w0, [x21, #:lo12:.LANCHOR58] + ldrh w0, [x21, #:lo12:.LANCHOR57] mul w0, w1, w0 bl ftl_malloc adrp x1, .LANCHOR126 @@ -7783,8 +7920,8 @@ FtlMemInit: adrp x19, .LANCHOR123 mul w0, w1, w0 bl ftl_malloc - adrp x1, .LANCHOR82 - str x0, [x1, #:lo12:.LANCHOR82] + adrp x1, .LANCHOR81 + str x0, [x1, #:lo12:.LANCHOR81] adrp x0, .LANCHOR51 ldrh w1, [x20, #:lo12:.LANCHOR45] ldrh w0, [x0, #:lo12:.LANCHOR51] @@ -7794,44 +7931,44 @@ FtlMemInit: mul w0, w1, w0 lsl w0, w0, 2 bl ftl_malloc - adrp x1, .LANCHOR75 + adrp x1, .LANCHOR74 ldrh w5, [x19, #:lo12:.LANCHOR123] - add x2, x1, :lo12:.LANCHOR75 + add x2, x1, :lo12:.LANCHOR74 ldrh w7, [x20, #:lo12:.LANCHOR45] add x6, x2, 40 mov w3, w5 str x0, [x2, 32] mov x0, 1 -.L1080: +.L1098: cmp w0, w7 - bcc .L1081 + bcc .L1099 mov w2, 8 sub w2, w2, w0 add x2, x2, 1 - add x1, x1, :lo12:.LANCHOR75 + add x1, x1, :lo12:.LANCHOR74 mov x3, 0 -.L1082: +.L1100: add x3, x3, 1 cmp x2, x3 - bne .L1083 + bne .L1101 mov w0, 0 ldr x23, [sp, 48] ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x29, x30, [sp], 64 ret -.L1081: +.L1099: ldr x4, [x2, 32] add w0, w0, 1 add x4, x4, x3, uxtw 2 add w3, w3, w5 str x4, [x6], 8 - b .L1080 -.L1083: + b .L1098 +.L1101: add x4, x0, x3 add x4, x1, x4, lsl 3 str xzr, [x4, 24] - b .L1082 + b .L1100 .size FtlMemInit, .-FtlMemInit .section .text.ftl_free,"ax",@progbits .align 2 @@ -7892,8 +8029,8 @@ rk_nand_de_init: .global rk_ftl_get_capacity .type rk_ftl_get_capacity, %function rk_ftl_get_capacity: - adrp x0, .LANCHOR69 - ldr w0, [x0, #:lo12:.LANCHOR69] + adrp x0, .LANCHOR68 + ldr w0, [x0, #:lo12:.LANCHOR68] ret .size rk_ftl_get_capacity, .-rk_ftl_get_capacity .section .text.rknand_print_hex,"ax",@progbits @@ -7919,9 +8056,9 @@ rknand_print_hex: mov x19, 0 mov w20, 0 adrp x27, .LC20 -.L1093: +.L1111: cmp x25, x19 - bne .L1099 + bne .L1117 ldp x19, x20, [sp, 16] adrp x1, .LC20 ldp x21, x22, [sp, 32] @@ -7933,38 +8070,38 @@ rknand_print_hex: ldr x27, [sp, 80] ldp x29, x30, [sp], 96 b printf -.L1099: - cbnz w20, .L1094 +.L1117: + cbnz w20, .L1112 mov w2, w19 mov x1, x26 mov x0, x23 bl printf -.L1094: +.L1112: cmp w24, 4 - bne .L1095 + bne .L1113 ldr w1, [x22, x19, lsl 2] -.L1101: +.L1119: mov x0, x21 add w20, w20, 1 bl printf cmp w20, 15 - bls .L1098 + bls .L1116 mov w20, 0 add x1, x27, :lo12:.LC20 adrp x0, .LC7 add x0, x0, :lo12:.LC7 bl printf -.L1098: +.L1116: add x19, x19, 1 - b .L1093 -.L1095: + b .L1111 +.L1113: cmp w24, 2 - bne .L1097 + bne .L1115 ldrsh w1, [x22, x19, lsl 1] - b .L1101 -.L1097: + b .L1119 +.L1115: ldrb w1, [x22, x19] - b .L1101 + b .L1119 .size rknand_print_hex, .-rknand_print_hex .section .text.HynixGetReadRetryDefault,"ax",@progbits .align 2 @@ -7991,18 +8128,18 @@ HynixGetReadRetryDefault: strb w4, [x0, 5] strb w3, [x0, 6] strb w1, [x0, 7] - bne .L1103 + bne .L1121 mov w1, -89 strb w1, [x0, 4] adrp x0, .LANCHOR196+17 mov w1, -9 strb w1, [x0, #:lo12:.LANCHOR196+17] -.L1159: +.L1186: mov w27, 7 - b .L1194 -.L1103: + b .L1230 +.L1121: cmp w26, 3 - bne .L1105 + bne .L1123 mov w1, -80 strb w1, [x0, 4] mov w1, -79 @@ -8018,14 +8155,14 @@ HynixGetReadRetryDefault: mov w1, -74 strb w1, [x0, 10] mov w1, -73 -.L1195: +.L1229: mov w27, 8 mov w28, w27 strb w1, [x0, 11] -.L1104: +.L1122: sub w0, w26, #1 cmp w0, 1 - bhi .L1109 + bhi .L1128 adrp x26, .LANCHOR25 adrp x0, .LANCHOR26 adrp x25, .LANCHOR6 @@ -8033,11 +8170,11 @@ HynixGetReadRetryDefault: add x4, x0, :lo12:.LANCHOR26 add x25, x25, :lo12:.LANCHOR6 mov w24, 0 -.L1110: +.L1129: ldrb w0, [x26] cmp w0, w24 - bhi .L1116 -.L1117: + bhi .L1135 +.L1136: add x20, x20, :lo12:.LANCHOR20 ldp x21, x22, [sp, 32] strb w28, [x20, 1] @@ -8048,9 +8185,9 @@ HynixGetReadRetryDefault: ldp x27, x28, [sp, 80] ldp x29, x30, [sp], 144 ret -.L1105: +.L1123: cmp w26, 4 - bne .L1106 + bne .L1124 mov w5, -52 strb w5, [x0, 4] mov w5, -65 @@ -8063,10 +8200,10 @@ HynixGetReadRetryDefault: mov w5, -51 strb w3, [x0, 10] strb w5, [x0, 8] - b .L1195 -.L1106: + b .L1229 +.L1124: cmp w26, 5 - bne .L1107 + bne .L1125 mov w1, 56 strb w1, [x0, 4] mov w1, 57 @@ -8076,12 +8213,12 @@ HynixGetReadRetryDefault: strb w1, [x0, 6] mov w1, 59 strb w1, [x0, 7] -.L1194: +.L1230: mov w28, 4 - b .L1104 -.L1107: + b .L1122 +.L1125: cmp w26, 6 - bne .L1108 + bne .L1126 mov w1, 14 strb w1, [x0, 4] mov w1, 15 @@ -8091,10 +8228,10 @@ HynixGetReadRetryDefault: strb w1, [x0, 6] mov w1, 17 strb w1, [x0, 7] - b .L1194 -.L1108: + b .L1230 +.L1126: cmp w26, 7 - bne .L1159 + bne .L1127 mov w1, -80 strb w1, [x0, 4] mov w1, -79 @@ -8117,8 +8254,23 @@ HynixGetReadRetryDefault: mov w28, 10 mov w1, -43 strb w1, [x0, 13] - b .L1104 -.L1116: + b .L1122 +.L1127: + cmp w26, 8 + bne .L1186 + mov w1, 6 + strb w1, [x0, 4] + mov w1, 7 + strb w1, [x0, 5] + mov w1, 9 + strb w26, [x0, 6] + strb w1, [x0, 7] + mov w27, 50 + mov w1, 10 + mov w28, 5 + strb w1, [x0, 8] + b .L1122 +.L1135: ldrb w1, [x4, w24, sxtw] add x0, x20, :lo12:.LANCHOR20 mov x21, x0 @@ -8132,7 +8284,7 @@ HynixGetReadRetryDefault: ldrb w23, [x2, 8] add x23, x1, x23, lsl 8 mov w1, 55 -.L1111: +.L1130: add x0, x21, x22 str w1, [x23, 2056] str x4, [x29, 128] @@ -8147,15 +8299,15 @@ HynixGetReadRetryDefault: cmp w28, w22, uxtb ldr w1, [x29, 140] ldr x4, [x29, 128] - bhi .L1111 + bhi .L1130 adrp x2, .LANCHOR196 add x2, x2, :lo12:.LANCHOR196 mov x0, 0 -.L1114: +.L1133: add x7, x19, x0 add x6, x2, x0 mov x1, 1 -.L1113: +.L1132: lsl x3, x1, 2 lsl x8, x1, 3 ldrb w10, [x19, x0] @@ -8164,10 +8316,10 @@ HynixGetReadRetryDefault: ldrb w3, [x6, x3] add w3, w3, w10 strb w3, [x7, x8] - bne .L1113 + bne .L1132 add x0, x0, 1 cmp x0, 4 - bne .L1114 + bne .L1133 add w24, w24, 1 strb wzr, [x19, 16] strb wzr, [x19, 24] @@ -8177,32 +8329,32 @@ HynixGetReadRetryDefault: strb wzr, [x19, 48] strb wzr, [x19, 41] strb wzr, [x19, 49] - b .L1110 -.L1109: + b .L1129 +.L1128: sub w0, w26, #3 - cmp w0, 4 - bhi .L1117 + cmp w0, 5 + bhi .L1136 mul w24, w27, w28 adrp x25, .LANCHOR25 sub w22, w28, #1 mov w21, 0 and x22, x22, 255 lsl w0, w24, 4 - asr w23, w24, 2 + asr w23, w24, 1 str w0, [x29, 128] lsl w0, w23, 1 - sbfiz x24, x23, 2, 32 + sbfiz x24, x23, 1, 32 str w0, [x29, 140] add x0, x25, :lo12:.LANCHOR25 sub w25, w26, #5 str x0, [x29, 120] add x0, x22, 1 str x0, [x29, 112] -.L1118: +.L1137: ldr x0, [x29, 120] ldrb w0, [x0] cmp w0, w21 - bls .L1117 + bls .L1136 adrp x0, .LANCHOR26 add x0, x0, :lo12:.LANCHOR26 ldrb w22, [x0, w21, sxtw] @@ -8217,40 +8369,44 @@ HynixGetReadRetryDefault: str w0, [x19, 2056] mov w0, w22 bl NandcWaitFlashReady - add x1, x20, :lo12:.LANCHOR20 cmp w26, 7 - beq .L1119 - ubfiz x0, x22, 6, 8 - add x0, x0, 20 -.L1196: - add x3, x1, x0 + bne .L1138 + mov x1, 28 + mov w0, 160 + add x3, x20, :lo12:.LANCHOR20 + umaddl x0, w0, w22, x1 +.L1231: + add x3, x3, x0 mov w0, 54 str w0, [x19, 2056] cmp w26, 4 - bne .L1121 + bne .L1141 mov w0, 255 str w0, [x19, 2052] mov w0, 64 str w0, [x19, 2048] mov w0, 204 -.L1197: +.L1232: str w0, [x19, 2052] mov w0, 77 - b .L1198 -.L1119: - mov x3, 28 - mov w0, 160 - umaddl x0, w0, w22, x3 - b .L1196 -.L1121: + b .L1233 +.L1138: + cmp w26, 8 + beq .L1140 + ubfiz x0, x22, 6, 8 + add x3, x20, :lo12:.LANCHOR20 + add x0, x0, 20 + b .L1231 +.L1141: cmp w25, 1 - bhi .L1123 + bhi .L1143 add x0, x20, :lo12:.LANCHOR20 ldrb w0, [x0, 4] str w0, [x19, 2052] mov w0, 82 -.L1198: +.L1233: str w0, [x19, 2048] +.L1142: mov w0, 22 str w0, [x19, 2056] mov w0, 23 @@ -8259,139 +8415,144 @@ HynixGetReadRetryDefault: str w0, [x19, 2056] mov w0, 25 str w0, [x19, 2056] - cmp w26, 6 str wzr, [x19, 2056] + cmp w26, 6 str wzr, [x19, 2052] str wzr, [x19, 2052] - bne .L1124 + bne .L1144 mov w0, 31 str w0, [x19, 2052] -.L1125: - mov w7, 2 - str w7, [x19, 2052] +.L1145: + mov w0, 2 + str w0, [x19, 2052] str wzr, [x19, 2052] +.L1185: mov w0, 48 str w0, [x19, 2056] - mov w0, w22 str x3, [x29, 104] - str w7, [x29, 136] + mov w0, w22 bl NandcWaitFlashReady cmp w25, 1 ldr x3, [x29, 104] - bls .L1160 - ldr w7, [x29, 136] + ccmp w26, 8, 4, hi + beq .L1187 cmp w26, 7 + mov w0, 2 mov w1, 32 - csel w1, w1, w7, eq -.L1126: + csel w1, w1, w0, eq +.L1146: adrp x8, .LANCHOR147 mov x7, 0 ldr x0, [x8, #:lo12:.LANCHOR147] -.L1127: +.L1147: ldr w10, [x19, 2048] strb w10, [x0, x7] add x7, x7, 1 cmp w1, w7, uxtb - bhi .L1127 - cmp w26, 7 - bne .L1128 + bhi .L1147 + cmp w26, 8 + bne .L1148 mov w1, 0 -.L1130: +.L1150: ldrb w7, [x0] - cmp w7, 12 - beq .L1129 + cmp w7, 50 + beq .L1149 ldrb w7, [x0, 1] - cmp w7, 10 - beq .L1129 + cmp w7, 5 + beq .L1149 add w1, w1, 1 add x0, x0, 4 and w1, w1, 255 cmp w1, 8 - bne .L1130 -.L1131: + bne .L1150 +.L1151: adrp x0, .LC21 mov w1, 0 add x0, x0, :lo12:.LC21 bl printf -.L1133: - b .L1133 -.L1123: +.L1153: + b .L1153 +.L1143: + cmp w26, 7 + bne .L1142 mov w0, 174 str w0, [x19, 2052] str wzr, [x19, 2048] mov w0, 176 - b .L1197 -.L1124: + b .L1232 +.L1144: str wzr, [x19, 2052] - b .L1125 -.L1160: + b .L1145 +.L1187: mov w1, 16 - b .L1126 -.L1129: + b .L1146 +.L1149: cmp w1, 6 - bhi .L1131 -.L1132: + bhi .L1151 +.L1152: ldr x7, [x8, #:lo12:.LANCHOR147] mov x0, 0 -.L1137: +.L1162: ldr w1, [x29, 128] cmp w1, w0 - bgt .L1138 + bgt .L1163 ldr x1, [x8, #:lo12:.LANCHOR147] mov w10, 8 add x8, x1, x24 -.L1140: +.L1165: mov x0, 0 -.L1139: - ldr w11, [x8, x0, lsl 2] +.L1164: + ldrh w11, [x8, x0, lsl 1] mvn w11, w11 - str w11, [x8, x0, lsl 2] + strh w11, [x8, x0, lsl 1] add x0, x0, 1 cmp w23, w0 - bgt .L1139 + bgt .L1164 ldr w0, [x29, 140] subs w10, w10, #1 - add x8, x8, x0, uxtw 2 - bne .L1140 - mov x11, x1 - mov w12, 0 + add x8, x8, x0, uxtw 1 + bne .L1165 + mov x10, x1 + mov w11, 0 mov w16, 1 -.L1146: - mov w8, 0 +.L1171: mov w0, 0 -.L1145: - mov x15, x11 - lsl w10, w16, w0 - mov w14, 16 - mov w13, 0 -.L1143: - ldr w17, [x15] - add x15, x15, x24 - bics wzr, w10, w17 - cinc w13, w13, eq - subs w14, w14, #1 - bne .L1143 - cmp w13, 9 - orr w10, w8, w10 - add w0, w0, 1 - csel w8, w10, w8, cs - cmp w0, 32 - bne .L1145 - str w8, [x11], 4 - add w12, w12, 1 - cmp w23, w12 - bgt .L1146 + mov w8, 0 +.L1170: + mov x14, x10 + lsl w15, w16, w8 + mov w13, 16 + mov w12, 0 +.L1168: + ldrh w17, [x14] + add x14, x14, x24 + bics wzr, w15, w17 + cinc w12, w12, eq + subs w13, w13, #1 + bne .L1168 + cmp w12, 8 + bls .L1169 + orr w0, w0, w15 + and w0, w0, 65535 +.L1169: + add w8, w8, 1 + cmp w8, 16 + bne .L1170 + strh w0, [x10], 2 + add w11, w11, 1 + cmp w23, w11 + bgt .L1171 mov x0, 0 mov w8, 0 -.L1149: +.L1174: ldr w10, [x1, x0] add x0, x0, 4 cmp w10, 0 cinc w8, w8, eq cmp x0, 32 - bne .L1149 + bne .L1174 cmp w8, 7 - ble .L1150 + ble .L1175 mov w3, 1024 mov w2, 1 adrp x0, .LC22 @@ -8401,64 +8562,92 @@ HynixGetReadRetryDefault: mov w1, 0 add x0, x0, :lo12:.LC21 bl printf -.L1151: - b .L1151 -.L1128: - cmp w26, 6 - bne .L1132 - mov x1, 0 -.L1134: - ldrb w7, [x0, x1] +.L1176: + b .L1176 +.L1148: + cmp w26, 7 + bne .L1154 + mov w1, 0 +.L1156: + ldrb w7, [x0] cmp w7, 12 - beq .L1132 - add x7, x0, x1 - ldrb w7, [x7, 8] - cmp w7, 4 - beq .L1132 - add x1, x1, 1 - cmp x1, 8 - bne .L1134 + beq .L1155 + ldrb w7, [x0, 1] + cmp w7, 10 + beq .L1155 + add w1, w1, 1 + add x0, x0, 4 + and w1, w1, 255 + cmp w1, 8 + bne .L1156 +.L1157: adrp x0, .LC21 mov w1, 0 add x0, x0, :lo12:.LC21 bl printf -.L1136: - b .L1136 -.L1138: +.L1158: + b .L1158 +.L1155: + cmp w1, 6 + bls .L1152 + b .L1157 +.L1154: + cmp w26, 6 + bne .L1152 + mov x1, 0 +.L1159: + ldrb w7, [x0, x1] + cmp w7, 12 + beq .L1152 + add x7, x0, x1 + ldrb w7, [x7, 8] + cmp w7, 4 + beq .L1152 + add x1, x1, 1 + cmp x1, 8 + bne .L1159 + adrp x0, .LC21 + mov w1, 0 + add x0, x0, :lo12:.LC21 + bl printf +.L1161: + b .L1161 +.L1163: ldr w1, [x19, 2048] strb w1, [x7, x0] add x0, x0, 1 - b .L1137 -.L1150: + b .L1162 +.L1175: cmp w26, 6 - beq .L1162 + beq .L1189 cmp w26, 7 + beq .L1190 + cmp w26, 8 mov x1, 8 - mov x0, 10 + mov x0, 5 csel x0, x0, x1, eq -.L1152: - mov x1, x3 +.L1177: mov w8, 0 -.L1153: - mov x3, 0 -.L1154: - ldrb w10, [x7, x3] - strb w10, [x1, x3] - add x3, x3, 1 - cmp w28, w3, uxtb - bhi .L1154 - ldr x2, [x29, 112] +.L1178: + mov x1, 0 +.L1179: + ldrb w10, [x7, x1] + strb w10, [x3, x1] + add x1, x1, 1 + cmp w28, w1, uxtb + bhi .L1179 + ldr x1, [x29, 112] add w8, w8, 1 - add x1, x1, x0 + add x3, x3, x0 cmp w27, w8 - add x7, x7, x2 - bgt .L1153 + add x7, x7, x1 + bgt .L1178 mov w0, 255 str w0, [x19, 2056] mov w0, w22 bl NandcWaitFlashReady cmp w25, 1 - bhi .L1156 + bhi .L1181 mov w0, 54 str w0, [x19, 2056] adrp x0, .LANCHOR20+4 @@ -8470,19 +8659,52 @@ HynixGetReadRetryDefault: str w0, [x19, 2056] mov w0, w21 bl FlashReadCmd -.L1157: +.L1182: add w21, w21, 1 mov w0, w22 and w21, w21, 255 bl NandcWaitFlashReady - b .L1118 -.L1162: + b .L1137 +.L1189: mov x0, 4 - b .L1152 -.L1156: - mov w0, 56 + b .L1177 +.L1190: + mov x0, 10 + b .L1177 +.L1181: + cmp w26, 8 + bne .L1183 + mov w0, 190 +.L1234: str w0, [x19, 2056] - b .L1157 + b .L1182 +.L1183: + mov w0, 56 + b .L1234 +.L1140: + mov w0, 120 + str w0, [x19, 2056] + str wzr, [x19, 2052] + mov w0, 23 + str wzr, [x19, 2052] + mov w1, 25 + str wzr, [x19, 2052] + add x3, x20, :lo12:.LANCHOR20 + str w0, [x19, 2056] + mov w0, 4 + str w0, [x19, 2056] + add x3, x3, 28 + str w1, [x19, 2056] + mov w1, 218 + str w1, [x19, 2056] + mov w1, 21 + str wzr, [x19, 2056] + str wzr, [x19, 2052] + str wzr, [x19, 2052] + str w1, [x19, 2052] + str w0, [x19, 2052] + str wzr, [x19, 2052] + b .L1185 .size HynixGetReadRetryDefault, .-HynixGetReadRetryDefault .section .text.FlashGetReadRetryDefault,"ax",@progbits .align 2 @@ -8490,14 +8712,14 @@ HynixGetReadRetryDefault: .type FlashGetReadRetryDefault, %function FlashGetReadRetryDefault: mov w1, w0 - cbz w0, .L1199 + cbz w0, .L1235 sub w2, w0, #1 - cmp w2, 6 - bhi .L1201 + cmp w2, 7 + bhi .L1237 b HynixGetReadRetryDefault -.L1201: +.L1237: cmp w0, 49 - bne .L1202 + bne .L1238 adrp x2, .LANCHOR20 add x0, x2, :lo12:.LANCHOR20 strb w1, [x2, #:lo12:.LANCHOR20] @@ -8505,44 +8727,44 @@ FlashGetReadRetryDefault: strb w1, [x0, 1] mov w1, 15 strb w1, [x0, 2] - adrp x1, .LANCHOR14 - add x1, x1, :lo12:.LANCHOR14 + adrp x1, .LANCHOR13 + add x1, x1, :lo12:.LANCHOR13 mov w2, 64 -.L1211: +.L1247: add x0, x0, 4 b ftl_memcpy -.L1202: +.L1238: sub w0, w0, #65 cmp w1, 33 ccmp w0, 1, 0, ne - bhi .L1203 + bhi .L1239 adrp x2, .LANCHOR20 add x0, x2, :lo12:.LANCHOR20 strb w1, [x2, #:lo12:.LANCHOR20] mov w1, 4 -.L1212: +.L1248: strb w1, [x0, 1] mov w1, 7 mov w2, 45 strb w1, [x0, 2] - adrp x1, .LANCHOR10 - add x1, x1, :lo12:.LANCHOR10 - b .L1211 -.L1203: + adrp x1, .LANCHOR9 + add x1, x1, :lo12:.LANCHOR9 + b .L1247 +.L1239: cmp w1, 34 mov w0, 67 ccmp w1, w0, 4, ne - bne .L1204 + bne .L1240 adrp x2, .LANCHOR20 add x0, x2, :lo12:.LANCHOR20 strb w1, [x2, #:lo12:.LANCHOR20] mov w1, 5 - b .L1212 -.L1204: + b .L1248 +.L1240: cmp w1, 35 mov w0, 68 ccmp w1, w0, 4, ne - bne .L1199 + bne .L1235 adrp x2, .LANCHOR20 add x0, x2, :lo12:.LANCHOR20 strb w1, [x2, #:lo12:.LANCHOR20] @@ -8551,10 +8773,10 @@ FlashGetReadRetryDefault: mov w1, 17 mov w2, 95 strb w1, [x0, 2] - adrp x1, .LANCHOR9 - add x1, x1, :lo12:.LANCHOR9 - b .L1211 -.L1199: + adrp x1, .LANCHOR8 + add x1, x1, :lo12:.LANCHOR8 + b .L1247 +.L1235: ret .size FlashGetReadRetryDefault, .-FlashGetReadRetryDefault .section .text.FlashInit,"ax",@progbits @@ -8562,30 +8784,28 @@ FlashGetReadRetryDefault: .global FlashInit .type FlashInit, %function FlashInit: - stp x29, x30, [sp, -112]! + stp x29, x30, [sp, -128]! add x29, sp, 0 + stp x21, x22, [sp, 32] + adrp x22, .LANCHOR30 + stp x23, x24, [sp, 48] + adrp x24, .LANCHOR2 + stp x25, x26, [sp, 64] + adrp x23, .LANCHOR1 + stp x27, x28, [sp, 80] + adrp x25, .LANCHOR152 stp x19, x20, [sp, 16] mov x19, x0 - stp x21, x22, [sp, 32] mov w0, 32768 - stp x23, x24, [sp, 48] - adrp x23, .LANCHOR2 - stp x25, x26, [sp, 64] - adrp x24, .LANCHOR152 - stp x27, x28, [sp, 80] bl ftl_malloc adrp x1, .LANCHOR147 - adrp x21, .LANCHOR30 - adrp x22, .LANCHOR1 - adrp x20, .LANCHOR22 + adrp x21, .LANCHOR22 + adrp x26, .LC23 + mov w28, 0 str x0, [x1, #:lo12:.LANCHOR147] mov w0, 32768 bl ftl_malloc - adrp x25, .LANCHOR6 adrp x1, .LANCHOR153 - add x25, x25, :lo12:.LANCHOR6 - adrp x26, .LC23 - mov w28, 0 str x0, [x1, #:lo12:.LANCHOR153] mov w0, 4096 bl ftl_malloc @@ -8597,13 +8817,13 @@ FlashInit: str x0, [x1, #:lo12:.LANCHOR198] mov w0, 4096 bl ftl_malloc - strb wzr, [x21, #:lo12:.LANCHOR30] + strb wzr, [x22, #:lo12:.LANCHOR30] adrp x1, .LANCHOR199 - strb wzr, [x22, #:lo12:.LANCHOR1] + strb wzr, [x23, #:lo12:.LANCHOR1] str x0, [x1, #:lo12:.LANCHOR199] adrp x1, .LANCHOR150 mov w0, 50 - strb w0, [x23, #:lo12:.LANCHOR2] + strb w0, [x24, #:lo12:.LANCHOR2] strb w0, [x1, #:lo12:.LANCHOR150] adrp x0, .LANCHOR149 mov w1, 128 @@ -8613,41 +8833,43 @@ FlashInit: adrp x0, .LANCHOR144 str wzr, [x0, #:lo12:.LANCHOR144] mov w0, 60 - strb w0, [x24, #:lo12:.LANCHOR152] + strb w0, [x25, #:lo12:.LANCHOR152] mov x0, x19 - add x19, x20, :lo12:.LANCHOR22 bl NandcInit - mov x27, x19 + add x19, x21, :lo12:.LANCHOR22 + adrp x10, .LANCHOR6 + add x27, x10, :lo12:.LANCHOR6 add x0, x26, :lo12:.LC23 - str x0, [x29, 104] -.L1218: - and w26, w28, 255 - mov w0, w26 + stp x0, x19, [x29, 112] +.L1254: + ldrb w2, [x27, 8] + and w1, w28, 255 + mov w26, w1 + mov w0, w1 + str w2, [x29, 108] + ldr x20, [x27] bl FlashReset - ldrb w5, [x25, 8] mov w0, w26 - ldr x4, [x25] bl NandcFlashCs - ubfiz x1, x5, 8, 8 - add x1, x4, x1 + ldr w2, [x29, 108] mov w0, 144 - str x1, [x29, 96] - str w0, [x1, 2056] + ubfiz x2, x2, 8, 8 + add x20, x20, x2 + str w0, [x20, 2056] mov x0, 200 - str wzr, [x1, 2052] + str wzr, [x20, 2052] bl udelay - ldr x1, [x29, 96] - ldr w0, [x1, 2048] + ldr w0, [x20, 2048] strb w0, [x19] - ldr w0, [x1, 2048] + ldr w0, [x20, 2048] strb w0, [x19, 1] - ldr w0, [x1, 2048] + ldr w0, [x20, 2048] strb w0, [x19, 2] - ldr w0, [x1, 2048] + ldr w0, [x20, 2048] strb w0, [x19, 3] - ldr w0, [x1, 2048] + ldr w0, [x20, 2048] strb w0, [x19, 4] - ldr w0, [x1, 2048] + ldr w0, [x20, 2048] strb w0, [x19, 5] mov w0, w26 bl NandcFlashDeCs @@ -8655,303 +8877,331 @@ FlashInit: sub w0, w2, #1 and w0, w0, 255 cmp w0, 253 - bhi .L1214 + bhi .L1250 ldrb w7, [x19, 5] add w1, w28, 1 ldrb w6, [x19, 4] ldrb w5, [x19, 3] ldrb w4, [x19, 2] ldrb w3, [x19, 1] - ldr x0, [x29, 104] + ldr x0, [x29, 112] bl printf -.L1214: - cbnz w28, .L1215 - ldrb w0, [x27] +.L1250: + cbnz w28, .L1251 + ldr x0, [x29, 120] + ldrb w0, [x0] sub w0, w0, #1 and w0, w0, 255 cmp w0, 253 - bhi .L1256 - ldrb w0, [x27, 1] + bhi .L1295 + ldr x0, [x29, 120] + ldrb w0, [x0, 1] cmp w0, 255 - beq .L1256 -.L1215: + beq .L1295 +.L1251: ldrb w0, [x19] cmp w0, 181 - bne .L1217 + bne .L1253 mov w0, 44 strb w0, [x19] -.L1217: +.L1253: add w28, w28, 1 - add x25, x25, 16 + add x27, x27, 16 add x19, x19, 8 cmp w28, 4 - bne .L1218 - ldrb w0, [x20, #:lo12:.LANCHOR22] + bne .L1254 + ldrb w0, [x21, #:lo12:.LANCHOR22] cmp w0, 173 - beq .L1219 + beq .L1255 adrp x0, .LANCHOR155 ldr w0, [x0, #:lo12:.LANCHOR155] bl NandcSetDdrMode -.L1219: +.L1255: + adrp x20, .LANCHOR18 + adrp x28, .LANCHOR5 + adrp x26, .LANCHOR119 + adrp x19, .LANCHOR20 mov w2, 852 - adrp x26, .LANCHOR20 mov w1, 0 - add x0, x26, :lo12:.LANCHOR20 - adrp x19, .LANCHOR18 + add x0, x19, :lo12:.LANCHOR20 bl ftl_memset - adrp x28, .LANCHOR31 - add x0, x28, :lo12:.LANCHOR31 - str x0, [x19, #:lo12:.LANCHOR18] - add x0, x20, :lo12:.LANCHOR22 - adrp x27, .LANCHOR5 - ldrb w2, [x0, 1] - strb wzr, [x27, #:lo12:.LANCHOR5] - cmp w2, 161 - beq .L1220 - cmp w2, 218 - beq .L1220 - and w1, w2, -33 - cmp w1, 209 - beq .L1220 - cmp w2, 220 - bne .L1221 + adrp x3, .LANCHOR31 + ldr w4, [x26, #:lo12:.LANCHOR119] + add x0, x3, :lo12:.LANCHOR31 + strb wzr, [x28, #:lo12:.LANCHOR5] + str x0, [x20, #:lo12:.LANCHOR18] + mov w0, 12336 + movk w0, 0x5638, lsl 16 + cmp w4, w0 + bne .L1256 + adrp x0, .LANCHOR29 + mov w1, 1 + str w1, [x0, #:lo12:.LANCHOR29] +.L1256: + add x0, x21, :lo12:.LANCHOR22 + ldrb w1, [x0, 1] + add w0, w1, 95 + and w2, w0, 255 + mov x0, 1 + cmp w2, 57 + bhi .L1257 + movk x0, 0x205, lsl 48 + lsr x0, x0, x2 + mvn x0, x0 +.L1257: + cmp w1, 241 + and w0, w0, 1 + cset w2, eq + eor w0, w0, 1 + orr w0, w2, w0 + cbnz w0, .L1258 + cmp w1, 220 + bne .L1259 + add x0, x21, :lo12:.LANCHOR22 ldrb w0, [x0, 3] cmp w0, 149 - bne .L1221 -.L1220: + bne .L1259 +.L1258: mov w0, 1 - adrp x25, .LANCHOR200 - add x1, x25, :lo12:.LANCHOR200 - strb w0, [x22, #:lo12:.LANCHOR1] + adrp x27, .LANCHOR200 + add x2, x27, :lo12:.LANCHOR200 + strb w0, [x23, #:lo12:.LANCHOR1] mov w0, 16 - strb w0, [x23, #:lo12:.LANCHOR2] - strb w0, [x24, #:lo12:.LANCHOR152] - add x3, x20, :lo12:.LANCHOR22 - ldrb w0, [x20, #:lo12:.LANCHOR22] - strb w0, [x1, 1] - strb w2, [x1, 2] + strb w0, [x24, #:lo12:.LANCHOR2] + strb w0, [x25, #:lo12:.LANCHOR152] + add x5, x21, :lo12:.LANCHOR22 + ldrb w0, [x21, #:lo12:.LANCHOR22] + strb w0, [x2, 1] + strb w1, [x2, 2] cmp w0, 152 - bne .L1222 - ldrsb w0, [x3, 4] - tbnz w0, #31, .L1222 + bne .L1260 + ldrsb w0, [x5, 4] + tbnz w0, #31, .L1260 mov w0, 24 - strb w0, [x24, #:lo12:.LANCHOR152] -.L1222: - adrp x0, .LANCHOR29 - mov w1, 12336 - movk w1, 0x5638, lsl 16 - ldr w0, [x0, #:lo12:.LANCHOR29] - cmp w0, 2049 - ccmp w0, w1, 4, ne - bne .L1223 + strb w0, [x25, #:lo12:.LANCHOR152] +.L1260: + cmp w4, 2049 + mov w0, 12336 + movk w0, 0x5638, lsl 16 + ccmp w4, w0, 4, ne + bne .L1261 mov w0, 16 - strb w0, [x24, #:lo12:.LANCHOR152] -.L1223: - cmp w2, 218 - bne .L1224 - add x0, x25, :lo12:.LANCHOR200 + strb w0, [x25, #:lo12:.LANCHOR152] +.L1261: + cmp w1, 218 + bne .L1262 + add x0, x27, :lo12:.LANCHOR200 mov w1, 2048 strh w1, [x0, 14] mov w1, -38 -.L1294: +.L1329: strb w1, [x0, 2] -.L1225: +.L1263: adrp x1, .LANCHOR143 add x1, x1, :lo12:.LANCHOR143 mov w2, 32 add x1, x1, 32 + str x3, [x29, 120] adrp x0, .LANCHOR7 add x0, x0, :lo12:.LANCHOR7 bl ftl_memcpy + ldr x3, [x29, 120] mov w2, 32 - add x1, x25, :lo12:.LANCHOR200 - add x0, x28, :lo12:.LANCHOR31 + add x1, x27, :lo12:.LANCHOR200 + add x0, x3, :lo12:.LANCHOR31 bl ftl_memcpy -.L1221: - ldrb w0, [x22, #:lo12:.LANCHOR1] - adrp x25, .LANCHOR8 - cbnz w0, .L1227 +.L1259: + ldrb w0, [x23, #:lo12:.LANCHOR1] + adrp x27, .LANCHOR15 + cbnz w0, .L1266 bl FlashLoadPhyInfoInRam - cbnz w0, .L1229 - ldr x0, [x19, #:lo12:.LANCHOR18] - adrp x24, .LANCHOR24 + cbnz w0, .L1268 + ldr x0, [x20, #:lo12:.LANCHOR18] + adrp x25, .LANCHOR24 ldrb w1, [x0, 17] and w0, w1, 7 - strb w0, [x24, #:lo12:.LANCHOR24] - tbnz x1, 0, .L1229 + strb w0, [x25, #:lo12:.LANCHOR24] + tbnz x1, 0, .L1268 mov w1, 1 - strb w1, [x21, #:lo12:.LANCHOR30] + strb w1, [x22, #:lo12:.LANCHOR30] bl FlashSetInterfaceMode - ldrb w0, [x24, #:lo12:.LANCHOR24] + ldrb w0, [x25, #:lo12:.LANCHOR24] bl NandcSetMode -.L1229: - ldr x0, [x19, #:lo12:.LANCHOR18] +.L1268: + ldr x0, [x20, #:lo12:.LANCHOR18] ldrb w0, [x0, 26] - strb w0, [x25, #:lo12:.LANCHOR8] + strb w0, [x27, #:lo12:.LANCHOR15] bl FlashLoadPhyInfo - cbz w0, .L1227 - ldr x0, [x19, #:lo12:.LANCHOR18] + cbz w0, .L1266 + ldr x0, [x20, #:lo12:.LANCHOR18] ldrh w1, [x0, 14] adrp x0, .LC24 add x0, x0, :lo12:.LC24 bl printf bl FlashLoadPhyInfoInRam cmn w0, #1 - beq .L1213 + beq .L1249 bl FlashDieInfoInit - ldr x0, [x19, #:lo12:.LANCHOR18] + ldr x0, [x20, #:lo12:.LANCHOR18] ldrb w0, [x0, 19] bl FlashGetReadRetryDefault - ldr x0, [x19, #:lo12:.LANCHOR18] + ldr x0, [x20, #:lo12:.LANCHOR18] adrp x1, .LANCHOR122 ldrh w1, [x1, #:lo12:.LANCHOR122] ldrb w2, [x0, 9] add w1, w1, 4095 cmp w2, w1, lsr 12 - blt .L1232 + blt .L1271 ldrh w1, [x0, 14] add w1, w1, 255 cmp w2, w1, lsr 8 - bge .L1233 -.L1232: + bge .L1272 +.L1271: ldrh w1, [x0, 14] and w1, w1, -256 strh w1, [x0, 14] -.L1233: +.L1272: adrp x0, .LANCHOR24 ldrb w0, [x0, #:lo12:.LANCHOR24] tst w0, 6 - beq .L1234 + beq .L1273 bl FlashSavePhyInfo adrp x0, .LANCHOR148 ldr w1, [x0, #:lo12:.LANCHOR148] mov w0, 0 bl FlashDdrParaScan -.L1234: +.L1273: bl FlashSavePhyInfo -.L1227: - ldr x2, [x19, #:lo12:.LANCHOR18] - adrp x24, .LANCHOR24 +.L1266: + ldr x2, [x20, #:lo12:.LANCHOR18] + adrp x25, .LANCHOR24 ldrb w0, [x2, 26] - strb w0, [x25, #:lo12:.LANCHOR8] + strb w0, [x27, #:lo12:.LANCHOR15] ldrh w0, [x2, 16] ubfx x1, x0, 7, 1 - strb w1, [x27, #:lo12:.LANCHOR5] + strb w1, [x28, #:lo12:.LANCHOR5] adrp x1, .LANCHOR201 ubfx x3, x0, 3, 1 - adrp x27, .LANCHOR145 + adrp x28, .LANCHOR145 strb w3, [x1, #:lo12:.LANCHOR201] adrp x1, .LANCHOR27 ubfx x3, x0, 4, 1 ubfx x0, x0, 8, 3 strb w3, [x1, #:lo12:.LANCHOR27] - strb w0, [x24, #:lo12:.LANCHOR24] + strb w0, [x25, #:lo12:.LANCHOR24] ldrh w1, [x2, 10] ldrb w0, [x2, 12] - str xzr, [x27, #:lo12:.LANCHOR145] + str xzr, [x28, #:lo12:.LANCHOR145] sdiv w1, w1, w0 ldrb w0, [x2, 18] bl BuildFlashLsbPageTable bl FlashDieInfoInit - ldr x0, [x19, #:lo12:.LANCHOR18] + ldr x0, [x20, #:lo12:.LANCHOR18] ldrh w1, [x0, 16] - tbz x1, 6, .L1236 - adrp x1, .LANCHOR11 + tbz x1, 6, .L1275 + add x3, x19, :lo12:.LANCHOR20 + adrp x1, .LANCHOR10 ldrb w0, [x0, 19] - adrp x3, .LANCHOR13 - strb w0, [x1, #:lo12:.LANCHOR11] - add x1, x26, :lo12:.LANCHOR20 - ldrb w2, [x1, 1] - strb w2, [x3, #:lo12:.LANCHOR13] - adrp x2, .LANCHOR151 - ldrb w4, [x1, 2] - strb w4, [x2, #:lo12:.LANCHOR151] - sub w4, w0, #1 - and w4, w4, 255 - cmp w4, 6 - mov x4, x3 - bhi .L1237 - adrp x2, HynixReadRetrial - add x2, x2, :lo12:HynixReadRetrial - str x2, [x27, #:lo12:.LANCHOR145] - sub w2, w0, #5 - and w2, w2, 255 - cmp w2, 1 - bhi .L1238 - adrp x2, .LANCHOR36 - add x1, x1, 20 - mov w3, 1 - str w3, [x2, #:lo12:.LANCHOR36] -.L1239: - mov x2, 0 - mov w3, 0 -.L1241: - ldrsb w4, [x1, x2] - add x2, x2, 1 - cmp w4, 0 - cinc w3, w3, eq - cmp x2, 32 - bne .L1241 - cmp w3, 27 - bls .L1236 + adrp x2, .LANCHOR12 + strb w0, [x1, #:lo12:.LANCHOR10] + mov x4, x2 + ldrb w1, [x3, 1] + strb w1, [x2, #:lo12:.LANCHOR12] + adrp x1, .LANCHOR151 + ldrb w3, [x3, 2] + strb w3, [x1, #:lo12:.LANCHOR151] + sub w3, w0, #1 + and w3, w3, 255 + cmp w3, 7 + bhi .L1276 + adrp x1, HynixReadRetrial + add x1, x1, :lo12:HynixReadRetrial + str x1, [x28, #:lo12:.LANCHOR145] + sub w1, w0, #5 + and w1, w1, 255 + cmp w1, 1 + ccmp w0, 8, 4, hi + bne .L1277 + adrp x1, .LANCHOR36 + mov w2, 1 + str w2, [x1, #:lo12:.LANCHOR36] +.L1277: + add x19, x19, :lo12:.LANCHOR20 + cmp w0, 7 + beq .L1330 + cmp w0, 8 + bne .L1298 +.L1330: + add x19, x19, 28 +.L1278: + mov x1, 0 + mov w2, 0 +.L1280: + ldrsb w3, [x19, x1] + add x1, x1, 1 + cmp w3, 0 + cinc w2, w2, eq + cmp x1, 32 + bne .L1280 + cmp w2, 27 + bls .L1275 bl FlashGetReadRetryDefault bl FlashSavePhyInfo -.L1236: - adrp x0, .LANCHOR29 - ldr w1, [x0, #:lo12:.LANCHOR29] +.L1275: + ldr w1, [x26, #:lo12:.LANCHOR119] mov w0, 12336 movk w0, 0x5638, lsl 16 cmp w1, w0 - bne .L1250 - ldrb w0, [x25, #:lo12:.LANCHOR8] - cbz w0, .L1250 - ldr x0, [x19, #:lo12:.LANCHOR18] + bne .L1289 + ldrb w0, [x27, #:lo12:.LANCHOR15] + cbz w0, .L1289 + ldr x0, [x20, #:lo12:.LANCHOR18] strb wzr, [x0, 18] -.L1250: - ldrb w0, [x20, #:lo12:.LANCHOR22] +.L1289: + ldrb w0, [x21, #:lo12:.LANCHOR22] cmp w0, 44 - bne .L1251 - ldrb w0, [x21, #:lo12:.LANCHOR30] - cbz w0, .L1251 - strb wzr, [x21, #:lo12:.LANCHOR30] + bne .L1290 + ldrb w0, [x22, #:lo12:.LANCHOR30] + cbz w0, .L1290 + strb wzr, [x22, #:lo12:.LANCHOR30] mov w0, 1 bl FlashSetInterfaceMode mov w0, 1 bl NandcSetMode -.L1251: +.L1290: + ldrb w0, [x25, #:lo12:.LANCHOR24] + tst w0, 6 + beq .L1291 + ldrb w1, [x22, #:lo12:.LANCHOR30] + cbnz w1, .L1292 + tbnz x0, 0, .L1291 +.L1292: mov w0, 0 bl flash_enter_slc_mode - ldrb w0, [x24, #:lo12:.LANCHOR24] - tst w0, 6 - beq .L1252 - ldrb w1, [x21, #:lo12:.LANCHOR30] - cbnz w1, .L1253 - tbnz x0, 0, .L1252 -.L1253: adrp x0, .LANCHOR148 ldr w1, [x0, #:lo12:.LANCHOR148] mov w0, 0 bl FlashDdrParaScan -.L1252: mov w0, 0 bl flash_exit_slc_mode - ldr x0, [x19, #:lo12:.LANCHOR18] +.L1291: + ldr x0, [x20, #:lo12:.LANCHOR18] ldrb w0, [x0, 20] bl FlashBchSel adrp x0, .LANCHOR141 add x0, x0, :lo12:.LANCHOR141 bl FlashReadIdbDataRaw - ldr x2, [x19, #:lo12:.LANCHOR18] + ldr x2, [x20, #:lo12:.LANCHOR18] mov w0, 16 - adrp x1, .LANCHOR15 - strb w0, [x23, #:lo12:.LANCHOR2] - add x0, x1, :lo12:.LANCHOR15 + adrp x1, .LANCHOR14 + strb w0, [x24, #:lo12:.LANCHOR2] + add x0, x1, :lo12:.LANCHOR14 ldrb w3, [x2, 12] strh w3, [x0, 8] ldrb w4, [x2, 7] str w4, [x0, 4] - ldr w4, [x20, #:lo12:.LANCHOR22] - str w4, [x1, #:lo12:.LANCHOR15] + ldr w4, [x21, #:lo12:.LANCHOR22] + str w4, [x1, #:lo12:.LANCHOR14] adrp x1, .LANCHOR25 ldrh w4, [x2, 14] ldrb w1, [x1, #:lo12:.LANCHOR25] @@ -8973,9 +9223,9 @@ FlashInit: and w1, w1, 65535 strh w5, [x0, 26] strh w1, [x0, 22] - ldrb w5, [x22, #:lo12:.LANCHOR1] + ldrb w5, [x23, #:lo12:.LANCHOR1] cmp w5, 1 - bne .L1254 + bne .L1293 ubfiz w1, w1, 1, 15 lsr w4, w4, 1 ubfiz w3, w3, 1, 15 @@ -8984,102 +9234,108 @@ FlashInit: mov w1, 8 strh w3, [x0, 20] strh w1, [x0, 26] -.L1254: +.L1293: ldrb w0, [x2, 20] bl FlashBchSel mov w0, 0 -.L1213: +.L1249: 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 -.L1224: - cmp w2, 220 - bne .L1225 - add x0, x25, :lo12:.LANCHOR200 +.L1262: + cmp w1, 220 + bne .L1264 + add x0, x27, :lo12:.LANCHOR200 mov w1, 4096 strh w1, [x0, 14] mov w1, -36 - b .L1294 -.L1238: - add x2, x1, 20 - cmp w0, 7 - add x1, x1, 28 - csel x1, x1, x2, eq - b .L1239 -.L1237: - sub w1, w0, #17 - and w1, w1, 255 - cmp w1, 2 - bhi .L1243 - adrp x1, MicronReadRetrial - add x1, x1, :lo12:MicronReadRetrial - str x1, [x27, #:lo12:.LANCHOR145] - cmp w0, 19 - beq .L1244 + b .L1329 +.L1264: + cmp w1, 211 + bne .L1263 + add x0, x27, :lo12:.LANCHOR200 + mov w1, 4096 + strh w1, [x0, 14] + mov w1, 2 + strb w1, [x0, 13] + b .L1263 .L1298: + add x19, x19, 20 + b .L1278 +.L1276: + sub w3, w0, #17 + and w3, w3, 255 + cmp w3, 2 + bhi .L1282 + adrp x2, MicronReadRetrial + add x2, x2, :lo12:MicronReadRetrial + str x2, [x28, #:lo12:.LANCHOR145] + cmp w0, 19 + beq .L1283 +.L1334: mov w0, 7 - b .L1296 -.L1244: + b .L1332 +.L1283: mov w0, 15 -.L1296: - strb w0, [x2, #:lo12:.LANCHOR151] - b .L1236 -.L1243: - sub w1, w0, #65 +.L1332: + strb w0, [x1, #:lo12:.LANCHOR151] + b .L1275 +.L1282: + sub w3, w0, #65 cmp w0, 33 - and w1, w1, 255 - ccmp w1, 1, 0, ne - bhi .L1245 + and w3, w3, 255 + ccmp w3, 1, 0, ne + bhi .L1284 adrp x0, ToshibaReadRetrial add x0, x0, :lo12:ToshibaReadRetrial - str x0, [x27, #:lo12:.LANCHOR145] + str x0, [x28, #:lo12:.LANCHOR145] mov w0, 4 - strb w0, [x3, #:lo12:.LANCHOR13] - b .L1298 -.L1245: + strb w0, [x2, #:lo12:.LANCHOR12] + b .L1334 +.L1284: sub w3, w0, #34 - sub w1, w0, #67 + sub w2, w0, #67 and w3, w3, 255 - and w1, w1, 255 + and w2, w2, 255 cmp w3, 1 - ccmp w1, 1, 0, hi - bhi .L1246 + ccmp w2, 1, 0, hi + bhi .L1285 adrp x3, ToshibaReadRetrial add x3, x3, :lo12:ToshibaReadRetrial - str x3, [x27, #:lo12:.LANCHOR145] + str x3, [x28, #:lo12:.LANCHOR145] cmp w0, 35 mov w3, 68 ccmp w0, w3, 4, ne - beq .L1247 + beq .L1286 mov w0, 7 -.L1295: - strb w0, [x2, #:lo12:.LANCHOR151] - cmp w1, 1 - bhi .L1249 +.L1331: + strb w0, [x1, #:lo12:.LANCHOR151] + cmp w2, 1 + bhi .L1288 mov w0, 4 -.L1297: - strb w0, [x4, #:lo12:.LANCHOR13] - b .L1236 -.L1247: +.L1333: + strb w0, [x4, #:lo12:.LANCHOR12] + b .L1275 +.L1286: mov w0, 17 - b .L1295 -.L1249: + b .L1331 +.L1288: mov w0, 5 - b .L1297 -.L1246: + b .L1333 +.L1285: cmp w0, 49 - bne .L1236 + bne .L1275 adrp x0, SamsungReadRetrial add x0, x0, :lo12:SamsungReadRetrial - str x0, [x27, #:lo12:.LANCHOR145] - b .L1236 -.L1256: + str x0, [x28, #:lo12:.LANCHOR145] + b .L1275 +.L1295: mov w0, -2 - b .L1213 + b .L1249 .size FlashInit, .-FlashInit .section .text.FlashReadSlc2KPages,"ax",@progbits .align 2 @@ -9104,9 +9360,9 @@ FlashReadSlc2KPages: add x23, x23, :lo12:.LANCHOR25 adrp x26, .LANCHOR26 str x27, [sp, 80] -.L1300: +.L1336: cmp x22, x19 - bne .L1312 + bne .L1348 ldp x19, x20, [sp, 16] mov w0, 0 ldp x21, x22, [sp, 32] @@ -9115,7 +9371,7 @@ FlashReadSlc2KPages: ldr x27, [sp, 80] ldp x29, x30, [sp], 112 ret -.L1312: +.L1348: mov w1, w25 mov w4, w21 add x3, x29, 104 @@ -9125,15 +9381,15 @@ FlashReadSlc2KPages: ldrb w1, [x23] ldr w0, [x29, 104] cmp w1, w0 - bhi .L1301 + bhi .L1337 mov w0, -1 str w0, [x19] -.L1302: +.L1338: sub w21, w21, #1 add x19, x19, 56 and w21, w21, 255 - b .L1300 -.L1301: + b .L1336 +.L1337: add x1, x26, :lo12:.LANCHOR26 ldrb w27, [x1, w0, uxtw] mov w0, w27 @@ -9178,51 +9434,51 @@ FlashReadSlc2KPages: ldrb w2, [x1, #:lo12:.LANCHOR33] add w1, w2, w2, lsl 1 cmp w0, w1, lsr 2 - bls .L1305 + bls .L1341 cmn w0, #1 mov w1, 256 csel w0, w0, w1, eq -.L1305: +.L1341: cmp w0, 256 ccmn w0, #1, 4, ne csel w0, w0, wzr, eq str w0, [x19] ldr x0, [x19, 16] - cbz x0, .L1308 + cbz x0, .L1344 ldr w1, [x0, 12] cmn w1, #1 - bne .L1308 + bne .L1344 ldr w1, [x0, 8] cmn w1, #1 - bne .L1308 + bne .L1344 ldr w0, [x0] cmn w0, #1 - beq .L1308 + beq .L1344 str w1, [x19] -.L1308: +.L1344: ldr w3, [x19] cmn w3, #1 - bne .L1302 + bne .L1338 ldr w1, [x19, 4] adrp x0, .LC25 add x0, x0, :lo12:.LC25 bl printf ldr x1, [x19, 8] - cbz x1, .L1310 + cbz x1, .L1346 adrp x0, .LC26 mov w3, 8 mov w2, 4 add x0, x0, :lo12:.LC26 bl rknand_print_hex -.L1310: +.L1346: ldr x1, [x19, 16] - cbz x1, .L1302 + cbz x1, .L1338 mov w3, 4 adrp x0, .LC27 mov w2, w3 add x0, x0, :lo12:.LC27 bl rknand_print_hex - b .L1302 + b .L1338 .size FlashReadSlc2KPages, .-FlashReadSlc2KPages .section .text.FlashReadPages,"ax",@progbits .align 2 @@ -9239,7 +9495,7 @@ FlashReadPages: stp x25, x26, [sp, 64] stp x27, x28, [sp, 80] stp w2, w1, [x29, 148] - cbnz w3, .L1331 + cbnz w3, .L1367 mov x25, x0 adrp x0, .LANCHOR31+9 adrp x27, .LANCHOR20 @@ -9255,15 +9511,15 @@ FlashReadPages: str x0, [x29, 104] add x0, x0, 4 str x0, [x29, 96] -.L1332: +.L1368: ldr w0, [x29, 152] cmp w22, w0 - bcc .L1366 + bcc .L1402 mov w0, 0 - b .L1330 -.L1331: + b .L1366 +.L1367: bl FlashReadSlc2KPages -.L1330: +.L1366: ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x23, x24, [sp, 48] @@ -9271,7 +9527,7 @@ FlashReadPages: ldp x27, x28, [sp, 80] ldp x29, x30, [sp], 176 ret -.L1366: +.L1402: mov w26, 56 add x3, x29, 168 ldp w1, w0, [x29, 148] @@ -9287,13 +9543,13 @@ FlashReadPages: ldr w1, [x29, 168] ldrb w0, [x0, #:lo12:.LANCHOR25] cmp w0, w1 - bhi .L1334 + bhi .L1370 mov w0, -1 str w0, [x25, x26] -.L1335: +.L1371: add w22, w22, 1 - b .L1332 -.L1334: + b .L1368 +.L1370: adrp x0, .LANCHOR26 add x0, x0, :lo12:.LANCHOR26 ldrb w19, [x0, w1, uxtw] @@ -9303,72 +9559,74 @@ FlashReadPages: mov w0, w19 csel w20, w20, wzr, ne bl NandcWaitFlashReady - adrp x1, .LANCHOR18 - str x1, [x29, 120] - ldr x0, [x1, #:lo12:.LANCHOR18] - ldrb w2, [x0, 19] - sub w0, w2, #1 + adrp x2, .LANCHOR18 + str x2, [x29, 120] + ldr x0, [x2, #:lo12:.LANCHOR18] + ldrb w1, [x0, 19] + sub w0, w1, #1 and w0, w0, 255 - cmp w0, 6 - bhi .L1337 + cmp w0, 7 + bhi .L1373 add x0, x27, :lo12:.LANCHOR20 - sxtw x1, w19 - add x0, x0, x1 - cmp w2, 7 + sxtw x2, w19 + add x0, x0, x2 + sub w1, w1, #7 + and w1, w1, 255 + cmp w1, 1 ldrb w3, [x0, 12] - bne .L1338 + bhi .L1374 ldrb w3, [x0, 20] -.L1338: +.L1374: adrp x0, .LANCHOR21 add x0, x0, :lo12:.LANCHOR21 - ldrb w0, [x0, x1] + ldrb w0, [x0, x2] cmp w0, w3 - beq .L1337 + beq .L1373 ldp x2, x0, [x29, 96] ldrb w1, [x0, 1] mov w0, w19 bl HynixSetRRPara -.L1337: +.L1373: mov w0, w19 bl NandcFlashCs ldr w0, [x29, 148] cmp w0, 1 cset w0, eq orr w24, w0, w24, lsr 31 - cbz w24, .L1339 - adrp x0, .LANCHOR8 - ldrb w0, [x0, #:lo12:.LANCHOR8] - cbz w0, .L1339 + cbz w24, .L1375 + adrp x0, .LANCHOR15 + ldrb w0, [x0, #:lo12:.LANCHOR15] + cbz w0, .L1375 mov w0, w19 bl flash_enter_slc_mode -.L1340: +.L1376: adrp x0, .LANCHOR3 add x0, x0, :lo12:.LANCHOR3 str x0, [x29, 112] ldr x0, [x29, 128] add x0, x0, :lo12:.LANCHOR5 str x0, [x29, 136] -.L1346: +.L1382: ldr w1, [x29, 172] cmn w1, #1 - bne .L1341 + bne .L1377 cmp w19, 255 - beq .L1368 -.L1341: - cbz w20, .L1343 + beq .L1404 +.L1377: + cbz w20, .L1379 ldr x0, [x29, 112] ldr w2, [x0] mov w0, w19 add w2, w1, w2 bl FlashReadDpCmd -.L1344: +.L1380: mov w0, w19 bl NandcWaitFlashReady - cbz w20, .L1342 + cbz w20, .L1378 ldr w1, [x29, 172] mov w0, w19 bl FlashReadDpDataOutCmd -.L1342: +.L1378: ldrb w2, [x29, 156] mov w1, 0 ldp x3, x4, [x21, 8] @@ -9377,26 +9635,26 @@ FlashReadPages: mov w28, w0 ldr x0, [x29, 136] ldrb w0, [x0] - cbz w0, .L1345 + cbz w0, .L1381 cmn w28, #1 - bne .L1345 + bne .L1381 ldr x0, [x29, 136] mov w20, 0 strb wzr, [x0] - b .L1346 -.L1339: + b .L1382 +.L1375: mov w0, w19 bl flash_exit_slc_mode - b .L1340 -.L1343: + b .L1376 +.L1379: mov w0, w19 bl FlashReadCmd - b .L1344 -.L1368: + b .L1380 +.L1404: mov w20, 0 - b .L1342 -.L1345: - cbz w20, .L1347 + b .L1378 +.L1381: + cbz w20, .L1383 adrp x0, .LANCHOR3 ldr w1, [x29, 172] ldr w0, [x0, #:lo12:.LANCHOR3] @@ -9415,27 +9673,27 @@ FlashReadPages: cmn w0, #1 mov w23, w0 csel w20, w20, wzr, ne -.L1347: +.L1383: mov w0, w19 bl NandcFlashDeCs ldr x0, [x29, 128] cmn w28, #1 ldrb w1, [x29, 144] strb w1, [x0, #:lo12:.LANCHOR5] - bne .L1348 + bne .L1384 adrp x0, .LANCHOR30 ldrb w0, [x0, #:lo12:.LANCHOR30] - cbnz w0, .L1349 -.L1353: + cbnz w0, .L1385 +.L1389: adrp x20, .LANCHOR145 ldr x4, [x20, #:lo12:.LANCHOR145] - cbnz x4, .L1350 + cbnz x4, .L1386 ldr w1, [x29, 172] mov w0, w19 ldp x2, x3, [x21, 8] bl FlashReadRawPage - b .L1405 -.L1349: + b .L1441 +.L1385: adrp x0, .LANCHOR19 ldr w1, [x29, 172] ldp x2, x3, [x21, 8] @@ -9446,36 +9704,36 @@ FlashReadPages: bl FlashDdrTunningRead mov w28, w0 cmn w0, #1 - beq .L1352 + beq .L1388 adrp x0, .LANCHOR33 ldrb w0, [x0, #:lo12:.LANCHOR33] cmp w28, w0, lsr 1 - bls .L1369 -.L1352: + bls .L1405 +.L1388: lsr w0, w20, 8 bl NandcSetDdrPara cmn w28, #1 - beq .L1353 -.L1369: + beq .L1389 +.L1405: mov w20, 0 -.L1348: +.L1384: adrp x0, .LANCHOR33 ldrb w0, [x0, #:lo12:.LANCHOR33] add w0, w0, w0, lsl 1 cmp w28, w0, lsr 2 - bls .L1354 + bls .L1390 adrp x0, .LANCHOR145 ldr x0, [x0, #:lo12:.LANCHOR145] cmp x0, 0 mov w0, 256 csel w28, w28, w0, ne -.L1354: +.L1390: cmp w28, 256 ccmn w28, #1, 4, ne csel w3, w28, wzr, eq str w3, [x25, x26] cmn w3, #1 - bne .L1361 + bne .L1397 adrp x0, .LANCHOR33 ldr w1, [x21, 4] ldrb w2, [x0, #:lo12:.LANCHOR33] @@ -9483,25 +9741,25 @@ FlashReadPages: add x0, x0, :lo12:.LC25 bl printf ldr x1, [x21, 16] - cbz x1, .L1361 + cbz x1, .L1397 mov w3, 4 adrp x0, .LC27 mov w2, w3 add x0, x0, :lo12:.LC27 bl rknand_print_hex -.L1361: - cbz w20, .L1363 +.L1397: + cbz w20, .L1399 adrp x0, .LANCHOR33 ldrb w0, [x0, #:lo12:.LANCHOR33] add w0, w0, w0, lsl 1 cmp w23, w0, lsr 2 - bls .L1364 + bls .L1400 adrp x0, .LANCHOR145 ldr x0, [x0, #:lo12:.LANCHOR145] cmp x0, 0 mov w0, 256 csel w23, w23, w0, ne -.L1364: +.L1400: add w0, w22, 1 mov w1, 56 cmp w23, 256 @@ -9509,37 +9767,37 @@ FlashReadPages: umull x0, w0, w1 csel w1, w23, wzr, eq str w1, [x25, x0] -.L1363: +.L1399: add w22, w22, w20 - cbz w24, .L1335 - adrp x0, .LANCHOR8 - ldrb w0, [x0, #:lo12:.LANCHOR8] - cbz w0, .L1335 + cbz w24, .L1371 + adrp x0, .LANCHOR15 + ldrb w0, [x0, #:lo12:.LANCHOR15] + cbz w0, .L1371 mov w0, w19 bl flash_exit_slc_mode - b .L1335 -.L1350: + b .L1371 +.L1386: ldr w1, [x29, 172] mov w0, w19 ldp x2, x3, [x21, 8] blr x4 mov w28, w0 cmn w0, #1 - bne .L1372 + bne .L1408 ldr x0, [x29, 120] ldr x0, [x0, #:lo12:.LANCHOR18] ldrb w0, [x0, 19] sub w0, w0, #1 and w0, w0, 255 - cmp w0, 6 - bhi .L1355 + cmp w0, 7 + bhi .L1391 add x0, x27, :lo12:.LANCHOR20 mov w3, 0 add x2, x0, 4 ldrb w1, [x0, 1] mov w0, w19 bl HynixSetRRPara -.L1355: +.L1391: ldp x2, x3, [x21, 8] mov w0, w19 ldr w1, [x29, 172] @@ -9553,27 +9811,27 @@ FlashReadPages: add x0, x0, :lo12:.LC28 bl printf cmn w28, #1 - bne .L1372 - adrp x0, .LANCHOR8 - ldrb w0, [x0, #:lo12:.LANCHOR8] - cbz w0, .L1372 + bne .L1408 + adrp x0, .LANCHOR15 + ldrb w0, [x0, #:lo12:.LANCHOR15] + cbz w0, .L1408 mov w0, w19 - cbz w24, .L1356 + cbz w24, .L1392 bl flash_enter_slc_mode -.L1357: +.L1393: ldr x4, [x20, #:lo12:.LANCHOR145] mov w0, w19 ldr w1, [x29, 172] ldp x2, x3, [x21, 8] blr x4 -.L1405: +.L1441: mov w28, w0 -.L1372: +.L1408: mov w20, 0 - b .L1354 -.L1356: + b .L1390 +.L1392: bl flash_exit_slc_mode - b .L1357 + b .L1393 .size FlashReadPages, .-FlashReadPages .section .text.FlashProgSlc2KPages,"ax",@progbits .align 2 @@ -9600,12 +9858,12 @@ FlashProgSlc2KPages: mov x20, x0 add x28, x26, :lo12:.LANCHOR3 str w3, [x29, 108] -.L1407: +.L1443: cmp x20, x23 - bne .L1413 + bne .L1449 ldr w0, [x29, 108] - cbnz w0, .L1414 -.L1433: + cbnz w0, .L1450 +.L1469: ldp x19, x20, [sp, 16] mov w0, 0 ldp x21, x22, [sp, 32] @@ -9614,7 +9872,7 @@ FlashProgSlc2KPages: ldp x27, x28, [sp, 80] ldp x29, x30, [sp], 176 ret -.L1413: +.L1449: mov w1, w24 mov w4, w22 add x3, x29, 116 @@ -9625,15 +9883,15 @@ FlashProgSlc2KPages: ldr w1, [x29, 116] ldrb w0, [x0, #:lo12:.LANCHOR25] cmp w0, w1 - bhi .L1408 + bhi .L1444 mov w0, -1 str w0, [x20] -.L1409: +.L1445: sub w22, w22, #1 add x20, x20, 56 and w22, w22, 255 - b .L1407 -.L1408: + b .L1443 +.L1444: adrp x0, .LANCHOR26 add x0, x0, :lo12:.LANCHOR26 ldrb w19, [x0, w1, uxtw] @@ -9686,30 +9944,30 @@ FlashProgSlc2KPages: ldr w1, [x29, 112] mov w0, w19 bl FlashReadStatus - tbz x0, 0, .L1412 + tbz x0, 0, .L1448 mov w0, -1 str w0, [x20] -.L1412: +.L1448: mov w0, w19 bl NandcFlashDeCs - b .L1409 -.L1420: + b .L1445 +.L1456: ldr w0, [x27] cmn w0, #1 - bne .L1415 + bne .L1451 ldr w1, [x27, 4] adrp x0, .LC29 add x0, x0, :lo12:.LC29 bl printf -.L1416: +.L1452: sub w21, w21, #1 add x27, x27, 56 and w21, w21, 255 -.L1434: +.L1470: cmp x27, x20 - bne .L1420 - b .L1433 -.L1415: + bne .L1456 + b .L1469 +.L1451: adrp x19, .LANCHOR199 mov w4, w21 add x3, x29, 116 @@ -9732,45 +9990,45 @@ FlashProgSlc2KPages: bl FlashReadPages ldr w25, [x29, 120] cmn w25, #1 - bne .L1417 + bne .L1453 ldr w1, [x27, 4] adrp x0, .LC30 add x0, x0, :lo12:.LC30 bl printf str w25, [x27] -.L1417: +.L1453: ldr x0, [x27, 16] - cbz x0, .L1418 + cbz x0, .L1454 ldr w2, [x0] ldr x0, [x19, #:lo12:.LANCHOR199] ldr w3, [x0] cmp w2, w3 - beq .L1418 + beq .L1454 ldr w1, [x27, 4] adrp x0, .LC31 add x0, x0, :lo12:.LC31 bl printf mov w0, -1 str w0, [x27] -.L1418: +.L1454: ldr x0, [x27, 8] - cbz x0, .L1416 + cbz x0, .L1452 ldr w2, [x0] ldr x0, [x23, #:lo12:.LANCHOR198] ldr w3, [x0] cmp w2, w3 - beq .L1416 + beq .L1452 ldr w1, [x27, 4] adrp x0, .LC32 add x0, x0, :lo12:.LC32 bl printf mov w0, -1 str w0, [x27] - b .L1416 -.L1414: + b .L1452 +.L1450: adrp x22, .LANCHOR198 mov x23, x22 - b .L1434 + b .L1470 .size FlashProgSlc2KPages, .-FlashProgSlc2KPages .section .text.FlashProgPages,"ax",@progbits .align 2 @@ -9790,7 +10048,7 @@ FlashProgPages: stp w3, w4, [x29, 100] adrp x4, .LANCHOR1 ldrb w4, [x4, #:lo12:.LANCHOR1] - cbnz w4, .L1437 + cbnz w4, .L1473 mov x19, x0 adrp x0, .LANCHOR31+9 adrp x27, .LANCHOR23 @@ -9800,28 +10058,28 @@ FlashProgPages: add x28, x27, :lo12:.LANCHOR23 mov w21, 0 str w0, [x29, 108] -.L1438: +.L1474: cmp w21, w24 adrp x26, .LANCHOR25 - bcc .L1451 - adrp x21, .LANCHOR8 + bcc .L1487 + adrp x21, .LANCHOR15 adrp x23, .LANCHOR23 add x25, x26, :lo12:.LANCHOR25 - add x21, x21, :lo12:.LANCHOR8 + add x21, x21, :lo12:.LANCHOR15 add x23, x23, :lo12:.LANCHOR23 mov x20, 0 -.L1452: +.L1488: ldrb w0, [x25] cmp w0, w20 - bhi .L1454 + bhi .L1490 ldr w0, [x29, 100] - cbnz w0, .L1455 -.L1463: + cbnz w0, .L1491 +.L1499: mov w0, 0 - b .L1436 -.L1437: + b .L1472 +.L1473: bl FlashProgSlc2KPages -.L1436: +.L1472: ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x23, x24, [sp, 48] @@ -9829,7 +10087,7 @@ FlashProgPages: ldp x27, x28, [sp, 80] ldp x29, x30, [sp], 176 ret -.L1451: +.L1487: mov w12, 56 mov w1, w22 sub w4, w24, w21 @@ -9843,13 +10101,13 @@ FlashProgPages: ldrb w1, [x26, #:lo12:.LANCHOR25] ldr w0, [x29, 116] cmp w1, w0 - bhi .L1440 + bhi .L1476 mov w0, -1 str w0, [x19, x12] -.L1441: +.L1477: add w21, w21, 1 - b .L1438 -.L1440: + b .L1474 +.L1476: adrp x1, .LANCHOR27 add x2, x27, :lo12:.LANCHOR23 mov x3, 24 @@ -9859,20 +10117,20 @@ FlashProgPages: csel w23, w23, wzr, ne madd x1, x1, x3, x2 ldr x1, [x1, 8] - cbz x1, .L1443 + cbz x1, .L1479 bl FlashWaitCmdDone -.L1443: +.L1479: ldp w2, w1, [x29, 112] mov x0, 24 madd x0, x1, x0, x28 str w2, [x0, 4] stp x25, xzr, [x0, 8] - cbz w23, .L1444 + cbz w23, .L1480 add w2, w21, 1 mov w3, 56 umaddl x2, w2, w3, x19 str x2, [x0, 16] -.L1444: +.L1480: adrp x0, .LANCHOR26 add x0, x0, :lo12:.LANCHOR26 ldrb w20, [x0, x1] @@ -9882,17 +10140,17 @@ FlashProgPages: cmp w0, 1 mov w0, w20 strb w20, [x28, x1] - bne .L1445 + bne .L1481 bl NandcWaitFlashReady -.L1446: +.L1482: ldr w0, [x29, 104] sub w0, w0, #1 - cmp w0, 6 - bhi .L1447 + cmp w0, 7 + bhi .L1483 adrp x0, .LANCHOR21 add x0, x0, :lo12:.LANCHOR21 ldrb w0, [x0, w20, sxtw] - cbz w0, .L1447 + cbz w0, .L1483 adrp x0, .LANCHOR20 add x0, x0, :lo12:.LANCHOR20 add x2, x0, 4 @@ -9900,17 +10158,17 @@ FlashProgPages: ldrb w1, [x0, 1] mov w0, w20 bl HynixSetRRPara -.L1447: +.L1483: mov w0, w20 bl NandcFlashCs cmp w22, 1 - bne .L1448 - adrp x0, .LANCHOR8 - ldrb w0, [x0, #:lo12:.LANCHOR8] - cbz w0, .L1448 + bne .L1484 + adrp x0, .LANCHOR15 + ldrb w0, [x0, #:lo12:.LANCHOR15] + cbz w0, .L1484 mov w0, w20 bl flash_enter_slc_mode -.L1449: +.L1485: ldr w1, [x29, 112] mov w0, w20 bl FlashProgFirstCmd @@ -9919,7 +10177,7 @@ FlashProgPages: ldp x3, x4, [x25, 8] mov w0, w20 bl NandcXferData - cbz w23, .L1450 + cbz w23, .L1486 ldr w1, [x29, 112] mov w0, w20 bl FlashProgDpFirstCmd @@ -9947,15 +10205,15 @@ FlashProgPages: ldp x3, x4, [x0, 8] mov w0, w20 bl NandcXferData -.L1450: +.L1486: ldr w1, [x29, 112] mov w0, w20 add w21, w21, w23 bl FlashProgSecondCmd mov w0, w20 bl NandcFlashDeCs - b .L1441 -.L1445: + b .L1477 +.L1481: bl NandcFlashCs ldr w1, [x29, 116] adrp x0, .LANCHOR17 @@ -9968,47 +10226,47 @@ FlashProgPages: bl FlashWaitReadyEN mov w0, w20 bl NandcFlashDeCs - b .L1446 -.L1448: + b .L1482 +.L1484: mov w0, w20 bl flash_exit_slc_mode - b .L1449 -.L1454: + b .L1485 +.L1490: mov w0, w20 bl FlashWaitCmdDone cmp w22, 1 - bne .L1453 + bne .L1489 ldrb w0, [x21] - cbz w0, .L1453 + cbz w0, .L1489 mov x0, 24 mul x0, x20, x0 ldrb w0, [x0, x23] bl flash_exit_slc_mode -.L1453: +.L1489: add x20, x20, 1 - b .L1452 -.L1455: + b .L1488 +.L1491: mov w0, 56 and w20, w24, 255 adrp x23, .LANCHOR198 mov x25, x23 umaddl x24, w24, w0, x19 -.L1456: +.L1492: cmp x24, x19 - beq .L1463 + beq .L1499 ldr w0, [x19] cmn w0, #1 - bne .L1457 + bne .L1493 ldr w1, [x19, 4] adrp x0, .LC29 add x0, x0, :lo12:.LC29 bl printf -.L1458: +.L1494: sub w20, w20, #1 add x19, x19, 56 and w20, w20, 255 - b .L1456 -.L1457: + b .L1492 +.L1493: adrp x21, .LANCHOR199 mov w4, w20 add x3, x29, 116 @@ -10031,41 +10289,41 @@ FlashProgPages: bl FlashReadPages ldr w26, [x29, 120] cmn w26, #1 - bne .L1459 + bne .L1495 ldr w1, [x19, 4] adrp x0, .LC30 add x0, x0, :lo12:.LC30 bl printf str w26, [x19] -.L1459: +.L1495: ldr x0, [x19, 16] - cbz x0, .L1460 + cbz x0, .L1496 ldr w2, [x0] ldr x0, [x21, #:lo12:.LANCHOR199] ldr w3, [x0] cmp w2, w3 - beq .L1460 + beq .L1496 ldr w1, [x19, 4] adrp x0, .LC31 add x0, x0, :lo12:.LC31 bl printf mov w0, -1 str w0, [x19] -.L1460: +.L1496: ldr x0, [x19, 8] - cbz x0, .L1458 + cbz x0, .L1494 ldr w2, [x0] ldr x0, [x25, #:lo12:.LANCHOR198] ldr w3, [x0] cmp w2, w3 - beq .L1458 + beq .L1494 ldr w1, [x19, 4] adrp x0, .LC32 add x0, x0, :lo12:.LC32 bl printf mov w0, -1 str w0, [x19] - b .L1458 + b .L1494 .size FlashProgPages, .-FlashProgPages .section .text.FlashTestBlk,"ax",@progbits .align 2 @@ -10079,7 +10337,7 @@ FlashTestBlk: adrp x0, .LANCHOR149 ldr w0, [x0, #:lo12:.LANCHOR149] cmp w19, w0 - bcc .L1491 + bcc .L1527 adrp x20, .LANCHOR153 mov w2, 32 mov w1, 165 @@ -10110,14 +10368,14 @@ FlashTestBlk: add x0, x29, 40 csetm w19, ne bl FlashEraseBlocks -.L1489: +.L1525: mov w0, w19 ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 160 ret -.L1491: +.L1527: mov w19, 0 - b .L1489 + b .L1525 .size FlashTestBlk, .-FlashTestBlk .section .text.FtlLowFormatEraseBlock,"ax",@progbits .align 2 @@ -10128,42 +10386,42 @@ FtlLowFormatEraseBlock: add x29, sp, 0 stp x25, x26, [sp, 64] and w26, w0, 65535 - adrp x0, .LANCHOR77 + adrp x0, .LANCHOR76 stp x19, x20, [sp, 16] stp x21, x22, [sp, 32] - ldr w0, [x0, #:lo12:.LANCHOR77] + ldr w0, [x0, #:lo12:.LANCHOR76] stp x23, x24, [sp, 48] stp x27, x28, [sp, 80] - cbnz w0, .L1516 + cbnz w0, .L1552 adrp x23, .LANCHOR27 and w25, w1, 255 - adrp x20, .LANCHOR8 + adrp x20, .LANCHOR15 adrp x1, .LANCHOR38 ldrb w0, [x23, #:lo12:.LANCHOR27] - adrp x21, .LANCHOR78 + adrp x21, .LANCHOR77 str w0, [x29, 136] mov x8, 56 - adrp x0, .LANCHOR74 - ldrb w10, [x20, #:lo12:.LANCHOR8] + adrp x0, .LANCHOR73 + ldrb w10, [x20, #:lo12:.LANCHOR15] ldrh w11, [x1, #:lo12:.LANCHOR38] adrp x7, .LANCHOR47 - str w26, [x0, #:lo12:.LANCHOR74] + str w26, [x0, #:lo12:.LANCHOR73] adrp x0, .LANCHOR189 - ldr x6, [x21, #:lo12:.LANCHOR78] + ldr x6, [x21, #:lo12:.LANCHOR77] add x7, x7, :lo12:.LANCHOR47 ldr x12, [x0, #:lo12:.LANCHOR189] - adrp x0, .LANCHOR59 + adrp x0, .LANCHOR58 mov w14, w8 mov x5, 0 - ldrh w13, [x0, #:lo12:.LANCHOR59] + ldrh w13, [x0, #:lo12:.LANCHOR58] mov w24, 0 mov w19, 0 str x1, [x29, 128] str x0, [x29, 120] -.L1495: +.L1531: cmp w11, w5, uxth - bhi .L1499 - cbz w24, .L1493 + bhi .L1535 + cbz w24, .L1529 cmp w10, 0 mov w2, w24 cset w22, ne @@ -10176,34 +10434,34 @@ FtlLowFormatEraseBlock: strb w0, [x23, #:lo12:.LANCHOR27] mov w0, 56 umull x24, w24, w0 -.L1502: - ldr x0, [x21, #:lo12:.LANCHOR78] +.L1538: + ldr x0, [x21, #:lo12:.LANCHOR77] add x1, x0, x27 ldr w0, [x0, x27] cmn w0, #1 - bne .L1501 + bne .L1537 ldr w0, [x1, 4] add w19, w19, 1 and w19, w19, 65535 lsr w0, w0, 10 bl FtlBbmMapBadBlock -.L1501: +.L1537: add x27, x27, 56 cmp x27, x24 - bne .L1502 - cbnz w25, .L1503 + bne .L1538 + cbnz w25, .L1539 and w22, w22, 65535 mov w28, 6 mov w27, 1 -.L1504: +.L1540: adrp x0, .LANCHOR47 mov w24, 0 add x0, x0, :lo12:.LANCHOR47 str x0, [x29, 112] -.L1512: +.L1548: ldr x0, [x29, 128] mov x5, 0 - ldr x6, [x21, #:lo12:.LANCHOR78] + ldr x6, [x21, #:lo12:.LANCHOR77] mov w20, 0 mov w12, 56 ldrh w7, [x0, #:lo12:.LANCHOR38] @@ -10212,11 +10470,11 @@ FtlLowFormatEraseBlock: adrp x0, .LANCHOR187 ldr x10, [x0, #:lo12:.LANCHOR187] ldr x0, [x29, 120] - ldrh w11, [x0, #:lo12:.LANCHOR59] -.L1505: + ldrh w11, [x0, #:lo12:.LANCHOR58] +.L1541: cmp w7, w5, uxth - bhi .L1508 - cbz w20, .L1493 + bhi .L1544 + cbz w20, .L1529 mov w2, w22 mov w1, w20 strb wzr, [x23, #:lo12:.LANCHOR27] @@ -10228,11 +10486,11 @@ FtlLowFormatEraseBlock: strb w0, [x23, #:lo12:.LANCHOR27] mov x2, 0 umull x1, w20, w1 -.L1511: - ldr x0, [x21, #:lo12:.LANCHOR78] +.L1547: + ldr x0, [x21, #:lo12:.LANCHOR77] add x3, x0, x2 ldr w0, [x0, x2] - cbz w0, .L1510 + cbz w0, .L1546 ldr w0, [x3, 4] add w19, w19, 1 stp x2, x1, [x29, 96] @@ -10240,39 +10498,39 @@ FtlLowFormatEraseBlock: lsr w0, w0, 10 bl FtlBbmMapBadBlock ldp x2, x1, [x29, 96] -.L1510: +.L1546: add x2, x2, 56 cmp x1, x2 - bne .L1511 + bne .L1547 add w24, w24, w28 and w24, w24, 65535 cmp w27, w24 - bhi .L1512 + bhi .L1548 mov x23, 0 -.L1514: - cbz w25, .L1513 - ldr x0, [x21, #:lo12:.LANCHOR78] +.L1550: + cbz w25, .L1549 + ldr x0, [x21, #:lo12:.LANCHOR77] add x1, x0, x23 ldr w0, [x0, x23] - cbnz w0, .L1513 + cbnz w0, .L1549 ldr w0, [x1, 4] mov w1, 1 str x2, [x29, 136] lsr w0, w0, 10 bl FtlFreeSysBlkQueueIn ldr x2, [x29, 136] -.L1513: +.L1549: add x23, x23, 56 cmp x23, x2 - bne .L1514 + bne .L1550 cmp w26, 63 ccmp w25, 0, 0, hi - beq .L1493 - ldr x0, [x21, #:lo12:.LANCHOR78] + beq .L1529 + ldr x0, [x21, #:lo12:.LANCHOR77] mov w2, w20 mov w1, w22 bl FlashEraseBlocks -.L1493: +.L1529: mov w0, w19 ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] @@ -10281,7 +10539,7 @@ FtlLowFormatEraseBlock: ldp x27, x28, [sp, 80] ldp x29, x30, [sp], 144 ret -.L1499: +.L1535: mul x0, x5, x8 mov w1, w26 str wzr, [x6, x0] @@ -10289,13 +10547,13 @@ FtlLowFormatEraseBlock: bl V2P_block and w15, w0, 65535 mov w22, w15 - cbz w25, .L1496 + cbz w25, .L1532 bl IsBlkInVendorPart - cbnz w0, .L1497 -.L1496: + cbnz w0, .L1533 +.L1532: mov w0, w22 bl FtlBbmIsBadBlock - cbnz w0, .L1498 + cbnz w0, .L1534 umaddl x1, w24, w14, x6 lsl w15, w15, 10 mul w0, w24, w13 @@ -10305,26 +10563,26 @@ FtlLowFormatEraseBlock: str w15, [x1, 4] add x0, x12, x0, sxtw 2 stp xzr, x0, [x1, 8] -.L1497: +.L1533: add x5, x5, 1 - b .L1495 -.L1498: + b .L1531 +.L1534: add w19, w19, 1 and w19, w19, 65535 - b .L1497 -.L1503: - adrp x0, .LANCHOR54 - ldrh w27, [x0, #:lo12:.LANCHOR54] - ldrb w0, [x20, #:lo12:.LANCHOR8] - cbnz w0, .L1517 + b .L1533 +.L1539: + adrp x0, .LANCHOR53 + ldrh w27, [x0, #:lo12:.LANCHOR53] + ldrb w0, [x20, #:lo12:.LANCHOR15] + cbnz w0, .L1553 lsr w28, w27, 2 mov w22, 1 - b .L1504 -.L1517: + b .L1540 +.L1553: mov w22, 1 mov w28, w22 - b .L1504 -.L1508: + b .L1540 +.L1544: mov x0, 56 mov w1, w26 mul x0, x5, x0 @@ -10334,13 +10592,13 @@ FtlLowFormatEraseBlock: bl V2P_block and w13, w0, 65535 mov w14, w13 - cbz w25, .L1506 + cbz w25, .L1542 bl IsBlkInVendorPart - cbnz w0, .L1507 -.L1506: + cbnz w0, .L1543 +.L1542: mov w0, w14 bl FtlBbmIsBadBlock - cbnz w0, .L1507 + cbnz w0, .L1543 umaddl x1, w20, w12, x6 add w13, w24, w13, lsl 10 mul w0, w20, w11 @@ -10350,12 +10608,12 @@ FtlLowFormatEraseBlock: str w13, [x1, 4] add x0, x10, x0, sxtw 2 stp x8, x0, [x1, 8] -.L1507: +.L1543: add x5, x5, 1 - b .L1505 -.L1516: + b .L1541 +.L1552: mov w19, 0 - b .L1493 + b .L1529 .size FtlLowFormatEraseBlock, .-FtlLowFormatEraseBlock .section .text.FtlBbmTblFlush,"ax",@progbits .align 2 @@ -10365,45 +10623,45 @@ FtlBbmTblFlush: stp x29, x30, [sp, -96]! add x29, sp, 0 stp x21, x22, [sp, 32] - adrp x22, .LANCHOR77 + adrp x22, .LANCHOR76 stp x19, x20, [sp, 16] - ldr w0, [x22, #:lo12:.LANCHOR77] + ldr w0, [x22, #:lo12:.LANCHOR76] stp x23, x24, [sp, 48] stp x25, x26, [sp, 64] stp x27, x28, [sp, 80] - cbnz w0, .L1540 + cbnz w0, .L1576 adrp x24, .LANCHOR188 adrp x23, .LANCHOR183 adrp x20, .LANCHOR202 add x19, x20, :lo12:.LANCHOR202 ldr x1, [x24, #:lo12:.LANCHOR188] - adrp x21, .LANCHOR75 + adrp x21, .LANCHOR74 ldr x0, [x23, #:lo12:.LANCHOR183] - add x26, x21, :lo12:.LANCHOR75 + add x26, x21, :lo12:.LANCHOR74 stp x0, x1, [x19, 8] - adrp x1, .LANCHOR58 + adrp x1, .LANCHOR57 adrp x27, .LANCHOR45 adrp x28, .LANCHOR123 - ldrh w2, [x1, #:lo12:.LANCHOR58] + ldrh w2, [x1, #:lo12:.LANCHOR57] add x26, x26, 32 mov w25, 0 add x27, x27, :lo12:.LANCHOR45 add x28, x28, :lo12:.LANCHOR123 mov w1, 0 bl ftl_memset -.L1541: +.L1577: ldrh w0, [x27] cmp w25, w0 - blt .L1542 + blt .L1578 add x20, x20, :lo12:.LANCHOR202 - add x19, x21, :lo12:.LANCHOR75 + add x19, x21, :lo12:.LANCHOR74 mov w2, 16 mov w1, 255 adrp x25, .LC33 - adrp x27, .LANCHOR54 + adrp x27, .LANCHOR53 ldr x28, [x20, 16] add x25, x25, :lo12:.LC33 - add x27, x27, :lo12:.LANCHOR54 + add x27, x27, :lo12:.LANCHOR53 mov w26, 0 mov x0, x28 bl ftl_memset @@ -10411,7 +10669,7 @@ FtlBbmTblFlush: strh w0, [x28] ldr w0, [x19, 8] str w0, [x28, 4] - ldrh w0, [x21, #:lo12:.LANCHOR75] + ldrh w0, [x21, #:lo12:.LANCHOR74] mov w21, 0 strh w0, [x28, 2] ldrh w0, [x19, 4] @@ -10421,7 +10679,7 @@ FtlBbmTblFlush: adrp x0, .LANCHOR37 ldr w0, [x0, #:lo12:.LANCHOR37] strh w0, [x28, 12] -.L1543: +.L1579: ldrh w1, [x19] ldrh w4, [x28, 10] ldrh w2, [x19, 2] @@ -10439,7 +10697,7 @@ FtlBbmTblFlush: ldrh w1, [x19, 2] sub w0, w0, #1 cmp w1, w0 - blt .L1544 + blt .L1580 ldr w0, [x19, 8] mov w2, 1 ldrh w1, [x19, 4] @@ -10449,16 +10707,16 @@ FtlBbmTblFlush: ldrh w0, [x19] strh w0, [x28, 8] strh w0, [x19, 4] - adrp x0, .LANCHOR78 + adrp x0, .LANCHOR77 strh w1, [x19] lsl w1, w1, 10 - ldr x0, [x0, #:lo12:.LANCHOR78] + ldr x0, [x0, #:lo12:.LANCHOR77] str w1, [x20, 4] strh wzr, [x19, 2] str w1, [x0, 4] mov w1, w2 bl FlashEraseBlocks -.L1544: +.L1580: mov w3, 1 mov x0, x20 mov w2, w3 @@ -10469,7 +10727,7 @@ FtlBbmTblFlush: strh w0, [x19, 2] ldr w0, [x20] cmn w0, #1 - bne .L1545 + bne .L1581 ldr w1, [x20, 4] add w21, w21, 1 adrp x0, .LC34 @@ -10477,15 +10735,15 @@ FtlBbmTblFlush: add x0, x0, :lo12:.LC34 bl printf cmp w21, 3 - bls .L1543 + bls .L1579 ldr w1, [x20, 4] mov w2, w21 adrp x0, .LC35 add x0, x0, :lo12:.LC35 bl printf mov w0, 1 - str w0, [x22, #:lo12:.LANCHOR77] -.L1540: + str w0, [x22, #:lo12:.LANCHOR76] +.L1576: mov w0, 0 ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] @@ -10494,7 +10752,7 @@ FtlBbmTblFlush: ldp x27, x28, [sp, 80] ldp x29, x30, [sp], 96 ret -.L1542: +.L1578: ldrh w2, [x28] ldr x1, [x26], 8 ldr x0, [x19, 8] @@ -10503,44 +10761,44 @@ FtlBbmTblFlush: add w25, w25, 1 add x0, x0, x3, sxtw 2 bl ftl_memcpy - b .L1541 -.L1545: - cbnz w26, .L1540 + b .L1577 +.L1581: + cbnz w26, .L1576 mov w26, 1 - b .L1543 + b .L1579 .size FtlBbmTblFlush, .-FtlBbmTblFlush .section .text.allocate_data_superblock,"ax",@progbits .align 2 .global allocate_data_superblock .type allocate_data_superblock, %function allocate_data_superblock: - adrp x1, .LANCHOR77 - ldr w1, [x1, #:lo12:.LANCHOR77] - cbnz w1, .L1614 + adrp x1, .LANCHOR76 + ldr w1, [x1, #:lo12:.LANCHOR76] + cbnz w1, .L1650 stp x29, x30, [sp, -128]! add x29, sp, 0 stp x19, x20, [sp, 16] mov x19, x0 stp x27, x28, [sp, 80] - adrp x27, .LANCHOR86 - add x0, x27, :lo12:.LANCHOR86 + adrp x27, .LANCHOR85 + add x0, x27, :lo12:.LANCHOR85 stp x23, x24, [sp, 48] str x0, [x29, 120] - adrp x0, .LANCHOR89 - add x23, x0, :lo12:.LANCHOR89 + adrp x0, .LANCHOR88 + add x23, x0, :lo12:.LANCHOR88 stp x21, x22, [sp, 32] stp x25, x26, [sp, 64] -.L1605: +.L1641: ldr x1, [x29, 120] - adrp x0, .LANCHOR89 + adrp x0, .LANCHOR88 adrp x24, .LANCHOR40 - ldrh w0, [x0, #:lo12:.LANCHOR89] + ldrh w0, [x0, #:lo12:.LANCHOR88] ldrh w1, [x1] add w0, w0, w1 ldrh w1, [x24, #:lo12:.LANCHOR40] cmp w0, w1 - ble .L1553 - mov w2, 3108 + ble .L1589 + mov w2, 3139 adrp x1, .LANCHOR203 adrp x0, .LC5 add x1, x1, :lo12:.LANCHOR203 @@ -10551,11 +10809,11 @@ allocate_data_superblock: add x1, x1, :lo12:.LC6 add x0, x0, :lo12:.LC7 bl printf -.L1553: - adrp x0, .LANCHOR94 - add x0, x0, :lo12:.LANCHOR94 +.L1589: + adrp x0, .LANCHOR93 + add x0, x0, :lo12:.LANCHOR93 cmp x19, x0 - bne .L1554 + bne .L1590 adrp x1, .LANCHOR172 ldrh w2, [x23] ldr w3, [x1, #:lo12:.LANCHOR172] @@ -10566,140 +10824,53 @@ allocate_data_superblock: adrp x4, .LANCHOR28 and w1, w1, 65535 ldr w4, [x4, #:lo12:.LANCHOR28] - cbz w4, .L1555 + cbz w4, .L1591 adrp x4, .LANCHOR170 ldr w4, [x4, #:lo12:.LANCHOR170] cmp w4, 39 - bhi .L1555 + bhi .L1591 cmp w4, 2 - bls .L1589 - tbz x2, 0, .L1585 - cbz w3, .L1589 -.L1585: + bls .L1625 + tbz x2, 0, .L1621 + cbz w3, .L1625 +.L1621: mov w1, w0 - b .L1555 -.L1554: + b .L1591 +.L1590: ldrb w0, [x19, 8] cmp w0, 1 - bne .L1589 + bne .L1625 adrp x0, .LANCHOR44 ldrh w0, [x0, #:lo12:.LANCHOR44] cmp w0, 1 - beq .L1589 - adrp x0, .LANCHOR8 - ldrb w0, [x0, #:lo12:.LANCHOR8] - cbnz w0, .L1589 + beq .L1625 + adrp x0, .LANCHOR15 + ldrb w0, [x0, #:lo12:.LANCHOR15] + cbnz w0, .L1625 adrp x2, .LANCHOR28 ldrh w0, [x23] ldr w2, [x2, #:lo12:.LANCHOR28] lsr w1, w0, 3 - cbz w2, .L1555 + cbz w2, .L1591 adrp x2, .LANCHOR170 ldr w2, [x2, #:lo12:.LANCHOR170] cmp w2, 1 - bhi .L1555 + bhi .L1591 mov w1, 7 mul w1, w0, w1 lsr w1, w1, 3 -.L1555: - cbz w1, .L1556 +.L1591: + cbz w1, .L1592 sub w1, w1, #1 and w1, w1, 65535 -.L1556: +.L1592: ldrb w2, [x19, 8] - adrp x0, .LANCHOR88 - add x0, x0, :lo12:.LANCHOR88 + adrp x0, .LANCHOR87 + add x0, x0, :lo12:.LANCHOR87 bl List_pop_index_node and w22, w0, 65535 ldrh w0, [x23] - cbnz w0, .L1557 - mov w2, 3128 - adrp x1, .LANCHOR203 - adrp x0, .LC5 - add x1, x1, :lo12:.LANCHOR203 - add x0, x0, :lo12:.LC5 - bl printf - adrp x1, .LC6 - adrp x0, .LC7 - add x1, x1, :lo12:.LC6 - add x0, x0, :lo12:.LC7 - bl printf -.L1557: - ldrh w0, [x23] - sub w0, w0, #1 - strh w0, [x23] - ldrh w0, [x24, #:lo12:.LANCHOR40] - cmp w0, w22 - bls .L1605 - adrp x25, .LANCHOR84 - ubfiz x21, x22, 1, 16 - ldr x0, [x25, #:lo12:.LANCHOR84] - ldrh w20, [x0, x21] - cbnz w20, .L1605 - strh w22, [x19] - mov x0, x19 - bl make_superblock - ldrb w0, [x19, 7] - cbnz w0, .L1559 - ldr x0, [x25, #:lo12:.LANCHOR84] - mov w1, -1 - strh w1, [x0, x21] - ldrh w1, [x27, #:lo12:.LANCHOR86] - ldrh w0, [x23] - add w0, w0, w1 - ldrh w1, [x24, #:lo12:.LANCHOR40] - cmp w0, w1 - ble .L1605 - mov w2, 3144 - adrp x1, .LANCHOR203 - adrp x0, .LC5 - add x1, x1, :lo12:.LANCHOR203 - add x0, x0, :lo12:.LC5 - bl printf - adrp x1, .LC6 - adrp x0, .LC7 - add x1, x1, :lo12:.LC6 - add x0, x0, :lo12:.LC7 - bl printf - b .L1605 -.L1589: - mov w1, 0 - b .L1556 -.L1559: - ldrh w1, [x27, #:lo12:.LANCHOR86] - ldrh w0, [x23] - add w0, w0, w1 - ldrh w1, [x24, #:lo12:.LANCHOR40] - cmp w0, w1 - ble .L1561 - mov w2, 3147 - adrp x1, .LANCHOR203 - adrp x0, .LC5 - add x1, x1, :lo12:.LANCHOR203 - add x0, x0, :lo12:.LC5 - bl printf - adrp x1, .LC6 - adrp x0, .LC7 - add x1, x1, :lo12:.LC6 - add x0, x0, :lo12:.LC7 - bl printf -.L1561: - adrp x1, .LANCHOR38 - adrp x25, .LANCHOR78 - mov w2, 56 - mov x3, 8 - ldrh w1, [x1, #:lo12:.LANCHOR38] - add x26, x19, 16 - ldr x4, [x25, #:lo12:.LANCHOR78] - mov x5, x26 - mov w6, 65535 - add x0, x4, 8 - umaddl x1, w2, w1, x3 - add x1, x4, x1 -.L1562: - cmp x1, x0 - bne .L1564 - cbnz w20, .L1565 + cbnz w0, .L1593 mov w2, 3159 adrp x1, .LANCHOR203 adrp x0, .LC5 @@ -10711,26 +10882,33 @@ allocate_data_superblock: add x1, x1, :lo12:.LC6 add x0, x0, :lo12:.LC7 bl printf -.L1565: - adrp x0, .LANCHOR28 - adrp x28, .LANCHOR79 - ldr w0, [x0, #:lo12:.LANCHOR28] - cbz w0, .L1566 - adrp x0, .LANCHOR92 - add x0, x0, :lo12:.LANCHOR92 - cmp x19, x0 - bne .L1566 - ldr x0, [x28, #:lo12:.LANCHOR79] - ldrh w0, [x0, x21] - cmp w0, 40 - bls .L1566 - strb wzr, [x19, 8] -.L1566: - adrp x0, .LANCHOR204 - ldrh w0, [x0, #:lo12:.LANCHOR204] +.L1593: + ldrh w0, [x23] + sub w0, w0, #1 + strh w0, [x23] + ldrh w0, [x24, #:lo12:.LANCHOR40] cmp w0, w22 - bne .L1567 - mov w2, 3166 + bls .L1641 + adrp x25, .LANCHOR83 + ubfiz x21, x22, 1, 16 + ldr x0, [x25, #:lo12:.LANCHOR83] + ldrh w20, [x0, x21] + cbnz w20, .L1641 + strh w22, [x19] + mov x0, x19 + bl make_superblock + ldrb w0, [x19, 7] + cbnz w0, .L1595 + ldr x0, [x25, #:lo12:.LANCHOR83] + mov w1, -1 + strh w1, [x0, x21] + ldrh w1, [x27, #:lo12:.LANCHOR85] + ldrh w0, [x23] + add w0, w0, w1 + ldrh w1, [x24, #:lo12:.LANCHOR40] + cmp w0, w1 + ble .L1641 + mov w2, 3175 adrp x1, .LANCHOR203 adrp x0, .LC5 add x1, x1, :lo12:.LANCHOR203 @@ -10741,18 +10919,98 @@ allocate_data_superblock: add x1, x1, :lo12:.LC6 add x0, x0, :lo12:.LC7 bl printf -.L1567: + b .L1641 +.L1625: + mov w1, 0 + b .L1592 +.L1595: + ldrh w1, [x27, #:lo12:.LANCHOR85] + ldrh w0, [x23] + add w0, w0, w1 + ldrh w1, [x24, #:lo12:.LANCHOR40] + cmp w0, w1 + ble .L1597 + mov w2, 3178 + adrp x1, .LANCHOR203 + adrp x0, .LC5 + add x1, x1, :lo12:.LANCHOR203 + add x0, x0, :lo12:.LC5 + bl printf + adrp x1, .LC6 + adrp x0, .LC7 + add x1, x1, :lo12:.LC6 + add x0, x0, :lo12:.LC7 + bl printf +.L1597: + adrp x1, .LANCHOR38 + adrp x25, .LANCHOR77 + mov w2, 56 + mov x3, 8 + ldrh w1, [x1, #:lo12:.LANCHOR38] + add x26, x19, 16 + ldr x4, [x25, #:lo12:.LANCHOR77] + mov x5, x26 + mov w6, 65535 + add x0, x4, 8 + umaddl x1, w2, w1, x3 + add x1, x4, x1 +.L1598: + cmp x1, x0 + bne .L1600 + cbnz w20, .L1601 + mov w2, 3190 + adrp x1, .LANCHOR203 + adrp x0, .LC5 + add x1, x1, :lo12:.LANCHOR203 + add x0, x0, :lo12:.LC5 + bl printf + adrp x1, .LC6 + adrp x0, .LC7 + add x1, x1, :lo12:.LC6 + add x0, x0, :lo12:.LC7 + bl printf +.L1601: + adrp x0, .LANCHOR28 + adrp x28, .LANCHOR78 + ldr w0, [x0, #:lo12:.LANCHOR28] + cbz w0, .L1602 + adrp x0, .LANCHOR91 + add x0, x0, :lo12:.LANCHOR91 + cmp x19, x0 + bne .L1602 + ldr x0, [x28, #:lo12:.LANCHOR78] + ldrh w0, [x0, x21] + cmp w0, 40 + bls .L1602 + strb wzr, [x19, 8] +.L1602: + adrp x0, .LANCHOR204 + ldrh w0, [x0, #:lo12:.LANCHOR204] + cmp w0, w22 + bne .L1603 + mov w2, 3197 + adrp x1, .LANCHOR203 + adrp x0, .LC5 + add x1, x1, :lo12:.LANCHOR203 + add x0, x0, :lo12:.LC5 + bl printf + adrp x1, .LC6 + adrp x0, .LC7 + add x1, x1, :lo12:.LC6 + add x0, x0, :lo12:.LC7 + bl printf +.L1603: ldrb w0, [x19, 8] adrp x6, .LANCHOR48 adrp x5, .LANCHOR167 adrp x4, .LANCHOR168 - ldr x1, [x28, #:lo12:.LANCHOR79] - cbnz w0, .L1568 + ldr x1, [x28, #:lo12:.LANCHOR78] + cbnz w0, .L1604 ldrh w0, [x1, x21] - cbz w0, .L1569 + cbz w0, .L1605 ldrh w2, [x6, #:lo12:.LANCHOR48] add w0, w0, w2 -.L1617: +.L1653: strh w0, [x1, x21] mov w1, 0 ldr w0, [x5, #:lo12:.LANCHOR167] @@ -10760,15 +11018,15 @@ allocate_data_superblock: str w0, [x5, #:lo12:.LANCHOR167] mov w0, w22 bl ftl_set_blk_mode -.L1571: - ldr x0, [x28, #:lo12:.LANCHOR79] +.L1607: + ldr x0, [x28, #:lo12:.LANCHOR78] ldrh w1, [x0, x21] adrp x0, .LANCHOR169 ldr w2, [x0, #:lo12:.LANCHOR169] cmp w1, w2 - bls .L1572 + bls .L1608 str w1, [x0, #:lo12:.LANCHOR169] -.L1572: +.L1608: ldr w2, [x5, #:lo12:.LANCHOR167] mov x3, 4 ldr w1, [x4, #:lo12:.LANCHOR168] @@ -10784,65 +11042,65 @@ allocate_data_superblock: add w0, w0, 1 str w0, [x1, 16] mov w1, 56 - ldr x0, [x25, #:lo12:.LANCHOR78] + ldr x0, [x25, #:lo12:.LANCHOR77] nop // between mem op and mult-accumulate umaddl x1, w1, w20, x3 add x2, x0, 4 add x1, x0, x1 -.L1573: +.L1609: cmp x1, x2 - bne .L1574 - adrp x1, .LANCHOR8 - ldrb w1, [x1, #:lo12:.LANCHOR8] - cbz w1, .L1575 + bne .L1610 + adrp x1, .LANCHOR15 + ldrb w1, [x1, #:lo12:.LANCHOR15] + cbz w1, .L1611 ldrb w1, [x19, 8] mov w2, w20 cmp w1, 1 - bne .L1576 + bne .L1612 mov w1, 0 -.L1618: +.L1654: bl FlashEraseBlocks -.L1575: +.L1611: ldrb w1, [x19, 8] mov w2, w20 - ldr x0, [x25, #:lo12:.LANCHOR78] + ldr x0, [x25, #:lo12:.LANCHOR77] mov x24, 0 bl FlashEraseBlocks mov w1, 0 mov x3, 56 -.L1577: +.L1613: cmp w20, w24, uxth - bhi .L1579 - cbz w1, .L1580 + bhi .L1615 + cbz w1, .L1616 mov w0, w22 bl update_multiplier_value bl FtlBbmTblFlush -.L1580: +.L1616: ldrb w0, [x19, 7] - cbnz w0, .L1581 - adrp x0, .LANCHOR84 + cbnz w0, .L1617 + adrp x0, .LANCHOR83 mov w1, -1 - ldr x0, [x0, #:lo12:.LANCHOR84] + ldr x0, [x0, #:lo12:.LANCHOR83] strh w1, [x0, x21] - b .L1605 -.L1564: + b .L1641 +.L1600: ldrh w3, [x5] stp xzr, xzr, [x0] cmp w3, w6 - beq .L1563 + beq .L1599 umaddl x7, w20, w2, x4 add w20, w20, 1 and w20, w20, 65535 lsl w3, w3, 10 str w3, [x7, 4] -.L1563: +.L1599: add x0, x0, 56 add x5, x5, 2 - b .L1562 -.L1569: + b .L1598 +.L1605: mov w0, 2 - b .L1617 -.L1568: + b .L1653 +.L1604: ldrh w0, [x1, x21] add w0, w0, 1 strh w0, [x1, x21] @@ -10851,22 +11109,22 @@ allocate_data_superblock: str w0, [x4, #:lo12:.LANCHOR168] mov w0, w22 bl ftl_set_blk_mode.part.10 - b .L1571 -.L1574: + b .L1607 +.L1610: ldr w3, [x2] and w3, w3, -1024 str w3, [x2], 56 - b .L1573 -.L1576: + b .L1609 +.L1612: mov w1, 1 - b .L1618 -.L1579: + b .L1654 +.L1615: mul x0, x24, x3 - ldr x2, [x25, #:lo12:.LANCHOR78] + ldr x2, [x25, #:lo12:.LANCHOR77] add x4, x2, x0 ldr w2, [x2, x0] cmn w2, #1 - bne .L1578 + bne .L1614 add w1, w1, 1 ldr w0, [x4, 4] str x3, [x29, 104] @@ -10879,15 +11137,15 @@ allocate_data_superblock: ldrb w0, [x19, 7] sub w0, w0, #1 strb w0, [x19, 7] -.L1578: +.L1614: add x24, x24, 1 add x26, x26, 2 - b .L1577 -.L1581: - adrp x1, .LANCHOR53 + b .L1613 +.L1617: + adrp x1, .LANCHOR52 adrp x2, .LANCHOR159 strh wzr, [x19, 2] - ldrh w1, [x1, #:lo12:.LANCHOR53] + ldrh w1, [x1, #:lo12:.LANCHOR52] strh w22, [x19] strb wzr, [x19, 6] mul w0, w0, w1 @@ -10895,17 +11153,17 @@ allocate_data_superblock: str w1, [x19, 12] add w1, w1, 1 str w1, [x2, #:lo12:.LANCHOR159] - adrp x1, .LANCHOR84 + adrp x1, .LANCHOR83 and w0, w0, 65535 strh w0, [x19, 4] - ldr x1, [x1, #:lo12:.LANCHOR84] + ldr x1, [x1, #:lo12:.LANCHOR83] strh w0, [x1, x21] ldrh w0, [x19, 4] - cbz w0, .L1582 + cbz w0, .L1618 ldrb w0, [x19, 7] - cbnz w0, .L1552 -.L1582: - mov w2, 3225 + cbnz w0, .L1588 +.L1618: + mov w2, 3256 adrp x1, .LANCHOR203 adrp x0, .LC5 add x1, x1, :lo12:.LANCHOR203 @@ -10916,7 +11174,7 @@ allocate_data_superblock: add x1, x1, :lo12:.LC6 add x0, x0, :lo12:.LC7 bl printf -.L1552: +.L1588: ldp x19, x20, [sp, 16] mov w0, 0 ldp x21, x22, [sp, 32] @@ -10925,7 +11183,7 @@ allocate_data_superblock: ldp x27, x28, [sp, 80] ldp x29, x30, [sp], 128 ret -.L1614: +.L1650: mov w0, 0 ret .size allocate_data_superblock, .-allocate_data_superblock @@ -10937,24 +11195,24 @@ FtlGcFreeBadSuperBlk: stp x29, x30, [sp, -96]! add x29, sp, 0 stp x21, x22, [sp, 32] - adrp x21, .LANCHOR117 + adrp x21, .LANCHOR116 stp x25, x26, [sp, 64] and w25, w0, 65535 - ldrh w0, [x21, #:lo12:.LANCHOR117] + ldrh w0, [x21, #:lo12:.LANCHOR116] stp x19, x20, [sp, 16] stp x23, x24, [sp, 48] str x27, [sp, 80] - cbz w0, .L1620 - adrp x23, .LANCHOR118 - add x24, x23, :lo12:.LANCHOR118 + cbz w0, .L1656 + adrp x23, .LANCHOR117 + add x24, x23, :lo12:.LANCHOR117 mov w19, 0 -.L1621: +.L1657: adrp x0, .LANCHOR38 ldrh w0, [x0, #:lo12:.LANCHOR38] cmp w0, w19 - bhi .L1627 + bhi .L1663 bl FtlGcReFreshBadBlk -.L1620: +.L1656: mov w0, 0 ldr x27, [sp, 80] ldp x19, x20, [sp, 16] @@ -10963,28 +11221,28 @@ FtlGcFreeBadSuperBlk: ldp x25, x26, [sp, 64] ldp x29, x30, [sp], 96 ret -.L1627: +.L1663: adrp x0, .LANCHOR47 add x0, x0, :lo12:.LANCHOR47 mov w1, w25 - add x22, x21, :lo12:.LANCHOR117 + add x22, x21, :lo12:.LANCHOR116 mov w20, 0 ldrb w0, [x0, w19, sxtw] bl V2P_block and w26, w0, 65535 -.L1622: +.L1658: ldrh w0, [x22] cmp w0, w20 - bhi .L1626 + bhi .L1662 add w19, w19, 1 and w19, w19, 65535 - b .L1621 -.L1626: - add x0, x23, :lo12:.LANCHOR118 + b .L1657 +.L1662: + add x0, x23, :lo12:.LANCHOR117 add w27, w20, 1 ldrh w0, [x0, w20, sxtw 1] cmp w0, w26 - bne .L1623 + bne .L1659 mov w0, w26 bl FtlBbmMapBadBlock bl FtlBbmTblFlush @@ -10992,22 +11250,22 @@ FtlGcFreeBadSuperBlk: sxtw x3, w27 and x4, x20, 65535 mov x0, 0 -.L1624: +.L1660: add w2, w20, w0 cmp w1, w2, uxth - bhi .L1625 + bhi .L1661 sub w1, w1, #1 strh w1, [x22] -.L1623: +.L1659: and w20, w27, 65535 - b .L1622 -.L1625: + b .L1658 +.L1661: add x2, x3, x0 ldrh w5, [x24, x2, lsl 1] add x2, x4, x0 add x0, x0, 1 strh w5, [x24, x2, lsl 1] - b .L1624 + b .L1660 .size FtlGcFreeBadSuperBlk, .-FtlGcFreeBadSuperBlk .section .text.update_vpc_list,"ax",@progbits .align 2 @@ -11015,29 +11273,29 @@ FtlGcFreeBadSuperBlk: .type update_vpc_list, %function update_vpc_list: stp x29, x30, [sp, -32]! - adrp x1, .LANCHOR84 + adrp x1, .LANCHOR83 add x29, sp, 0 stp x19, x20, [sp, 16] and w19, w0, 65535 - ldr x1, [x1, #:lo12:.LANCHOR84] + ldr x1, [x1, #:lo12:.LANCHOR83] ubfiz x0, x19, 1, 16 ldrh w0, [x1, x0] - cbnz w0, .L1633 + cbnz w0, .L1669 adrp x0, .LANCHOR204 ldrh w1, [x0, #:lo12:.LANCHOR204] cmp w1, w19 - bne .L1634 + bne .L1670 mov w1, -1 strh w1, [x0, #:lo12:.LANCHOR204] -.L1635: - adrp x20, .LANCHOR86 +.L1671: + adrp x20, .LANCHOR85 mov w1, w19 - adrp x0, .LANCHOR83 - add x0, x0, :lo12:.LANCHOR83 + adrp x0, .LANCHOR82 + add x0, x0, :lo12:.LANCHOR82 bl List_remove_node - ldrh w0, [x20, #:lo12:.LANCHOR86] - cbnz w0, .L1637 - mov w2, 3336 + ldrh w0, [x20, #:lo12:.LANCHOR85] + cbnz w0, .L1673 + mov w2, 3367 adrp x1, .LANCHOR206 adrp x0, .LC5 add x1, x1, :lo12:.LANCHOR206 @@ -11048,23 +11306,23 @@ update_vpc_list: add x1, x1, :lo12:.LC6 add x0, x0, :lo12:.LC7 bl printf -.L1637: - ldrh w0, [x20, #:lo12:.LANCHOR86] +.L1673: + ldrh w0, [x20, #:lo12:.LANCHOR85] sub w0, w0, #1 - strh w0, [x20, #:lo12:.LANCHOR86] + strh w0, [x20, #:lo12:.LANCHOR85] mov w0, w19 bl free_data_superblock mov w0, w19 bl FtlGcFreeBadSuperBlk - adrp x0, .LANCHOR89 - ldrh w1, [x20, #:lo12:.LANCHOR86] - ldrh w0, [x0, #:lo12:.LANCHOR89] + adrp x0, .LANCHOR88 + ldrh w1, [x20, #:lo12:.LANCHOR85] + ldrh w0, [x0, #:lo12:.LANCHOR88] add w0, w0, w1 adrp x1, .LANCHOR40 ldrh w1, [x1, #:lo12:.LANCHOR40] cmp w0, w1 - ble .L1641 - mov w2, 3339 + ble .L1677 + mov w2, 3370 adrp x1, .LANCHOR206 adrp x0, .LC5 add x1, x1, :lo12:.LANCHOR206 @@ -11075,32 +11333,32 @@ update_vpc_list: add x1, x1, :lo12:.LC6 add x0, x0, :lo12:.LC7 bl printf -.L1641: +.L1677: mov w0, 1 - b .L1632 -.L1634: + b .L1668 +.L1670: + adrp x0, .LANCHOR91 + ldrh w0, [x0, #:lo12:.LANCHOR91] + cmp w0, w19 + beq .L1676 adrp x0, .LANCHOR92 ldrh w0, [x0, #:lo12:.LANCHOR92] cmp w0, w19 - beq .L1640 + beq .L1676 adrp x0, .LANCHOR93 ldrh w0, [x0, #:lo12:.LANCHOR93] cmp w0, w19 - beq .L1640 - adrp x0, .LANCHOR94 - ldrh w0, [x0, #:lo12:.LANCHOR94] - cmp w0, w19 - bne .L1635 -.L1640: + bne .L1671 +.L1676: mov w0, 0 -.L1632: +.L1668: ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 32 ret -.L1633: +.L1669: mov w0, w19 bl List_update_data_list - b .L1640 + b .L1676 .size update_vpc_list, .-update_vpc_list .section .text.decrement_vpc_count,"ax",@progbits .align 2 @@ -11114,21 +11372,21 @@ decrement_vpc_count: stp x21, x22, [sp, 32] mov w0, 65535 cmp w19, w0 - beq .L1644 - adrp x20, .LANCHOR84 + beq .L1680 + adrp x20, .LANCHOR83 ubfiz x21, x19, 1, 16 - ldr x1, [x20, #:lo12:.LANCHOR84] + ldr x1, [x20, #:lo12:.LANCHOR83] ldrh w0, [x1, x21] - cbnz w0, .L1645 + cbnz w0, .L1681 mov w2, 0 mov w1, w19 adrp x0, .LC36 add x0, x0, :lo12:.LC36 bl printf - ldr x0, [x20, #:lo12:.LANCHOR84] + ldr x0, [x20, #:lo12:.LANCHOR83] ldrh w0, [x0, x21] - cbnz w0, .L1646 - mov w2, 3354 + cbnz w0, .L1682 + mov w2, 3385 adrp x1, .LANCHOR207 adrp x0, .LC5 add x1, x1, :lo12:.LANCHOR207 @@ -11139,23 +11397,23 @@ decrement_vpc_count: add x1, x1, :lo12:.LC6 add x0, x0, :lo12:.LC7 bl printf -.L1646: - ldr x0, [x20, #:lo12:.LANCHOR84] - adrp x6, .LANCHOR88 - add x6, x6, :lo12:.LANCHOR88 +.L1682: + ldr x0, [x20, #:lo12:.LANCHOR83] + adrp x6, .LANCHOR87 + add x6, x6, :lo12:.LANCHOR87 mov w1, 32 strh w1, [x0, x21] mov w1, w19 mov x0, x6 bl test_node_in_list - cbz w0, .L1647 - adrp x22, .LANCHOR89 + cbz w0, .L1683 + adrp x22, .LANCHOR88 mov w1, w19 mov x0, x6 bl List_remove_node - ldrh w0, [x22, #:lo12:.LANCHOR89] - cbnz w0, .L1648 - mov w2, 3358 + ldrh w0, [x22, #:lo12:.LANCHOR88] + cbnz w0, .L1684 + mov w2, 3389 adrp x1, .LANCHOR207 adrp x0, .LC5 add x1, x1, :lo12:.LANCHOR207 @@ -11166,59 +11424,59 @@ decrement_vpc_count: add x1, x1, :lo12:.LC6 add x0, x0, :lo12:.LC7 bl printf -.L1648: - ldrh w0, [x22, #:lo12:.LANCHOR89] +.L1684: + ldrh w0, [x22, #:lo12:.LANCHOR88] sub w0, w0, #1 - strh w0, [x22, #:lo12:.LANCHOR89] + strh w0, [x22, #:lo12:.LANCHOR88] mov w0, w19 bl INSERT_DATA_LIST - ldr x0, [x20, #:lo12:.LANCHOR84] + ldr x0, [x20, #:lo12:.LANCHOR83] mov w1, w19 ldrh w2, [x0, x21] adrp x0, .LC37 add x0, x0, :lo12:.LC37 bl printf -.L1647: +.L1683: mov w0, w19 bl FtlGcRefreshBlock -.L1651: +.L1687: mov w20, 0 - b .L1643 -.L1645: + b .L1679 +.L1681: sub w0, w0, #1 strh w0, [x1, x21] -.L1644: +.L1680: adrp x21, .LANCHOR133 mov w1, 65535 ldrh w0, [x21, #:lo12:.LANCHOR133] cmp w0, w1 - bne .L1650 + bne .L1686 strh w19, [x21, #:lo12:.LANCHOR133] - b .L1651 -.L1650: + b .L1687 +.L1686: cmp w19, w0 - beq .L1651 + beq .L1687 bl update_vpc_list cmp w0, 0 - adrp x1, .LANCHOR82 - adrp x0, .LANCHOR83 + adrp x1, .LANCHOR81 + adrp x0, .LANCHOR82 strh w19, [x21, #:lo12:.LANCHOR133] cset w20, ne - ldr x1, [x1, #:lo12:.LANCHOR82] - ldr x0, [x0, #:lo12:.LANCHOR83] + ldr x1, [x1, #:lo12:.LANCHOR81] + ldr x0, [x0, #:lo12:.LANCHOR82] sub x0, x0, x1 mov x1, -6148914691236517206 asr x0, x0, 1 movk x1, 0xaaab, lsl 0 mul x0, x0, x1 - adrp x1, .LANCHOR84 - ldr x1, [x1, #:lo12:.LANCHOR84] + adrp x1, .LANCHOR83 + ldr x1, [x1, #:lo12:.LANCHOR83] and x2, x0, 65535 ldrh w1, [x1, x2, lsl 1] - cbnz w1, .L1643 + cbnz w1, .L1679 cmp w19, w0, uxth - beq .L1643 - mov w2, 3379 + beq .L1679 + mov w2, 3410 adrp x1, .LANCHOR207 adrp x0, .LC5 add x1, x1, :lo12:.LANCHOR207 @@ -11229,7 +11487,7 @@ decrement_vpc_count: add x1, x1, :lo12:.LC6 add x0, x0, :lo12:.LC7 bl printf -.L1643: +.L1679: mov w0, w20 ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] @@ -11242,7 +11500,7 @@ decrement_vpc_count: .type FtlSlcSuperblockCheck, %function FtlSlcSuperblockCheck: ldrh w1, [x0, 4] - cbz w1, .L1668 + cbz w1, .L1704 stp x29, x30, [sp, -64]! add x29, sp, 0 stp x19, x20, [sp, 16] @@ -11251,46 +11509,46 @@ FtlSlcSuperblockCheck: stp x21, x22, [sp, 32] str x23, [sp, 48] cmp w1, w20 - beq .L1656 + beq .L1692 mov x19, x0 ldrb w0, [x0, 6] - adrp x22, .LANCHOR8 + adrp x22, .LANCHOR15 adrp x21, .LANCHOR120 add x0, x0, 8 - add x23, x22, :lo12:.LANCHOR8 + add x23, x22, :lo12:.LANCHOR15 add x21, x21, :lo12:.LANCHOR120 ldrh w0, [x19, x0, lsl 1] -.L1660: +.L1696: cmp w0, w20 - beq .L1662 + beq .L1698 ldrb w0, [x19, 8] cmp w0, 1 - bne .L1663 + bne .L1699 ldrb w1, [x23] - cbnz w1, .L1663 + cbnz w1, .L1699 ldrh w1, [x19, 2] ldrh w1, [x21, x1, lsl 1] cmp w1, w20 - bne .L1663 + bne .L1699 ldrh w0, [x19, 4] sub w0, w0, #1 strh w0, [x19, 4] ldrh w0, [x19] bl decrement_vpc_count ldrh w0, [x19, 4] - cbnz w0, .L1662 + cbnz w0, .L1698 ldrh w0, [x19, 2] add w0, w0, 1 -.L1671: +.L1707: strh w0, [x19, 2] strb wzr, [x19, 6] -.L1656: +.L1692: ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldr x23, [sp, 48] ldp x29, x30, [sp], 64 ret -.L1662: +.L1698: ldrb w0, [x19, 6] adrp x1, .LANCHOR38 add w0, w0, 1 @@ -11298,39 +11556,39 @@ FtlSlcSuperblockCheck: and w0, w0, 255 strb w0, [x19, 6] cmp w1, w0 - bne .L1661 + bne .L1697 ldrh w0, [x19, 2] strb wzr, [x19, 6] add w0, w0, 1 strh w0, [x19, 2] -.L1661: +.L1697: ldrb w0, [x19, 6] add x0, x0, 8 ldrh w0, [x19, x0, lsl 1] - b .L1660 -.L1663: - ldrb w1, [x22, #:lo12:.LANCHOR8] - cbz w1, .L1656 + b .L1696 +.L1699: + ldrb w1, [x22, #:lo12:.LANCHOR15] + cbz w1, .L1692 cmp w0, 1 - bne .L1656 - adrp x0, .LANCHOR54 + bne .L1692 + adrp x0, .LANCHOR53 ldrh w1, [x19, 2] - ldrh w0, [x0, #:lo12:.LANCHOR54] + ldrh w0, [x0, #:lo12:.LANCHOR53] cmp w1, w0 - bcc .L1656 + bcc .L1692 ldrh w0, [x19] - adrp x1, .LANCHOR84 + adrp x1, .LANCHOR83 ldrh w3, [x19, 4] - ldr x2, [x1, #:lo12:.LANCHOR84] + ldr x2, [x1, #:lo12:.LANCHOR83] lsl x0, x0, 1 ldrh w1, [x2, x0] sub w1, w1, w3 strh w1, [x2, x0] - adrp x0, .LANCHOR53 + adrp x0, .LANCHOR52 strh wzr, [x19, 4] - ldrh w0, [x0, #:lo12:.LANCHOR53] - b .L1671 -.L1668: + ldrh w0, [x0, #:lo12:.LANCHOR52] + b .L1707 +.L1704: ret .size FtlSlcSuperblockCheck, .-FtlSlcSuperblockCheck .section .text.get_new_active_ppa,"ax",@progbits @@ -11348,8 +11606,8 @@ get_new_active_ppa: stp x23, x24, [sp, 48] cmp w1, w0 str x25, [sp, 64] - bne .L1673 - mov w2, 3276 + bne .L1709 + mov w2, 3307 adrp x1, .LANCHOR208 adrp x0, .LC5 add x1, x1, :lo12:.LANCHOR208 @@ -11360,13 +11618,13 @@ get_new_active_ppa: add x1, x1, :lo12:.LC6 add x0, x0, :lo12:.LC7 bl printf -.L1673: - adrp x20, .LANCHOR53 +.L1709: + adrp x20, .LANCHOR52 ldrh w1, [x19, 2] - ldrh w0, [x20, #:lo12:.LANCHOR53] + ldrh w0, [x20, #:lo12:.LANCHOR52] cmp w1, w0 - bne .L1674 - mov w2, 3277 + bne .L1710 + mov w2, 3308 adrp x1, .LANCHOR208 adrp x0, .LC5 add x1, x1, :lo12:.LANCHOR208 @@ -11377,10 +11635,10 @@ get_new_active_ppa: add x1, x1, :lo12:.LC6 add x0, x0, :lo12:.LC7 bl printf -.L1674: +.L1710: ldrh w0, [x19, 4] - cbnz w0, .L1675 - mov w2, 3278 + cbnz w0, .L1711 + mov w2, 3309 adrp x1, .LANCHOR208 adrp x0, .LC5 add x1, x1, :lo12:.LANCHOR208 @@ -11391,120 +11649,120 @@ get_new_active_ppa: add x1, x1, :lo12:.LC6 add x0, x0, :lo12:.LC7 bl printf -.L1675: +.L1711: ldrb w0, [x19, 6] adrp x21, .LANCHOR38 strb wzr, [x19, 10] - adrp x23, .LANCHOR8 + adrp x23, .LANCHOR15 add x0, x0, 8 adrp x24, .LANCHOR120 - add x23, x23, :lo12:.LANCHOR8 + add x23, x23, :lo12:.LANCHOR15 add x24, x24, :lo12:.LANCHOR120 add x25, x21, :lo12:.LANCHOR38 ldrh w22, [x19, x0, lsl 1] -.L1676: +.L1712: mov w2, 65535 cmp w22, w2 - beq .L1677 + beq .L1713 ldrb w0, [x19, 8] ldrh w1, [x19, 4] cmp w0, 1 ldrh w0, [x19, 2] - bne .L1679 + bne .L1715 ldrb w3, [x23] - cbnz w3, .L1679 + cbnz w3, .L1715 ldrh w3, [x24, w0, sxtw 1] cmp w3, w2 - bne .L1679 + bne .L1715 ldrh w0, [x19] sub w1, w1, #1 strh w1, [x19, 4] bl decrement_vpc_count -.L1677: +.L1713: ldrb w0, [x19, 6] ldrh w1, [x25] add w0, w0, 1 and w0, w0, 255 strb w0, [x19, 6] cmp w1, w0 - bne .L1678 + bne .L1714 ldrh w0, [x19, 2] strb wzr, [x19, 6] add w0, w0, 1 strh w0, [x19, 2] -.L1678: +.L1714: ldrb w0, [x19, 6] add x0, x0, 8 ldrh w22, [x19, x0, lsl 1] - b .L1676 -.L1679: - adrp x23, .LANCHOR8 + b .L1712 +.L1715: + adrp x23, .LANCHOR15 adrp x24, .LANCHOR120 orr w22, w0, w22, lsl 10 - add x23, x23, :lo12:.LANCHOR8 + add x23, x23, :lo12:.LANCHOR15 add x24, x24, :lo12:.LANCHOR120 sub w1, w1, #1 strh w1, [x19, 4] -.L1680: +.L1716: ldrb w0, [x19, 6] mov w1, 65535 ldrh w3, [x21, #:lo12:.LANCHOR38] -.L1682: +.L1718: add w0, w0, 1 and w0, w0, 255 cmp w0, w3 - bne .L1681 + bne .L1717 ldrh w0, [x19, 2] add w0, w0, 1 strh w0, [x19, 2] mov w0, 0 -.L1681: +.L1717: add x2, x19, x0, sxtw 1 ldrh w2, [x2, 16] cmp w2, w1 - beq .L1682 + beq .L1718 strb w0, [x19, 6] ldrb w0, [x19, 8] cmp w0, 1 - bne .L1683 + bne .L1719 ldrb w2, [x23] ldrh w0, [x19, 2] - cbnz w2, .L1684 + cbnz w2, .L1720 ldrh w0, [x24, w0, sxtw 1] cmp w0, w1 - bne .L1683 + bne .L1719 ldrh w0, [x19, 4] - cbz w0, .L1683 + cbz w0, .L1719 sub w0, w0, #1 strh w0, [x19, 4] ldrh w0, [x19] bl decrement_vpc_count - b .L1680 -.L1684: - adrp x1, .LANCHOR54 - ldrh w1, [x1, #:lo12:.LANCHOR54] + b .L1716 +.L1720: + adrp x1, .LANCHOR53 + ldrh w1, [x1, #:lo12:.LANCHOR53] cmp w0, w1 - bcc .L1683 + bcc .L1719 ldrh w0, [x19] - adrp x1, .LANCHOR84 + adrp x1, .LANCHOR83 ldrh w3, [x19, 4] - ldr x2, [x1, #:lo12:.LANCHOR84] + ldr x2, [x1, #:lo12:.LANCHOR83] lsl x0, x0, 1 ldrh w1, [x2, x0] sub w1, w1, w3 strh w1, [x2, x0] strh wzr, [x19, 4] - ldrh w0, [x20, #:lo12:.LANCHOR53] + ldrh w0, [x20, #:lo12:.LANCHOR52] strh w0, [x19, 2] strb wzr, [x19, 6] -.L1683: +.L1719: ldrh w1, [x19, 2] - ldrh w0, [x20, #:lo12:.LANCHOR53] + ldrh w0, [x20, #:lo12:.LANCHOR52] cmp w1, w0 - bne .L1672 + bne .L1708 ldrh w0, [x19, 4] - cbz w0, .L1672 - mov w2, 3322 + cbz w0, .L1708 + mov w2, 3353 adrp x1, .LANCHOR208 adrp x0, .LC5 add x1, x1, :lo12:.LANCHOR208 @@ -11515,7 +11773,7 @@ get_new_active_ppa: add x1, x1, :lo12:.LC6 add x0, x0, :lo12:.LC7 bl printf -.L1672: +.L1708: mov w0, w22 ldr x25, [sp, 64] ldp x19, x20, [sp, 16] @@ -11532,14 +11790,14 @@ FtlVpcTblFlush: stp x29, x30, [sp, -112]! add x29, sp, 0 stp x23, x24, [sp, 48] - adrp x24, .LANCHOR77 + adrp x24, .LANCHOR76 stp x19, x20, [sp, 16] - ldr w0, [x24, #:lo12:.LANCHOR77] + ldr w0, [x24, #:lo12:.LANCHOR76] stp x21, x22, [sp, 32] stp x25, x26, [sp, 64] stp x27, x28, [sp, 80] str x24, [x29, 104] - cbnz w0, .L1697 + cbnz w0, .L1733 adrp x26, .LANCHOR188 adrp x28, .LANCHOR202 adrp x23, .LANCHOR209 @@ -11560,20 +11818,20 @@ FtlVpcTblFlush: adrp x27, .LANCHOR40 ldrh w1, [x1, 6] stp w2, wzr, [x20, 4] - adrp x2, .LANCHOR81 - add x19, x2, :lo12:.LANCHOR81 + adrp x2, .LANCHOR80 + add x19, x2, :lo12:.LANCHOR80 str wzr, [x20, 12] - str w3, [x2, #:lo12:.LANCHOR81] - mov w2, 80 + str w3, [x2, #:lo12:.LANCHOR80] + mov w2, 83 movk w2, 0x5000, lsl 16 strh w1, [x19, 8] adrp x1, .LANCHOR45 str w2, [x19, 4] - adrp x2, .LANCHOR92 + adrp x2, .LANCHOR91 ldrh w1, [x1, #:lo12:.LANCHOR45] strb w1, [x19, 10] - add x1, x2, :lo12:.LANCHOR92 - ldrh w2, [x2, #:lo12:.LANCHOR92] + add x1, x2, :lo12:.LANCHOR91 + ldrh w2, [x2, #:lo12:.LANCHOR91] strh w2, [x19, 14] ldrb w3, [x1, 6] ldrh w2, [x1, 2] @@ -11581,9 +11839,9 @@ FtlVpcTblFlush: strb w1, [x19, 11] orr w2, w3, w2, lsl 6 strh w2, [x19, 16] - adrp x2, .LANCHOR93 - add x1, x2, :lo12:.LANCHOR93 - ldrh w2, [x2, #:lo12:.LANCHOR93] + adrp x2, .LANCHOR92 + add x1, x2, :lo12:.LANCHOR92 + ldrh w2, [x2, #:lo12:.LANCHOR92] ldrb w3, [x1, 6] strh w2, [x19, 18] ldrh w2, [x1, 2] @@ -11591,9 +11849,9 @@ FtlVpcTblFlush: strb w1, [x19, 12] orr w2, w3, w2, lsl 6 strh w2, [x19, 20] - adrp x2, .LANCHOR94 - add x1, x2, :lo12:.LANCHOR94 - ldrh w2, [x2, #:lo12:.LANCHOR94] + adrp x2, .LANCHOR93 + add x1, x2, :lo12:.LANCHOR93 + ldrh w2, [x2, #:lo12:.LANCHOR93] strh w2, [x19, 22] ldrb w3, [x1, 6] ldrh w2, [x1, 2] @@ -11609,14 +11867,14 @@ FtlVpcTblFlush: adrp x1, .LANCHOR160 ldr w1, [x1, #:lo12:.LANCHOR160] str w1, [x19, 36] + adrp x1, .LANCHOR112 + ldrh w1, [x1, #:lo12:.LANCHOR112] + strh w1, [x19, 44] adrp x1, .LANCHOR113 ldrh w1, [x1, #:lo12:.LANCHOR113] - strh w1, [x19, 44] - adrp x1, .LANCHOR114 - ldrh w1, [x1, #:lo12:.LANCHOR114] strh w1, [x19, 46] - adrp x1, .LANCHOR58 - ldrh w2, [x1, #:lo12:.LANCHOR58] + adrp x1, .LANCHOR57 + ldrh w2, [x1, #:lo12:.LANCHOR57] mov w1, 255 bl ftl_memset ldr x0, [x21, 8] @@ -11624,10 +11882,10 @@ FtlVpcTblFlush: mov w2, 48 mov x19, x28 bl ftl_memcpy - adrp x1, .LANCHOR84 + adrp x1, .LANCHOR83 ldrh w2, [x27, #:lo12:.LANCHOR40] ldr x0, [x21, 8] - ldr x1, [x1, #:lo12:.LANCHOR84] + ldr x1, [x1, #:lo12:.LANCHOR83] lsl w2, w2, 1 add x0, x0, 48 bl ftl_memcpy @@ -11642,13 +11900,13 @@ FtlVpcTblFlush: and x0, x0, -4 add x0, x3, x0 bl ftl_memcpy - adrp x0, .LANCHOR70 - ldrh w0, [x0, #:lo12:.LANCHOR70] - cbz w0, .L1698 + adrp x0, .LANCHOR69 + ldrh w0, [x0, #:lo12:.LANCHOR69] + cbz w0, .L1734 ldrh w0, [x27, #:lo12:.LANCHOR40] - adrp x1, .LANCHOR67 + adrp x1, .LANCHOR66 ldr x3, [x21, 8] - ldrh w2, [x1, #:lo12:.LANCHOR67] + ldrh w2, [x1, #:lo12:.LANCHOR66] lsr w1, w0, 3 add w0, w1, w0, lsl 1 adrp x1, .LANCHOR131 @@ -11658,17 +11916,17 @@ FtlVpcTblFlush: and x0, x0, 65532 add x0, x3, x0 bl ftl_memcpy -.L1698: +.L1734: add x28, x19, :lo12:.LANCHOR202 mov w0, 0 add x24, x23, :lo12:.LANCHOR209 bl FtlUpdateVaildLpn - adrp x23, .LANCHOR54 + adrp x23, .LANCHOR53 mov w21, 0 - add x23, x23, :lo12:.LANCHOR54 + add x23, x23, :lo12:.LANCHOR53 mov w27, 65535 str x23, [x29, 96] -.L1699: +.L1735: ldrh w2, [x24, 2] ldrh w1, [x24] ldr x0, [x25, #:lo12:.LANCHOR183] @@ -11680,7 +11938,7 @@ FtlVpcTblFlush: ldrh w0, [x23] sub w0, w0, #1 cmp w2, w0 - blt .L1700 + blt .L1736 ldrh w27, [x24, 4] strh wzr, [x24, 2] strh w1, [x24, 4] @@ -11694,7 +11952,7 @@ FtlVpcTblFlush: strh w0, [x24] strh w0, [x20, 2] str w1, [x20, 4] -.L1700: +.L1736: mov w3, 1 mov x0, x28 mov w1, w3 @@ -11706,10 +11964,10 @@ FtlVpcTblFlush: and w0, w0, 65535 strh w0, [x24, 2] cmn w1, #1 - bne .L1701 + bne .L1737 cmp w0, 1 - bne .L1702 - mov w2, 1209 + bne .L1738 + mov w2, 1217 adrp x1, .LANCHOR210 adrp x0, .LC5 add x1, x1, :lo12:.LANCHOR210 @@ -11720,19 +11978,19 @@ FtlVpcTblFlush: add x1, x1, :lo12:.LC6 add x0, x0, :lo12:.LC7 bl printf -.L1702: +.L1738: ldrh w0, [x24, 2] cmp w0, 1 - bne .L1703 + bne .L1739 ldr x0, [x29, 96] ldrh w0, [x0] sub w0, w0, #1 strh w0, [x24, 2] -.L1703: +.L1739: add w21, w21, 1 and w21, w21, 65535 cmp w21, 3 - bls .L1699 + bls .L1735 add x19, x19, :lo12:.LANCHOR202 mov w2, w21 adrp x0, .LC38 @@ -11741,8 +11999,8 @@ FtlVpcTblFlush: bl printf ldr x1, [x29, 104] mov w0, 1 - str w0, [x1, #:lo12:.LANCHOR77] -.L1697: + str w0, [x1, #:lo12:.LANCHOR76] +.L1733: ldp x19, x20, [sp, 16] mov w0, 0 ldp x21, x22, [sp, 32] @@ -11751,18 +12009,18 @@ FtlVpcTblFlush: ldp x27, x28, [sp, 80] ldp x29, x30, [sp], 112 ret -.L1701: +.L1737: cmp w0, 1 - beq .L1699 + beq .L1735 cmp w1, 256 - beq .L1699 + beq .L1735 mov w0, 65535 cmp w27, w0 - beq .L1697 + beq .L1733 mov w1, 1 mov w0, w27 bl FtlFreeSysBlkQueueIn - b .L1697 + b .L1733 .size FtlVpcTblFlush, .-FtlVpcTblFlush .section .text.FtlSuperblockPowerLostFix,"ax",@progbits .align 2 @@ -11770,22 +12028,22 @@ FtlVpcTblFlush: .type FtlSuperblockPowerLostFix, %function FtlSuperblockPowerLostFix: stp x29, x30, [sp, -128]! - adrp x1, .LANCHOR77 + adrp x1, .LANCHOR76 add x29, sp, 0 str x23, [sp, 48] - ldr w23, [x1, #:lo12:.LANCHOR77] + ldr w23, [x1, #:lo12:.LANCHOR76] stp x19, x20, [sp, 16] stp x21, x22, [sp, 32] - cbnz w23, .L1716 - adrp x1, .LANCHOR8 - ldrb w1, [x1, #:lo12:.LANCHOR8] - cbz w1, .L1727 + cbnz w23, .L1752 + adrp x1, .LANCHOR15 + ldrb w1, [x1, #:lo12:.LANCHOR15] + cbz w1, .L1763 ldrb w1, [x0, 8] cmp w1, 1 - bne .L1727 + bne .L1763 ldrh w21, [x0, 4] mov w23, w1 -.L1718: +.L1754: adrp x1, .LANCHOR188 mov x19, x0 mov w0, -1 @@ -11809,41 +12067,41 @@ FtlSuperblockPowerLostFix: mov w1, 22136 movk w1, 0x1234, lsl 16 str w1, [x0, 4] -.L1719: +.L1755: sub w21, w21, #1 cmn w21, #1 - beq .L1722 + beq .L1758 ldrh w0, [x19, 4] - cbnz w0, .L1720 -.L1722: + cbnz w0, .L1756 +.L1758: ldrh w0, [x19] - adrp x1, .LANCHOR84 + adrp x1, .LANCHOR83 ldrh w3, [x19, 4] - ldr x2, [x1, #:lo12:.LANCHOR84] + ldr x2, [x1, #:lo12:.LANCHOR83] lsl x0, x0, 1 ldrh w1, [x2, x0] sub w1, w1, w3 strh w1, [x2, x0] - adrp x0, .LANCHOR53 + adrp x0, .LANCHOR52 strb wzr, [x19, 6] strh wzr, [x19, 4] - ldrh w0, [x0, #:lo12:.LANCHOR53] + ldrh w0, [x0, #:lo12:.LANCHOR52] strh w0, [x19, 2] -.L1716: +.L1752: ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldr x23, [sp, 48] ldp x29, x30, [sp], 128 ret -.L1727: +.L1763: mov w21, 12 - b .L1718 -.L1720: + b .L1754 +.L1756: mov x0, x19 bl get_new_active_ppa str w0, [x29, 76] cmn w0, #1 - beq .L1722 + beq .L1758 ldr w0, [x22] mov w3, 0 str w0, [x20, 4] @@ -11857,7 +12115,7 @@ FtlSuperblockPowerLostFix: bl FlashProgPages ldrh w0, [x19] bl decrement_vpc_count - b .L1719 + b .L1755 .size FtlSuperblockPowerLostFix, .-FtlSuperblockPowerLostFix .section .text.FtlLoadFactoryBbt,"ax",@progbits .align 2 @@ -11877,9 +12135,9 @@ FtlLoadFactoryBbt: stp x27, x28, [sp, 80] add x28, x26, :lo12:.LANCHOR51 stp x19, x20, [sp, 16] - adrp x20, .LANCHOR75 + adrp x20, .LANCHOR74 stp x23, x24, [sp, 48] - add x20, x20, :lo12:.LANCHOR75 + add x20, x20, :lo12:.LANCHOR74 str x2, [x1, 8] adrp x2, .LANCHOR188 adrp x23, .LANCHOR45 @@ -11889,10 +12147,10 @@ FtlLoadFactoryBbt: mov w21, 0 mov w27, -1 str x25, [x1, 16] -.L1733: +.L1769: ldrh w0, [x23] cmp w21, w0 - bcc .L1738 + bcc .L1774 ldp x19, x20, [sp, 16] mov w0, 0 ldp x21, x22, [sp, 32] @@ -11901,18 +12159,18 @@ FtlLoadFactoryBbt: ldp x27, x28, [sp, 80] ldp x29, x30, [sp], 112 ret -.L1738: +.L1774: ldrh w19, [x26, #:lo12:.LANCHOR51] add x24, x22, :lo12:.LANCHOR202 strh w27, [x20] mov w3, 61664 sub w19, w19, #1 and w19, w19, 65535 -.L1734: +.L1770: ldrh w0, [x28] sub w1, w0, #15 cmp w1, w19 - bgt .L1736 + bgt .L1772 madd w0, w0, w21, w19 mov w2, 1 str w3, [x29, 108] @@ -11924,19 +12182,19 @@ FtlLoadFactoryBbt: ldr w0, [x24] ldr w3, [x29, 108] cmn w0, #1 - beq .L1735 + beq .L1771 ldrh w0, [x25] cmp w0, w3 - bne .L1735 + bne .L1771 strh w19, [x20] -.L1736: +.L1772: add w21, w21, 1 add x20, x20, 2 - b .L1733 -.L1735: + b .L1769 +.L1771: sub w19, w19, #1 and w19, w19, 65535 - b .L1734 + b .L1770 .size FtlLoadFactoryBbt, .-FtlLoadFactoryBbt .section .text.FtlGetLastWrittenPage,"ax",@progbits .align 2 @@ -11950,10 +12208,10 @@ FtlGetLastWrittenPage: mov w23, w1 stp x19, x20, [sp, 16] stp x21, x22, [sp, 32] - bne .L1744 - adrp x1, .LANCHOR54 - ldrh w19, [x1, #:lo12:.LANCHOR54] -.L1745: + bne .L1780 + adrp x1, .LANCHOR53 + ldrh w19, [x1, #:lo12:.LANCHOR53] +.L1781: sub w19, w19, #1 lsl w21, w0, 10 sxth w19, w19 @@ -11967,24 +12225,24 @@ FtlGetLastWrittenPage: bl FlashReadPages ldr w0, [x29, 128] cmn w0, #1 - bne .L1746 + bne .L1782 mov w22, 0 mov w24, 2 -.L1747: +.L1783: cmp w22, w19 - ble .L1750 -.L1746: + ble .L1786 +.L1782: mov w0, w19 ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x23, x24, [sp, 48] ldp x29, x30, [sp], 192 ret -.L1744: - adrp x1, .LANCHOR53 - ldrh w19, [x1, #:lo12:.LANCHOR53] - b .L1745 -.L1750: +.L1780: + adrp x1, .LANCHOR52 + ldrh w19, [x1, #:lo12:.LANCHOR52] + b .L1781 +.L1786: add w20, w22, w19 mov w2, w23 mov w1, 1 @@ -11996,20 +12254,20 @@ FtlGetLastWrittenPage: bl FlashReadPages ldr w0, [x29, 128] cmn w0, #1 - bne .L1748 + bne .L1784 ldr w0, [x29, 132] cmn w0, #1 - bne .L1748 + bne .L1784 ldr w0, [x29, 72] cmn w0, #1 - beq .L1748 + beq .L1784 sub w19, w20, #1 sxth w19, w19 - b .L1747 -.L1748: + b .L1783 +.L1784: add w20, w20, 1 sxth w22, w20 - b .L1747 + b .L1783 .size FtlGetLastWrittenPage, .-FtlGetLastWrittenPage .section .text.FtlLoadBbt,"ax",@progbits .align 2 @@ -12037,11 +12295,11 @@ FtlLoadBbt: add x24, x24, :lo12:.LANCHOR51 sub w19, w19, #1 and w19, w19, 65535 -.L1756: +.L1792: ldrh w0, [x24] sub w0, w0, #47 cmp w0, w19 - bgt .L1759 + bgt .L1795 lsl w0, w19, 10 mov w2, 1 str w0, [x20, 4] @@ -12050,7 +12308,7 @@ FtlLoadBbt: bl FlashReadPages ldr w0, [x20] cmn w0, #1 - bne .L1757 + bne .L1793 ldr w0, [x20, 4] mov w2, 1 mov w1, w2 @@ -12058,30 +12316,30 @@ FtlLoadBbt: str w0, [x20, 4] mov x0, x20 bl FlashReadPages -.L1757: +.L1793: ldr w0, [x20] cmn w0, #1 - beq .L1758 + beq .L1794 ldrh w0, [x21] cmp w0, w25 - bne .L1758 - adrp x1, .LANCHOR75 - add x0, x1, :lo12:.LANCHOR75 - strh w19, [x1, #:lo12:.LANCHOR75] + bne .L1794 + adrp x1, .LANCHOR74 + add x0, x1, :lo12:.LANCHOR74 + strh w19, [x1, #:lo12:.LANCHOR74] ldr w1, [x21, 4] str w1, [x0, 8] ldrh w1, [x21, 8] strh w1, [x0, 4] -.L1759: - adrp x19, .LANCHOR75 +.L1795: + adrp x19, .LANCHOR74 mov w0, 65535 - add x20, x19, :lo12:.LANCHOR75 - ldrh w1, [x19, #:lo12:.LANCHOR75] + add x20, x19, :lo12:.LANCHOR74 + ldrh w1, [x19, #:lo12:.LANCHOR74] cmp w1, w0 - beq .L1773 + beq .L1809 ldrh w1, [x20, 4] cmp w1, w0 - beq .L1763 + beq .L1799 add x0, x22, :lo12:.LANCHOR202 lsl w1, w1, 10 mov w2, 1 @@ -12090,23 +12348,23 @@ FtlLoadBbt: bl FlashReadPages ldr w0, [x22, #:lo12:.LANCHOR202] cmn w0, #1 - beq .L1763 + beq .L1799 ldrh w1, [x21] mov w0, 61649 cmp w1, w0 - bne .L1763 + bne .L1799 ldr w1, [x20, 8] ldr w0, [x21, 4] cmp w0, w1 - bls .L1763 + bls .L1799 ldrh w1, [x20, 4] str w0, [x20, 8] ldrh w0, [x21, 8] - strh w1, [x19, #:lo12:.LANCHOR75] + strh w1, [x19, #:lo12:.LANCHOR74] strh w0, [x20, 4] -.L1763: - ldrh w0, [x19, #:lo12:.LANCHOR75] - add x24, x19, :lo12:.LANCHOR75 +.L1799: + ldrh w0, [x19, #:lo12:.LANCHOR74] + add x24, x19, :lo12:.LANCHOR74 mov w1, 1 mov w25, 61649 bl FtlGetLastWrittenPage @@ -12114,8 +12372,8 @@ FtlLoadBbt: add w0, w0, 1 strh w0, [x24, 2] add x24, x22, :lo12:.LANCHOR202 -.L1765: - tbz w20, #31, .L1768 +.L1801: + tbz w20, #31, .L1804 mov w2, 335 adrp x1, .LANCHOR211 adrp x0, .LC5 @@ -12127,28 +12385,28 @@ FtlLoadBbt: add x1, x1, :lo12:.LC6 add x0, x0, :lo12:.LC7 bl printf -.L1767: - add x0, x19, :lo12:.LANCHOR75 +.L1803: + add x0, x19, :lo12:.LANCHOR74 ldrh w1, [x21, 10] strh w1, [x0, 6] mov w1, 65535 ldrh w0, [x21, 12] cmp w0, w1 - beq .L1770 + beq .L1806 adrp x1, .LANCHOR37 ldr w2, [x1, #:lo12:.LANCHOR37] cmp w0, w2 - beq .L1770 + beq .L1806 adrp x1, .LANCHOR41 ldrh w1, [x1, #:lo12:.LANCHOR41] lsr w1, w1, 2 cmp w2, w1 - bcs .L1770 + bcs .L1806 cmp w0, w1 - bcs .L1770 + bcs .L1806 bl FtlSysBlkNumInit -.L1770: - add x19, x19, :lo12:.LANCHOR75 +.L1806: + add x19, x19, :lo12:.LANCHOR74 adrp x21, .LANCHOR45 adrp x23, .LANCHOR123 add x19, x19, 32 @@ -12156,24 +12414,24 @@ FtlLoadBbt: add x23, x23, :lo12:.LANCHOR123 add x22, x22, :lo12:.LANCHOR202 mov w20, 0 -.L1771: +.L1807: ldrh w0, [x21] cmp w20, w0 - bcc .L1772 + bcc .L1808 mov w0, 0 -.L1755: +.L1791: 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 -.L1758: +.L1794: sub w19, w19, #1 and w19, w19, 65535 - b .L1756 -.L1768: - ldrh w0, [x19, #:lo12:.LANCHOR75] + b .L1792 +.L1804: + ldrh w0, [x19, #:lo12:.LANCHOR74] mov w2, 1 mov w1, w2 orr w0, w20, w0, lsl 10 @@ -12184,15 +12442,15 @@ FtlLoadBbt: bl FlashReadPages ldr w0, [x24] cmn w0, #1 - beq .L1766 + beq .L1802 ldrh w0, [x21] cmp w0, w25 - beq .L1767 -.L1766: + beq .L1803 +.L1802: sub w20, w20, #1 sxth w20, w20 - b .L1765 -.L1772: + b .L1801 +.L1808: ldrh w2, [x23] ldr x0, [x22, 8] mul w1, w2, w20 @@ -12201,10 +12459,10 @@ FtlLoadBbt: add x1, x0, x1, lsl 2 ldr x0, [x19], 8 bl ftl_memcpy - b .L1771 -.L1773: + b .L1807 +.L1809: mov w0, -1 - b .L1755 + b .L1791 .size FtlLoadBbt, .-FtlLoadBbt .section .text.ftl_map_blk_gc,"ax",@progbits .align 2 @@ -12216,7 +12474,7 @@ ftl_map_blk_gc: stp x19, x20, [sp, 16] mov x19, x0 stp x25, x26, [sp, 64] - adrp x25, .LANCHOR54 + adrp x25, .LANCHOR53 stp x21, x22, [sp, 32] stp x23, x24, [sp, 48] stp x27, x28, [sp, 80] @@ -12227,12 +12485,12 @@ ftl_map_blk_gc: ldrh w2, [x19, 8] sub w1, w1, #4 cmp w2, w1 - blt .L1786 + blt .L1822 ubfiz x0, x0, 1, 16 ldrh w21, [x20, x0] - cbz w21, .L1786 + cbz w21, .L1822 ldr w1, [x19, 52] - cbnz w1, .L1786 + cbnz w1, .L1822 mov w1, 1 str w1, [x19, 52] strh wzr, [x20, x0] @@ -12240,41 +12498,41 @@ ftl_map_blk_gc: ldrh w1, [x19, 2] sub w0, w0, #1 strh w0, [x19, 8] - ldrh w0, [x25, #:lo12:.LANCHOR54] + ldrh w0, [x25, #:lo12:.LANCHOR53] cmp w1, w0 - bcc .L1787 + bcc .L1823 mov x0, x19 bl ftl_map_blk_alloc_new_blk -.L1787: +.L1823: adrp x22, .LANCHOR202 adrp x24, .LANCHOR212 mov x23, x22 add x27, x22, :lo12:.LANCHOR202 add x24, x24, :lo12:.LANCHOR212 mov w20, 0 -.L1788: +.L1824: ldrh w0, [x19, 6] cmp w0, w20 - bhi .L1794 + bhi .L1830 mov w1, 1 mov w0, w21 bl FtlFreeSysBlkQueueIn str wzr, [x19, 52] -.L1786: +.L1822: ldrh w1, [x19, 2] - ldrh w0, [x25, #:lo12:.LANCHOR54] + ldrh w0, [x25, #:lo12:.LANCHOR53] cmp w1, w0 - bcc .L1792 + bcc .L1828 mov x0, x19 bl ftl_map_blk_alloc_new_blk - b .L1792 -.L1794: + b .L1828 +.L1830: ubfiz x0, x20, 2, 16 add x1, x26, x0 str x1, [x29, 104] ldr w1, [x26, x0] cmp w21, w1, lsr 10 - bne .L1789 + bne .L1825 adrp x2, .LANCHOR184 add x0, x22, :lo12:.LANCHOR202 ldr x2, [x2, #:lo12:.LANCHOR184] @@ -12288,7 +12546,7 @@ ftl_map_blk_gc: bl FlashReadPages ldrh w0, [x28, 8] cmp w0, w20 - beq .L1790 + beq .L1826 mov w2, 661 mov x1, x24 adrp x0, .LC5 @@ -12299,12 +12557,12 @@ ftl_map_blk_gc: add x1, x1, :lo12:.LC6 add x0, x0, :lo12:.LC7 bl printf -.L1790: +.L1826: ldr w0, [x27] ldrh w2, [x28, 8] cmn w0, #1 - bne .L1791 -.L1793: + bne .L1827 +.L1829: ldr x0, [x29, 104] add x23, x23, :lo12:.LANCHOR202 str wzr, [x0] @@ -12312,10 +12570,10 @@ ftl_map_blk_gc: add x0, x0, :lo12:.LC39 ldr w1, [x23, 4] bl printf - adrp x0, .LANCHOR77 + adrp x0, .LANCHOR76 mov w1, 1 - str w1, [x0, #:lo12:.LANCHOR77] -.L1792: + str w1, [x0, #:lo12:.LANCHOR76] +.L1828: ldp x19, x20, [sp, 16] mov w0, 0 ldp x21, x22, [sp, 32] @@ -12324,30 +12582,30 @@ ftl_map_blk_gc: ldp x27, x28, [sp, 80] ldp x29, x30, [sp], 112 ret -.L1791: +.L1827: cmp w2, w20 - bne .L1793 + bne .L1829 ldrh w1, [x28] ldrh w0, [x19, 4] cmp w1, w0 - bne .L1793 + bne .L1829 ldr x2, [x27, 8] mov w1, w20 mov x0, x19 bl FtlMapWritePage -.L1789: +.L1825: add w20, w20, 1 and w20, w20, 65535 - b .L1788 + b .L1824 .size ftl_map_blk_gc, .-ftl_map_blk_gc .section .text.Ftl_write_map_blk_to_last_page,"ax",@progbits .align 2 .global Ftl_write_map_blk_to_last_page .type Ftl_write_map_blk_to_last_page, %function Ftl_write_map_blk_to_last_page: - adrp x1, .LANCHOR77 - ldr w1, [x1, #:lo12:.LANCHOR77] - cbnz w1, .L1810 + adrp x1, .LANCHOR76 + ldr w1, [x1, #:lo12:.LANCHOR76] + cbnz w1, .L1850 stp x29, x30, [sp, -64]! mov w1, 65535 add x29, sp, 0 @@ -12355,12 +12613,12 @@ Ftl_write_map_blk_to_last_page: mov x19, x0 stp x21, x22, [sp, 32] ldrh w0, [x0] - ldr x20, [x19, 16] - str x23, [sp, 48] + stp x23, x24, [sp, 48] cmp w0, w1 - bne .L1801 + ldr x20, [x19, 16] + bne .L1837 ldrh w0, [x19, 8] - cbz w0, .L1802 + cbz w0, .L1838 mov w2, 697 adrp x1, .LANCHOR213 adrp x0, .LC5 @@ -12372,7 +12630,7 @@ Ftl_write_map_blk_to_last_page: add x1, x1, :lo12:.LC6 add x0, x0, :lo12:.LC7 bl printf -.L1802: +.L1838: ldrh w0, [x19, 8] add w0, w0, 1 strh w0, [x19, 8] @@ -12383,73 +12641,83 @@ Ftl_write_map_blk_to_last_page: add w0, w0, 1 strh wzr, [x19] str w0, [x19, 48] -.L1800: +.L1836: 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 -.L1801: +.L1837: ubfiz x0, x0, 1, 16 - adrp x1, .LANCHOR188 - adrp x23, .LANCHOR183 - ldr x22, [x19, 40] - ldr x1, [x1, #:lo12:.LANCHOR188] - ldrh w21, [x20, x0] - adrp x20, .LANCHOR202 + adrp x2, .LANCHOR188 + adrp x21, .LANCHOR202 + add x1, x21, :lo12:.LANCHOR202 + adrp x24, .LANCHOR183 + ldr x23, [x19, 40] + ldrh w22, [x20, x0] ldrh w0, [x19, 2] - add x2, x20, :lo12:.LANCHOR202 - orr w0, w0, w21, lsl 10 - str w0, [x2, 4] - ldr x0, [x23, #:lo12:.LANCHOR183] - str x1, [x2, 16] - str x0, [x2, 8] - ldr w2, [x19, 48] - str w2, [x1, 4] - mov w2, -1291 - strh w2, [x1, 8] - ldrh w2, [x19, 4] - strh w2, [x1] - strh w21, [x1, 2] - adrp x1, .LANCHOR54 - ldrh w2, [x1, #:lo12:.LANCHOR54] + ldr x20, [x2, #:lo12:.LANCHOR188] + str x20, [x1, 16] + orr w0, w0, w22, lsl 10 + str w0, [x1, 4] + ldr x0, [x24, #:lo12:.LANCHOR183] + str x0, [x1, 8] + ldr w1, [x19, 48] + str w1, [x20, 4] + mov w1, -1291 + strh w1, [x20, 8] + ldrh w1, [x19, 4] + strh w1, [x20] + adrp x1, .LANCHOR53 + strh w22, [x20, 2] + ldrh w2, [x1, #:lo12:.LANCHOR53] mov w1, 255 lsl w2, w2, 3 bl ftl_memset ldrh w4, [x19, 6] mov x1, 0 - ldr x3, [x23, #:lo12:.LANCHOR183] - mov w2, 0 -.L1803: + ldr x3, [x24, #:lo12:.LANCHOR183] + mov w0, 0 +.L1839: cmp w4, w1, uxth - bhi .L1805 + bhi .L1841 + adrp x0, .LANCHOR1 + ldrb w0, [x0, #:lo12:.LANCHOR1] + cbz w0, .L1842 + add x0, x21, :lo12:.LANCHOR202 + adrp x1, .LANCHOR57 + ldrh w1, [x1, #:lo12:.LANCHOR57] + ldr x0, [x0, 8] + bl js_hash + str w0, [x20, 12] +.L1842: mov w2, 1 mov w3, 0 mov w1, w2 - add x0, x20, :lo12:.LANCHOR202 + add x0, x21, :lo12:.LANCHOR202 bl FlashProgPages ldrh w0, [x19, 2] add w0, w0, 1 strh w0, [x19, 2] mov x0, x19 bl ftl_map_blk_gc - b .L1800 -.L1805: - ldr w0, [x22, x1, lsl 2] - cmp w21, w0, lsr 10 - bne .L1804 - add w2, w2, 1 - and w2, w2, 65535 - ubfiz x0, x2, 1, 16 - str w1, [x3, x0, lsl 2] - add x0, x0, 1 - ldr w5, [x22, x1, lsl 2] - str w5, [x3, x0, lsl 2] -.L1804: + b .L1836 +.L1841: + ldr w2, [x23, x1, lsl 2] + cmp w22, w2, lsr 10 + bne .L1840 + add w0, w0, 1 + and w0, w0, 65535 + ubfiz x2, x0, 1, 16 + str w1, [x3, x2, lsl 2] + add x2, x2, 1 + ldr w5, [x23, x1, lsl 2] + str w5, [x3, x2, lsl 2] +.L1840: add x1, x1, 1 - b .L1803 -.L1810: + b .L1839 +.L1850: mov w0, 0 ret .size Ftl_write_map_blk_to_last_page, .-Ftl_write_map_blk_to_last_page @@ -12460,45 +12728,46 @@ Ftl_write_map_blk_to_last_page: FtlMapWritePage: stp x29, x30, [sp, -112]! add x29, sp, 0 - stp x21, x22, [sp, 32] - adrp x22, .LANCHOR165 - stp x23, x24, [sp, 48] - add x22, x22, :lo12:.LANCHOR165 - stp x25, x26, [sp, 64] - mov w23, w1 - stp x27, x28, [sp, 80] - adrp x25, .LANCHOR77 - add x27, x25, :lo12:.LANCHOR77 stp x19, x20, [sp, 16] - adrp x24, .LANCHOR54 - mov x19, x0 - mov w21, 0 - add x0, x24, :lo12:.LANCHOR54 - stp x0, x2, [x29, 96] -.L1814: - ldr w0, [x22] - ldrh w1, [x19, 2] + mov w19, 0 + stp x25, x26, [sp, 64] + adrp x26, .LANCHOR53 + stp x27, x28, [sp, 80] + mov w25, w1 + stp x21, x22, [sp, 32] + mov x27, x0 + adrp x22, .LANCHOR202 + stp x23, x24, [sp, 48] + mov x20, x22 + add x23, x22, :lo12:.LANCHOR202 + add x28, x26, :lo12:.LANCHOR53 + str x2, [x29, 104] +.L1854: + adrp x1, .LANCHOR165 + ldr w0, [x1, #:lo12:.LANCHOR165] add w0, w0, 1 - str w0, [x22] - ldrh w0, [x24, #:lo12:.LANCHOR54] + str w0, [x1, #:lo12:.LANCHOR165] + ldrh w0, [x26, #:lo12:.LANCHOR53] + ldrh w1, [x27, 2] sub w0, w0, #1 cmp w1, w0 - bge .L1815 - ldrh w1, [x19] + bge .L1855 + ldrh w1, [x27] mov w0, 65535 cmp w1, w0 - bne .L1816 -.L1815: - mov x0, x19 + bne .L1856 +.L1855: + mov x0, x27 bl Ftl_write_map_blk_to_last_page -.L1816: - ldr w0, [x27] - cbnz w0, .L1829 - ldrh w1, [x19] - ldr x0, [x19, 16] +.L1856: + adrp x21, .LANCHOR76 + ldr w0, [x21, #:lo12:.LANCHOR76] + cbnz w0, .L1871 + ldrh w1, [x27] + ldr x0, [x27, 16] ldrh w0, [x0, x1, lsl 1] - cbnz w0, .L1818 - mov w2, 757 + cbnz w0, .L1858 + mov w2, 759 adrp x1, .LANCHOR214 adrp x0, .LC5 add x1, x1, :lo12:.LANCHOR214 @@ -12509,12 +12778,12 @@ FtlMapWritePage: add x1, x1, :lo12:.LC6 add x0, x0, :lo12:.LC7 bl printf -.L1818: - ldrh w1, [x19] - ldrh w0, [x19, 10] +.L1858: + ldrh w1, [x27] + ldrh w0, [x27, 10] cmp w1, w0 - bcc .L1819 - mov w2, 758 + bcc .L1859 + mov w2, 760 adrp x1, .LANCHOR214 adrp x0, .LC5 add x1, x1, :lo12:.LANCHOR214 @@ -12525,67 +12794,76 @@ FtlMapWritePage: add x1, x1, :lo12:.LC6 add x0, x0, :lo12:.LC7 bl printf -.L1819: - ldrh w1, [x19] - adrp x20, .LANCHOR202 - ldr x0, [x19, 16] - add x28, x20, :lo12:.LANCHOR202 +.L1859: + ldrh w1, [x27] + add x3, x22, :lo12:.LANCHOR202 + ldr x0, [x27, 16] mov w2, 16 - ldrh w26, [x0, x1, lsl 1] + str x3, [x29, 96] + ldrh w24, [x0, x1, lsl 1] mov w1, 0 - ldrh w0, [x19, 2] - orr w0, w0, w26, lsl 10 - str w0, [x28, 4] + ldrh w0, [x27, 2] + orr w0, w0, w24, lsl 10 + str w0, [x3, 4] ldr x0, [x29, 104] - str x0, [x28, 8] + str x0, [x3, 8] adrp x0, .LANCHOR188 ldr x0, [x0, #:lo12:.LANCHOR188] - str x0, [x28, 16] + str x0, [x3, 16] bl ftl_memset - ldr x0, [x28, 16] + ldr x3, [x29, 96] + ldr w0, [x27, 48] + ldr x6, [x3, 16] + str w0, [x6, 4] + ldrh w0, [x27, 4] + strh w0, [x6] + adrp x0, .LANCHOR1 + strh w25, [x6, 8] + strh w24, [x6, 2] + ldrb w0, [x0, #:lo12:.LANCHOR1] + cbz w0, .L1860 + adrp x0, .LANCHOR57 + ldrh w1, [x0, #:lo12:.LANCHOR57] + ldr x0, [x3, 8] + bl js_hash + str w0, [x6, 12] +.L1860: mov w3, 1 - ldr w1, [x19, 48] - mov w2, w3 - str w1, [x0, 4] - ldrh w1, [x19, 4] - strh w1, [x0] + mov x0, x23 mov w1, w3 - strh w23, [x0, 8] - strh w26, [x0, 2] - mov x0, x28 + mov w2, w3 bl FlashProgPages - ldrh w0, [x19, 2] - ldr w1, [x20, #:lo12:.LANCHOR202] + ldrh w0, [x27, 2] + ldr w1, [x23] add w0, w0, 1 and w0, w0, 65535 - strh w0, [x19, 2] + strh w0, [x27, 2] cmn w1, #1 - bne .L1820 - ldr w1, [x28, 4] + bne .L1861 + ldr w1, [x23, 4] adrp x0, .LC40 add x0, x0, :lo12:.LC40 - add w21, w21, 1 - and w21, w21, 65535 + add w19, w19, 1 + and w19, w19, 65535 bl printf - ldrh w0, [x19, 2] + ldrh w0, [x27, 2] cmp w0, 2 - bhi .L1821 - ldr x0, [x29, 96] - ldrh w0, [x0] + bhi .L1862 + ldrh w0, [x28] sub w0, w0, #1 - strh w0, [x19, 2] -.L1821: - cmp w21, 3 - bls .L1814 + strh w0, [x27, 2] +.L1862: + cmp w19, 3 + bls .L1854 add x20, x20, :lo12:.LANCHOR202 - mov w2, w21 + mov w2, w19 adrp x0, .LC41 add x0, x0, :lo12:.LC41 ldr w1, [x20, 4] bl printf mov w0, 1 - str w0, [x25, #:lo12:.LANCHOR77] -.L1829: + str w0, [x21, #:lo12:.LANCHOR76] +.L1871: ldp x19, x20, [sp, 16] mov w0, 0 ldp x21, x22, [sp, 32] @@ -12594,28 +12872,28 @@ FtlMapWritePage: ldp x27, x28, [sp, 80] ldp x29, x30, [sp], 112 ret -.L1820: - cbz w1, .L1823 - strh w26, [x19, 60] +.L1861: + cbz w1, .L1864 + strh w24, [x27, 60] cmp w0, 1 - bne .L1824 -.L1825: - str wzr, [x19, 56] - b .L1814 -.L1824: + bne .L1865 +.L1866: + str wzr, [x27, 56] + b .L1854 +.L1865: cmp w1, 256 -.L1835: - beq .L1825 - ldr w0, [x19, 56] - cbnz w0, .L1825 +.L1879: + beq .L1866 + ldr w0, [x27, 56] + cbnz w0, .L1866 add x20, x20, :lo12:.LANCHOR202 - ldr x0, [x19, 40] + ldr x0, [x27, 40] ldr w1, [x20, 4] - str w1, [x0, w23, uxtw 2] - b .L1829 -.L1823: + str w1, [x0, w25, uxtw 2] + b .L1871 +.L1864: cmp w0, 1 - b .L1835 + b .L1879 .size FtlMapWritePage, .-FtlMapWritePage .section .text.flush_l2p_region,"ax",@progbits .align 2 @@ -12625,16 +12903,16 @@ flush_l2p_region: stp x29, x30, [sp, -32]! add x29, sp, 0 stp x19, x20, [sp, 16] - adrp x20, .LANCHOR97 + adrp x20, .LANCHOR96 ubfiz x19, x0, 4, 16 - ldr x0, [x20, #:lo12:.LANCHOR97] + ldr x0, [x20, #:lo12:.LANCHOR96] add x1, x0, x19 ldr x2, [x1, 8] ldrh w1, [x0, x19] adrp x0, .LANCHOR127 add x0, x0, :lo12:.LANCHOR127 bl FtlMapWritePage - ldr x0, [x20, #:lo12:.LANCHOR97] + ldr x0, [x20, #:lo12:.LANCHOR96] add x0, x0, x19 ldp x19, x20, [sp, 16] ldr w1, [x0, 4] @@ -12652,32 +12930,32 @@ l2p_flush: stp x29, x30, [sp, -48]! add x29, sp, 0 stp x19, x20, [sp, 16] - adrp x20, .LANCHOR68 - add x20, x20, :lo12:.LANCHOR68 + adrp x20, .LANCHOR67 + add x20, x20, :lo12:.LANCHOR67 str x21, [sp, 32] mov w19, 0 - adrp x21, .LANCHOR97 -.L1839: + adrp x21, .LANCHOR96 +.L1883: ldrh w0, [x20] cmp w0, w19 - bhi .L1841 + bhi .L1885 mov w0, 0 ldr x21, [sp, 32] ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 48 ret -.L1841: - ldr x1, [x21, #:lo12:.LANCHOR97] +.L1885: + ldr x1, [x21, #:lo12:.LANCHOR96] ubfiz x0, x19, 4, 16 add x0, x1, x0 ldr w0, [x0, 4] - tbz w0, #31, .L1840 + tbz w0, #31, .L1884 mov w0, w19 bl flush_l2p_region -.L1840: +.L1884: add w19, w19, 1 and w19, w19, 65535 - b .L1839 + b .L1883 .size l2p_flush, .-l2p_flush .section .text.FtlVendorPartWrite,"ax",@progbits .align 2 @@ -12697,19 +12975,19 @@ FtlVendorPartWrite: stp x25, x26, [sp, 64] stp x27, x28, [sp, 80] cmp w1, w0 - bhi .L1851 - adrp x0, .LANCHOR57 - adrp x26, .LANCHOR56 - adrp x27, .LANCHOR58 + bhi .L1895 + adrp x0, .LANCHOR56 + adrp x26, .LANCHOR55 + adrp x27, .LANCHOR57 mov x25, x2 - ldrh w21, [x0, #:lo12:.LANCHOR57] - add x26, x26, :lo12:.LANCHOR56 - add x27, x27, :lo12:.LANCHOR58 + ldrh w21, [x0, #:lo12:.LANCHOR56] + add x26, x26, :lo12:.LANCHOR55 + add x27, x27, :lo12:.LANCHOR57 mov w24, 0 lsr w21, w22, w21 -.L1845: - cbnz w20, .L1850 -.L1843: +.L1889: + cbnz w20, .L1894 +.L1887: mov w0, w24 ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] @@ -12718,7 +12996,7 @@ FtlVendorPartWrite: ldp x27, x28, [sp, 80] ldp x29, x30, [sp], 176 ret -.L1850: +.L1894: ldrh w1, [x26] adrp x0, .LANCHOR194 adrp x28, .LANCHOR185 @@ -12731,9 +13009,9 @@ FtlVendorPartWrite: and w19, w19, 65535 cmp w20, w19 csel w19, w0, w19, cc - cbz w2, .L1847 + cbz w2, .L1891 cmp w19, w1 - beq .L1847 + beq .L1891 ldr x0, [x28, #:lo12:.LANCHOR185] str w2, [x29, 124] mov w2, 1 @@ -12741,7 +13019,7 @@ FtlVendorPartWrite: mov w1, w2 add x0, x29, 120 bl FlashReadPages -.L1848: +.L1892: lsl w3, w19, 9 ldr x0, [x28, #:lo12:.LANCHOR185] lsl w23, w23, 7 @@ -12762,16 +13040,16 @@ FtlVendorPartWrite: ldr w3, [x29, 108] csinv w24, w24, wzr, ne add x25, x25, x3, sxtw - b .L1845 -.L1847: + b .L1889 +.L1891: ldrh w2, [x27] mov w1, 0 ldr x0, [x28, #:lo12:.LANCHOR185] bl ftl_memset - b .L1848 -.L1851: + b .L1892 +.L1895: mov w24, -1 - b .L1843 + b .L1887 .size FtlVendorPartWrite, .-FtlVendorPartWrite .section .text.Ftl_save_ext_data,"ax",@progbits .align 2 @@ -12784,8 +13062,8 @@ Ftl_save_ext_data: mov w0, 19539 movk w0, 0x4654, lsl 16 cmp w1, w0 - bne .L1856 - mov w0, 80 + bne .L1900 + mov w0, 83 mov w1, 1 movk w0, 0x5000, lsl 16 str w0, [x2, 4] @@ -12810,8 +13088,8 @@ Ftl_save_ext_data: adrp x0, .LANCHOR168 ldr w0, [x0, #:lo12:.LANCHOR168] str w0, [x2, 28] - adrp x0, .LANCHOR80 - ldr w0, [x0, #:lo12:.LANCHOR80] + adrp x0, .LANCHOR79 + ldr w0, [x0, #:lo12:.LANCHOR79] str w0, [x2, 32] adrp x0, .LANCHOR163 ldr w0, [x0, #:lo12:.LANCHOR163] @@ -12833,7 +13111,7 @@ Ftl_save_ext_data: str w0, [x2, 64] mov w0, 0 b FtlVendorPartWrite -.L1856: +.L1900: ret .size Ftl_save_ext_data, .-Ftl_save_ext_data .section .text.FtlEctTblFlush,"ax",@progbits @@ -12843,31 +13121,31 @@ Ftl_save_ext_data: FtlEctTblFlush: adrp x1, .LANCHOR28 ldr w1, [x1, #:lo12:.LANCHOR28] - cbz w1, .L1863 + cbz w1, .L1907 adrp x1, .LANCHOR170 mov w2, 4 ldr w1, [x1, #:lo12:.LANCHOR170] cmp w1, 39 mov w1, 32 csel w1, w1, w2, hi -.L1859: +.L1903: adrp x3, .LANCHOR218 ldrh w2, [x3, #:lo12:.LANCHOR218] cmp w2, 31 - bhi .L1860 + bhi .L1904 add w2, w2, 1 mov w1, 1 strh w2, [x3, #:lo12:.LANCHOR218] -.L1860: +.L1904: adrp x2, .LANCHOR191 - cbnz w0, .L1861 + cbnz w0, .L1905 ldr x0, [x2, #:lo12:.LANCHOR191] ldr w3, [x0, 20] ldr w0, [x0, 16] add w1, w1, w3 cmp w0, w1 - bcc .L1866 -.L1861: + bcc .L1910 +.L1905: stp x29, x30, [sp, -16]! add x29, sp, 0 ldr x2, [x2, #:lo12:.LANCHOR191] @@ -12890,10 +13168,10 @@ FtlEctTblFlush: mov w0, 0 ldp x29, x30, [sp], 16 ret -.L1863: +.L1907: mov w1, 32 - b .L1859 -.L1866: + b .L1903 +.L1910: mov w0, 0 ret .size FtlEctTblFlush, .-FtlEctTblFlush @@ -12911,8 +13189,8 @@ allocate_new_data_superblock: str x21, [sp, 32] ldrh w0, [x0, #:lo12:.LANCHOR40] cmp w0, w20 - bcs .L1869 - mov w2, 3233 + bcs .L1913 + mov w2, 3264 adrp x1, .LANCHOR219 adrp x0, .LC5 add x1, x1, :lo12:.LANCHOR219 @@ -12923,99 +13201,99 @@ allocate_new_data_superblock: add x1, x1, :lo12:.LC6 add x0, x0, :lo12:.LC7 bl printf -.L1869: - adrp x0, .LANCHOR77 - ldr w0, [x0, #:lo12:.LANCHOR77] - cbnz w0, .L1870 +.L1913: + adrp x0, .LANCHOR76 + ldr w0, [x0, #:lo12:.LANCHOR76] + cbnz w0, .L1914 mov w0, 65535 cmp w20, w0 - beq .L1871 - adrp x1, .LANCHOR84 + beq .L1915 + adrp x1, .LANCHOR83 ubfiz x0, x20, 1, 16 - ldr x1, [x1, #:lo12:.LANCHOR84] + ldr x1, [x1, #:lo12:.LANCHOR83] ldrh w0, [x1, x0] - cbz w0, .L1872 + cbz w0, .L1916 mov w0, w20 bl INSERT_DATA_LIST -.L1871: +.L1915: strb wzr, [x19, 8] - adrp x0, .LANCHOR93 - add x0, x0, :lo12:.LANCHOR93 + adrp x0, .LANCHOR92 + add x0, x0, :lo12:.LANCHOR92 cmp x19, x0 - beq .L1873 + beq .L1917 adrp x0, .LANCHOR44 ldrh w1, [x0, #:lo12:.LANCHOR44] cmp w1, 1 - beq .L1873 - adrp x0, .LANCHOR8 - ldrb w0, [x0, #:lo12:.LANCHOR8] - cbz w0, .L1874 -.L1873: + beq .L1917 + adrp x0, .LANCHOR15 + ldrb w0, [x0, #:lo12:.LANCHOR15] + cbz w0, .L1918 +.L1917: mov w0, 1 strb w0, [x19, 8] -.L1875: +.L1919: adrp x1, .LANCHOR133 mov w2, 65535 mov x21, x1 ldrh w0, [x1, #:lo12:.LANCHOR133] cmp w0, w2 - beq .L1880 + beq .L1924 cmp w20, w0 - bne .L1881 - adrp x2, .LANCHOR84 + bne .L1925 + adrp x2, .LANCHOR83 ubfiz x1, x0, 1, 16 - ldr x2, [x2, #:lo12:.LANCHOR84] + ldr x2, [x2, #:lo12:.LANCHOR83] ldrh w1, [x2, x1] - cbz w1, .L1882 -.L1881: + cbz w1, .L1926 +.L1925: bl update_vpc_list -.L1882: +.L1926: mov w0, -1 strh w0, [x21, #:lo12:.LANCHOR133] -.L1880: +.L1924: mov x0, x19 bl allocate_data_superblock bl l2p_flush mov w0, 0 bl FtlEctTblFlush bl FtlVpcTblFlush -.L1870: +.L1914: mov w0, 0 ldr x21, [sp, 32] ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 48 ret -.L1872: +.L1916: mov w0, w20 bl INSERT_FREE_LIST - b .L1871 -.L1874: - adrp x0, .LANCHOR92 - add x2, x0, :lo12:.LANCHOR92 + b .L1915 +.L1918: + adrp x0, .LANCHOR91 + add x2, x0, :lo12:.LANCHOR91 cmp x19, x2 - bne .L1875 + bne .L1919 cmp w1, 3 - beq .L1877 + beq .L1921 adrp x1, .LANCHOR158 ldr w1, [x1, #:lo12:.LANCHOR158] cmp w1, 1 - bne .L1878 -.L1877: - add x1, x0, :lo12:.LANCHOR92 + bne .L1922 +.L1921: + add x1, x0, :lo12:.LANCHOR91 mov w2, 1 strb w2, [x1, 8] -.L1878: +.L1922: adrp x1, .LANCHOR28 ldr w1, [x1, #:lo12:.LANCHOR28] - cbz w1, .L1875 + cbz w1, .L1919 adrp x1, .LANCHOR170 ldr w1, [x1, #:lo12:.LANCHOR170] cmp w1, 39 - bhi .L1875 - add x0, x0, :lo12:.LANCHOR92 + bhi .L1919 + add x0, x0, :lo12:.LANCHOR91 mov w1, 1 strb w1, [x0, 8] - b .L1875 + b .L1919 .size allocate_new_data_superblock, .-allocate_new_data_superblock .section .text.FtlVendorPartRead,"ax",@progbits .align 2 @@ -13035,20 +13313,20 @@ FtlVendorPartRead: stp x25, x26, [sp, 64] stp x27, x28, [sp, 80] cmp w1, w0 - bhi .L1905 - adrp x0, .LANCHOR57 + bhi .L1949 + adrp x0, .LANCHOR56 adrp x26, .LANCHOR185 mov x25, x2 mov x28, x26 - ldrh w20, [x0, #:lo12:.LANCHOR57] + ldrh w20, [x0, #:lo12:.LANCHOR56] mov w24, 0 - adrp x0, .LANCHOR56 - add x0, x0, :lo12:.LANCHOR56 + adrp x0, .LANCHOR55 + add x0, x0, :lo12:.LANCHOR55 str x0, [x29, 104] lsr w20, w22, w20 -.L1898: - cbnz w21, .L1904 -.L1896: +.L1942: + cbnz w21, .L1948 +.L1940: mov w0, w24 ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] @@ -13057,7 +13335,7 @@ FtlVendorPartRead: ldp x27, x28, [sp, 80] ldp x29, x30, [sp], 176 ret -.L1904: +.L1948: adrp x0, .LANCHOR194 ldr x0, [x0, #:lo12:.LANCHOR194] ldr w3, [x0, w20, uxtw 2] @@ -13071,7 +13349,7 @@ FtlVendorPartRead: cmp w21, w19 csel w19, w0, w19, cc lsl w27, w19, 9 - cbz w3, .L1900 + cbz w3, .L1944 ldr x0, [x26, #:lo12:.LANCHOR185] mov w2, 1 str w3, [x29, 100] @@ -13087,7 +13365,7 @@ FtlVendorPartRead: csinv w24, w24, wzr, ne ldr w0, [x0, #:lo12:.LANCHOR202] cmp w0, 256 - bne .L1902 + bne .L1946 mov w2, w3 mov w1, w20 adrp x0, .LC42 @@ -13098,28 +13376,28 @@ FtlVendorPartRead: mov w1, w20 add x0, x0, :lo12:.LANCHOR215 bl FtlMapWritePage -.L1902: +.L1946: ldr x1, [x28, #:lo12:.LANCHOR185] lsl w23, w23, 7 mov w2, w27 mov x0, x25 add x1, x1, x23, sxtw 2 bl ftl_memcpy -.L1903: +.L1947: add w20, w20, 1 sub w21, w21, w19 add w22, w22, w19 add x25, x25, x27, sxtw - b .L1898 -.L1900: + b .L1942 +.L1944: mov w2, w27 mov w1, 0 mov x0, x25 bl ftl_memset - b .L1903 -.L1905: + b .L1947 +.L1949: mov w24, -1 - b .L1896 + b .L1940 .size FtlVendorPartRead, .-FtlVendorPartRead .section .text.FtlLoadEctTbl,"ax",@progbits .align 2 @@ -13140,7 +13418,7 @@ FtlLoadEctTbl: mov w0, 17221 movk w0, 0x4254, lsl 16 cmp w1, w0 - beq .L1908 + beq .L1952 adrp x1, .LC43 adrp x0, .LC7 add x1, x1, :lo12:.LC43 @@ -13151,7 +13429,7 @@ FtlLoadEctTbl: ldrh w2, [x20, #:lo12:.LANCHOR190] lsl w2, w2, 9 bl ftl_memset -.L1908: +.L1952: mov w0, 0 ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 32 @@ -13176,18 +13454,18 @@ Ftl_load_ext_data: mov w20, 19539 movk w20, 0x4654, lsl 16 cmp w0, w20 - beq .L1911 + beq .L1955 mov w2, 512 mov w1, 0 mov x0, x21 bl ftl_memset str w20, [x19, #:lo12:.LANCHOR138] -.L1911: +.L1955: ldr w1, [x19, #:lo12:.LANCHOR138] add x0, x19, :lo12:.LANCHOR138 cmp w1, w20 adrp x20, .LANCHOR168 - bne .L1912 + bne .L1956 adrp x1, .LANCHOR216 ldr w2, [x0, 88] str w2, [x1, #:lo12:.LANCHOR216] @@ -13208,8 +13486,8 @@ Ftl_load_ext_data: str w2, [x1, #:lo12:.LANCHOR165] ldp w1, w2, [x0, 28] str w1, [x20, #:lo12:.LANCHOR168] - adrp x1, .LANCHOR80 - str w2, [x1, #:lo12:.LANCHOR80] + adrp x1, .LANCHOR79 + str w2, [x1, #:lo12:.LANCHOR79] adrp x1, .LANCHOR163 ldr w2, [x0, 36] str w2, [x1, #:lo12:.LANCHOR163] @@ -13225,7 +13503,7 @@ Ftl_load_ext_data: ldr w1, [x0, 60] adrp x0, .LANCHOR158 str w1, [x0, #:lo12:.LANCHOR158] -.L1912: +.L1956: add x19, x19, :lo12:.LANCHOR138 adrp x0, .LANCHOR157 str wzr, [x0, #:lo12:.LANCHOR157] @@ -13233,7 +13511,7 @@ Ftl_load_ext_data: ldr w1, [x19, 68] movk w0, 0x1234, lsl 16 cmp w1, w0 - bne .L1913 + bne .L1957 adrp x0, .LANCHOR28 mov w1, 1 str w1, [x0, #:lo12:.LANCHOR28] @@ -13242,7 +13520,7 @@ Ftl_load_ext_data: add x1, x1, :lo12:.LC44 add x0, x0, :lo12:.LC7 bl printf -.L1913: +.L1957: adrp x1, .LANCHOR167 adrp x0, .LANCHOR48 ldr x21, [sp, 32] @@ -13281,11 +13559,11 @@ ftl_sys_read: .type FtlMapBlkWriteDumpData, %function FtlMapBlkWriteDumpData: ldr w1, [x0, 56] - cbz w1, .L1931 + cbz w1, .L1975 stp x29, x30, [sp, -80]! - adrp x1, .LANCHOR77 + adrp x1, .LANCHOR76 add x29, sp, 0 - ldr w1, [x1, #:lo12:.LANCHOR77] + ldr w1, [x1, #:lo12:.LANCHOR76] stp x19, x20, [sp, 16] stp x21, x22, [sp, 32] stp x23, x24, [sp, 48] @@ -13293,7 +13571,7 @@ FtlMapBlkWriteDumpData: str x25, [sp, 64] str wzr, [x0, 56] ldr x25, [x0, 40] - cbnz w1, .L1917 + cbnz w1, .L1961 mov x19, x0 adrp x0, .LANCHOR184 adrp x23, .LANCHOR202 @@ -13305,16 +13583,16 @@ FtlMapBlkWriteDumpData: ldr x24, [x0, #:lo12:.LANCHOR188] ldrh w0, [x19, 2] str x24, [x21, 16] - cbz w0, .L1921 - adrp x1, .LANCHOR54 - ldrh w1, [x1, #:lo12:.LANCHOR54] + cbz w0, .L1965 + adrp x1, .LANCHOR53 + ldrh w1, [x1, #:lo12:.LANCHOR53] sub w1, w1, #1 cmp w0, w1 - bge .L1921 + bge .L1965 ldrh w1, [x19] mov w2, 65535 cmp w1, w2 - beq .L1921 + beq .L1965 ldr x2, [x19, 16] ubfiz x1, x1, 1, 16 sub w0, w0, #1 @@ -13327,16 +13605,16 @@ FtlMapBlkWriteDumpData: bl FlashReadPages ldr w0, [x23, #:lo12:.LANCHOR202] cmn w0, #1 - beq .L1921 + beq .L1965 ldrh w1, [x24, 8] ldr x2, [x19, 40] ubfiz x0, x1, 2, 16 ldr w2, [x2, x0] ldr w0, [x21, 4] cmp w2, w0 - bne .L1921 + bne .L1965 ldr x2, [x21, 8] -.L1934: +.L1978: mov x0, x19 ldr x25, [sp, 64] ldp x19, x20, [sp, 16] @@ -13344,37 +13622,37 @@ FtlMapBlkWriteDumpData: ldp x23, x24, [sp, 48] ldp x29, x30, [sp], 80 b FtlMapWritePage -.L1921: +.L1965: sub w20, w20, #1 and w20, w20, 65535 ubfiz x0, x20, 2, 16 ldr w1, [x25, x0] add x0, x22, :lo12:.LANCHOR202 str w1, [x0, 4] - cbz w1, .L1922 + cbz w1, .L1966 mov w2, 1 mov w1, w2 bl FlashReadPages -.L1923: +.L1967: add x22, x22, :lo12:.LANCHOR202 mov w1, w20 ldr x2, [x22, 8] - b .L1934 -.L1922: - adrp x1, .LANCHOR58 + b .L1978 +.L1966: + adrp x1, .LANCHOR57 ldr x0, [x0, 8] - ldrh w2, [x1, #:lo12:.LANCHOR58] + ldrh w2, [x1, #:lo12:.LANCHOR57] mov w1, 255 bl ftl_memset - b .L1923 -.L1917: + b .L1967 +.L1961: 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 -.L1931: +.L1975: ret .size FtlMapBlkWriteDumpData, .-FtlMapBlkWriteDumpData .section .text.FtlScanSysBlk,"ax",@progbits @@ -13388,39 +13666,39 @@ FtlScanSysBlk: stp x25, x26, [sp, 64] adrp x25, .LANCHOR130 stp x21, x22, [sp, 32] - adrp x21, .LANCHOR65 + adrp x21, .LANCHOR64 ldr x0, [x25, #:lo12:.LANCHOR130] adrp x22, .LANCHOR193 - ldr w2, [x21, #:lo12:.LANCHOR65] + ldr w2, [x21, #:lo12:.LANCHOR64] stp x19, x20, [sp, 16] adrp x20, .LANCHOR128 stp x23, x24, [sp, 48] - adrp x23, .LANCHOR71 + adrp x23, .LANCHOR70 stp x27, x28, [sp, 80] adrp x27, .LANCHOR129 lsl w2, w2, 2 strh wzr, [x20, #:lo12:.LANCHOR128] - strh wzr, [x23, #:lo12:.LANCHOR71] + strh wzr, [x23, #:lo12:.LANCHOR70] bl ftl_memset ldr x0, [x27, #:lo12:.LANCHOR129] mov w1, 0 - ldr w2, [x21, #:lo12:.LANCHOR65] - adrp x19, .LANCHOR62 - adrp x28, .LANCHOR72 + ldr w2, [x21, #:lo12:.LANCHOR64] + adrp x19, .LANCHOR61 + adrp x28, .LANCHOR71 adrp x24, .LANCHOR209 lsl w2, w2, 1 bl ftl_memset ldr x0, [x22, #:lo12:.LANCHOR193] mov w1, 0 - ldrh w2, [x19, #:lo12:.LANCHOR62] + ldrh w2, [x19, #:lo12:.LANCHOR61] lsl w2, w2, 2 bl ftl_memset - ldr x0, [x28, #:lo12:.LANCHOR72] + ldr x0, [x28, #:lo12:.LANCHOR71] mov w1, 0 - ldrh w2, [x19, #:lo12:.LANCHOR62] + ldrh w2, [x19, #:lo12:.LANCHOR61] lsl w2, w2, 1 bl ftl_memset - mov w2, 12 + mov w2, 16 mov w1, 255 add x0, x24, :lo12:.LANCHOR209 bl ftl_memset @@ -13435,35 +13713,35 @@ FtlScanSysBlk: adrp x0, .LANCHOR159 add x0, x0, :lo12:.LANCHOR159 str x0, [x29, 112] -.L1936: +.L1980: ldr x0, [x29, 120] ldr w1, [x29, 172] ldrh w0, [x0] cmp w0, w1 - bls .L1977 + bls .L2021 adrp x0, .LANCHOR38 adrp x25, .LANCHOR180 adrp x6, .LANCHOR47 mov x5, 0 ldrh w13, [x0, #:lo12:.LANCHOR38] - adrp x0, .LANCHOR105 + adrp x0, .LANCHOR104 ldr x7, [x25, #:lo12:.LANCHOR180] mov w22, 0 - ldr x12, [x0, #:lo12:.LANCHOR105] - adrp x0, .LANCHOR106 + ldr x12, [x0, #:lo12:.LANCHOR104] + adrp x0, .LANCHOR105 add x6, x6, :lo12:.LANCHOR47 mov w8, 56 - ldr x11, [x0, #:lo12:.LANCHOR106] - adrp x0, .LANCHOR59 - ldrh w10, [x0, #:lo12:.LANCHOR59] - b .L1978 -.L1938: + ldr x11, [x0, #:lo12:.LANCHOR105] + adrp x0, .LANCHOR58 + ldrh w10, [x0, #:lo12:.LANCHOR58] + b .L2022 +.L1982: ldrh w1, [x29, 172] ldrb w0, [x6, x5] bl V2P_block and w4, w0, 65535 bl FtlBbmIsBadBlock - cbnz w0, .L1937 + cbnz w0, .L1981 umaddl x1, w22, w8, x7 lsl w4, w4, 10 mul w0, w22, w10 @@ -13473,19 +13751,19 @@ FtlScanSysBlk: str w4, [x1, 4] add x0, x11, x0, sxtw 2 stp x12, x0, [x1, 8] -.L1937: +.L1981: add x5, x5, 1 -.L1978: +.L2022: cmp w13, w5, uxth - bhi .L1938 - cbnz w22, .L1939 -.L1976: + bhi .L1982 + cbnz w22, .L1983 +.L2020: ldr w0, [x29, 172] add w26, w0, 1 and w0, w26, 65535 str w0, [x29, 172] - b .L1936 -.L1939: + b .L1980 +.L1983: mov w1, w22 mov w2, 1 mov x0, x7 @@ -13497,7 +13775,7 @@ FtlScanSysBlk: adrp x0, .LANCHOR220 add x0, x0, :lo12:.LANCHOR220 str x0, [x29, 136] -.L1975: +.L2019: ldr x0, [x25, #:lo12:.LANCHOR180] add x1, x0, x22 ldr w0, [x0, x22] @@ -13505,10 +13783,10 @@ FtlScanSysBlk: cmn w0, #1 ldr x27, [x1, 16] ubfx x26, x3, 10, 16 - bne .L1942 + bne .L1986 mov w5, 16 mov w7, 65535 -.L1944: +.L1988: ldr x0, [x25, #:lo12:.LANCHOR180] add x6, x25, :lo12:.LANCHOR180 mov w2, 1 @@ -13526,71 +13804,71 @@ FtlScanSysBlk: ldr w5, [x29, 168] cmp w0, w7 ldr x6, [x29, 104] - bne .L1941 + bne .L1985 ldr x0, [x6] mov w1, -1 str w1, [x0, x22] ldr x0, [x6] ldr w0, [x0, x22] cmp w0, w1 - beq .L2014 -.L1942: + beq .L2058 +.L1986: adrp x0, .LANCHOR159 ldr w1, [x0, #:lo12:.LANCHOR159] ldr w0, [x27, 4] cmn w1, #1 - beq .L1945 + beq .L1989 cmp w1, w0 - bhi .L1946 -.L1945: + bhi .L1990 +.L1989: cmn w0, #1 - beq .L1946 + beq .L1990 ldr x2, [x29, 112] add w1, w0, 1 str w1, [x2] -.L1946: +.L1990: ldrh w1, [x27] mov w2, 61604 cmp w1, w2 - beq .L1948 - bhi .L1949 + beq .L1992 + bhi .L1993 mov w0, 61574 cmp w1, w0 - beq .L1950 -.L1947: + beq .L1994 +.L1991: ldr x0, [x29, 128] add x22, x22, 56 cmp x0, x22 - bne .L1975 - b .L1976 -.L1941: + bne .L2019 + b .L2020 +.L1985: ldr x0, [x25, #:lo12:.LANCHOR180] ldr w0, [x0, x22] cmn w0, #1 - bne .L1942 + bne .L1986 sub w5, w5, #1 ands w5, w5, 65535 - bne .L1944 -.L2014: + bne .L1988 +.L2058: mov w1, 0 mov w0, w26 bl FtlFreeSysBlkQueueIn - b .L1947 -.L1949: + b .L1991 +.L1993: mov w0, 61634 cmp w1, w0 - beq .L1951 + beq .L1995 mov w0, 65535 cmp w1, w0 - beq .L2014 - b .L1947 -.L1951: + beq .L2058 + b .L1991 +.L1995: ldrh w1, [x20, #:lo12:.LANCHOR128] - ldr w0, [x21, #:lo12:.LANCHOR65] + ldr w0, [x21, #:lo12:.LANCHOR64] cmp w1, w0 - bls .L1953 + bls .L1997 ldr x1, [x29, 136] - mov w2, 1297 + mov w2, 1305 adrp x0, .LC5 add x0, x0, :lo12:.LC5 bl printf @@ -13599,8 +13877,8 @@ FtlScanSysBlk: add x1, x1, :lo12:.LC6 add x0, x0, :lo12:.LC7 bl printf -.L1953: - ldr w6, [x21, #:lo12:.LANCHOR65] +.L1997: + ldr w6, [x21, #:lo12:.LANCHOR64] ldr x3, [x29, 152] ldrh w1, [x20, #:lo12:.LANCHOR128] and w2, w6, 65535 @@ -13610,53 +13888,53 @@ FtlScanSysBlk: sub w2, w2, #1 ldr x5, [x3, #:lo12:.LANCHOR130] sxth w2, w2 -.L1954: +.L1998: cmp w0, w2 - bgt .L1960 - tbz w0, #31, .L1995 - b .L1947 -.L1960: + bgt .L2004 + tbz w0, #31, .L2039 + b .L1991 +.L2004: sxtw x8, w0 ldr w11, [x27, 4] lsl x7, x8, 2 add x10, x5, x7 ldr w7, [x5, x7] cmp w11, w7 - bls .L1955 + bls .L1999 ldr w2, [x5] - cbnz w2, .L1956 + cbnz w2, .L2000 cmp w6, w1 - beq .L1956 + beq .L2000 add w1, w1, 1 strh w1, [x20, #:lo12:.LANCHOR128] -.L1956: +.L2000: ldr x1, [x29, 160] ldr x6, [x1, #:lo12:.LANCHOR129] mov w1, 0 -.L1957: +.L2001: cmp w1, w0 - bne .L1958 + bne .L2002 ldr w1, [x27, 4] str w1, [x10] strh w26, [x6, x8, lsl 1] - tbnz w0, #31, .L1947 + tbnz w0, #31, .L1991 ldrh w1, [x20, #:lo12:.LANCHOR128] - ldr w2, [x21, #:lo12:.LANCHOR65] + ldr w2, [x21, #:lo12:.LANCHOR64] sub w2, w2, w1 sub w2, w2, #1 cmp w0, w2, sxth - bgt .L1947 -.L1995: + bgt .L1991 +.L2039: add w1, w1, 1 strh w1, [x20, #:lo12:.LANCHOR128] ldr w1, [x27, 4] str w1, [x5, x0, lsl 2] ldr x1, [x29, 160] ldr x1, [x1, #:lo12:.LANCHOR129] -.L2013: +.L2057: strh w26, [x1, x0, lsl 1] - b .L1947 -.L1958: + b .L1991 +.L2002: sxtw x2, w1 add w1, w1, 1 lsl x7, x2, 2 @@ -13668,18 +13946,18 @@ FtlScanSysBlk: add x7, x6, x2 ldrh w7, [x7, 2] strh w7, [x6, x2] - b .L1957 -.L1955: + b .L2001 +.L1999: sub w0, w0, #1 sxth x0, w0 - b .L1954 -.L1950: - ldrh w1, [x23, #:lo12:.LANCHOR71] - ldrh w0, [x19, #:lo12:.LANCHOR62] + b .L1998 +.L1994: + ldrh w1, [x23, #:lo12:.LANCHOR70] + ldrh w0, [x19, #:lo12:.LANCHOR61] cmp w1, w0 - bls .L1963 + bls .L2007 ldr x1, [x29, 136] - mov w2, 1344 + mov w2, 1352 adrp x0, .LC5 add x0, x0, :lo12:.LC5 bl printf @@ -13688,54 +13966,54 @@ FtlScanSysBlk: add x1, x1, :lo12:.LC6 add x0, x0, :lo12:.LC7 bl printf -.L1963: - ldrh w6, [x19, #:lo12:.LANCHOR62] - ldrh w2, [x23, #:lo12:.LANCHOR71] +.L2007: + ldrh w6, [x19, #:lo12:.LANCHOR61] + ldrh w2, [x23, #:lo12:.LANCHOR70] sub w1, w6, #1 sxth x0, w1 sub w5, w1, w2 ldr x1, [x29, 144] ldr x1, [x1, #:lo12:.LANCHOR193] -.L1964: +.L2008: cmp w0, w5 - ble .L1969 + ble .L2013 sxtw x7, w0 ldr w11, [x27, 4] lsl x8, x7, 2 add x10, x1, x8 ldr w8, [x1, x8] cmp w11, w8 - bls .L1965 + bls .L2009 ldr w5, [x1] - cbnz w5, .L1966 + cbnz w5, .L2010 cmp w6, w2 - beq .L1966 + beq .L2010 add w2, w2, 1 - strh w2, [x23, #:lo12:.LANCHOR71] -.L1966: - ldr x6, [x28, #:lo12:.LANCHOR72] + strh w2, [x23, #:lo12:.LANCHOR70] +.L2010: + ldr x6, [x28, #:lo12:.LANCHOR71] mov w2, 0 -.L1967: +.L2011: cmp w2, w0 - bne .L1968 + bne .L2012 ldr w2, [x27, 4] str w2, [x10] strh w26, [x6, x7, lsl 1] -.L1969: - tbnz w0, #31, .L1947 - ldrh w2, [x19, #:lo12:.LANCHOR62] - ldrh w5, [x23, #:lo12:.LANCHOR71] +.L2013: + tbnz w0, #31, .L1991 + ldrh w2, [x19, #:lo12:.LANCHOR61] + ldrh w5, [x23, #:lo12:.LANCHOR70] sub w2, w2, #1 sub w2, w2, w5 cmp w0, w2, sxth - bgt .L1947 + bgt .L1991 add w5, w5, 1 ldr w2, [x27, 4] - strh w5, [x23, #:lo12:.LANCHOR71] + strh w5, [x23, #:lo12:.LANCHOR70] str w2, [x1, x0, lsl 2] - ldr x1, [x28, #:lo12:.LANCHOR72] - b .L2013 -.L1968: + ldr x1, [x28, #:lo12:.LANCHOR71] + b .L2057 +.L2012: sxtw x5, w2 add w2, w2, 1 lsl x8, x5, 2 @@ -13747,55 +14025,55 @@ FtlScanSysBlk: add x8, x6, x5 ldrh w8, [x8, 2] strh w8, [x6, x5] - b .L1967 -.L1965: + b .L2011 +.L2009: sub w0, w0, #1 sxth x0, w0 - b .L1964 -.L1948: + b .L2008 +.L1992: ldrh w5, [x24, #:lo12:.LANCHOR209] mov w1, 65535 add x2, x24, :lo12:.LANCHOR209 cmp w5, w1 - bne .L1971 + bne .L2015 strh w26, [x24, #:lo12:.LANCHOR209] str w0, [x2, 8] - b .L1947 -.L1971: + b .L1991 +.L2015: ldrh w0, [x2, 4] cmp w0, w1 - beq .L1972 + beq .L2016 mov w1, 1 bl FtlFreeSysBlkQueueIn -.L1972: +.L2016: add x0, x24, :lo12:.LANCHOR209 ldr w1, [x27, 4] ldr w2, [x0, 8] cmp w2, w1 - bcs .L1973 + bcs .L2017 ldrh w2, [x24, #:lo12:.LANCHOR209] strh w2, [x0, 4] strh w26, [x24, #:lo12:.LANCHOR209] str w1, [x0, 8] - b .L1947 -.L1973: + b .L1991 +.L2017: strh w26, [x0, 4] - b .L1947 -.L1977: + b .L1991 +.L2021: ldr x0, [x29, 160] ldr x2, [x0, #:lo12:.LANCHOR129] ldrh w0, [x2] - cbz w0, .L1979 -.L1982: - ldr x1, [x28, #:lo12:.LANCHOR72] + cbz w0, .L2023 +.L2026: + ldr x1, [x28, #:lo12:.LANCHOR71] ldrh w0, [x1] - cbz w0, .L1980 -.L1981: + cbz w0, .L2024 +.L2025: ldrh w1, [x20, #:lo12:.LANCHOR128] - ldr w0, [x21, #:lo12:.LANCHOR65] + ldr w0, [x21, #:lo12:.LANCHOR64] cmp w1, w0 - bls .L2011 - mov w2, 1478 + bls .L2055 + mov w2, 1486 adrp x1, .LANCHOR220 adrp x0, .LC5 add x1, x1, :lo12:.LANCHOR220 @@ -13806,7 +14084,7 @@ FtlScanSysBlk: add x1, x1, :lo12:.LC6 add x0, x0, :lo12:.LC7 bl printf -.L2011: +.L2055: ldp x19, x20, [sp, 16] mov w0, 0 ldp x21, x22, [sp, 32] @@ -13815,24 +14093,24 @@ FtlScanSysBlk: ldp x27, x28, [sp, 80] ldp x29, x30, [sp], 176 ret -.L1979: +.L2023: ldrh w0, [x20, #:lo12:.LANCHOR128] - cbz w0, .L1982 - ldr w1, [x21, #:lo12:.LANCHOR65] + cbz w0, .L2026 + ldr w1, [x21, #:lo12:.LANCHOR64] mov w0, 0 -.L1983: +.L2027: cmp w0, w1 - bcs .L1982 + bcs .L2026 ldrh w3, [x2, w0, sxtw 1] - cbz w3, .L1984 + cbz w3, .L2028 ldr x1, [x29, 152] - add x7, x21, :lo12:.LANCHOR65 + add x7, x21, :lo12:.LANCHOR64 ldr x4, [x1, #:lo12:.LANCHOR130] mov w1, w0 -.L1985: +.L2029: ldr w3, [x7] cmp w1, w3 - bcs .L1982 + bcs .L2026 sxtw x6, w1 sub w3, w1, w0 lsl x5, x6, 1 @@ -13844,29 +14122,29 @@ FtlScanSysBlk: strh w8, [x2, x3, lsl 1] str w6, [x4, x3, lsl 2] strh wzr, [x2, x5] - b .L1985 -.L1984: + b .L2029 +.L2028: add w0, w0, 1 sxth w0, w0 - b .L1983 -.L1980: - ldrh w0, [x23, #:lo12:.LANCHOR71] - cbz w0, .L1981 - ldrh w2, [x19, #:lo12:.LANCHOR62] + b .L2027 +.L2024: + ldrh w0, [x23, #:lo12:.LANCHOR70] + cbz w0, .L2025 + ldrh w2, [x19, #:lo12:.LANCHOR61] mov w0, 0 -.L1990: +.L2034: mov w6, w0 cmp w0, w2 - bge .L1981 + bge .L2025 ldrh w3, [x1, w0, sxtw 1] - cbz w3, .L1991 + cbz w3, .L2035 ldr x2, [x29, 144] - add x19, x19, :lo12:.LANCHOR62 + add x19, x19, :lo12:.LANCHOR61 ldr x3, [x2, #:lo12:.LANCHOR193] -.L1992: +.L2036: ldrh w2, [x19] cmp w0, w2 - bge .L1981 + bge .L2025 sxtw x5, w0 sub w2, w0, w6 lsl x4, x5, 1 @@ -13878,67 +14156,69 @@ FtlScanSysBlk: strh w7, [x1, x2, lsl 1] str w5, [x3, x2, lsl 2] strh wzr, [x1, x4] - b .L1992 -.L1991: + b .L2036 +.L2035: add w0, w0, 1 sxth w0, w0 - b .L1990 + b .L2034 .size FtlScanSysBlk, .-FtlScanSysBlk .section .text.FtlLoadSysInfo,"ax",@progbits .align 2 .global FtlLoadSysInfo .type FtlLoadSysInfo, %function FtlLoadSysInfo: - stp x29, x30, [sp, -96]! - mov w1, 0 + stp x29, x30, [sp, -112]! add x29, sp, 0 + stp x23, x24, [sp, 48] + adrp x23, .LANCHOR183 stp x19, x20, [sp, 16] adrp x19, .LANCHOR202 - stp x23, x24, [sp, 48] - add x20, x19, :lo12:.LANCHOR202 - adrp x24, .LANCHOR183 + add x0, x19, :lo12:.LANCHOR202 stp x25, x26, [sp, 64] - adrp x26, .LANCHOR188 + adrp x25, .LANCHOR188 stp x21, x22, [sp, 32] stp x27, x28, [sp, 80] - adrp x25, .LANCHOR84 - ldr x0, [x24, #:lo12:.LANCHOR183] + adrp x24, .LANCHOR83 + ldr x1, [x23, #:lo12:.LANCHOR183] adrp x22, .LANCHOR40 - str x0, [x20, 8] + str x1, [x0, 8] adrp x21, .LANCHOR209 - ldr x0, [x26, #:lo12:.LANCHOR188] - str x0, [x20, 16] - ldr x0, [x25, #:lo12:.LANCHOR84] + ldr x1, [x25, #:lo12:.LANCHOR188] + str x1, [x0, 16] + ldr x0, [x24, #:lo12:.LANCHOR83] + mov w1, 0 ldrh w2, [x22, #:lo12:.LANCHOR40] lsl w2, w2, 1 bl ftl_memset ldrh w0, [x21, #:lo12:.LANCHOR209] mov w1, 65535 cmp w0, w1 - bne .L2016 -.L2025: + bne .L2060 +.L2072: mov w0, -1 -.L2015: +.L2059: 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], 112 ret -.L2016: - add x27, x21, :lo12:.LANCHOR209 +.L2060: + add x26, x21, :lo12:.LANCHOR209 mov w1, 1 bl FtlGetLastWrittenPage - sxth w23, w0 + ldrsh w28, [x21, #:lo12:.LANCHOR209] + sxth w20, w0 + adrp x27, .LANCHOR57 add w0, w0, 1 - mov w28, 61604 - strh w0, [x27, 2] - mov w27, 19539 - movk w27, 0x4654, lsl 16 -.L2018: - tbz w23, #31, .L2021 - mov w2, 1538 + add x27, x27, :lo12:.LANCHOR57 + strh w0, [x26, 2] + adrp x26, .LANCHOR1 + add x26, x26, :lo12:.LANCHOR1 +.L2062: + tbz w20, #31, .L2068 + mov w2, 1555 adrp x1, .LANCHOR221 adrp x0, .LC5 add x1, x1, :lo12:.LANCHOR221 @@ -13949,14 +14229,67 @@ FtlLoadSysInfo: add x1, x1, :lo12:.LC6 add x0, x0, :lo12:.LC7 bl printf -.L2020: - adrp x1, .LANCHOR58 + b .L2067 +.L2068: + add x3, x19, :lo12:.LANCHOR202 + orr w0, w20, w28, lsl 10 + mov w2, 1 + str x3, [x29, 104] + mov w1, w2 + str w0, [x3, 4] + ldr x0, [x23, #:lo12:.LANCHOR183] + str x0, [x3, 8] + mov x0, x3 + bl FlashReadPages + ldrb w0, [x26] + cbz w0, .L2063 + ldr x3, [x29, 104] + ldr x0, [x3, 16] + ldr w6, [x0, 12] + cbz w6, .L2063 + ldrh w1, [x27] + ldr x0, [x3, 8] + bl js_hash + cmp w6, w0 + beq .L2063 + cbnz w20, .L2064 + add x0, x21, :lo12:.LANCHOR209 + ldrh w0, [x0, 4] + cmp w28, w0 + beq .L2064 + sxth w28, w0 + adrp x0, .LANCHOR53 + ldrh w20, [x0, #:lo12:.LANCHOR53] +.L2066: + sub w20, w20, #1 + sxth w20, w20 + b .L2062 +.L2064: + mov w0, -1 + str w0, [x19, #:lo12:.LANCHOR202] +.L2063: + ldr w0, [x19, #:lo12:.LANCHOR202] + cmn w0, #1 + beq .L2066 + ldr x0, [x23, #:lo12:.LANCHOR183] + mov w1, 19539 + movk w1, 0x4654, lsl 16 + ldr w0, [x0] + cmp w0, w1 + bne .L2066 + ldr x0, [x25, #:lo12:.LANCHOR188] + ldrh w1, [x0] + mov w0, 61604 + cmp w1, w0 + bne .L2066 +.L2067: + adrp x1, .LANCHOR57 ldrh w0, [x22, #:lo12:.LANCHOR40] - ldrh w1, [x1, #:lo12:.LANCHOR58] + ldrh w1, [x1, #:lo12:.LANCHOR57] add x0, x0, 24 cmp x1, x0, lsl 1 - bcs .L2023 - mov w2, 1540 + bcs .L2070 + mov w2, 1557 adrp x1, .LANCHOR221 adrp x0, .LC5 add x1, x1, :lo12:.LANCHOR221 @@ -13967,14 +14300,14 @@ FtlLoadSysInfo: add x1, x1, :lo12:.LC6 add x0, x0, :lo12:.LC7 bl printf -.L2023: +.L2070: add x19, x19, :lo12:.LANCHOR202 mov w2, 48 - adrp x20, .LANCHOR81 - add x0, x20, :lo12:.LANCHOR81 + adrp x20, .LANCHOR80 + add x0, x20, :lo12:.LANCHOR80 ldr x1, [x19, 8] bl ftl_memcpy - ldr x0, [x25, #:lo12:.LANCHOR84] + ldr x0, [x24, #:lo12:.LANCHOR83] ldrh w2, [x22, #:lo12:.LANCHOR40] ldr x1, [x19, 8] lsl w2, w2, 1 @@ -13991,12 +14324,12 @@ FtlLoadSysInfo: adrp x0, .LANCHOR0 ldr x0, [x0, #:lo12:.LANCHOR0] bl ftl_memcpy - adrp x0, .LANCHOR70 - ldrh w0, [x0, #:lo12:.LANCHOR70] - cbz w0, .L2024 + adrp x0, .LANCHOR69 + ldrh w0, [x0, #:lo12:.LANCHOR69] + cbz w0, .L2071 ldrh w1, [x22, #:lo12:.LANCHOR40] - adrp x0, .LANCHOR67 - ldrh w2, [x0, #:lo12:.LANCHOR67] + adrp x0, .LANCHOR66 + ldrh w2, [x0, #:lo12:.LANCHOR66] lsr w0, w1, 3 add w1, w0, w1, lsl 1 ldr x0, [x19, 8] @@ -14007,13 +14340,13 @@ FtlLoadSysInfo: adrp x0, .LANCHOR195 ldr x0, [x0, #:lo12:.LANCHOR195] bl ftl_memcpy -.L2024: - ldr w2, [x20, #:lo12:.LANCHOR81] +.L2071: + ldr w2, [x20, #:lo12:.LANCHOR80] mov w1, 19539 movk w1, 0x4654, lsl 16 - add x0, x20, :lo12:.LANCHOR81 + add x0, x20, :lo12:.LANCHOR80 cmp w2, w1 - bne .L2025 + bne .L2072 add x21, x21, :lo12:.LANCHOR209 ldrh w1, [x0, 8] ldrb w2, [x0, 10] @@ -14021,33 +14354,33 @@ FtlLoadSysInfo: strh w1, [x21, 6] ldrh w0, [x0, #:lo12:.LANCHOR45] cmp w2, w0 - bne .L2025 + bne .L2072 adrp x0, .LANCHOR222 - adrp x2, .LANCHOR73 + adrp x2, .LANCHOR72 adrp x3, .LANCHOR38 str w1, [x0, #:lo12:.LANCHOR222] - adrp x0, .LANCHOR53 + adrp x0, .LANCHOR52 ldrh w3, [x3, #:lo12:.LANCHOR38] - ldrh w0, [x0, #:lo12:.LANCHOR53] + ldrh w0, [x0, #:lo12:.LANCHOR52] mul w0, w0, w1 - str w0, [x2, #:lo12:.LANCHOR73] - adrp x2, .LANCHOR56 - ldrh w2, [x2, #:lo12:.LANCHOR56] + str w0, [x2, #:lo12:.LANCHOR72] + adrp x2, .LANCHOR55 + ldrh w2, [x2, #:lo12:.LANCHOR55] mul w0, w2, w0 - adrp x2, .LANCHOR69 - str w0, [x2, #:lo12:.LANCHOR69] + adrp x2, .LANCHOR68 + str w0, [x2, #:lo12:.LANCHOR68] adrp x0, .LANCHOR42 ldr w2, [x0, #:lo12:.LANCHOR42] - adrp x0, .LANCHOR75+6 - ldrh w0, [x0, #:lo12:.LANCHOR75+6] + adrp x0, .LANCHOR74+6 + ldrh w0, [x0, #:lo12:.LANCHOR74+6] cmp w1, w2 sub w0, w2, w0 sub w0, w0, w1 udiv w0, w0, w3 adrp x3, .LANCHOR223 strh w0, [x3, #:lo12:.LANCHOR223] - bls .L2026 - mov w2, 1567 + bls .L2073 + mov w2, 1584 adrp x1, .LANCHOR221 adrp x0, .LC5 add x1, x1, :lo12:.LANCHOR221 @@ -14058,136 +14391,111 @@ FtlLoadSysInfo: add x1, x1, :lo12:.LC6 add x0, x0, :lo12:.LC7 bl printf -.L2026: - add x1, x20, :lo12:.LANCHOR81 - adrp x0, .LANCHOR92 - add x3, x0, :lo12:.LANCHOR92 - adrp x19, .LANCHOR204 - ldrh w2, [x1, 16] - ldrh w6, [x1, 14] - strh w6, [x0, #:lo12:.LANCHOR92] - lsr w4, w2, 6 - and w2, w2, 63 - strb w2, [x3, 6] - ldrb w2, [x1, 11] - strb w2, [x3, 8] - add x2, x19, :lo12:.LANCHOR204 - strh w4, [x3, 2] - mov w3, -1 - strh w3, [x19, #:lo12:.LANCHOR204] - strh wzr, [x2, 2] - strb wzr, [x2, 6] - strb wzr, [x2, 8] +.L2073: + add x4, x20, :lo12:.LANCHOR80 + adrp x0, .LANCHOR91 + add x2, x0, :lo12:.LANCHOR91 + adrp x5, .LANCHOR204 + adrp x19, .LANCHOR92 + mov x22, x5 + ldrh w1, [x4, 16] + ldrh w6, [x4, 14] + strh w6, [x0, #:lo12:.LANCHOR91] + lsr w3, w1, 6 + and w1, w1, 63 + strb w1, [x2, 6] + ldrb w1, [x4, 11] + strb w1, [x2, 8] + add x1, x5, :lo12:.LANCHOR204 + strh w3, [x2, 2] + mov w2, -1 + strh w2, [x5, #:lo12:.LANCHOR204] + add x2, x19, :lo12:.LANCHOR92 + strh wzr, [x1, 2] + strb wzr, [x1, 6] + strb wzr, [x1, 8] + ldrh w1, [x4, 18] + strh w1, [x19, #:lo12:.LANCHOR92] + ldrh w1, [x4, 20] + lsr w3, w1, 6 + and w1, w1, 63 + strb w1, [x2, 6] + ldrb w1, [x4, 12] + strh w3, [x2, 2] + strb w1, [x2, 8] adrp x2, .LANCHOR93 - ldrh w3, [x1, 18] - add x4, x2, :lo12:.LANCHOR93 - strh w3, [x2, #:lo12:.LANCHOR93] + ldrh w1, [x4, 22] + add x3, x2, :lo12:.LANCHOR93 + strh w1, [x2, #:lo12:.LANCHOR93] mov x21, x2 - ldrh w3, [x1, 20] - lsr w5, w3, 6 - and w3, w3, 63 - strb w3, [x4, 6] - ldrb w3, [x1, 12] - strh w5, [x4, 2] - strb w3, [x4, 8] - adrp x4, .LANCHOR94 - ldrh w3, [x1, 22] - add x5, x4, :lo12:.LANCHOR94 - strh w3, [x4, #:lo12:.LANCHOR94] - mov x22, x4 - ldrh w3, [x1, 24] - lsr w7, w3, 6 - and w3, w3, 63 - strb w3, [x5, 6] - ldrb w3, [x1, 13] - strb w3, [x5, 8] - adrp x3, .LANCHOR161 - strh w7, [x5, 2] - ldr w5, [x1, 32] - str wzr, [x3, #:lo12:.LANCHOR161] - adrp x3, .LANCHOR162 - str wzr, [x3, #:lo12:.LANCHOR162] - adrp x3, .LANCHOR166 - str wzr, [x3, #:lo12:.LANCHOR166] - adrp x3, .LANCHOR165 - str wzr, [x3, #:lo12:.LANCHOR165] - adrp x3, .LANCHOR167 - str w5, [x3, #:lo12:.LANCHOR167] - adrp x3, .LANCHOR168 - str wzr, [x3, #:lo12:.LANCHOR168] - adrp x3, .LANCHOR169 - str wzr, [x3, #:lo12:.LANCHOR169] - adrp x3, .LANCHOR164 - str wzr, [x3, #:lo12:.LANCHOR164] - ldr w3, [x1, 40] + ldrh w1, [x4, 24] + lsr w7, w1, 6 + and w1, w1, 63 + strb w1, [x3, 6] + ldrb w1, [x4, 13] + strb w1, [x3, 8] + adrp x1, .LANCHOR161 + strh w7, [x3, 2] + ldr w3, [x4, 32] + str wzr, [x1, #:lo12:.LANCHOR161] + adrp x1, .LANCHOR162 + str wzr, [x1, #:lo12:.LANCHOR162] + adrp x1, .LANCHOR166 + str wzr, [x1, #:lo12:.LANCHOR166] + adrp x1, .LANCHOR165 + str wzr, [x1, #:lo12:.LANCHOR165] + adrp x1, .LANCHOR167 + str w3, [x1, #:lo12:.LANCHOR167] + adrp x1, .LANCHOR168 + str wzr, [x1, #:lo12:.LANCHOR168] + adrp x1, .LANCHOR169 + str wzr, [x1, #:lo12:.LANCHOR169] + adrp x1, .LANCHOR164 + ldr w3, [x4, 40] + str wzr, [x1, #:lo12:.LANCHOR164] adrp x1, .LANCHOR159 - ldr w5, [x1, #:lo12:.LANCHOR159] - cmp w3, w5 - bls .L2027 + ldr w4, [x1, #:lo12:.LANCHOR159] + cmp w3, w4 + bls .L2074 str w3, [x1, #:lo12:.LANCHOR159] -.L2027: - add x20, x20, :lo12:.LANCHOR81 +.L2074: + add x20, x20, :lo12:.LANCHOR80 adrp x1, .LANCHOR160 ldr w3, [x1, #:lo12:.LANCHOR160] ldr w2, [x20, 36] cmp w2, w3 - bls .L2028 + bls .L2075 str w2, [x1, #:lo12:.LANCHOR160] -.L2028: +.L2075: mov w1, 65535 cmp w6, w1 - beq .L2029 - add x0, x0, :lo12:.LANCHOR92 + beq .L2076 + add x0, x0, :lo12:.LANCHOR91 bl make_superblock -.L2029: +.L2076: + ldrh w2, [x19, #:lo12:.LANCHOR92] + mov w1, 65535 + add x0, x19, :lo12:.LANCHOR92 + cmp w2, w1 + beq .L2077 + bl make_superblock +.L2077: ldrh w2, [x21, #:lo12:.LANCHOR93] mov w1, 65535 add x0, x21, :lo12:.LANCHOR93 cmp w2, w1 - beq .L2030 + beq .L2078 bl make_superblock -.L2030: - ldrh w2, [x22, #:lo12:.LANCHOR94] +.L2078: + ldrh w2, [x22, #:lo12:.LANCHOR204] mov w1, 65535 - add x0, x22, :lo12:.LANCHOR94 + add x0, x22, :lo12:.LANCHOR204 cmp w2, w1 - beq .L2031 + beq .L2079 bl make_superblock -.L2031: - ldrh w2, [x19, #:lo12:.LANCHOR204] - mov w1, 65535 - add x0, x19, :lo12:.LANCHOR204 - cmp w2, w1 - beq .L2032 - bl make_superblock -.L2032: +.L2079: mov w0, 0 - b .L2015 -.L2021: - ldrh w0, [x21, #:lo12:.LANCHOR209] - mov w2, 1 - mov w1, w2 - orr w0, w23, w0, lsl 10 - str w0, [x20, 4] - ldr x0, [x24, #:lo12:.LANCHOR183] - str x0, [x20, 8] - mov x0, x20 - bl FlashReadPages - ldr w0, [x20] - cmn w0, #1 - beq .L2019 - ldr x0, [x24, #:lo12:.LANCHOR183] - ldr w0, [x0] - cmp w0, w27 - bne .L2019 - ldr x0, [x26, #:lo12:.LANCHOR188] - ldrh w0, [x0] - cmp w0, w28 - beq .L2020 -.L2019: - sub w23, w23, #1 - sxth w23, w23 - b .L2018 + b .L2059 .size FtlLoadSysInfo, .-FtlLoadSysInfo .section .text.FtlDumpBlockInfo,"ax",@progbits .align 2 @@ -14199,7 +14507,7 @@ FtlDumpBlockInfo: stp x29, x30, [sp, 16] add x29, sp, 16 stp x19, x20, [sp, 32] - adrp x19, .LANCHOR53 + adrp x19, .LANCHOR52 stp x21, x22, [sp, 48] and w22, w1, 255 stp x23, x24, [sp, 64] @@ -14207,16 +14515,16 @@ FtlDumpBlockInfo: stp x25, x26, [sp, 80] str x27, [sp, 96] bl P2V_block_in_plane - ldrh w25, [x19, #:lo12:.LANCHOR53] + ldrh w25, [x19, #:lo12:.LANCHOR52] and w21, w0, 65535 adrp x1, .LANCHOR224 adrp x0, .LC45 add x1, x1, :lo12:.LANCHOR224 add x0, x0, :lo12:.LC45 bl printf - adrp x1, .LANCHOR84 + adrp x1, .LANCHOR83 ubfiz x0, x21, 1, 16 - ldr x1, [x1, #:lo12:.LANCHOR84] + ldr x1, [x1, #:lo12:.LANCHOR83] ldrh w2, [x1, x0] mov w1, w21 adrp x0, .LC46 @@ -14225,19 +14533,19 @@ FtlDumpBlockInfo: strh w21, [x23, -48]! mov x0, x23 bl make_superblock - adrp x0, .LANCHOR8 - ldrb w0, [x0, #:lo12:.LANCHOR8] - cbz w0, .L2051 - cbnz w22, .L2051 + adrp x0, .LANCHOR15 + ldrb w0, [x0, #:lo12:.LANCHOR15] + cbz w0, .L2104 + cbnz w22, .L2104 mov w0, w21 bl ftl_get_blk_mode mov w21, w0 cmp w0, 1 - bne .L2042 - adrp x0, .LANCHOR54 - ldrh w25, [x0, #:lo12:.LANCHOR54] -.L2042: - ldrh w3, [x19, #:lo12:.LANCHOR53] + bne .L2095 + adrp x0, .LANCHOR53 + ldrh w25, [x0, #:lo12:.LANCHOR53] +.L2095: + ldrh w3, [x19, #:lo12:.LANCHOR52] adrp x26, .LC48 add x26, x26, :lo12:.LC48 mov w20, 0 @@ -14247,39 +14555,39 @@ FtlDumpBlockInfo: adrp x0, .LC47 add x0, x0, :lo12:.LC47 bl printf -.L2043: - adrp x1, .LANCHOR105 +.L2096: + adrp x1, .LANCHOR104 adrp x0, .LANCHOR38 adrp x24, .LANCHOR180 add x3, x23, 16 - ldr x6, [x1, #:lo12:.LANCHOR105] - adrp x1, .LANCHOR58 + ldr x6, [x1, #:lo12:.LANCHOR104] + adrp x1, .LANCHOR57 ldrh w5, [x0, #:lo12:.LANCHOR38] mov w19, 0 - ldrh w7, [x1, #:lo12:.LANCHOR58] - adrp x1, .LANCHOR106 + ldrh w7, [x1, #:lo12:.LANCHOR57] + adrp x1, .LANCHOR105 ldr x0, [x24, #:lo12:.LANCHOR180] mov w11, 65535 - ldr x8, [x1, #:lo12:.LANCHOR106] - adrp x1, .LANCHOR59 - ldrh w10, [x1, #:lo12:.LANCHOR59] + ldr x8, [x1, #:lo12:.LANCHOR105] + adrp x1, .LANCHOR58 + ldrh w10, [x1, #:lo12:.LANCHOR58] mov w1, 0 -.L2044: +.L2097: cmp w1, w5 - bne .L2046 + bne .L2099 mov w1, w19 umull x19, w19, w27 mov x22, 0 mov w2, w21 bl FlashReadPages -.L2047: +.L2100: cmp x22, x19 - bne .L2048 + bne .L2101 add w20, w20, 1 and w20, w20, 65535 cmp w25, w20 - bne .L2043 -.L2049: + bne .L2096 +.L2102: ldp x19, x20, [sp, 32] mov w0, 0 ldp x21, x22, [sp, 48] @@ -14289,13 +14597,13 @@ FtlDumpBlockInfo: ldr x27, [sp, 96] add sp, sp, 160 ret -.L2051: +.L2104: mov w21, 0 - b .L2042 -.L2046: + b .L2095 +.L2099: ldrh w2, [x3] cmp w2, w11 - beq .L2045 + beq .L2098 umaddl x4, w19, w27, x0 orr w2, w20, w2, lsl 10 str w2, [x4, 4] @@ -14309,12 +14617,12 @@ FtlDumpBlockInfo: asr w2, w2, 2 add x2, x8, x2, sxtw 2 str x2, [x4, 16] -.L2045: +.L2098: add w1, w1, 1 add x3, x3, 2 and w1, w1, 65535 - b .L2044 -.L2048: + b .L2097 +.L2101: ldr x8, [x24, #:lo12:.LANCHOR180] ldrh w1, [x29, 96] add x2, x8, x22 @@ -14330,7 +14638,7 @@ FtlDumpBlockInfo: ldr w2, [x8, x22] add x22, x22, 56 bl printf - b .L2047 + b .L2100 .size FtlDumpBlockInfo, .-FtlDumpBlockInfo .section .text.FtlScanAllBlock,"ax",@progbits .align 2 @@ -14354,10 +14662,10 @@ FtlScanAllBlock: add x24, x24, :lo12:.LC50 str x25, [sp, 80] bl printf -.L2055: +.L2108: ldrh w0, [x23] cmp w0, w20 - bhi .L2063 + bhi .L2116 ldp x19, x20, [sp, 32] mov w0, 0 ldp x21, x22, [sp, 48] @@ -14366,16 +14674,16 @@ FtlScanAllBlock: ldr x25, [sp, 80] add sp, sp, 144 ret -.L2063: +.L2116: strh w20, [x29, 80] mov w0, w20 bl ftl_get_blk_mode mov w3, w0 - adrp x2, .LANCHOR84 + adrp x2, .LANCHOR83 ubfiz x1, x20, 1, 16 adrp x0, .LC49 add x0, x0, :lo12:.LC49 - ldr x2, [x2, #:lo12:.LANCHOR84] + ldr x2, [x2, #:lo12:.LANCHOR83] adrp x22, .LANCHOR180 mov w19, 0 ldrh w2, [x2, x1] @@ -14383,33 +14691,33 @@ FtlScanAllBlock: bl printf add x0, x29, 80 bl make_superblock - adrp x1, .LANCHOR105 + adrp x1, .LANCHOR104 adrp x0, .LANCHOR38 add x3, x29, 96 mov w11, 65535 - ldr x6, [x1, #:lo12:.LANCHOR105] - adrp x1, .LANCHOR58 + ldr x6, [x1, #:lo12:.LANCHOR104] + adrp x1, .LANCHOR57 ldrh w5, [x0, #:lo12:.LANCHOR38] mov w12, 56 - ldrh w7, [x1, #:lo12:.LANCHOR58] - adrp x1, .LANCHOR106 + ldrh w7, [x1, #:lo12:.LANCHOR57] + adrp x1, .LANCHOR105 ldr x0, [x22, #:lo12:.LANCHOR180] - ldr x8, [x1, #:lo12:.LANCHOR106] - adrp x1, .LANCHOR59 - ldrh w10, [x1, #:lo12:.LANCHOR59] + ldr x8, [x1, #:lo12:.LANCHOR105] + adrp x1, .LANCHOR58 + ldrh w10, [x1, #:lo12:.LANCHOR58] mov w1, 0 -.L2056: +.L2109: cmp w1, w5 - bne .L2058 + bne .L2111 mov w25, 56 mov x21, 0 mov w2, 0 mov w1, w19 umull x25, w19, w25 bl FlashReadPages -.L2059: +.L2112: cmp x21, x25 - bne .L2060 + bne .L2113 ldr x0, [x22, #:lo12:.LANCHOR180] adrp x25, .LC51 add x25, x25, :lo12:.LC51 @@ -14417,16 +14725,16 @@ FtlScanAllBlock: mov x19, 0 mov w2, 1 bl FlashReadPages -.L2061: +.L2114: cmp x21, x19 - bne .L2062 + bne .L2115 add w20, w20, 1 and w20, w20, 65535 - b .L2055 -.L2058: + b .L2108 +.L2111: ldrh w2, [x3] cmp w2, w11 - beq .L2057 + beq .L2110 umaddl x4, w19, w12, x0 lsl w2, w2, 10 str w2, [x4, 4] @@ -14440,12 +14748,12 @@ FtlScanAllBlock: asr w2, w2, 2 add x2, x8, x2, sxtw 2 str x2, [x4, 16] -.L2057: +.L2110: add w1, w1, 1 add x3, x3, 2 and w1, w1, 65535 - b .L2056 -.L2060: + b .L2109 +.L2113: ldr x8, [x22, #:lo12:.LANCHOR180] ldrh w1, [x29, 80] add x2, x8, x21 @@ -14461,8 +14769,8 @@ FtlScanAllBlock: ldr w2, [x8, x21] add x21, x21, 56 bl printf - b .L2059 -.L2062: + b .L2112 +.L2115: ldr x8, [x22, #:lo12:.LANCHOR180] ldrh w1, [x29, 80] add x2, x8, x19 @@ -14478,96 +14786,99 @@ FtlScanAllBlock: ldr w2, [x8, x19] add x19, x19, 56 bl printf - b .L2061 + b .L2114 .size FtlScanAllBlock, .-FtlScanAllBlock .section .text.FtlMapTblRecovery,"ax",@progbits .align 2 .global FtlMapTblRecovery .type FtlMapTblRecovery, %function FtlMapTblRecovery: - stp x29, x30, [sp, -144]! + stp x29, x30, [sp, -160]! mov w1, 0 add x29, sp, 0 - stp x19, x20, [sp, 16] - mov x19, x0 - stp x23, x24, [sp, 48] - adrp x20, .LANCHOR202 - ldrh w23, [x0, 6] - adrp x24, .LANCHOR54 - stp x21, x22, [sp, 32] - ldr x21, [x0, 40] - ldr x22, [x0, 16] - lsl w2, w23, 2 - ldr x0, [x0, 24] - str x0, [x29, 128] - ldrh w0, [x19, 8] - stp x25, x26, [sp, 64] stp x27, x28, [sp, 80] - mov w27, 0 - str w0, [x29, 140] - mov x0, x21 + mov x28, x0 + stp x23, x24, [sp, 48] + ldrh w24, [x0, 6] + stp x21, x22, [sp, 32] + adrp x21, .LANCHOR183 + ldr x22, [x0, 40] + ldr x23, [x0, 16] + lsl w2, w24, 2 + ldr x0, [x0, 24] + str x0, [x29, 144] + ldrh w0, [x28, 8] + stp x19, x20, [sp, 16] + mov w19, 0 + stp x25, x26, [sp, 64] + adrp x25, .LANCHOR53 + str w0, [x29, 156] + mov x0, x22 bl ftl_memset - str x20, [x29, 120] - adrp x7, .LANCHOR183 - add x3, x20, :lo12:.LANCHOR202 - mov x26, x7 - mov x20, x3 - ldr x0, [x7, #:lo12:.LANCHOR183] - str x0, [x3, 8] - adrp x0, .LANCHOR188 - stp wzr, wzr, [x19, 48] - ldr x25, [x0, #:lo12:.LANCHOR188] - mov w0, -1 - str x25, [x3, 16] - strh w0, [x19] - strh w0, [x19, 2] - mov w0, 1 - str w0, [x19, 56] - ldr w0, [x29, 140] + stp wzr, wzr, [x28, 48] + adrp x0, .LANCHOR202 + add x4, x0, :lo12:.LANCHOR202 + ldr x1, [x21, #:lo12:.LANCHOR183] + mov x27, x4 + str x0, [x29, 128] + str x1, [x4, 8] + adrp x1, .LANCHOR188 + ldr w0, [x29, 156] + ldr x20, [x1, #:lo12:.LANCHOR188] + mov w1, -1 + str x20, [x4, 16] sub w0, w0, #1 - str w0, [x29, 136] - add x0, x24, :lo12:.LANCHOR54 - str x0, [x29, 112] -.L2066: - ldr w0, [x29, 140] - cmp w27, w0 - bge .L2083 - ldr w0, [x29, 136] - sxtw x28, w27 - cmp w27, w0 - bne .L2067 - lsl x0, x28, 1 + strh w1, [x28] + strh w1, [x28, 2] mov w1, 1 - add x24, x22, x0 - ldrh w0, [x22, x0] - mov w22, 0 + str w0, [x29, 116] + add x0, x25, :lo12:.LANCHOR53 + str w1, [x28, 56] + str x0, [x29, 104] +.L2119: + ldr w0, [x29, 156] + cmp w19, w0 + bge .L2138 + ldr w0, [x29, 116] + sxtw x26, w19 + cmp w19, w0 + bne .L2120 + lsl x0, x26, 1 + mov w1, 1 + add x21, x23, x0 + adrp x27, .LANCHOR57 + add x27, x27, :lo12:.LANCHOR57 + mov w25, 0 + ldrh w0, [x23, x0] bl FtlGetLastWrittenPage - sxth w26, w0 + sxth w23, w0 add w0, w0, 1 - strh w0, [x19, 2] + strh w0, [x28, 2] + ldr x0, [x29, 144] + strh w19, [x28] + ldr w0, [x0, x26, lsl 2] + adrp x26, .LANCHOR1 + str w0, [x28, 48] + add x26, x26, :lo12:.LANCHOR1 ldr x0, [x29, 128] - strh w27, [x19] - ldr w0, [x0, x28, lsl 2] - str w0, [x19, 48] - ldr x0, [x29, 120] - add x20, x0, :lo12:.LANCHOR202 -.L2068: - cmp w22, w26 - ble .L2070 -.L2083: - mov x0, x19 + add x19, x0, :lo12:.LANCHOR202 +.L2121: + cmp w25, w23 + ble .L2124 +.L2138: + mov x0, x28 bl ftl_free_no_use_map_blk - adrp x0, .LANCHOR54 - ldrh w1, [x19, 2] - ldrh w0, [x0, #:lo12:.LANCHOR54] + adrp x0, .LANCHOR53 + ldrh w1, [x28, 2] + ldrh w0, [x0, #:lo12:.LANCHOR53] cmp w1, w0 - bne .L2072 - mov x0, x19 + bne .L2126 + mov x0, x28 bl ftl_map_blk_alloc_new_blk -.L2072: - mov x0, x19 +.L2126: + mov x0, x28 bl ftl_map_blk_gc - mov x0, x19 + mov x0, x28 bl ftl_map_blk_gc mov w0, 0 ldp x19, x20, [sp, 16] @@ -14575,118 +14886,160 @@ FtlMapTblRecovery: 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 -.L2070: - ldrh w0, [x24] +.L2124: + ldrh w0, [x21] mov w2, 1 mov w1, w2 - orr w0, w22, w0, lsl 10 - str w0, [x20, 4] - mov x0, x20 + orr w0, w25, w0, lsl 10 + str w0, [x19, 4] + mov x0, x19 bl FlashReadPages - ldr w0, [x20] + ldrb w0, [x26] + cbz w0, .L2122 + ldr x0, [x19, 16] + ldr w0, [x0, 12] + str w0, [x29, 156] + uxtw x0, w0 + cbz w0, .L2122 + ldrh w1, [x27] + ldr x0, [x19, 8] + bl js_hash + ldr w1, [x29, 156] + cmp w1, w0 + beq .L2122 + mov w0, -1 + str w0, [x19] +.L2122: + ldr w0, [x19] cmn w0, #1 - beq .L2069 - ldrh w0, [x25, 8] - cmp w23, w0 - bls .L2069 - ldrh w2, [x25] - ldrh w1, [x19, 4] + beq .L2123 + ldrh w0, [x20, 8] + cmp w24, w0 + bls .L2123 + ldrh w2, [x20] + ldrh w1, [x28, 4] cmp w2, w1 - bne .L2069 + bne .L2123 ubfiz x0, x0, 2, 16 - ldr w1, [x20, 4] - str w1, [x21, x0] -.L2069: - add w22, w22, 1 - sxth w22, w22 - b .L2068 -.L2067: - ldr x0, [x26, #:lo12:.LANCHOR183] + ldr w1, [x19, 4] + str w1, [x22, x0] +.L2123: + add w25, w25, 1 + sxth w25, w25 + b .L2121 +.L2120: + lsl x26, x26, 1 + ldr x0, [x21, #:lo12:.LANCHOR183] + str x0, [x27, 8] + add x0, x23, x26 + ldrh w1, [x25, #:lo12:.LANCHOR53] mov w2, 1 - str x0, [x20, 8] - lsl x0, x28, 1 - ldrh w1, [x24, #:lo12:.LANCHOR54] - add x28, x22, x0 - ldrh w0, [x22, x0] + str x0, [x29, 136] + ldrh w0, [x23, x26] sub w1, w1, #1 orr w0, w1, w0, lsl 10 mov w1, w2 - str w0, [x20, 4] - mov x0, x20 + str w0, [x27, 4] + mov x0, x27 bl FlashReadPages - ldr w0, [x20] + ldr w0, [x27] cmn w0, #1 - beq .L2085 - ldrh w1, [x25] - ldrh w0, [x19, 4] + beq .L2140 + ldrh w1, [x20] + ldrh w0, [x28, 4] cmp w1, w0 - bne .L2085 - ldrh w1, [x25, 8] + bne .L2140 + ldrh w1, [x20, 8] mov w0, 64245 cmp w1, w0 - beq .L2074 -.L2085: + beq .L2128 +.L2140: + adrp x26, .LANCHOR57 + add x26, x26, :lo12:.LANCHOR57 + adrp x0, .LANCHOR1 mov w5, 0 -.L2075: - ldr x0, [x29, 112] + add x0, x0, :lo12:.LANCHOR1 + str x0, [x29, 120] +.L2129: + ldr x0, [x29, 104] ldrh w0, [x0] cmp w5, w0 - bge .L2081 - ldrh w0, [x28] + bge .L2136 + ldr x0, [x29, 136] mov w2, 1 - str w5, [x29, 108] + str w5, [x29, 152] mov w1, w2 + ldrh w0, [x0] orr w0, w5, w0, lsl 10 - str w0, [x20, 4] - mov x0, x20 + str w0, [x27, 4] + mov x0, x27 bl FlashReadPages - ldr w0, [x20] - ldr w5, [x29, 108] + ldr x0, [x29, 120] + ldr w5, [x29, 152] + ldrb w0, [x0] + cbz w0, .L2133 + ldr x0, [x27, 16] + ldr w0, [x0, 12] + str w0, [x29, 152] + uxtw x0, w0 + cbz w0, .L2133 + ldrh w1, [x26] + ldr x0, [x27, 8] + str w5, [x29, 112] + bl js_hash + ldr w1, [x29, 152] + ldr w5, [x29, 112] + cmp w1, w0 + beq .L2133 + mov w0, -1 + str w0, [x27] +.L2133: + ldr w0, [x27] cmn w0, #1 - beq .L2079 - ldrh w0, [x25, 8] - cmp w23, w0 - bls .L2079 - ldrh w2, [x25] - ldrh w1, [x19, 4] + beq .L2134 + ldrh w0, [x20, 8] + cmp w24, w0 + bls .L2134 + ldrh w2, [x20] + ldrh w1, [x28, 4] cmp w2, w1 - bne .L2079 + bne .L2134 ubfiz x0, x0, 2, 16 - ldr w1, [x20, 4] - str w1, [x21, x0] -.L2079: + ldr w1, [x27, 4] + str w1, [x22, x0] +.L2134: add w5, w5, 1 sxth w5, w5 - b .L2075 -.L2074: - ldrh w5, [x24, #:lo12:.LANCHOR54] + b .L2129 +.L2128: + ldrh w5, [x25, #:lo12:.LANCHOR53] mov w0, 0 - ldr x10, [x26, #:lo12:.LANCHOR183] + ldr x6, [x21, #:lo12:.LANCHOR183] sub w5, w5, #1 -.L2076: +.L2130: cmp w0, w5 - blt .L2078 -.L2081: - add w4, w27, 1 - sxth w27, w4 - b .L2066 -.L2078: + blt .L2132 +.L2136: + add w19, w19, 1 + sxth w19, w19 + b .L2119 +.L2132: lsl w2, w0, 1 sxtw x2, w2 lsl x1, x2, 2 - ldrh w1, [x10, x1] - cmp w23, w1 - bls .L2077 + ldrh w1, [x6, x1] + cmp w24, w1 + bls .L2131 add x2, x2, 1 ubfiz x1, x1, 2, 16 - ldr w2, [x10, x2, lsl 2] - str w2, [x21, x1] -.L2077: + ldr w2, [x6, x2, lsl 2] + str w2, [x22, x1] +.L2131: add w0, w0, 1 sxth w0, w0 - b .L2076 + b .L2130 .size FtlMapTblRecovery, .-FtlMapTblRecovery .section .text.FtlLoadVonderInfo,"ax",@progbits .align 2 @@ -14694,22 +15047,22 @@ FtlMapTblRecovery: .type FtlLoadVonderInfo, %function FtlLoadVonderInfo: stp x29, x30, [sp, -16]! - adrp x1, .LANCHOR62 + adrp x1, .LANCHOR61 adrp x0, .LANCHOR215 add x0, x0, :lo12:.LANCHOR215 add x29, sp, 0 - ldrh w1, [x1, #:lo12:.LANCHOR62] + ldrh w1, [x1, #:lo12:.LANCHOR61] strh w1, [x0, 10] mov w1, -3962 strh w1, [x0, 4] - adrp x1, .LANCHOR71 - ldrh w1, [x1, #:lo12:.LANCHOR71] + adrp x1, .LANCHOR70 + ldrh w1, [x1, #:lo12:.LANCHOR70] strh w1, [x0, 8] - adrp x1, .LANCHOR63 - ldrh w1, [x1, #:lo12:.LANCHOR63] + adrp x1, .LANCHOR62 + ldrh w1, [x1, #:lo12:.LANCHOR62] strh w1, [x0, 6] - adrp x1, .LANCHOR72 - ldr x1, [x1, #:lo12:.LANCHOR72] + adrp x1, .LANCHOR71 + ldr x1, [x1, #:lo12:.LANCHOR71] str x1, [x0, 16] adrp x1, .LANCHOR193 ldr x1, [x1, #:lo12:.LANCHOR193] @@ -14740,175 +15093,6 @@ FtlLoadMapInfo: ldp x29, x30, [sp], 16 ret .size FtlLoadMapInfo, .-FtlLoadMapInfo - .section .text.FtlGcScanTempBlk,"ax",@progbits - .align 2 - .global FtlGcScanTempBlk - .type FtlGcScanTempBlk, %function -FtlGcScanTempBlk: - stp x29, x30, [sp, -96]! - add x29, sp, 0 - stp x23, x24, [sp, 48] - adrp x23, .LANCHOR226 - stp x19, x20, [sp, 16] - mov x20, x0 - ldrh w19, [x23, #:lo12:.LANCHOR226] - mov w0, 65535 - stp x21, x22, [sp, 32] - stp x25, x26, [sp, 64] - cmp w19, w0 - stp x27, x28, [sp, 80] - beq .L2115 - cbnz w19, .L2098 -.L2099: - bl FtlGcPageVarInit - b .L2100 -.L2115: - mov w19, 0 -.L2098: - adrp x0, .LANCHOR53 - ldrh w0, [x0, #:lo12:.LANCHOR53] - cmp w0, w1 - beq .L2099 -.L2100: - adrp x25, .LANCHOR59 - add x25, x25, :lo12:.LANCHOR59 - mov w26, -1 - mov w24, 65535 -.L2112: - ldrh w0, [x20] - strb wzr, [x20, 8] - cmp w0, w24 - beq .L2116 - mov w27, 56 -.L2114: - adrp x1, .LANCHOR106 - adrp x22, .LANCHOR180 - ldrh w6, [x25] - add x3, x20, 16 - ldr x5, [x1, #:lo12:.LANCHOR106] - adrp x1, .LANCHOR38 - ldr x0, [x22, #:lo12:.LANCHOR180] - mov w21, 0 - ldrh w1, [x1, #:lo12:.LANCHOR38] - add x1, x1, 8 - add x1, x20, x1, lsl 1 -.L2102: - cmp x3, x1 - bne .L2104 - mov w1, w21 - umull x21, w21, w27 - mov x28, 0 - mov w2, 0 - bl FlashReadPages -.L2105: - cmp x28, x21 - bne .L2113 - adrp x0, .LANCHOR53 - add w19, w19, 1 - and w19, w19, 65535 - ldrh w0, [x0, #:lo12:.LANCHOR53] - cmp w0, w19 - bhi .L2114 -.L2116: - mov w2, 0 - b .L2101 -.L2104: - ldrh w2, [x3] - cmp w2, w24 - beq .L2103 - umaddl x4, w21, w27, x0 - orr w2, w19, w2, lsl 10 - str w2, [x4, 4] - mul w2, w21, w6 - add w21, w21, 1 - str xzr, [x4, 8] - and w21, w21, 65535 - asr w2, w2, 2 - add x2, x5, x2, sxtw 2 - str x2, [x4, 16] -.L2103: - add x3, x3, 2 - b .L2102 -.L2113: - ldr x6, [x22, #:lo12:.LANCHOR180] - add x5, x6, x28 - ldr w4, [x5, 4] - lsr w0, w4, 10 - bl P2V_plane - and w2, w0, 65535 - ldr w0, [x6, x28] - cbnz w0, .L2106 - ldr x0, [x5, 16] - add x28, x28, 56 - ldrh w1, [x0] - cmp w1, w24 - bne .L2107 - adrp x0, .LANCHOR135 - mov w1, 1 - str w1, [x0, #:lo12:.LANCHOR135] -.L2101: - strb w2, [x20, 6] - mov w0, -1 - strh w19, [x20, 2] - mov w1, w19 - strh w0, [x23, #:lo12:.LANCHOR226] - mov x0, x20 - bl ftl_sb_update_avl_pages - 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], 96 - ret -.L2107: - ldp w2, w0, [x0, 8] - mov w1, w4 - bl FtlGcUpdatePage - b .L2105 -.L2106: - ldrh w1, [x20] - mov w2, w4 - adrp x0, .LC52 - add x0, x0, :lo12:.LC52 - bl printf - adrp x0, .LANCHOR28 - ldr w1, [x0, #:lo12:.LANCHOR28] - ldrh w0, [x20] - cbnz w1, .L2108 - adrp x1, .LANCHOR8 - ldrb w1, [x1, #:lo12:.LANCHOR8] - cbz w1, .L2109 -.L2108: - adrp x2, .LANCHOR79 - ubfiz x1, x0, 1, 16 - ldr x2, [x2, #:lo12:.LANCHOR79] - ldrh w1, [x2, x1] - cmp w1, 159 - bls .L2110 -.L2109: - ldr x1, [x22, #:lo12:.LANCHOR180] - ldr w1, [x1, x28] - cmn w1, #1 - bne .L2111 -.L2110: - ldr x1, [x22, #:lo12:.LANCHOR180] - add x28, x1, x28 - ldr w26, [x28, 4] -.L2111: - adrp x1, .LANCHOR84 - ubfiz x0, x0, 1, 16 - mov w19, 0 - ldr x1, [x1, #:lo12:.LANCHOR84] - strh wzr, [x1, x0] - ldrh w0, [x20] - bl INSERT_FREE_LIST - mov w0, -1 - strh w0, [x20] - bl FtlGcPageVarInit - b .L2112 - .size FtlGcScanTempBlk, .-FtlGcScanTempBlk .section .text.FlashReadFacBbtData,"ax",@progbits .align 2 .global FlashReadFacBbtData @@ -14918,8 +15102,8 @@ FlashReadFacBbtData: add x29, sp, 0 stp x25, x26, [sp, 64] mov w25, w1 - adrp x1, .LANCHOR15 - add x1, x1, :lo12:.LANCHOR15 + adrp x1, .LANCHOR14 + add x1, x1, :lo12:.LANCHOR14 stp x23, x24, [sp, 48] mov x23, x0 stp x21, x22, [sp, 32] @@ -14942,11 +15126,11 @@ FlashReadFacBbtData: mul w26, w0, w25 mov x22, x1 str x2, [x29, 120] -.L2126: +.L2165: cmp w19, w20 - ble .L2133 + ble .L2172 mov w0, -1 -.L2125: +.L2164: ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x23, x24, [sp, 48] @@ -14954,7 +15138,7 @@ FlashReadFacBbtData: ldr x27, [sp, 80] ldp x29, x30, [sp], 160 ret -.L2133: +.L2172: add w0, w20, w26 mov w2, 1 lsl w0, w0, 10 @@ -14964,37 +15148,37 @@ FlashReadFacBbtData: bl FlashReadPages ldr w0, [x29, 104] cmn w0, #1 - beq .L2127 + beq .L2166 ldr x0, [x22, #:lo12:.LANCHOR197] ldrh w0, [x0] cmp w0, w27 - bne .L2127 - cbz x23, .L2134 - cbz w25, .L2129 -.L2132: + bne .L2166 + cbz x23, .L2173 + cbz w25, .L2168 +.L2171: ldr x1, [x21, #:lo12:.LANCHOR147] mov w2, w24 mov x0, x23 bl ftl_memcpy mov w3, 4 - adrp x0, .LC53 + adrp x0, .LC52 mov w2, w3 mov x1, x23 - add x0, x0, :lo12:.LC53 + add x0, x0, :lo12:.LC52 bl rknand_print_hex -.L2134: +.L2173: mov w0, 0 - b .L2125 -.L2129: + b .L2164 +.L2168: ldr x5, [x21, #:lo12:.LANCHOR147] adrp x2, .LANCHOR149 add x2, x2, :lo12:.LANCHOR149 mov w0, 0 mov w6, 1 -.L2130: +.L2169: ldr w1, [x2] cmp w0, w1 - bcs .L2132 + bcs .L2171 ubfx x1, x0, 5, 11 and w3, w0, 31 lsl x1, x1, 2 @@ -15004,11 +15188,11 @@ FlashReadFacBbtData: ldr w3, [x5, x1] orr w3, w3, w4 str w3, [x5, x1] - b .L2130 -.L2127: + b .L2169 +.L2166: sub w20, w20, #1 and w20, w20, 65535 - b .L2126 + b .L2165 .size FlashReadFacBbtData, .-FlashReadFacBbtData .section .text.FlashGetBadBlockList,"ax",@progbits .align 2 @@ -15032,10 +15216,10 @@ FlashGetBadBlockList: lsr w2, w2, 3 bl FlashReadFacBbtData cmn w0, #1 - bne .L2140 -.L2144: + bne .L2179 +.L2183: mov w0, 0 -.L2141: +.L2180: ubfiz x0, x0, 1, 16 mov w1, -1 ldr x21, [sp, 32] @@ -15044,32 +15228,32 @@ FlashGetBadBlockList: ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 48 ret -.L2140: +.L2179: ldr x4, [x21, #:lo12:.LANCHOR153] lsr w5, w19, 4 sub w19, w19, #1 mov w1, 0 mov w0, 0 mov w6, 1 -.L2142: +.L2181: cmp w1, w19 - bge .L2141 + bge .L2180 ubfx x3, x1, 5, 11 and w2, w1, 31 lsl w2, w6, w2 ldr w3, [x4, x3, lsl 2] tst w2, w3 - beq .L2143 + beq .L2182 add w2, w0, 1 ubfiz x0, x0, 1, 16 strh w1, [x20, x0] and w0, w2, 65535 -.L2143: +.L2182: cmp w0, w5 - bcs .L2144 + bcs .L2183 add w1, w1, 1 and w1, w1, 65535 - b .L2142 + b .L2181 .size FlashGetBadBlockList, .-FlashGetBadBlockList .section .text.FtlMakeBbt,"ax",@progbits .align 2 @@ -15077,18 +15261,18 @@ FlashGetBadBlockList: .type FtlMakeBbt, %function FtlMakeBbt: stp x29, x30, [sp, -128]! - adrp x0, .LANCHOR77 + adrp x0, .LANCHOR76 add x29, sp, 0 stp x21, x22, [sp, 32] - ldr w21, [x0, #:lo12:.LANCHOR77] + ldr w21, [x0, #:lo12:.LANCHOR76] stp x19, x20, [sp, 16] stp x23, x24, [sp, 48] stp x25, x26, [sp, 64] stp x27, x28, [sp, 80] - cbnz w21, .L2151 + cbnz w21, .L2190 bl FtlBbtMemInit - adrp x20, .LANCHOR75 - add x22, x20, :lo12:.LANCHOR75 + adrp x20, .LANCHOR74 + add x22, x20, :lo12:.LANCHOR74 bl FtlLoadFactoryBbt add x24, x22, 32 adrp x28, .LANCHOR202 @@ -15097,42 +15281,42 @@ FtlMakeBbt: adrp x0, .LANCHOR45 add x0, x0, :lo12:.LANCHOR45 str x0, [x29, 120] -.L2152: +.L2191: ldr x0, [x29, 120] ldrh w0, [x0] cmp w21, w0 - bcc .L2158 - adrp x21, .LANCHOR60 - add x21, x21, :lo12:.LANCHOR60 + bcc .L2197 + adrp x21, .LANCHOR59 + add x21, x21, :lo12:.LANCHOR59 mov w19, 0 -.L2159: +.L2198: ldrh w0, [x21] cmp w0, w19 - bhi .L2160 - add x21, x20, :lo12:.LANCHOR75 + bhi .L2199 + add x21, x20, :lo12:.LANCHOR74 mov w22, 65535 ldrh w19, [x21, 12] sub w19, w19, #1 and w19, w19, 65535 -.L2161: +.L2200: ldrh w0, [x21, 12] sub w0, w0, #47 cmp w0, w19 - bgt .L2165 + bgt .L2204 mov w0, w19 bl FtlBbmIsBadBlock cmp w0, 1 - beq .L2162 + beq .L2201 mov w0, w19 bl FlashTestBlk - cbz w0, .L2163 + cbz w0, .L2202 mov w0, w19 bl FtlBbmMapBadBlock -.L2162: +.L2201: sub w19, w19, #1 and w19, w19, 65535 - b .L2161 -.L2158: + b .L2200 +.L2197: adrp x2, .LANCHOR188 adrp x0, .LANCHOR183 add x19, x28, :lo12:.LANCHOR202 @@ -15144,7 +15328,7 @@ FtlMakeBbt: stp x0, x26, [x19, 8] adrp x23, .LANCHOR51 str x2, [x29, 112] - beq .L2153 + beq .L2192 ldrh w4, [x23, #:lo12:.LANCHOR51] mov w2, 1 madd w27, w4, w21, w1 @@ -15159,14 +15343,14 @@ FtlMakeBbt: add w2, w2, 7 lsr w2, w2, 3 bl ftl_memcpy -.L2154: +.L2193: mov w0, w27 add w21, w21, 1 bl FtlBbmMapBadBlock add x24, x24, 8 add x22, x22, 2 - b .L2152 -.L2153: + b .L2191 +.L2192: mov w1, w21 bl FlashGetBadBlockList ldr x0, [x19, 8] @@ -15179,12 +15363,12 @@ FtlMakeBbt: sub w19, w19, #1 str x0, [x29, 104] and w19, w19, 65535 -.L2155: +.L2194: ldrh w0, [x23] madd w0, w21, w0, w19 bl FtlBbmIsBadBlock cmp w0, 1 - beq .L2156 + beq .L2195 ldr x0, [x29, 112] mov w2, 16 strh w19, [x22] @@ -15217,34 +15401,34 @@ FtlMakeBbt: bl FlashProgPages ldr w0, [x25] cmn w0, #1 - bne .L2154 + bne .L2193 mov w0, w27 bl FtlBbmMapBadBlock - b .L2155 -.L2156: + b .L2194 +.L2195: sub w19, w19, #1 and w19, w19, 65535 - b .L2155 -.L2160: + b .L2194 +.L2199: mov w0, w19 add w19, w19, 1 bl FtlBbmMapBadBlock and w19, w19, 65535 - b .L2159 -.L2163: + b .L2198 +.L2202: ldrh w0, [x21] cmp w0, w22 - bne .L2164 + bne .L2203 strh w19, [x21] - b .L2162 -.L2164: + b .L2201 +.L2203: strh w19, [x21, 4] -.L2165: - adrp x0, .LANCHOR78 - add x19, x20, :lo12:.LANCHOR75 - ldrh w1, [x20, #:lo12:.LANCHOR75] +.L2204: + adrp x0, .LANCHOR77 + add x19, x20, :lo12:.LANCHOR74 + ldrh w1, [x20, #:lo12:.LANCHOR74] mov w2, 2 - ldr x0, [x0, #:lo12:.LANCHOR78] + ldr x0, [x0, #:lo12:.LANCHOR77] str wzr, [x19, 8] lsl w1, w1, 10 strh wzr, [x19, 2] @@ -15254,7 +15438,7 @@ FtlMakeBbt: str w1, [x0, 60] mov w1, 1 bl FlashEraseBlocks - ldrh w0, [x20, #:lo12:.LANCHOR75] + ldrh w0, [x20, #:lo12:.LANCHOR74] bl FtlBbmMapBadBlock ldrh w0, [x19, 4] bl FtlBbmMapBadBlock @@ -15264,11 +15448,11 @@ FtlMakeBbt: ldrh w1, [x19, 4] add w0, w0, 1 str w0, [x19, 8] - ldrh w0, [x20, #:lo12:.LANCHOR75] + ldrh w0, [x20, #:lo12:.LANCHOR74] strh w0, [x19, 4] - strh w1, [x20, #:lo12:.LANCHOR75] + strh w1, [x20, #:lo12:.LANCHOR74] bl FtlBbmTblFlush -.L2151: +.L2190: ldp x19, x20, [sp, 16] mov w0, 0 ldp x21, x22, [sp, 32] @@ -15285,28 +15469,67 @@ FtlMakeBbt: log2phys: stp x29, x30, [sp, -128]! add x29, sp, 0 - stp x23, x24, [sp, 48] - mov x23, x1 - adrp x1, .LANCHOR57 - stp x19, x20, [sp, 16] - stp x21, x22, [sp, 32] - ldrh w20, [x1, #:lo12:.LANCHOR57] stp x25, x26, [sp, 64] - add w1, w20, 7 - mov x20, 1 + mov w25, w0 + adrp x0, .LANCHOR56 + stp x23, x24, [sp, 48] + stp x19, x20, [sp, 16] + mov x26, x1 + ldrh w24, [x0, #:lo12:.LANCHOR56] + adrp x0, .LANCHOR72 + stp x21, x22, [sp, 32] + mov x19, x0 + ldr w1, [x0, #:lo12:.LANCHOR72] stp x27, x28, [sp, 80] - lsl x20, x20, x1 - sub w20, w20, #1 - and w20, w20, w0 - lsr w22, w0, w1 - and w1, w20, 65535 - stp w2, w1, [x29, 120] - adrp x1, .LANCHOR73 - and w21, w22, 65535 - ldr w1, [x1, #:lo12:.LANCHOR73] - cmp w0, w1 - bcc .L2172 - mov w2, 880 + str w2, [x29, 116] + cmp w25, w1 + bcc .L2211 + mov w2, 884 + adrp x1, .LANCHOR226 + adrp x0, .LC5 + add x1, x1, :lo12:.LANCHOR226 + add x0, x0, :lo12:.LC5 + bl printf + adrp x1, .LC6 + adrp x0, .LC7 + add x1, x1, :lo12:.LC6 + add x0, x0, :lo12:.LC7 + bl printf +.L2211: + ldr w0, [x19, #:lo12:.LANCHOR72] + cmp w25, w0 + bcs .L2212 + adrp x19, .LANCHOR96 + add w24, w24, 7 + adrp x0, .LANCHOR67 + ldr x2, [x19, #:lo12:.LANCHOR96] + lsr w23, w25, w24 + and w22, w23, 65535 + ldrh w1, [x0, #:lo12:.LANCHOR67] + mov x0, 0 +.L2213: + and x20, x0, 65535 + cmp w20, w1 + bcc .L2218 + bl select_l2p_ram_region + and x20, x0, 65535 + ldr x1, [x19, #:lo12:.LANCHOR96] + ubfiz x21, x20, 4, 16 + add x2, x1, x21 + ldrh w3, [x1, x21] + mov w1, 65535 + cmp w3, w1 + beq .L2219 + ldr w1, [x2, 4] + tbz w1, #31, .L2219 + bl flush_l2p_region +.L2219: + adrp x0, .LANCHOR66 + str x0, [x29, 104] + ldrh w1, [x0, #:lo12:.LANCHOR66] + cmp w1, w22 + bcs .L2220 + mov w2, 526 adrp x1, .LANCHOR227 adrp x0, .LC5 add x1, x1, :lo12:.LANCHOR227 @@ -15317,156 +15540,133 @@ log2phys: add x1, x1, :lo12:.LC6 add x0, x0, :lo12:.LC7 bl printf -.L2172: - adrp x19, .LANCHOR97 - adrp x0, .LANCHOR68 - ldr x2, [x19, #:lo12:.LANCHOR97] - ldrh w1, [x0, #:lo12:.LANCHOR68] - mov x0, 0 -.L2173: - and x25, x0, 65535 - cmp w25, w1 - bcc .L2178 - bl select_l2p_ram_region - and x25, x0, 65535 - ldr x1, [x19, #:lo12:.LANCHOR97] - ubfiz x26, x25, 4, 16 - add x2, x1, x26 - ldrh w3, [x1, x26] - mov w1, 65535 - cmp w3, w1 - beq .L2179 - ldr w1, [x2, 4] - tbz w1, #31, .L2179 - bl flush_l2p_region -.L2179: - adrp x28, .LANCHOR67 - ldrh w0, [x28, #:lo12:.LANCHOR67] - cmp w0, w21 - bcs .L2180 - mov w2, 526 - adrp x1, .LANCHOR228 - adrp x0, .LC5 - add x1, x1, :lo12:.LANCHOR228 - add x0, x0, :lo12:.LC5 - bl printf - adrp x1, .LC6 - adrp x0, .LC7 - add x1, x1, :lo12:.LC6 - add x0, x0, :lo12:.LC7 - bl printf -.L2180: - adrp x24, .LANCHOR131 - ubfiz x0, x21, 2, 16 - ldr x1, [x24, #:lo12:.LANCHOR131] +.L2220: + adrp x27, .LANCHOR131 + ubfiz x0, x22, 2, 16 + ldr x1, [x27, #:lo12:.LANCHOR131] ldr w3, [x1, x0] - cbnz w3, .L2181 - ldr x0, [x19, #:lo12:.LANCHOR97] - adrp x1, .LANCHOR58 - add x0, x0, x26 - ldrh w2, [x1, #:lo12:.LANCHOR58] + cbnz w3, .L2221 + ldr x0, [x19, #:lo12:.LANCHOR96] + adrp x1, .LANCHOR57 + add x0, x0, x21 + ldrh w2, [x1, #:lo12:.LANCHOR57] mov w1, 255 ldr x0, [x0, 8] bl ftl_memset - ldr x0, [x19, #:lo12:.LANCHOR97] - add x1, x0, x26 - strh w21, [x0, x26] + ldr x0, [x19, #:lo12:.LANCHOR96] + add x1, x0, x21 + strh w22, [x0, x21] str wzr, [x1, 4] - b .L2174 -.L2178: - add x0, x0, 1 - add x3, x2, x0, lsl 4 - ldrh w3, [x3, -16] - cmp w3, w21 - bne .L2173 -.L2174: - ldp w0, w20, [x29, 120] - cbnz w0, .L2175 - ldr x0, [x19, #:lo12:.LANCHOR97] - add x0, x0, x25, lsl 4 - ldr x0, [x0, 8] - ldr w0, [x0, x20, lsl 2] - str w0, [x23] -.L2176: - ldr x0, [x19, #:lo12:.LANCHOR97] - add x25, x0, x25, lsl 4 - ldr w0, [x25, 4] - cmn w0, #1 - beq .L2186 - add w0, w0, 1 - str w0, [x25, 4] -.L2186: + b .L2215 +.L2212: + ldr w1, [x29, 116] + mov w0, -1 + cbnz w1, .L2210 + str w0, [x26] +.L2210: ldp x19, x20, [sp, 16] - mov w0, 0 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 -.L2175: - ldr x0, [x19, #:lo12:.LANCHOR97] - ldr w2, [x23] - add x0, x0, x25, lsl 4 +.L2218: + add x0, x0, 1 + add x3, x2, x0, lsl 4 + ldrh w3, [x3, -16] + cmp w3, w22 + bne .L2213 +.L2215: + mov x0, 1 + lsl x24, x0, x24 + ldr w0, [x29, 116] + sub w24, w24, #1 + and w25, w24, w25 + and x25, x25, 65535 + cbnz w0, .L2216 + ldr x0, [x19, #:lo12:.LANCHOR96] + add x0, x0, x20, lsl 4 + ldr x0, [x0, 8] + ldr w0, [x0, x25, lsl 2] + str w0, [x26] +.L2217: + ldr x0, [x19, #:lo12:.LANCHOR96] + add x20, x0, x20, lsl 4 + ldr w0, [x20, 4] + cmn w0, #1 + beq .L2226 + add w0, w0, 1 + str w0, [x20, 4] +.L2226: + mov w0, 0 + b .L2210 +.L2216: + ldr x0, [x19, #:lo12:.LANCHOR96] + ldr w2, [x26] + add x0, x0, x20, lsl 4 ldr x1, [x0, 8] - str w2, [x1, x20, lsl 2] + str w2, [x1, x25, lsl 2] ldr w1, [x0, 4] orr w1, w1, -2147483648 str w1, [x0, 4] - adrp x0, .LANCHOR98 - strh w21, [x0, #:lo12:.LANCHOR98] - b .L2176 -.L2181: - ldr x0, [x19, #:lo12:.LANCHOR97] + adrp x0, .LANCHOR97 + strh w22, [x0, #:lo12:.LANCHOR97] + b .L2217 +.L2221: + ldr x0, [x19, #:lo12:.LANCHOR96] adrp x5, .LANCHOR202 - add x20, x5, :lo12:.LANCHOR202 + add x28, x5, :lo12:.LANCHOR202 mov w2, 1 - add x0, x0, x26 - str x5, [x29, 104] - str w3, [x29, 116] + add x0, x0, x21 + str x5, [x29, 96] + str w3, [x29, 112] mov w1, w2 - str w3, [x20, 4] + str w3, [x28, 4] ldr x0, [x0, 8] - str x0, [x20, 8] + str x0, [x28, 8] adrp x0, .LANCHOR188 ldr x0, [x0, #:lo12:.LANCHOR188] - str x0, [x20, 16] - mov x0, x20 + str x0, [x28, 16] + mov x0, x28 bl FlashReadPages - ldr x27, [x20, 16] - ldr w3, [x29, 116] - ldr x5, [x29, 104] - ldrh w0, [x27, 8] - cmp w0, w21 - beq .L2182 + ldr x0, [x28, 16] + str x0, [x29, 120] + ldr w3, [x29, 112] + ldr x5, [x29, 96] + ldrh w0, [x0, 8] + cmp w0, w22 + beq .L2222 mov w2, w3 - and w1, w22, 65535 - adrp x0, .LC54 - add x0, x0, :lo12:.LC54 + and w1, w23, 65535 + adrp x0, .LC53 + add x0, x0, :lo12:.LC53 bl printf - ldr x1, [x20, 16] + ldr x1, [x28, 16] mov w3, 4 adrp x0, .LC27 mov w2, w3 add x0, x0, :lo12:.LC27 bl rknand_print_hex - ldr x1, [x24, #:lo12:.LANCHOR131] + ldr x0, [x29, 104] mov w2, 4 - ldrh w3, [x28, #:lo12:.LANCHOR67] - adrp x0, .LC55 - add x0, x0, :lo12:.LC55 + ldr x1, [x27, #:lo12:.LANCHOR131] + ldrh w3, [x0, #:lo12:.LANCHOR66] + adrp x0, .LC54 + add x0, x0, :lo12:.LC54 bl rknand_print_hex - adrp x0, .LANCHOR77 + adrp x0, .LANCHOR76 mov w1, 1 - str w1, [x0, #:lo12:.LANCHOR77] -.L2183: - ldrh w0, [x27, 8] - cmp w0, w21 - beq .L2184 + str w1, [x0, #:lo12:.LANCHOR76] +.L2223: + ldr x0, [x29, 120] + ldrh w0, [x0, 8] + cmp w0, w22 + beq .L2224 mov w2, 552 - adrp x1, .LANCHOR228 + adrp x1, .LANCHOR227 adrp x0, .LC5 - add x1, x1, :lo12:.LANCHOR228 + add x1, x1, :lo12:.LANCHOR227 add x0, x0, :lo12:.LC5 bl printf adrp x1, .LC6 @@ -15474,30 +15674,30 @@ log2phys: add x1, x1, :lo12:.LC6 add x0, x0, :lo12:.LC7 bl printf -.L2184: - ldr x0, [x19, #:lo12:.LANCHOR97] - add x1, x0, x26 +.L2224: + ldr x0, [x19, #:lo12:.LANCHOR96] + add x1, x0, x21 str wzr, [x1, 4] - strh w21, [x0, x26] - b .L2174 -.L2182: + strh w22, [x0, x21] + b .L2215 +.L2222: ldr w0, [x5, #:lo12:.LANCHOR202] cmp w0, 256 - bne .L2183 - and w22, w22, 65535 + bne .L2223 + and w23, w23, 65535 mov w2, w3 - mov w1, w22 - adrp x0, .LC56 - add x0, x0, :lo12:.LC56 + mov w1, w23 + adrp x0, .LC55 + add x0, x0, :lo12:.LC55 bl printf - ldr x0, [x19, #:lo12:.LANCHOR97] - mov w1, w22 - add x0, x0, x26 + ldr x0, [x19, #:lo12:.LANCHOR96] + mov w1, w23 + add x0, x0, x21 ldr x2, [x0, 8] adrp x0, .LANCHOR127 add x0, x0, :lo12:.LANCHOR127 bl FtlMapWritePage - b .L2183 + b .L2223 .size log2phys, .-log2phys .section .text.FtlProgPages,"ax",@progbits .align 2 @@ -15507,47 +15707,47 @@ FtlProgPages: stp x29, x30, [sp, -96]! add x29, sp, 0 stp x23, x24, [sp, 48] - adrp x23, .LANCHOR77 + adrp x23, .LANCHOR76 stp x19, x20, [sp, 16] - ldr w2, [x23, #:lo12:.LANCHOR77] + ldr w2, [x23, #:lo12:.LANCHOR76] stp x21, x22, [sp, 32] stp x25, x26, [sp, 64] - cbnz w2, .L2191 - adrp x2, .LANCHOR8 - ldrb w2, [x2, #:lo12:.LANCHOR8] - cbz w2, .L2206 + cbnz w2, .L2229 + adrp x2, .LANCHOR15 + ldrb w2, [x2, #:lo12:.LANCHOR15] + cbz w2, .L2244 ldrb w2, [x3, 8] cmp w2, 1 cset w22, eq -.L2193: +.L2231: mov x20, x3 ldrb w3, [x3, 9] mov w21, w1 mov x19, x0 mov w2, w22 - adrp x25, .LANCHOR53 + adrp x25, .LANCHOR52 adrp x24, .LANCHOR138 - add x25, x25, :lo12:.LANCHOR53 + add x25, x25, :lo12:.LANCHOR52 bl FlashProgPages add x24, x24, :lo12:.LANCHOR138 mov w1, 56 umaddl x21, w21, w1, x19 -.L2194: +.L2232: cmp x19, x21 - beq .L2203 - adrp x26, .LANCHOR84 - b .L2204 -.L2206: + beq .L2241 + adrp x26, .LANCHOR83 + b .L2242 +.L2244: mov w22, 0 - b .L2193 -.L2197: + b .L2231 +.L2235: ldr w0, [x19, 4] lsr w0, w0, 10 bl P2V_block_in_plane ldrh w1, [x20] cmp w1, w0, uxth - bne .L2195 - ldr x2, [x26, #:lo12:.LANCHOR84] + bne .L2233 + ldr x2, [x26, #:lo12:.LANCHOR83] ubfiz x1, x1, 1, 16 ldrh w3, [x20, 4] ldrh w0, [x2, x1] @@ -15557,12 +15757,12 @@ FtlProgPages: ldrh w0, [x25] strh w0, [x20, 2] strh wzr, [x20, 4] -.L2195: +.L2233: ldrh w0, [x20, 4] - cbnz w0, .L2196 + cbnz w0, .L2234 mov x0, x20 bl allocate_new_data_superblock -.L2196: +.L2234: ldr w0, [x24, 96] add w0, w0, 1 str w0, [x24, 96] @@ -15578,21 +15778,21 @@ FtlProgPages: ldrb w3, [x20, 9] mov x0, x19 bl FlashProgPages - ldr w0, [x23, #:lo12:.LANCHOR77] - cbnz w0, .L2191 -.L2204: + ldr w0, [x23, #:lo12:.LANCHOR76] + cbnz w0, .L2229 +.L2242: ldr w0, [x19] cmn w0, #1 - beq .L2197 + beq .L2235 adrp x0, .LANCHOR38 ldrb w1, [x20, 6] ldrh w0, [x0, #:lo12:.LANCHOR38] cmp w1, w0 - bcc .L2198 + bcc .L2236 mov w2, 1583 - adrp x1, .LANCHOR229 + adrp x1, .LANCHOR228 adrp x0, .LC5 - add x1, x1, :lo12:.LANCHOR229 + add x1, x1, :lo12:.LANCHOR228 add x0, x0, :lo12:.LC5 bl printf adrp x1, .LC6 @@ -15600,10 +15800,10 @@ FtlProgPages: add x1, x1, :lo12:.LC6 add x0, x0, :lo12:.LC7 bl printf -.L2198: +.L2236: ldr w0, [x19, 4] - cbnz w22, .L2199 -.L2211: + cbnz w22, .L2237 +.L2249: str w0, [x29, 92] add x1, x29, 92 ldr w0, [x19, 24] @@ -15616,35 +15816,35 @@ FtlProgPages: and w1, w0, 65535 mov w26, w1 cmn w3, #1 - beq .L2201 - adrp x2, .LANCHOR84 + beq .L2239 + adrp x2, .LANCHOR83 ubfiz x0, x1, 1, 16 - ldr x2, [x2, #:lo12:.LANCHOR84] + ldr x2, [x2, #:lo12:.LANCHOR83] ldrh w0, [x2, x0] - cbnz w0, .L2202 - adrp x0, .LC57 + cbnz w0, .L2240 + adrp x0, .LC56 mov w2, 0 - add x0, x0, :lo12:.LC57 + add x0, x0, :lo12:.LC56 bl printf -.L2202: +.L2240: mov w0, w26 bl decrement_vpc_count -.L2201: +.L2239: add x19, x19, 56 - b .L2194 -.L2199: + b .L2232 +.L2237: orr w0, w0, -2147483648 - b .L2211 -.L2203: + b .L2249 +.L2241: adrp x0, .LANCHOR38 ldrb w1, [x20, 6] ldrh w0, [x0, #:lo12:.LANCHOR38] cmp w1, w0 - bcc .L2191 + bcc .L2229 mov w2, 1600 - adrp x1, .LANCHOR229 + adrp x1, .LANCHOR228 adrp x0, .LC5 - add x1, x1, :lo12:.LANCHOR229 + add x1, x1, :lo12:.LANCHOR228 add x0, x0, :lo12:.LC5 bl printf adrp x1, .LC6 @@ -15652,7 +15852,7 @@ FtlProgPages: add x1, x1, :lo12:.LC6 add x0, x0, :lo12:.LC7 bl printf -.L2191: +.L2229: ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x23, x24, [sp, 48] @@ -15665,27 +15865,27 @@ FtlProgPages: .global FtlCacheWriteBack .type FtlCacheWriteBack, %function FtlCacheWriteBack: - adrp x0, .LANCHOR77 - ldr w0, [x0, #:lo12:.LANCHOR77] - cbnz w0, .L2218 + adrp x0, .LANCHOR76 + ldr w0, [x0, #:lo12:.LANCHOR76] + cbnz w0, .L2256 stp x29, x30, [sp, -32]! add x29, sp, 0 str x19, [sp, 16] adrp x19, .LANCHOR132 ldr x0, [x19, #:lo12:.LANCHOR132] - cbz x0, .L2213 - adrp x1, .LANCHOR230 + cbz x0, .L2251 + adrp x1, .LANCHOR229 mov w2, 0 - ldr x3, [x1, #:lo12:.LANCHOR230] + ldr x3, [x1, #:lo12:.LANCHOR229] mov w1, 1 bl FtlProgPages str xzr, [x19, #:lo12:.LANCHOR132] -.L2213: +.L2251: mov w0, 0 ldr x19, [sp, 16] ldp x29, x30, [sp], 32 ret -.L2218: +.L2256: mov w0, 0 ret .size FtlCacheWriteBack, .-FtlCacheWriteBack @@ -15694,9 +15894,9 @@ FtlCacheWriteBack: .global FtlSysFlush .type FtlSysFlush, %function FtlSysFlush: - adrp x0, .LANCHOR77 - ldr w0, [x0, #:lo12:.LANCHOR77] - cbnz w0, .L2224 + adrp x0, .LANCHOR76 + ldr w0, [x0, #:lo12:.LANCHOR76] + cbnz w0, .L2262 stp x29, x30, [sp, -16]! add x29, sp, 0 bl FtlCacheWriteBack @@ -15707,7 +15907,7 @@ FtlSysFlush: mov w0, 0 ldp x29, x30, [sp], 16 ret -.L2224: +.L2262: mov w0, 0 ret .size FtlSysFlush, .-FtlSysFlush @@ -15716,17 +15916,17 @@ FtlSysFlush: .global FtlDeInit .type FtlDeInit, %function FtlDeInit: - adrp x0, .LANCHOR231 - ldr w0, [x0, #:lo12:.LANCHOR231] + adrp x0, .LANCHOR230 + ldr w0, [x0, #:lo12:.LANCHOR230] cmp w0, 1 - bne .L2230 + bne .L2268 stp x29, x30, [sp, -16]! add x29, sp, 0 bl FtlSysFlush mov w0, 0 ldp x29, x30, [sp], 16 ret -.L2230: +.L2268: mov w0, 0 ret .size FtlDeInit, .-FtlDeInit @@ -15748,70 +15948,70 @@ rk_ftl_de_init: .type ftl_discard, %function ftl_discard: stp x29, x30, [sp, -80]! - adrp x0, .LANCHOR69 + adrp x0, .LANCHOR68 add x29, sp, 0 stp x19, x20, [sp, 16] mov w20, w1 - ldr w0, [x0, #:lo12:.LANCHOR69] + ldr w0, [x0, #:lo12:.LANCHOR68] add w1, w1, w2 stp x21, x22, [sp, 32] str x23, [sp, 48] cmp w1, w0 - bhi .L2243 + bhi .L2281 mov w19, w2 cmp w2, 31 - bhi .L2237 -.L2251: + bhi .L2275 +.L2289: mov w0, 0 -.L2235: +.L2273: ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldr x23, [sp, 48] ldp x29, x30, [sp], 80 ret -.L2237: - adrp x0, .LANCHOR77 - ldr w0, [x0, #:lo12:.LANCHOR77] - cbnz w0, .L2251 - adrp x22, .LANCHOR56 +.L2275: + adrp x0, .LANCHOR76 + ldr w0, [x0, #:lo12:.LANCHOR76] + cbnz w0, .L2289 + adrp x22, .LANCHOR55 bl FtlCacheWriteBack - ldrh w0, [x22, #:lo12:.LANCHOR56] + ldrh w0, [x22, #:lo12:.LANCHOR55] udiv w21, w20, w0 msub w20, w0, w21, w20 ands w20, w20, 65535 - beq .L2239 + beq .L2277 sub w0, w0, w20 add w21, w21, 1 cmp w0, w19 csel w0, w0, w19, ls sub w19, w19, w0, uxth -.L2239: - adrp x20, .LANCHOR232 +.L2277: + adrp x20, .LANCHOR231 adrp x23, .LANCHOR163 - add x20, x20, :lo12:.LANCHOR232 + add x20, x20, :lo12:.LANCHOR231 add x23, x23, :lo12:.LANCHOR163 mov w0, -1 str w0, [x29, 76] -.L2240: - ldrh w0, [x22, #:lo12:.LANCHOR56] +.L2278: + ldrh w0, [x22, #:lo12:.LANCHOR55] cmp w19, w0 - bcs .L2242 - adrp x0, .LANCHOR232 - ldr w1, [x0, #:lo12:.LANCHOR232] + bcs .L2280 + adrp x0, .LANCHOR231 + ldr w1, [x0, #:lo12:.LANCHOR231] cmp w1, 32 - bls .L2251 - str wzr, [x0, #:lo12:.LANCHOR232] + bls .L2289 + str wzr, [x0, #:lo12:.LANCHOR231] bl l2p_flush bl FtlVpcTblFlush - b .L2251 -.L2242: + b .L2289 +.L2280: mov w2, 0 add x1, x29, 72 mov w0, w21 bl log2phys ldr w0, [x29, 72] cmn w0, #1 - beq .L2241 + beq .L2279 ldr w0, [x20] mov w2, 1 add x1, x29, 76 @@ -15826,14 +16026,14 @@ ftl_discard: lsr w0, w0, 10 bl P2V_block_in_plane bl decrement_vpc_count -.L2241: - ldrh w0, [x22, #:lo12:.LANCHOR56] +.L2279: + ldrh w0, [x22, #:lo12:.LANCHOR55] add w21, w21, 1 sub w19, w19, w0 - b .L2240 -.L2243: + b .L2278 +.L2281: mov w0, -1 - b .L2235 + b .L2273 .size ftl_discard, .-ftl_discard .section .text.Ftlscanalldata,"ax",@progbits .align 2 @@ -15841,46 +16041,46 @@ ftl_discard: .type Ftlscanalldata, %function Ftlscanalldata: sub sp, sp, #96 - adrp x0, .LC58 + adrp x0, .LC57 mov w1, 0 - add x0, x0, :lo12:.LC58 + add x0, x0, :lo12:.LC57 stp x29, x30, [sp, 16] add x29, sp, 16 stp x19, x20, [sp, 32] adrp x20, .LANCHOR202 stp x21, x22, [sp, 48] mov w19, 0 - adrp x21, .LANCHOR73 + adrp x21, .LANCHOR72 add x22, x20, :lo12:.LANCHOR202 - add x21, x21, :lo12:.LANCHOR73 + add x21, x21, :lo12:.LANCHOR72 str x23, [sp, 64] bl printf -.L2253: +.L2291: ldr w0, [x21] cmp w19, w0 - bcc .L2259 + bcc .L2297 ldp x19, x20, [sp, 32] ldp x21, x22, [sp, 48] ldp x29, x30, [sp, 16] ldr x23, [sp, 64] add sp, sp, 96 ret -.L2259: +.L2297: mov w2, 0 add x1, x29, 76 mov w0, w19 bl log2phys tst x19, 2047 - bne .L2254 + bne .L2292 ldr w2, [x29, 76] - adrp x0, .LC59 + adrp x0, .LC58 mov w1, w19 - add x0, x0, :lo12:.LC59 + add x0, x0, :lo12:.LC58 bl printf -.L2254: +.L2292: ldr w1, [x29, 76] cmn w1, #1 - beq .L2256 + beq .L2294 add x0, x20, :lo12:.LANCHOR202 str wzr, [x20, #:lo12:.LANCHOR202] mov w2, 0 @@ -15897,25 +16097,25 @@ Ftlscanalldata: ldr w0, [x20, #:lo12:.LANCHOR202] cmp w0, 256 ccmn w0, #1, 4, ne - beq .L2257 + beq .L2295 ldr w0, [x23, 8] cmp w19, w0 - beq .L2256 -.L2257: + beq .L2294 +.L2295: ldp x1, x0, [x22, 8] ldr w2, [x1, 4] str w2, [sp] ldr w2, [x22, 4] ldp w3, w4, [x0] ldp w5, w6, [x0, 8] - adrp x0, .LC60 + adrp x0, .LC59 ldr w7, [x1] - add x0, x0, :lo12:.LC60 + add x0, x0, :lo12:.LC59 mov w1, w19 bl printf -.L2256: +.L2294: add w19, w19, 1 - b .L2253 + b .L2291 .size Ftlscanalldata, .-Ftlscanalldata .section .text.FtlReUsePrevPpa,"ax",@progbits .align 2 @@ -15925,47 +16125,47 @@ FtlReUsePrevPpa: stp x29, x30, [sp, -80]! add x29, sp, 0 stp x21, x22, [sp, 32] - adrp x22, .LANCHOR84 + adrp x22, .LANCHOR83 stp x19, x20, [sp, 16] mov w21, w0 str w1, [x29, 76] lsr w0, w1, 10 str x23, [sp, 48] bl P2V_block_in_plane - ldr x2, [x22, #:lo12:.LANCHOR84] + ldr x2, [x22, #:lo12:.LANCHOR83] and w3, w0, 65535 ubfiz x20, x3, 1, 16 ldrh w1, [x2, x20] - cbnz w1, .L2262 - adrp x0, .LANCHOR88 - ldr x19, [x0, #:lo12:.LANCHOR88] - cbz x19, .L2263 - adrp x2, .LANCHOR82 + cbnz w1, .L2300 + adrp x0, .LANCHOR87 + ldr x19, [x0, #:lo12:.LANCHOR87] + cbz x19, .L2301 + adrp x2, .LANCHOR81 mov x5, -6148914691236517206 movk x5, 0xaaab, lsl 0 - adrp x23, .LANCHOR89 - ldr x2, [x2, #:lo12:.LANCHOR82] + adrp x23, .LANCHOR88 + ldr x2, [x2, #:lo12:.LANCHOR81] mov w6, 65535 - ldrh w4, [x23, #:lo12:.LANCHOR89] + ldrh w4, [x23, #:lo12:.LANCHOR88] sub x19, x19, x2 asr x19, x19, 1 mul x19, x19, x5 mov w5, 6 and w19, w19, 65535 -.L2264: +.L2302: cmp w1, w4 - beq .L2263 + beq .L2301 cmp w19, w3 - bne .L2265 + bne .L2303 mov w1, w19 - add x0, x0, :lo12:.LANCHOR88 + add x0, x0, :lo12:.LANCHOR87 bl List_remove_node - ldrh w0, [x23, #:lo12:.LANCHOR89] - cbnz w0, .L2266 - mov w2, 2070 - adrp x1, .LANCHOR233 + ldrh w0, [x23, #:lo12:.LANCHOR88] + cbnz w0, .L2304 + mov w2, 2097 + adrp x1, .LANCHOR232 adrp x0, .LC5 - add x1, x1, :lo12:.LANCHOR233 + add x1, x1, :lo12:.LANCHOR232 add x0, x0, :lo12:.LC5 bl printf adrp x1, .LC6 @@ -15973,17 +16173,17 @@ FtlReUsePrevPpa: add x1, x1, :lo12:.LC6 add x0, x0, :lo12:.LC7 bl printf -.L2266: - ldrh w0, [x23, #:lo12:.LANCHOR89] +.L2304: + ldrh w0, [x23, #:lo12:.LANCHOR88] sub w0, w0, #1 - strh w0, [x23, #:lo12:.LANCHOR89] + strh w0, [x23, #:lo12:.LANCHOR88] mov w0, w19 bl INSERT_DATA_LIST - ldr x1, [x22, #:lo12:.LANCHOR84] + ldr x1, [x22, #:lo12:.LANCHOR83] ldrh w0, [x1, x20] add w0, w0, 1 strh w0, [x1, x20] -.L2263: +.L2301: add x1, x29, 76 mov w2, 1 mov w0, w21 @@ -15993,18 +16193,18 @@ FtlReUsePrevPpa: ldr x23, [sp, 48] ldp x29, x30, [sp], 80 ret -.L2265: +.L2303: umull x19, w19, w5 ldrh w19, [x2, x19] cmp w19, w6 - beq .L2263 + beq .L2301 add w1, w1, 1 and w1, w1, 65535 - b .L2264 -.L2262: + b .L2302 +.L2300: add w1, w1, 1 strh w1, [x2, x20] - b .L2263 + b .L2301 .size FtlReUsePrevPpa, .-FtlReUsePrevPpa .section .text.FtlRecoverySuperblock,"ax",@progbits .align 2 @@ -16022,19 +16222,19 @@ FtlRecoverySuperblock: stp x25, x26, [sp, 64] cmp w0, w1 stp x27, x28, [sp, 80] - beq .L2430 + beq .L2469 ldrb w0, [x19, 6] str w0, [x29, 180] - adrp x0, .LANCHOR53 + adrp x0, .LANCHOR52 ldrh w26, [x19, 2] str x0, [x29, 144] - ldrh w2, [x0, #:lo12:.LANCHOR53] + ldrh w2, [x0, #:lo12:.LANCHOR52] cmp w2, w26 - bne .L2275 + bne .L2313 strh wzr, [x19, 4] -.L2437: +.L2476: strb wzr, [x19, 6] -.L2430: +.L2469: ldp x19, x20, [sp, 16] mov w0, 0 ldp x21, x22, [sp, 32] @@ -16043,35 +16243,35 @@ FtlRecoverySuperblock: ldp x27, x28, [sp, 80] ldp x29, x30, [sp], 208 ret -.L2275: +.L2313: ldrh w0, [x19, 16] mov w21, 0 -.L2276: +.L2314: cmp w0, w1 - beq .L2277 + beq .L2315 ldrb w1, [x19, 8] cmp w1, 1 - bne .L2278 + bne .L2316 bl FtlGetLastWrittenPage mov w20, w0 cmn w0, #1 - beq .L2279 - adrp x0, .LANCHOR8 - ldrb w0, [x0, #:lo12:.LANCHOR8] - cbnz w0, .L2355 + beq .L2317 + adrp x0, .LANCHOR15 + ldrb w0, [x0, #:lo12:.LANCHOR15] + cbnz w0, .L2394 adrp x0, .LANCHOR16 add x0, x0, :lo12:.LANCHOR16 ldrh w23, [x0, w20, sxtw 1] -.L2280: - adrp x1, .LANCHOR106 +.L2318: + adrp x1, .LANCHOR105 adrp x2, .LANCHOR38 adrp x22, .LANCHOR180 add x4, x19, 16 - ldr x6, [x1, #:lo12:.LANCHOR106] - adrp x1, .LANCHOR59 + ldr x6, [x1, #:lo12:.LANCHOR105] + adrp x1, .LANCHOR58 ldr x0, [x22, #:lo12:.LANCHOR180] mov w27, 0 - ldrh w7, [x1, #:lo12:.LANCHOR59] + ldrh w7, [x1, #:lo12:.LANCHOR58] add x1, x19, 16 str x1, [x29, 184] mov w8, 65535 @@ -16080,24 +16280,24 @@ FtlRecoverySuperblock: str x2, [x29, 160] add x1, x1, 8 add x1, x19, x1, lsl 1 -.L2281: +.L2319: cmp x1, x4 - bne .L2285 + bne .L2323 ldrb w1, [x19, 8] cmp w1, 1 - bne .L2356 - adrp x1, .LANCHOR8 - ldrb w1, [x1, #:lo12:.LANCHOR8] + bne .L2395 + adrp x1, .LANCHOR15 + ldrb w1, [x1, #:lo12:.LANCHOR15] cmp w1, 0 cset w1, ne str w1, [x29, 176] -.L2286: +.L2324: ldr w2, [x29, 176] mov w1, w27 - adrp x24, .LC61 - adrp x25, .LANCHOR235 - add x24, x24, :lo12:.LC61 - add x25, x25, :lo12:.LANCHOR235 + adrp x24, .LC60 + adrp x25, .LANCHOR234 + add x24, x24, :lo12:.LC60 + add x25, x25, :lo12:.LANCHOR234 mov x28, 0 bl FlashReadPages adrp x0, .LANCHOR160 @@ -16105,71 +16305,71 @@ FtlRecoverySuperblock: str x0, [x29, 168] ldr w21, [x0, #:lo12:.LANCHOR160] sub w21, w21, #1 -.L2287: +.L2325: and w0, w28, 65535 cmp w27, w0 - bhi .L2292 - bne .L2290 + bhi .L2330 + bne .L2328 ldr x0, [x22, #:lo12:.LANCHOR180] add w20, w20, 1 and w20, w20, 65535 ldr w0, [x0, 4] -.L2432: +.L2471: lsr w0, w0, 10 bl P2V_plane ldrb w1, [x19, 8] and w27, w0, 65535 cmp w1, 1 - bne .L2294 - adrp x0, .LANCHOR8 - ldrb w0, [x0, #:lo12:.LANCHOR8] - cbnz w0, .L2294 + bne .L2332 + adrp x0, .LANCHOR15 + ldrb w0, [x0, #:lo12:.LANCHOR15] + cbnz w0, .L2332 adrp x0, .LANCHOR16 add x0, x0, :lo12:.LANCHOR16 ldrh w20, [x0, w20, sxtw 1] -.L2294: +.L2332: ldr x0, [x29, 144] - ldrh w0, [x0, #:lo12:.LANCHOR53] + ldrh w0, [x0, #:lo12:.LANCHOR52] cmp w0, w20 - bne .L2295 + bne .L2333 strh w20, [x19, 2] strb wzr, [x19, 6] strh wzr, [x19, 4] -.L2295: +.L2333: ldr w0, [x29, 180] cmp w20, w26 cset w2, eq cmp w27, w0 cset w0, eq tst w2, w0 - beq .L2296 -.L2438: + beq .L2334 +.L2477: mov w2, w27 mov w1, w20 mov x0, x19 bl ftl_sb_update_avl_pages - b .L2430 -.L2277: + b .L2469 +.L2315: add w21, w21, 1 and w21, w21, 65535 add x0, x19, x21, sxtw 1 ldrh w0, [x0, 16] - b .L2276 -.L2278: + b .L2314 +.L2316: mov w1, 0 bl FtlGetLastWrittenPage mov w20, w0 cmn w0, #1 - beq .L2279 -.L2355: + beq .L2317 +.L2394: mov w23, w20 - b .L2280 -.L2279: - cbz w26, .L2282 - mov w2, 2141 - adrp x1, .LANCHOR234 + b .L2318 +.L2317: + cbz w26, .L2320 + mov w2, 2168 + adrp x1, .LANCHOR233 adrp x0, .LC5 - add x1, x1, :lo12:.LANCHOR234 + add x1, x1, :lo12:.LANCHOR233 add x0, x0, :lo12:.LC5 bl printf adrp x1, .LC6 @@ -16177,15 +16377,15 @@ FtlRecoverySuperblock: add x1, x1, :lo12:.LC6 add x0, x0, :lo12:.LC7 bl printf -.L2282: +.L2320: ldr w0, [x29, 180] cmp w0, 0 ccmp w21, w0, 4, ne - beq .L2283 - mov w2, 2142 - adrp x1, .LANCHOR234 + beq .L2321 + mov w2, 2169 + adrp x1, .LANCHOR233 adrp x0, .LC5 - add x1, x1, :lo12:.LANCHOR234 + add x1, x1, :lo12:.LANCHOR233 add x0, x0, :lo12:.LC5 bl printf adrp x1, .LC6 @@ -16193,13 +16393,13 @@ FtlRecoverySuperblock: add x1, x1, :lo12:.LC6 add x0, x0, :lo12:.LC7 bl printf -.L2283: +.L2321: strh wzr, [x19, 2] - b .L2437 -.L2285: + b .L2476 +.L2323: ldrh w2, [x4] cmp w2, w8 - beq .L2284 + beq .L2322 umaddl x5, w27, w10, x0 orr w2, w23, w2, lsl 10 add w3, w27, 1 @@ -16210,81 +16410,81 @@ FtlRecoverySuperblock: asr w2, w2, 2 add x2, x6, x2, sxtw 2 str x2, [x5, 16] -.L2284: +.L2322: add x4, x4, 2 - b .L2281 -.L2356: + b .L2319 +.L2395: str wzr, [x29, 176] - b .L2286 -.L2292: + b .L2324 +.L2330: mov x0, 56 ldr x2, [x22, #:lo12:.LANCHOR180] mul x0, x28, x0 add x1, x2, x0 ldr w0, [x2, x0] - cbnz w0, .L2288 + cbnz w0, .L2326 ldr x6, [x1, 16] ldr w4, [x6, 4] cmn w4, #1 - beq .L2289 + beq .L2327 ldr x0, [x29, 168] ldr w1, [x0, #:lo12:.LANCHOR160] mov w0, w4 bl ftl_cmp_data_ver - cbz w0, .L2289 + cbz w0, .L2327 ldr x0, [x29, 168] add w4, w4, 1 str w4, [x0, #:lo12:.LANCHOR160] -.L2289: +.L2327: ldr w0, [x6] cmn w0, #1 - bne .L2291 -.L2290: + bne .L2329 +.L2328: ldr x0, [x22, #:lo12:.LANCHOR180] and x28, x28, 65535 mov x1, 56 and w20, w20, 65535 madd x28, x28, x1, x0 ldr w0, [x28, 4] - b .L2432 -.L2288: + b .L2471 +.L2326: ldr w1, [x1, 4] mov x0, x24 bl printf ldrh w0, [x19] and w5, w23, 65535 strh w0, [x25] -.L2291: +.L2329: add x28, x28, 1 - b .L2287 -.L2296: + b .L2325 +.L2334: mov w0, 65535 cmp w5, w0 - bne .L2297 - cbnz w1, .L2298 -.L2297: + bne .L2335 + cbnz w1, .L2336 +.L2335: adrp x24, .LANCHOR136 and w6, w23, 65535 ldr w0, [x24, #:lo12:.LANCHOR136] cmn w0, #1 - bne .L2299 + bne .L2337 str w21, [x24, #:lo12:.LANCHOR136] -.L2299: +.L2337: add w0, w26, 7 ldr w7, [x24, #:lo12:.LANCHOR136] cmp w0, w23, uxth - bge .L2357 + bge .L2396 sub w23, w6, #7 and w23, w23, 65535 -.L2300: +.L2338: mov w3, -1 adrp x5, .LANCHOR120 mov w28, w3 add x5, x5, :lo12:.LANCHOR120 mov w4, 65535 -.L2301: +.L2339: cmp w23, w6 - bhi .L2316 + bhi .L2354 ldr x1, [x29, 160] mov w25, 0 ldr x0, [x22, #:lo12:.LANCHOR180] @@ -16293,24 +16493,24 @@ FtlRecoverySuperblock: ldrh w1, [x1, #:lo12:.LANCHOR38] add x1, x1, 8 add x1, x19, x1, lsl 1 - b .L2317 -.L2357: + b .L2355 +.L2396: mov w23, w26 - b .L2300 -.L2303: + b .L2338 +.L2341: ldrh w8, [x2] cmp w8, w4 - beq .L2302 + beq .L2340 umaddl x11, w25, w10, x0 add w25, w25, 1 and w25, w25, 65535 orr w8, w23, w8, lsl 10 str w8, [x11, 4] -.L2302: +.L2340: add x2, x2, 2 -.L2317: +.L2355: cmp x2, x1 - bne .L2303 + bne .L2341 ldr w2, [x29, 176] mov w1, w25 str x5, [x29, 112] @@ -16319,11 +16519,11 @@ FtlRecoverySuperblock: str w6, [x29, 136] str w3, [x29, 152] bl FlashReadPages - adrp x1, .LANCHOR8 + adrp x1, .LANCHOR15 mov w2, 56 ldr w0, [x24, #:lo12:.LANCHOR136] sxtw x12, w23 - ldrb w10, [x1, #:lo12:.LANCHOR8] + ldrb w10, [x1, #:lo12:.LANCHOR15] mov w11, 1 ldr x1, [x22, #:lo12:.LANCHOR180] ldr w4, [x29, 120] @@ -16334,81 +16534,81 @@ FtlRecoverySuperblock: umaddl x25, w25, w2, x1 ldr x5, [x29, 112] mov w2, 0 -.L2304: +.L2342: cmp x25, x1 - bne .L2314 - cbz w2, .L2315 + bne .L2352 + cbz w2, .L2353 str w0, [x24, #:lo12:.LANCHOR136] -.L2315: +.L2353: add w23, w23, 1 and w23, w23, 65535 - b .L2301 -.L2314: + b .L2339 +.L2352: ldr w8, [x1] - cbnz w8, .L2305 + cbnz w8, .L2343 ldr x8, [x1, 16] ldrh w13, [x8] cmp w13, w4 - beq .L2359 + beq .L2398 ldr w8, [x8, 4] cmn w8, #1 - beq .L2359 + beq .L2398 cmn w3, #1 - bne .L2361 + bne .L2400 ldrh w2, [x5, x12, lsl 1] cmp w2, w4 - bne .L2307 - cbz w10, .L2361 -.L2307: + bne .L2345 + cbz w10, .L2400 +.L2345: cmp w21, w0 mov w2, w11 csel w3, w3, w0, eq -.L2306: +.L2344: mov w28, w0 add x1, x1, 56 mov w0, w8 - b .L2304 -.L2305: - cbz w2, .L2308 + b .L2342 +.L2343: + cbz w2, .L2346 str w0, [x24, #:lo12:.LANCHOR136] -.L2308: - adrp x0, .LANCHOR235 +.L2346: + adrp x0, .LANCHOR234 ldrh w1, [x19] - strh w1, [x0, #:lo12:.LANCHOR235] + strh w1, [x0, #:lo12:.LANCHOR234] ldrb w0, [x19, 8] - cbnz w0, .L2298 + cbnz w0, .L2336 adrp x0, .LANCHOR120 add x0, x0, :lo12:.LANCHOR120 ldrh w1, [x0, w23, sxtw 1] mov w0, 65535 cmp w1, w0 - bne .L2310 + bne .L2348 cmn w3, #1 - beq .L2311 + beq .L2349 str w3, [x24, #:lo12:.LANCHOR136] -.L2298: - adrp x0, .LANCHOR236 +.L2336: + adrp x0, .LANCHOR235 mov w23, w26 mov w1, 1 adrp x28, .LANCHOR136 - strh w1, [x0, #:lo12:.LANCHOR236] + strh w1, [x0, #:lo12:.LANCHOR235] add x0, x28, :lo12:.LANCHOR136 str x0, [x29, 112] -.L2318: +.L2356: ldr x2, [x29, 160] - adrp x1, .LANCHOR8 + adrp x1, .LANCHOR15 ldr x0, [x22, #:lo12:.LANCHOR180] mov w24, 0 - ldrb w5, [x1, #:lo12:.LANCHOR8] + ldrb w5, [x1, #:lo12:.LANCHOR15] mov w6, 65535 ldr x3, [x29, 184] ldrh w2, [x2, #:lo12:.LANCHOR38] str x1, [x29, 128] add x2, x2, 8 add x2, x19, x2, lsl 1 -.L2319: +.L2357: cmp x2, x3 - bne .L2322 + bne .L2360 ldr w2, [x29, 176] mov w1, w24 mov x25, 0 @@ -16416,103 +16616,103 @@ FtlRecoverySuperblock: mov w0, 56 umull x0, w24, w0 str x0, [x29, 136] - adrp x0, .LANCHOR235 - add x0, x0, :lo12:.LANCHOR235 + adrp x0, .LANCHOR234 + add x0, x0, :lo12:.LANCHOR234 str x0, [x29, 120] -.L2323: +.L2361: ldr x0, [x29, 136] cmp x25, x0 - bne .L2348 + bne .L2387 ldrb w0, [x19, 8] add w23, w23, 1 and w23, w23, 65535 cmp w0, 1 - bne .L2349 + bne .L2388 ldr x0, [x29, 128] - ldrb w0, [x0, #:lo12:.LANCHOR8] - cbz w0, .L2349 - adrp x0, .LANCHOR54 - ldrh w0, [x0, #:lo12:.LANCHOR54] - cmp w0, w23 - bne .L2349 - cmp w20, w23 - beq .L2325 -.L2349: - ldr x0, [x29, 144] + ldrb w0, [x0, #:lo12:.LANCHOR15] + cbz w0, .L2388 + adrp x0, .LANCHOR53 ldrh w0, [x0, #:lo12:.LANCHOR53] cmp w0, w23 - bne .L2318 + bne .L2388 + cmp w20, w23 + beq .L2363 +.L2388: + ldr x0, [x29, 144] + ldrh w0, [x0, #:lo12:.LANCHOR52] + cmp w0, w23 + bne .L2356 ldr x0, [x29, 160] mov w2, 65535 strh w23, [x19, 2] strh wzr, [x19, 4] ldrh w1, [x0, #:lo12:.LANCHOR38] mov w0, 0 -.L2350: +.L2389: cmp w0, w1 - beq .L2430 + beq .L2469 ldr x4, [x29, 184] ldrh w3, [x4], 2 str x4, [x29, 184] cmp w3, w2 - beq .L2351 + beq .L2390 strb w0, [x19, 6] - b .L2430 -.L2311: + b .L2469 +.L2349: cmp w21, w7 - beq .L2312 + beq .L2350 str w7, [x24, #:lo12:.LANCHOR136] - b .L2298 -.L2312: + b .L2336 +.L2350: ldr w0, [x24, #:lo12:.LANCHOR136] -.L2439: +.L2478: sub w0, w0, #1 -.L2433: +.L2472: str w0, [x24, #:lo12:.LANCHOR136] - b .L2298 -.L2310: + b .L2336 +.L2348: cmp w28, w21 - beq .L2313 + beq .L2351 cmn w28, #1 - beq .L2298 + beq .L2336 str w28, [x24, #:lo12:.LANCHOR136] - b .L2298 -.L2313: + b .L2336 +.L2351: ldr w0, [x24, #:lo12:.LANCHOR136] cmp w21, w0 - bne .L2439 - b .L2298 -.L2359: + bne .L2478 + b .L2336 +.L2398: mov w8, w0 mov w0, w28 - b .L2306 -.L2361: + b .L2344 +.L2400: mov w2, 1 - b .L2306 -.L2316: + b .L2344 +.L2354: mov w0, -1 - b .L2433 -.L2322: + b .L2472 +.L2360: ldrh w1, [x3] cmp w1, w6 - beq .L2320 + beq .L2358 mov w4, 56 orr w1, w23, w1, lsl 10 umaddl x4, w24, w4, x0 str w1, [x4, 4] ldrb w7, [x19, 8] cmp w7, 1 - bne .L2321 - cbz w5, .L2321 + bne .L2359 + cbz w5, .L2359 orr w1, w1, -2147483648 str w1, [x4, 4] -.L2321: +.L2359: add w24, w24, 1 and w24, w24, 65535 -.L2320: +.L2358: add x3, x3, 2 - b .L2319 -.L2348: + b .L2357 +.L2387: ldr x4, [x22, #:lo12:.LANCHOR180] add x4, x4, x25 ldr w5, [x4, 4] @@ -16521,38 +16721,38 @@ FtlRecoverySuperblock: bl P2V_plane and w0, w0, 65535 cmp w23, w26 - bcc .L2324 + bcc .L2362 ldr w1, [x29, 180] ccmp w1, w0, 0, eq - bhi .L2324 + bhi .L2362 cmp w23, w20 ccmp w27, w0, 0, eq - beq .L2325 + beq .L2363 ldr w0, [x4] cmn w0, #1 - beq .L2326 + beq .L2364 ldr x3, [x4, 16] mov w0, 61589 ldrh w1, [x3] cmp w1, w0 - beq .L2327 + beq .L2365 ldrh w0, [x19] -.L2435: +.L2474: bl decrement_vpc_count - b .L2324 -.L2327: + b .L2362 +.L2365: ldr w21, [x3, 4] cmn w21, #1 - beq .L2328 + beq .L2366 ldr x0, [x29, 168] ldr w1, [x0, #:lo12:.LANCHOR160] mov w0, w21 bl ftl_cmp_data_ver - cbz w0, .L2328 + cbz w0, .L2366 ldr x1, [x29, 168] add w0, w21, 1 str w0, [x1, #:lo12:.LANCHOR160] -.L2328: +.L2366: ldp w24, w0, [x3, 8] add x1, x29, 200 str w0, [x29, 196] @@ -16560,36 +16760,36 @@ FtlRecoverySuperblock: mov w0, w24 bl log2phys ldr w1, [x28, #:lo12:.LANCHOR136] + ldr w3, [x29, 196] cmn w1, #1 - beq .L2329 + beq .L2367 mov w0, w21 bl ftl_cmp_data_ver - cbz w0, .L2329 - ldr w1, [x29, 196] - cmn w1, #1 - beq .L2330 + cbz w0, .L2367 + cmn w3, #1 + beq .L2368 ldr x0, [x22, #:lo12:.LANCHOR180] mov w2, 0 - add x0, x0, x25 - ldr x3, [x0, 16] - str w1, [x0, 4] mov w1, 1 - str x3, [x29, 152] + add x0, x0, x25 + ldr x4, [x0, 16] + str w3, [x0, 4] + str x4, [x29, 152] bl FlashReadPages ldr x0, [x22, #:lo12:.LANCHOR180] - ldr x3, [x29, 152] - add x4, x0, x25 + ldr x4, [x29, 152] + add x3, x0, x25 ldr w0, [x0, x25] cmn w0, #1 - bne .L2331 -.L2332: + bne .L2369 +.L2370: mov w0, -1 str w0, [x29, 196] -.L2339: +.L2377: ldr w3, [x29, 196] cmn w3, #1 - beq .L2324 -.L2354: + beq .L2362 +.L2393: lsr w0, w3, 10 bl P2V_block_in_plane and w24, w0, 65535 @@ -16597,11 +16797,11 @@ FtlRecoverySuperblock: mov w3, w24 ldrh w0, [x0, #:lo12:.LANCHOR40] cmp w0, w24 - bhi .L2344 - mov w2, 2425 - adrp x1, .LANCHOR234 + bhi .L2383 + mov w2, 2456 + adrp x1, .LANCHOR233 adrp x0, .LC5 - add x1, x1, :lo12:.LANCHOR234 + add x1, x1, :lo12:.LANCHOR233 add x0, x0, :lo12:.LC5 str w24, [x29, 152] bl printf @@ -16611,109 +16811,116 @@ FtlRecoverySuperblock: add x0, x0, :lo12:.LC7 bl printf ldr w3, [x29, 152] -.L2344: - adrp x1, .LANCHOR84 +.L2383: + adrp x1, .LANCHOR83 ubfiz x0, x24, 1, 16 - ldr x1, [x1, #:lo12:.LANCHOR84] + ldr x1, [x1, #:lo12:.LANCHOR83] ldrh w0, [x1, x0] - cbz w0, .L2345 + cbz w0, .L2384 mov w0, w3 - b .L2435 -.L2330: + b .L2474 +.L2368: ldp w1, w0, [x29, 200] cmp w1, w0 - bne .L2324 + bne .L2362 mov w2, 1 add x1, x29, 196 mov w0, w24 bl log2phys -.L2324: +.L2362: add x25, x25, 56 - b .L2323 -.L2331: - ldr w0, [x3, 8] + b .L2361 +.L2369: + ldr w0, [x4, 8] cmp w24, w0 - bne .L2332 - ldr w0, [x3, 4] + bne .L2370 + ldr w0, [x4, 4] str w0, [x29, 152] - str x3, [x29, 104] + str x4, [x29, 104] uxtw x1, w0 ldr w0, [x28, #:lo12:.LANCHOR136] bl ftl_cmp_data_ver - cbz w0, .L2332 + cbz w0, .L2370 ldp w0, w1, [x29, 200] - ldr x3, [x29, 104] + ldr x4, [x29, 104] cmp w0, w1 ldr w1, [x29, 196] - bne .L2334 -.L2434: + bne .L2372 +.L2473: mov w0, w24 bl FtlReUsePrevPpa - b .L2332 -.L2334: + b .L2370 +.L2372: cmp w0, w1 - beq .L2332 + beq .L2370 cmn w0, #1 - beq .L2335 - ldr x3, [x4, 16] + beq .L2373 + ldr x4, [x3, 16] mov w2, 0 - str w0, [x4, 4] + str w0, [x3, 4] mov w1, 1 - str x3, [x29, 104] - mov x0, x4 + str x4, [x29, 104] + mov x0, x3 bl FlashReadPages - ldr x3, [x29, 104] -.L2336: + ldr x4, [x29, 104] +.L2374: ldr x0, [x22, #:lo12:.LANCHOR180] ldr w0, [x0, x25] cmn w0, #1 - beq .L2337 + beq .L2375 ldr x0, [x29, 112] - ldr w3, [x3, 4] + ldr w3, [x4, 4] mov w1, w3 ldr w0, [x0] bl ftl_cmp_data_ver - cbz w0, .L2337 + cbz w0, .L2375 ldr w0, [x29, 152] mov w1, w3 bl ftl_cmp_data_ver - cbz w0, .L2332 -.L2337: + cbz w0, .L2370 +.L2375: ldr w1, [x29, 196] - b .L2434 -.L2335: - str w0, [x4] - b .L2336 -.L2329: + b .L2473 +.L2373: + str w0, [x3] + b .L2374 +.L2367: ldp w1, w0, [x29, 200] cmp w1, w0 - beq .L2339 + beq .L2377 + adrp x0, .LANCHOR43 + ldr w0, [x0, #:lo12:.LANCHOR43] + cmp w0, w3, lsr 10 + bhi .L2379 + cmn w3, #1 + bne .L2362 +.L2379: mov w2, 1 add x1, x29, 204 mov w0, w24 bl log2phys ldr w3, [x29, 200] cmn w3, #1 - beq .L2339 + beq .L2377 ldr w0, [x29, 196] cmp w3, w0 - beq .L2354 + beq .L2393 lsr w0, w3, 10 bl P2V_block_in_plane - adrp x1, .LANCHOR92 + adrp x1, .LANCHOR91 and w0, w0, 65535 + ldrh w1, [x1, #:lo12:.LANCHOR91] + cmp w1, w0 + beq .L2382 + adrp x1, .LANCHOR92 ldrh w1, [x1, #:lo12:.LANCHOR92] cmp w1, w0 - beq .L2343 + beq .L2382 adrp x1, .LANCHOR93 ldrh w1, [x1, #:lo12:.LANCHOR93] cmp w1, w0 - beq .L2343 - adrp x1, .LANCHOR94 - ldrh w1, [x1, #:lo12:.LANCHOR94] - cmp w1, w0 - bne .L2339 -.L2343: + bne .L2377 +.L2382: ldr x0, [x22, #:lo12:.LANCHOR180] mov w2, 0 mov w1, 1 @@ -16724,108 +16931,343 @@ FtlRecoverySuperblock: ldr x0, [x22, #:lo12:.LANCHOR180] ldr w0, [x0] cmn w0, #1 - beq .L2339 + beq .L2377 ldr x4, [x29, 152] mov w0, w21 ldr w1, [x4, 4] bl ftl_cmp_data_ver - cbnz w0, .L2339 + cbnz w0, .L2377 mov w2, 1 add x1, x29, 200 mov w0, w24 bl log2phys - b .L2339 -.L2345: + b .L2377 +.L2384: mov w1, w24 - adrp x0, .LC62 - add x0, x0, :lo12:.LC62 + adrp x0, .LC61 + add x0, x0, :lo12:.LC61 bl printf - b .L2324 -.L2326: + b .L2362 +.L2364: ldr x1, [x29, 120] mov w2, w21 ldrh w0, [x19] strh w0, [x1] mov w1, w5 - adrp x0, .LC63 - add x0, x0, :lo12:.LC63 + adrp x0, .LC62 + add x0, x0, :lo12:.LC62 bl printf - adrp x2, .LANCHOR237 - ldr w0, [x2, #:lo12:.LANCHOR237] + adrp x2, .LANCHOR236 + ldr w0, [x2, #:lo12:.LANCHOR236] cmp w0, 31 - bhi .L2346 - adrp x1, .LANCHOR238 - add x1, x1, :lo12:.LANCHOR238 + bhi .L2385 + adrp x1, .LANCHOR237 + add x1, x1, :lo12:.LANCHOR237 ldr w3, [x29, 204] str w3, [x1, w0, uxtw 2] add w0, w0, 1 - str w0, [x2, #:lo12:.LANCHOR237] -.L2346: + str w0, [x2, #:lo12:.LANCHOR236] +.L2385: ldrh w0, [x19] bl decrement_vpc_count ldr w0, [x28, #:lo12:.LANCHOR136] cmn w0, #1 - bne .L2347 -.L2436: + bne .L2386 +.L2475: str w21, [x28, #:lo12:.LANCHOR136] - b .L2324 -.L2347: + b .L2362 +.L2386: cmp w21, w0 - bcs .L2324 - b .L2436 -.L2351: + bcs .L2362 + b .L2475 +.L2390: add w0, w0, 1 and w0, w0, 65535 - b .L2350 -.L2325: + b .L2389 +.L2363: strb w27, [x19, 6] strh w20, [x19, 2] - b .L2438 + b .L2477 .size FtlRecoverySuperblock, .-FtlRecoverySuperblock + .section .text.FtlGcScanTempBlk,"ax",@progbits + .align 2 + .global FtlGcScanTempBlk + .type FtlGcScanTempBlk, %function +FtlGcScanTempBlk: + stp x29, x30, [sp, -176]! + add x29, sp, 0 + stp x23, x24, [sp, 48] + adrp x23, .LANCHOR238 + stp x19, x20, [sp, 16] + mov x19, x0 + ldrh w20, [x23, #:lo12:.LANCHOR238] + mov w0, 65535 + stp x21, x22, [sp, 32] + stp x25, x26, [sp, 64] + cmp w20, w0 + stp x27, x28, [sp, 80] + beq .L2504 + cbnz w20, .L2480 +.L2481: + bl FtlGcPageVarInit + b .L2482 +.L2504: + mov w20, 0 +.L2480: + adrp x0, .LANCHOR52 + ldrh w0, [x0, #:lo12:.LANCHOR52] + cmp w0, w1 + beq .L2481 +.L2482: + adrp x24, .LANCHOR72 + add x24, x24, :lo12:.LANCHOR72 + mov w26, -1 +.L2483: + ldrh w1, [x19] + mov w0, 65535 + strb wzr, [x19, 8] + cmp w1, w0 + beq .L2484 + mov w27, 56 +.L2503: + adrp x1, .LANCHOR104 + adrp x22, .LANCHOR180 + add x3, x19, 16 + mov w21, 0 + ldr x5, [x1, #:lo12:.LANCHOR104] + adrp x1, .LANCHOR57 + ldr x0, [x22, #:lo12:.LANCHOR180] + mov w10, 65535 + ldrh w6, [x1, #:lo12:.LANCHOR57] + adrp x1, .LANCHOR105 + ldr x7, [x1, #:lo12:.LANCHOR105] + adrp x1, .LANCHOR58 + ldrh w8, [x1, #:lo12:.LANCHOR58] + adrp x1, .LANCHOR38 + ldrh w1, [x1, #:lo12:.LANCHOR38] + add x1, x1, 8 + add x1, x19, x1, lsl 1 +.L2485: + cmp x3, x1 + bne .L2487 + mov w1, w21 + mov w2, 0 + bl FlashReadPages + adrp x25, .LANCHOR1 + umull x0, w21, w27 + mov x21, 0 + str x0, [x29, 104] + add x0, x25, :lo12:.LANCHOR1 + str x0, [x29, 96] +.L2488: + ldr x0, [x29, 104] + cmp x0, x21 + bne .L2502 + adrp x0, .LANCHOR52 + add w20, w20, 1 + and w20, w20, 65535 + ldrh w0, [x0, #:lo12:.LANCHOR52] + cmp w0, w20 + bhi .L2503 +.L2484: + strh w20, [x19, 2] + mov w0, -1 + strb wzr, [x19, 6] + mov w1, w20 + strh w0, [x23, #:lo12:.LANCHOR238] + mov w2, 0 + mov x0, x19 + bl ftl_sb_update_avl_pages + 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], 176 + ret +.L2487: + ldrh w2, [x3] + cmp w2, w10 + beq .L2486 + umaddl x4, w21, w27, x0 + orr w2, w20, w2, lsl 10 + str w2, [x4, 4] + mul w2, w21, w6 + asr w2, w2, 2 + add x2, x5, x2, sxtw 2 + str x2, [x4, 8] + mul w2, w21, w8 + add w21, w21, 1 + and w21, w21, 65535 + asr w2, w2, 2 + add x2, x7, x2, sxtw 2 + str x2, [x4, 16] +.L2486: + add x3, x3, 2 + b .L2485 +.L2502: + ldr x1, [x22, #:lo12:.LANCHOR180] + add x0, x1, x21 + ldr w1, [x1, x21] + ldr w28, [x0, 4] + cbnz w1, .L2489 + ldr x25, [x0, 16] + mov w0, 65535 + ldrh w1, [x25] + cmp w1, w0 + beq .L2518 + ldr w1, [x24] + ldr w0, [x25, 8] + cmp w0, w1 + bls .L2491 +.L2518: + adrp x0, .LANCHOR83 + ldrh w1, [x19] + ldr x0, [x0, #:lo12:.LANCHOR83] + strh wzr, [x0, x1, lsl 1] +.L2517: + ldrh w0, [x19] + mov w20, 0 + bl INSERT_FREE_LIST + mov w0, -1 + strh w0, [x19] + bl FtlGcPageVarInit + b .L2483 +.L2491: + ldr x1, [x29, 96] + ldrb w1, [x1] + cbnz w1, .L2493 +.L2494: + ldp w2, w0, [x25, 8] + mov w1, w28 + add x21, x21, 56 + bl FtlGcUpdatePage + b .L2488 +.L2493: + add x1, x29, 116 + mov w2, 0 + bl log2phys + ldr w0, [x25, 12] + ldr w1, [x29, 116] + cmp w0, w1 + bne .L2494 + cmn w0, #1 + beq .L2494 + str w0, [x29, 124] + adrp x0, .LANCHOR187 + mov w2, 0 + mov w1, 1 + ldr x0, [x0, #:lo12:.LANCHOR187] + str x0, [x29, 128] + adrp x0, .LANCHOR189 + ldr x0, [x0, #:lo12:.LANCHOR189] + str x0, [x29, 136] + add x0, x29, 120 + bl FlashReadPages + adrp x0, .LANCHOR55 + ldr x2, [x22, #:lo12:.LANCHOR180] + ldr x5, [x29, 128] + ldrh w1, [x0, #:lo12:.LANCHOR55] + add x2, x2, x21 + mov x0, 0 + ubfiz x1, x1, 9, 16 +.L2495: + cmp x0, x1 + beq .L2494 + ldr x6, [x2, 8] + ldr w7, [x6, x0] + add x0, x0, 4 + add x6, x5, x0 + ldr w6, [x6, -4] + cmp w7, w6 + beq .L2495 + ldrh w1, [x19] + adrp x0, .LC63 + ldr w2, [x29, 124] + add x0, x0, :lo12:.LC63 + bl printf + b .L2518 +.L2489: + ldrh w1, [x19] + mov w2, w28 + adrp x0, .LC64 + add x0, x0, :lo12:.LC64 + bl printf + adrp x0, .LANCHOR28 + ldr w1, [x0, #:lo12:.LANCHOR28] + ldrh w0, [x19] + cbnz w1, .L2498 + adrp x1, .LANCHOR15 + ldrb w1, [x1, #:lo12:.LANCHOR15] + cbz w1, .L2499 +.L2498: + adrp x2, .LANCHOR78 + ubfiz x1, x0, 1, 16 + ldr x2, [x2, #:lo12:.LANCHOR78] + ldrh w1, [x2, x1] + cmp w1, 159 + bls .L2500 +.L2499: + ldr x1, [x22, #:lo12:.LANCHOR180] + ldr w1, [x1, x21] + cmn w1, #1 + bne .L2501 +.L2500: + ldr x1, [x22, #:lo12:.LANCHOR180] + add x3, x1, x21 + ldr w26, [x3, 4] +.L2501: + adrp x1, .LANCHOR83 + ubfiz x0, x0, 1, 16 + ldr x1, [x1, #:lo12:.LANCHOR83] + strh wzr, [x1, x0] + b .L2517 + .size FtlGcScanTempBlk, .-FtlGcScanTempBlk .section .text.FtlGcFreeTempBlock,"ax",@progbits .align 2 .global FtlGcFreeTempBlock .type FtlGcFreeTempBlock, %function FtlGcFreeTempBlock: - adrp x0, .LANCHOR77 - ldr w0, [x0, #:lo12:.LANCHOR77] - cbz w0, .L2441 + adrp x0, .LANCHOR76 + ldr w0, [x0, #:lo12:.LANCHOR76] + cbz w0, .L2520 mov w0, 0 ret -.L2441: +.L2520: stp x29, x30, [sp, -112]! mov w1, 65535 add x29, sp, 0 stp x19, x20, [sp, 16] - adrp x19, .LANCHOR94 + adrp x19, .LANCHOR93 stp x21, x22, [sp, 32] - add x0, x19, :lo12:.LANCHOR94 - ldrh w20, [x19, #:lo12:.LANCHOR94] + add x0, x19, :lo12:.LANCHOR93 + ldrh w20, [x19, #:lo12:.LANCHOR93] adrp x21, .LANCHOR135 stp x23, x24, [sp, 48] stp x25, x26, [sp, 64] cmp w20, w1 str x27, [sp, 80] - beq .L2443 - adrp x1, .LANCHOR53 - ldrh w1, [x1, #:lo12:.LANCHOR53] + beq .L2522 + adrp x1, .LANCHOR52 + ldrh w1, [x1, #:lo12:.LANCHOR52] bl FtlGcScanTempBlk str w0, [x29, 108] cmn w0, #1 - beq .L2443 - adrp x0, .LANCHOR79 + beq .L2522 + adrp x0, .LANCHOR78 ubfiz x20, x20, 1, 16 - ldr x1, [x0, #:lo12:.LANCHOR79] + ldr x1, [x0, #:lo12:.LANCHOR78] ldrh w0, [x1, x20] cmp w0, 4 - bls .L2444 + bls .L2523 sub w0, w0, #5 strh w0, [x1, x20] mov w0, 1 bl FtlEctTblFlush -.L2444: +.L2523: ldr w0, [x21, #:lo12:.LANCHOR135] - cbnz w0, .L2445 + cbnz w0, .L2524 adrp x0, .LANCHOR138 add x0, x0, :lo12:.LANCHOR138 ldr w1, [x0, 96] @@ -16835,10 +17277,10 @@ FtlGcFreeTempBlock: lsr w0, w0, 10 bl FtlBbmMapBadBlock bl FtlBbmTblFlush -.L2445: +.L2524: str wzr, [x21, #:lo12:.LANCHOR135] mov w0, 1 -.L2440: +.L2519: ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x23, x24, [sp, 48] @@ -16846,23 +17288,23 @@ FtlGcFreeTempBlock: ldr x27, [sp, 80] ldp x29, x30, [sp], 112 ret -.L2443: +.L2522: str wzr, [x21, #:lo12:.LANCHOR135] mov w0, 65535 - ldrh w1, [x19, #:lo12:.LANCHOR94] - add x21, x19, :lo12:.LANCHOR94 + ldrh w1, [x19, #:lo12:.LANCHOR93] + add x21, x19, :lo12:.LANCHOR93 cmp w1, w0 - beq .L2466 + beq .L2545 bl FtlCacheWriteBack - adrp x20, .LANCHOR111 - adrp x0, .LANCHOR53 + adrp x20, .LANCHOR110 + adrp x0, .LANCHOR52 ldrb w1, [x21, 7] - ldrh w2, [x20, #:lo12:.LANCHOR111] + ldrh w2, [x20, #:lo12:.LANCHOR110] mov x21, x0 - ldrh w3, [x0, #:lo12:.LANCHOR53] + ldrh w3, [x0, #:lo12:.LANCHOR52] mul w1, w1, w3 cmp w2, w1 - beq .L2447 + beq .L2526 mov w2, 163 adrp x1, .LANCHOR239 adrp x0, .LC5 @@ -16874,78 +17316,78 @@ FtlGcFreeTempBlock: add x1, x1, :lo12:.LC6 add x0, x0, :lo12:.LC7 bl printf -.L2447: - add x0, x19, :lo12:.LANCHOR94 - adrp x23, .LANCHOR84 - ldrh w3, [x21, #:lo12:.LANCHOR53] - adrp x25, .LANCHOR73 - ldrh w2, [x19, #:lo12:.LANCHOR94] +.L2526: + add x0, x19, :lo12:.LANCHOR93 + adrp x23, .LANCHOR83 + ldrh w3, [x21, #:lo12:.LANCHOR52] + adrp x25, .LANCHOR72 + ldrh w2, [x19, #:lo12:.LANCHOR93] adrp x26, .LANCHOR239 ldrb w0, [x0, 7] - add x25, x25, :lo12:.LANCHOR73 - ldr x1, [x23, #:lo12:.LANCHOR84] + add x25, x25, :lo12:.LANCHOR72 + ldr x1, [x23, #:lo12:.LANCHOR83] add x26, x26, :lo12:.LANCHOR239 mov w21, 0 mul w0, w0, w3 strh w0, [x1, x2, lsl 1] adrp x1, .LANCHOR161 - ldrh w0, [x20, #:lo12:.LANCHOR111] + ldrh w0, [x20, #:lo12:.LANCHOR110] ldr w2, [x1, #:lo12:.LANCHOR161] add w0, w0, w2 str w0, [x1, #:lo12:.LANCHOR161] -.L2448: - ldrh w0, [x20, #:lo12:.LANCHOR111] +.L2527: + ldrh w0, [x20, #:lo12:.LANCHOR110] cmp w0, w21 - bhi .L2452 + bhi .L2531 mov w0, -1 bl decrement_vpc_count - adrp x0, .LANCHOR8 - ldrb w0, [x0, #:lo12:.LANCHOR8] - cbz w0, .L2453 - ldrh w1, [x19, #:lo12:.LANCHOR94] - adrp x0, .LC64 - add x0, x0, :lo12:.LC64 + adrp x0, .LANCHOR15 + ldrb w0, [x0, #:lo12:.LANCHOR15] + cbz w0, .L2532 + ldrh w1, [x19, #:lo12:.LANCHOR93] + adrp x0, .LC65 + add x0, x0, :lo12:.LC65 bl printf -.L2453: - ldrh w0, [x19, #:lo12:.LANCHOR94] - ldr x2, [x23, #:lo12:.LANCHOR84] +.L2532: + ldrh w0, [x19, #:lo12:.LANCHOR93] + ldr x2, [x23, #:lo12:.LANCHOR83] ubfiz x1, x0, 1, 16 ldrh w1, [x2, x1] - cbz w1, .L2454 + cbz w1, .L2533 bl INSERT_DATA_LIST -.L2455: - adrp x0, .LANCHOR109 +.L2534: + adrp x0, .LANCHOR108 mov w21, -1 - strh wzr, [x20, #:lo12:.LANCHOR111] - strh w21, [x19, #:lo12:.LANCHOR94] - strh wzr, [x0, #:lo12:.LANCHOR109] + strh wzr, [x20, #:lo12:.LANCHOR110] + strh w21, [x19, #:lo12:.LANCHOR93] + strh wzr, [x0, #:lo12:.LANCHOR108] bl l2p_flush bl FtlVpcTblFlush adrp x0, .LANCHOR204 strh w21, [x0, #:lo12:.LANCHOR204] - adrp x0, .LANCHOR89 - ldrh w1, [x0, #:lo12:.LANCHOR89] + adrp x0, .LANCHOR88 + ldrh w1, [x0, #:lo12:.LANCHOR88] adrp x0, .LANCHOR223 ldrh w0, [x0, #:lo12:.LANCHOR223] add w0, w0, w0, lsl 1 cmp w1, w0, lsr 2 - ble .L2466 + ble .L2545 adrp x0, .LANCHOR176 mov w1, 20 strh w1, [x0, #:lo12:.LANCHOR176] -.L2466: +.L2545: mov w0, 0 - b .L2440 -.L2452: - adrp x0, .LANCHOR112 + b .L2519 +.L2531: + adrp x0, .LANCHOR111 mov w24, 12 - ldr x27, [x0, #:lo12:.LANCHOR112] + ldr x27, [x0, #:lo12:.LANCHOR111] umull x24, w21, w24 ldr w0, [x25] add x22, x27, x24 ldr w1, [x22, 8] cmp w1, w0 - bcc .L2449 + bcc .L2528 mov w2, 168 mov x1, x26 adrp x0, .LC5 @@ -16956,7 +17398,7 @@ FtlGcFreeTempBlock: add x1, x1, :lo12:.LC6 add x0, x0, :lo12:.LC7 bl printf -.L2449: +.L2528: ldr w0, [x22, 8] add x1, x29, 108 mov w2, 0 @@ -16964,7 +17406,7 @@ FtlGcFreeTempBlock: ldr w0, [x27, x24] ldr w1, [x29, 108] cmp w0, w1 - bne .L2450 + bne .L2529 lsr w0, w0, 10 bl P2V_block_in_plane mov w24, w0 @@ -16973,22 +17415,147 @@ FtlGcFreeTempBlock: add x1, x22, 4 bl log2phys mov w0, w24 -.L2465: +.L2544: bl decrement_vpc_count -.L2451: +.L2530: add w21, w21, 1 and w21, w21, 65535 - b .L2448 -.L2450: + b .L2527 +.L2529: ldr w0, [x22, 4] cmp w1, w0 - beq .L2451 - ldrh w0, [x19, #:lo12:.LANCHOR94] - b .L2465 -.L2454: + beq .L2530 + ldrh w0, [x19, #:lo12:.LANCHOR93] + b .L2544 +.L2533: bl INSERT_FREE_LIST - b .L2455 + b .L2534 .size FtlGcFreeTempBlock, .-FtlGcFreeTempBlock + .section .text.Ftl_get_new_temp_ppa,"ax",@progbits + .align 2 + .global Ftl_get_new_temp_ppa + .type Ftl_get_new_temp_ppa, %function +Ftl_get_new_temp_ppa: + stp x29, x30, [sp, -32]! + adrp x0, .LANCHOR93 + mov w2, 65535 + add x29, sp, 0 + str x19, [sp, 16] + mov x19, x0 + ldrh w3, [x0, #:lo12:.LANCHOR93] + cmp w3, w2 + beq .L2547 + add x1, x0, :lo12:.LANCHOR93 + ldrh w0, [x1, 4] + cbnz w0, .L2548 +.L2547: + bl FtlCacheWriteBack + mov w0, 0 + bl FtlGcFreeTempBlock + add x0, x19, :lo12:.LANCHOR93 + strb wzr, [x0, 8] + bl allocate_data_superblock + adrp x0, .LANCHOR108 + strh wzr, [x0, #:lo12:.LANCHOR108] + adrp x0, .LANCHOR110 + strh wzr, [x0, #:lo12:.LANCHOR110] + bl l2p_flush + mov w0, 0 + bl FtlEctTblFlush + bl FtlVpcTblFlush +.L2548: + add x0, x19, :lo12:.LANCHOR93 + ldr x19, [sp, 16] + ldp x29, x30, [sp], 32 + b get_new_active_ppa + .size Ftl_get_new_temp_ppa, .-Ftl_get_new_temp_ppa + .section .text.Ftl_gc_temp_data_write_back,"ax",@progbits + .align 2 + .global Ftl_gc_temp_data_write_back + .type Ftl_gc_temp_data_write_back, %function +Ftl_gc_temp_data_write_back: + adrp x0, .LANCHOR76 + ldr w0, [x0, #:lo12:.LANCHOR76] + cbz w0, .L2551 + mov w0, 0 + ret +.L2554: + mov w0, 0 +.L2550: + ldp x19, x20, [sp, 16] + ldp x29, x30, [sp], 32 + ret +.L2551: + stp x29, x30, [sp, -32]! + adrp x0, .LANCHOR15 + add x29, sp, 0 + ldrb w0, [x0, #:lo12:.LANCHOR15] + stp x19, x20, [sp, 16] + adrp x19, .LANCHOR102 + cbz w0, .L2553 + ldr w0, [x19, #:lo12:.LANCHOR102] + tbz x0, 0, .L2553 + adrp x0, .LANCHOR93+4 + ldrh w0, [x0, #:lo12:.LANCHOR93+4] + cbnz w0, .L2554 +.L2553: + adrp x20, .LANCHOR181 + ldr w1, [x19, #:lo12:.LANCHOR102] + mov w3, 0 + mov w2, 0 + ldr x0, [x20, #:lo12:.LANCHOR181] + add x19, x19, :lo12:.LANCHOR102 + bl FlashProgPages + mov w11, 0 + mov w12, 56 +.L2555: + ldr w1, [x19] + cmp w11, w1 + bcc .L2557 + ldr x0, [x20, #:lo12:.LANCHOR181] + bl FtlGcBufFree + str wzr, [x19] + adrp x0, .LANCHOR93+4 + ldrh w0, [x0, #:lo12:.LANCHOR93+4] + cbnz w0, .L2554 + mov w0, 1 + bl FtlGcFreeTempBlock + b .L2567 +.L2557: + umull x0, w11, w12 + ldr x2, [x20, #:lo12:.LANCHOR181] + add x1, x2, x0 + ldr w2, [x2, x0] + cmn w2, #1 + bne .L2556 + adrp x0, .LANCHOR93 + adrp x3, .LANCHOR83 + ldrh w4, [x0, #:lo12:.LANCHOR93] + ldr x3, [x3, #:lo12:.LANCHOR83] + strh wzr, [x3, x4, lsl 1] + strh w2, [x0, #:lo12:.LANCHOR93] + adrp x0, .LANCHOR138 + add x0, x0, :lo12:.LANCHOR138 + ldr w2, [x0, 96] + add w2, w2, 1 + str w2, [x0, 96] + ldr w0, [x1, 4] + lsr w0, w0, 10 + bl FtlBbmMapBadBlock + bl FtlBbmTblFlush + bl FtlGcPageVarInit +.L2567: + mov w0, 1 + b .L2550 +.L2556: + ldr x0, [x1, 16] + ldr w1, [x1, 4] + ldp w2, w0, [x0, 8] + bl FtlGcUpdatePage + add w11, w11, 1 + and w11, w11, 65535 + b .L2555 + .size Ftl_gc_temp_data_write_back, .-Ftl_gc_temp_data_write_back .section .text.FtlGcPageRecovery,"ax",@progbits .align 2 .global FtlGcPageRecovery @@ -16997,16 +17564,16 @@ FtlGcPageRecovery: stp x29, x30, [sp, -32]! add x29, sp, 0 stp x19, x20, [sp, 16] - adrp x20, .LANCHOR53 - adrp x19, .LANCHOR94 - add x19, x19, :lo12:.LANCHOR94 - ldrh w1, [x20, #:lo12:.LANCHOR53] + adrp x20, .LANCHOR52 + adrp x19, .LANCHOR93 + add x19, x19, :lo12:.LANCHOR93 + ldrh w1, [x20, #:lo12:.LANCHOR52] mov x0, x19 bl FtlGcScanTempBlk ldrh w1, [x19, 2] - ldrh w0, [x20, #:lo12:.LANCHOR53] + ldrh w0, [x20, #:lo12:.LANCHOR52] cmp w1, w0 - bcc .L2467 + bcc .L2568 adrp x0, .LANCHOR127 add x0, x0, :lo12:.LANCHOR127 bl FtlMapBlkWriteDumpData @@ -17014,7 +17581,7 @@ FtlGcPageRecovery: bl FtlGcFreeTempBlock adrp x0, .LANCHOR135 str wzr, [x0, #:lo12:.LANCHOR135] -.L2467: +.L2568: ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 32 ret @@ -17025,18 +17592,18 @@ FtlGcPageRecovery: .type FtlPowerLostRecovery, %function FtlPowerLostRecovery: stp x29, x30, [sp, -32]! - adrp x0, .LANCHOR237 + adrp x0, .LANCHOR236 add x29, sp, 0 str x19, [sp, 16] - adrp x19, .LANCHOR92 - add x19, x19, :lo12:.LANCHOR92 - str wzr, [x0, #:lo12:.LANCHOR237] + adrp x19, .LANCHOR91 + add x19, x19, :lo12:.LANCHOR91 + str wzr, [x0, #:lo12:.LANCHOR236] mov x0, x19 bl FtlRecoverySuperblock mov x0, x19 - adrp x19, .LANCHOR93 + adrp x19, .LANCHOR92 bl FtlSlcSuperblockCheck - add x19, x19, :lo12:.LANCHOR93 + add x19, x19, :lo12:.LANCHOR92 mov x0, x19 bl FtlRecoverySuperblock mov x0, x19 @@ -17055,33 +17622,33 @@ FtlPowerLostRecovery: .type FtlSysBlkInit, %function FtlSysBlkInit: stp x29, x30, [sp, -32]! - adrp x0, .LANCHOR235 + adrp x0, .LANCHOR234 mov w1, -1 add x29, sp, 0 - strh w1, [x0, #:lo12:.LANCHOR235] + strh w1, [x0, #:lo12:.LANCHOR234] adrp x0, .LANCHOR39 stp x19, x20, [sp, 16] - adrp x20, .LANCHOR236 + adrp x20, .LANCHOR235 ldrh w0, [x0, #:lo12:.LANCHOR39] - strh wzr, [x20, #:lo12:.LANCHOR236] + strh wzr, [x20, #:lo12:.LANCHOR235] bl FtlFreeSysBlkQueueInit bl FtlScanSysBlk adrp x0, .LANCHOR209 ldrh w1, [x0, #:lo12:.LANCHOR209] mov w0, 65535 cmp w1, w0 - bne .L2473 -.L2475: + bne .L2574 +.L2576: mov w19, -1 -.L2472: +.L2573: mov w0, w19 ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 32 ret -.L2473: +.L2574: bl FtlLoadSysInfo mov w19, w0 - cbnz w0, .L2475 + cbnz w0, .L2576 bl FtlLoadMapInfo bl FtlLoadVonderInfo bl Ftl_load_ext_data @@ -17091,80 +17658,80 @@ FtlSysBlkInit: bl FtlPowerLostRecovery mov w0, 1 bl FtlUpdateVaildLpn - adrp x2, .LANCHOR68 - adrp x0, .LANCHOR97 + adrp x2, .LANCHOR67 + adrp x0, .LANCHOR96 mov x3, 4 - ldrh w2, [x2, #:lo12:.LANCHOR68] - ldr x0, [x0, #:lo12:.LANCHOR97] + ldrh w2, [x2, #:lo12:.LANCHOR67] + ldr x0, [x0, #:lo12:.LANCHOR96] add x2, x3, x2, uxtw 4 add x1, x0, 4 add x0, x0, x2 -.L2476: +.L2577: cmp x1, x0 - bne .L2478 - ldrh w0, [x20, #:lo12:.LANCHOR236] - cbnz w0, .L2477 + bne .L2579 + ldrh w0, [x20, #:lo12:.LANCHOR235] + cbnz w0, .L2578 bl l2p_flush - b .L2481 -.L2478: + b .L2582 +.L2579: ldr w2, [x1], 16 - tbz w2, #31, .L2476 -.L2477: - adrp x0, .LANCHOR84 - adrp x1, .LANCHOR92 - ldr x2, [x0, #:lo12:.LANCHOR84] - add x0, x1, :lo12:.LANCHOR92 - ldrh w1, [x1, #:lo12:.LANCHOR92] + tbz w2, #31, .L2577 +.L2578: + adrp x0, .LANCHOR83 + adrp x1, .LANCHOR91 + ldr x2, [x0, #:lo12:.LANCHOR83] + add x0, x1, :lo12:.LANCHOR91 + ldrh w1, [x1, #:lo12:.LANCHOR91] ldrh w4, [x0, 4] lsl x1, x1, 1 ldrh w3, [x2, x1] sub w3, w3, w4 - adrp x4, .LANCHOR53 + adrp x4, .LANCHOR52 strh w3, [x2, x1] strh wzr, [x0, 4] - ldrh w1, [x4, #:lo12:.LANCHOR53] + ldrh w1, [x4, #:lo12:.LANCHOR52] strh w1, [x0, 2] - adrp x1, .LANCHOR93 + adrp x1, .LANCHOR92 strb wzr, [x0, 6] - add x0, x1, :lo12:.LANCHOR93 - ldrh w1, [x1, #:lo12:.LANCHOR93] + add x0, x1, :lo12:.LANCHOR92 + ldrh w1, [x1, #:lo12:.LANCHOR92] ldrh w5, [x0, 4] lsl x1, x1, 1 ldrh w3, [x2, x1] sub w3, w3, w5 strh w3, [x2, x1] strb wzr, [x0, 6] - ldrh w1, [x4, #:lo12:.LANCHOR53] + ldrh w1, [x4, #:lo12:.LANCHOR52] strh w1, [x0, 2] strh wzr, [x0, 4] - adrp x0, .LANCHOR81 - add x0, x0, :lo12:.LANCHOR81 + adrp x0, .LANCHOR80 + add x0, x0, :lo12:.LANCHOR80 ldrh w1, [x0, 30] add w1, w1, 1 strh w1, [x0, 30] bl l2p_flush bl FtlVpcTblFlush -.L2481: +.L2582: bl FtlVpcTblFlush - b .L2472 + b .L2573 .size FtlSysBlkInit, .-FtlSysBlkInit .section .text.FtlLowFormat,"ax",@progbits .align 2 .global FtlLowFormat .type FtlLowFormat, %function FtlLowFormat: - adrp x0, .LANCHOR77 - ldr w0, [x0, #:lo12:.LANCHOR77] - cbnz w0, .L2514 + adrp x0, .LANCHOR76 + ldr w0, [x0, #:lo12:.LANCHOR76] + cbnz w0, .L2615 stp x29, x30, [sp, -80]! adrp x0, .LANCHOR195 mov w1, 0 add x29, sp, 0 stp x19, x20, [sp, 16] - adrp x19, .LANCHOR67 + adrp x19, .LANCHOR66 ldr x0, [x0, #:lo12:.LANCHOR195] adrp x20, .LANCHOR159 - ldrh w2, [x19, #:lo12:.LANCHOR67] + ldrh w2, [x19, #:lo12:.LANCHOR66] stp x25, x26, [sp, 64] adrp x25, .LANCHOR39 stp x21, x22, [sp, 32] @@ -17172,7 +17739,7 @@ FtlLowFormat: lsl w2, w2, 2 bl ftl_memset adrp x0, .LANCHOR131 - ldrh w2, [x19, #:lo12:.LANCHOR67] + ldrh w2, [x19, #:lo12:.LANCHOR66] mov w1, 0 ldr x0, [x0, #:lo12:.LANCHOR131] lsl w2, w2, 2 @@ -17183,127 +17750,127 @@ FtlLowFormat: ldrh w0, [x25, #:lo12:.LANCHOR39] bl FtlFreeSysBlkQueueInit bl FtlLoadBbt - cbz w0, .L2485 + cbz w0, .L2586 bl FtlMakeBbt -.L2485: - adrp x22, .LANCHOR56 +.L2586: + adrp x22, .LANCHOR55 adrp x0, .LANCHOR186 mov w6, 23752 - ldrh w1, [x22, #:lo12:.LANCHOR56] + ldrh w1, [x22, #:lo12:.LANCHOR55] movk w6, 0xa0f, lsl 16 ldr x4, [x0, #:lo12:.LANCHOR186] adrp x0, .LANCHOR187 lsl w1, w1, 7 ldr x5, [x0, #:lo12:.LANCHOR187] mov w0, 0 -.L2486: +.L2587: cmp w0, w1 - blt .L2487 + blt .L2588 adrp x21, .LANCHOR40 adrp x19, .LANCHOR41 add x26, x19, :lo12:.LANCHOR41 mov w23, 0 ldrh w24, [x21, #:lo12:.LANCHOR40] -.L2488: +.L2589: ldrh w0, [x26] cmp w0, w24 - bhi .L2489 + bhi .L2590 adrp x24, .LANCHOR38 sub w1, w23, #2 ldrh w0, [x24, #:lo12:.LANCHOR38] cmp w1, w0, lsl 1 - bgt .L2490 -.L2494: + bgt .L2591 +.L2595: add x26, x21, :lo12:.LANCHOR40 mov w23, 0 mov w25, 0 -.L2491: +.L2592: ldrh w0, [x26] cmp w0, w25 - bhi .L2495 - adrp x0, .LANCHOR74 + bhi .L2596 + adrp x0, .LANCHOR73 ldrh w1, [x19, #:lo12:.LANCHOR41] ldrh w3, [x24, #:lo12:.LANCHOR38] - str w1, [x0, #:lo12:.LANCHOR74] + str w1, [x0, #:lo12:.LANCHOR73] adrp x0, .LANCHOR42 adrp x1, .LANCHOR223 ldr w2, [x0, #:lo12:.LANCHOR42] - adrp x0, .LANCHOR73 + adrp x0, .LANCHOR72 udiv w6, w2, w3 ubfx x5, x6, 5, 16 - str w6, [x0, #:lo12:.LANCHOR73] + str w6, [x0, #:lo12:.LANCHOR72] add w4, w5, 36 strh w4, [x1, #:lo12:.LANCHOR223] mov w4, 24 mul w4, w3, w4 cmp w23, w4 - ble .L2496 + ble .L2597 sub w2, w2, w23 udiv w2, w2, w3 - str w2, [x0, #:lo12:.LANCHOR73] + str w2, [x0, #:lo12:.LANCHOR72] lsr w2, w2, 5 add w2, w2, 24 strh w2, [x1, #:lo12:.LANCHOR223] -.L2496: +.L2597: adrp x2, .LANCHOR28 ldr w2, [x2, #:lo12:.LANCHOR28] cmp w2, 1 - bne .L2497 + bne .L2598 udiv w4, w23, w3 ldrh w2, [x1, #:lo12:.LANCHOR223] add w4, w4, w2 add w4, w2, w4, asr 2 strh w4, [x1, #:lo12:.LANCHOR223] -.L2497: - adrp x2, .LANCHOR8 - ldrb w2, [x2, #:lo12:.LANCHOR8] - cbz w2, .L2498 +.L2598: + adrp x2, .LANCHOR15 + ldrb w2, [x2, #:lo12:.LANCHOR15] + cbz w2, .L2599 udiv w4, w23, w3 ldrh w2, [x1, #:lo12:.LANCHOR223] add w4, w4, w2 add w4, w2, w4, asr 2 strh w4, [x1, #:lo12:.LANCHOR223] -.L2498: +.L2599: adrp x2, .LANCHOR49 ldrh w2, [x2, #:lo12:.LANCHOR49] - cbz w2, .L2500 + cbz w2, .L2601 ldrh w4, [x1, #:lo12:.LANCHOR223] add w4, w4, w2, lsr 1 strh w4, [x1, #:lo12:.LANCHOR223] mul w4, w2, w3 cmp w23, w4 - bge .L2500 + bge .L2601 add w2, w2, 32 - str w6, [x0, #:lo12:.LANCHOR73] + str w6, [x0, #:lo12:.LANCHOR72] add w2, w5, w2 strh w2, [x1, #:lo12:.LANCHOR223] -.L2500: +.L2601: ldrh w2, [x1, #:lo12:.LANCHOR223] adrp x25, .LANCHOR222 - ldr w1, [x0, #:lo12:.LANCHOR73] - adrp x24, .LANCHOR84 + ldr w1, [x0, #:lo12:.LANCHOR72] + adrp x24, .LANCHOR83 mov w23, -1 sub w1, w1, w2 mul w3, w1, w3 - adrp x1, .LANCHOR53 + adrp x1, .LANCHOR52 str w3, [x25, #:lo12:.LANCHOR222] - ldrh w1, [x1, #:lo12:.LANCHOR53] + ldrh w1, [x1, #:lo12:.LANCHOR52] mul w3, w1, w3 - str w3, [x0, #:lo12:.LANCHOR73] - ldrh w0, [x22, #:lo12:.LANCHOR56] + str w3, [x0, #:lo12:.LANCHOR72] + ldrh w0, [x22, #:lo12:.LANCHOR55] mul w3, w0, w3 - adrp x0, .LANCHOR69 - str w3, [x0, #:lo12:.LANCHOR69] + adrp x0, .LANCHOR68 + str w3, [x0, #:lo12:.LANCHOR68] bl FtlBbmTblFlush - ldr x0, [x24, #:lo12:.LANCHOR84] + ldr x0, [x24, #:lo12:.LANCHOR83] mov w1, 0 ldrh w2, [x19, #:lo12:.LANCHOR41] lsl w2, w2, 1 bl ftl_memset - adrp x0, .LANCHOR101 + adrp x0, .LANCHOR100 adrp x1, .LANCHOR204 ldrh w2, [x21, #:lo12:.LANCHOR40] - str wzr, [x0, #:lo12:.LANCHOR101] + str wzr, [x0, #:lo12:.LANCHOR100] add x0, x1, :lo12:.LANCHOR204 strh w23, [x1, #:lo12:.LANCHOR204] mov w1, 255 @@ -17311,9 +17878,9 @@ FtlLowFormat: strh wzr, [x0, 2] strb wzr, [x0, 6] strb wzr, [x0, 8] - adrp x0, .LANCHOR92 - add x19, x0, :lo12:.LANCHOR92 - strh wzr, [x0, #:lo12:.LANCHOR92] + adrp x0, .LANCHOR91 + add x19, x0, :lo12:.LANCHOR91 + strh wzr, [x0, #:lo12:.LANCHOR91] mov w0, 1 strb w0, [x19, 8] adrp x0, .LANCHOR0 @@ -17321,20 +17888,20 @@ FtlLowFormat: ldr x0, [x0, #:lo12:.LANCHOR0] strb wzr, [x19, 6] bl ftl_memset -.L2502: +.L2603: mov x0, x19 bl make_superblock ldrb w1, [x19, 7] ldrh w0, [x19] - cbnz w1, .L2503 - ldr x1, [x24, #:lo12:.LANCHOR84] + cbnz w1, .L2604 + ldr x1, [x24, #:lo12:.LANCHOR83] ubfiz x0, x0, 1, 16 strh w23, [x1, x0] ldrh w0, [x19] add w0, w0, 1 strh w0, [x19] - b .L2502 -.L2487: + b .L2603 +.L2588: ubfiz x3, x0, 2, 16 mvn w2, w0 orr w2, w0, w2, lsl 16 @@ -17342,8 +17909,8 @@ FtlLowFormat: and w0, w0, 65535 str w2, [x4, x3] str w6, [x5, x3] - b .L2486 -.L2489: + b .L2587 +.L2590: mov w0, w24 mov w1, 1 add w24, w24, 1 @@ -17351,28 +17918,28 @@ FtlLowFormat: add w23, w23, w0 and w24, w24, 65535 and w23, w23, 65535 - b .L2488 -.L2490: + b .L2589 +.L2591: udiv w0, w23, w0 - adrp x1, .LANCHOR66 - ldr w23, [x1, #:lo12:.LANCHOR66] + adrp x1, .LANCHOR65 + ldr w23, [x1, #:lo12:.LANCHOR65] add w0, w0, w23 bl FtlSysBlkNumInit ldrh w0, [x25, #:lo12:.LANCHOR39] add x25, x19, :lo12:.LANCHOR41 bl FtlFreeSysBlkQueueInit ldrh w23, [x21, #:lo12:.LANCHOR40] -.L2492: +.L2593: ldrh w0, [x25] cmp w0, w23 - bls .L2494 + bls .L2595 mov w0, w23 add w23, w23, 1 mov w1, 1 and w23, w23, 65535 bl FtlLowFormatEraseBlock - b .L2492 -.L2495: + b .L2593 +.L2596: mov w0, w25 mov w1, 0 add w25, w25, 1 @@ -17380,52 +17947,52 @@ FtlLowFormat: add w23, w23, w0 and w25, w25, 65535 and w23, w23, 65535 - b .L2491 -.L2503: + b .L2592 +.L2604: ldr w1, [x20, #:lo12:.LANCHOR159] ubfiz x0, x0, 1, 16 str w1, [x19, 12] mov w23, -1 add w1, w1, 1 str w1, [x20, #:lo12:.LANCHOR159] - ldr x1, [x24, #:lo12:.LANCHOR84] + ldr x1, [x24, #:lo12:.LANCHOR83] ldrh w2, [x19, 4] strh w2, [x1, x0] - adrp x2, .LANCHOR93 - add x0, x2, :lo12:.LANCHOR93 + adrp x2, .LANCHOR92 + add x0, x2, :lo12:.LANCHOR92 ldrh w1, [x19] mov x19, x0 add w1, w1, 1 strh wzr, [x0, 2] - strh w1, [x2, #:lo12:.LANCHOR93] + strh w1, [x2, #:lo12:.LANCHOR92] mov w1, 1 strb wzr, [x0, 6] strb w1, [x0, 8] -.L2504: +.L2605: mov x0, x19 bl make_superblock ldrb w1, [x19, 7] ldrh w0, [x19] - cbnz w1, .L2505 - ldr x1, [x24, #:lo12:.LANCHOR84] + cbnz w1, .L2606 + ldr x1, [x24, #:lo12:.LANCHOR83] ubfiz x0, x0, 1, 16 strh w23, [x1, x0] ldrh w0, [x19] add w0, w0, 1 strh w0, [x19] - b .L2504 -.L2505: + b .L2605 +.L2606: ldr w1, [x20, #:lo12:.LANCHOR159] ubfiz x0, x0, 1, 16 str w1, [x19, 12] add w1, w1, 1 str w1, [x20, #:lo12:.LANCHOR159] - ldr x1, [x24, #:lo12:.LANCHOR84] + ldr x1, [x24, #:lo12:.LANCHOR83] ldrh w2, [x19, 4] mov w19, -1 strh w2, [x1, x0] - adrp x0, .LANCHOR94 - strh w19, [x0, #:lo12:.LANCHOR94] + adrp x0, .LANCHOR93 + strh w19, [x0, #:lo12:.LANCHOR93] bl FtlFreeSysBlkQueueOut adrp x2, .LANCHOR209 add x1, x2, :lo12:.LANCHOR209 @@ -17440,11 +18007,11 @@ FtlLowFormat: str w0, [x20, #:lo12:.LANCHOR159] bl FtlVpcTblFlush bl FtlSysBlkInit - cbnz w0, .L2484 - adrp x0, .LANCHOR231 + cbnz w0, .L2585 + adrp x0, .LANCHOR230 mov w1, 1 - str w1, [x0, #:lo12:.LANCHOR231] -.L2484: + str w1, [x0, #:lo12:.LANCHOR230] +.L2585: mov w0, 0 ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] @@ -17452,143 +18019,18 @@ FtlLowFormat: ldp x25, x26, [sp, 64] ldp x29, x30, [sp], 80 ret -.L2514: +.L2615: mov w0, 0 ret .size FtlLowFormat, .-FtlLowFormat - .section .text.Ftl_get_new_temp_ppa,"ax",@progbits - .align 2 - .global Ftl_get_new_temp_ppa - .type Ftl_get_new_temp_ppa, %function -Ftl_get_new_temp_ppa: - stp x29, x30, [sp, -32]! - adrp x0, .LANCHOR94 - mov w2, 65535 - add x29, sp, 0 - str x19, [sp, 16] - mov x19, x0 - ldrh w3, [x0, #:lo12:.LANCHOR94] - cmp w3, w2 - beq .L2518 - add x1, x0, :lo12:.LANCHOR94 - ldrh w0, [x1, 4] - cbnz w0, .L2519 -.L2518: - bl FtlCacheWriteBack - mov w0, 0 - bl FtlGcFreeTempBlock - add x0, x19, :lo12:.LANCHOR94 - strb wzr, [x0, 8] - bl allocate_data_superblock - adrp x0, .LANCHOR109 - strh wzr, [x0, #:lo12:.LANCHOR109] - adrp x0, .LANCHOR111 - strh wzr, [x0, #:lo12:.LANCHOR111] - bl l2p_flush - mov w0, 0 - bl FtlEctTblFlush - bl FtlVpcTblFlush -.L2519: - add x0, x19, :lo12:.LANCHOR94 - ldr x19, [sp, 16] - ldp x29, x30, [sp], 32 - b get_new_active_ppa - .size Ftl_get_new_temp_ppa, .-Ftl_get_new_temp_ppa - .section .text.Ftl_gc_temp_data_write_back,"ax",@progbits - .align 2 - .global Ftl_gc_temp_data_write_back - .type Ftl_gc_temp_data_write_back, %function -Ftl_gc_temp_data_write_back: - adrp x0, .LANCHOR77 - ldr w0, [x0, #:lo12:.LANCHOR77] - cbz w0, .L2522 - mov w0, 0 - ret -.L2525: - mov w0, 0 -.L2521: - ldp x19, x20, [sp, 16] - ldp x29, x30, [sp], 32 - ret -.L2522: - stp x29, x30, [sp, -32]! - adrp x0, .LANCHOR8 - add x29, sp, 0 - ldrb w0, [x0, #:lo12:.LANCHOR8] - stp x19, x20, [sp, 16] - adrp x19, .LANCHOR103 - cbz w0, .L2524 - ldr w0, [x19, #:lo12:.LANCHOR103] - tbz x0, 0, .L2524 - adrp x0, .LANCHOR94+4 - ldrh w0, [x0, #:lo12:.LANCHOR94+4] - cbnz w0, .L2525 -.L2524: - adrp x20, .LANCHOR181 - ldr w1, [x19, #:lo12:.LANCHOR103] - mov w3, 0 - mov w2, 0 - ldr x0, [x20, #:lo12:.LANCHOR181] - add x19, x19, :lo12:.LANCHOR103 - bl FlashProgPages - mov w11, 0 - mov w12, 56 -.L2526: - ldr w1, [x19] - cmp w11, w1 - bcc .L2528 - ldr x0, [x20, #:lo12:.LANCHOR181] - bl FtlGcBufFree - str wzr, [x19] - adrp x0, .LANCHOR94+4 - ldrh w0, [x0, #:lo12:.LANCHOR94+4] - cbnz w0, .L2525 - mov w0, 1 - bl FtlGcFreeTempBlock - b .L2538 -.L2528: - umull x0, w11, w12 - ldr x2, [x20, #:lo12:.LANCHOR181] - add x1, x2, x0 - ldr w2, [x2, x0] - cmn w2, #1 - bne .L2527 - adrp x0, .LANCHOR94 - adrp x3, .LANCHOR84 - ldrh w4, [x0, #:lo12:.LANCHOR94] - ldr x3, [x3, #:lo12:.LANCHOR84] - strh wzr, [x3, x4, lsl 1] - strh w2, [x0, #:lo12:.LANCHOR94] - adrp x0, .LANCHOR138 - add x0, x0, :lo12:.LANCHOR138 - ldr w2, [x0, 96] - add w2, w2, 1 - str w2, [x0, 96] - ldr w0, [x1, 4] - lsr w0, w0, 10 - bl FtlBbmMapBadBlock - bl FtlBbmTblFlush - bl FtlGcPageVarInit -.L2538: - mov w0, 1 - b .L2521 -.L2527: - ldr x0, [x1, 16] - ldr w1, [x1, 4] - ldp w2, w0, [x0, 8] - bl FtlGcUpdatePage - add w11, w11, 1 - and w11, w11, 65535 - b .L2526 - .size Ftl_gc_temp_data_write_back, .-Ftl_gc_temp_data_write_back .section .text.rk_ftl_garbage_collect,"ax",@progbits .align 2 .global rk_ftl_garbage_collect .type rk_ftl_garbage_collect, %function rk_ftl_garbage_collect: - adrp x1, .LANCHOR77 - ldr w1, [x1, #:lo12:.LANCHOR77] - cbnz w1, .L2591 + adrp x1, .LANCHOR76 + ldr w1, [x1, #:lo12:.LANCHOR76] + cbnz w1, .L2670 stp x29, x30, [sp, -192]! add x29, sp, 0 stp x21, x22, [sp, 32] @@ -17598,79 +18040,79 @@ rk_ftl_garbage_collect: stp x23, x24, [sp, 48] stp x25, x26, [sp, 64] stp x27, x28, [sp, 80] - cbnz w1, .L2593 - adrp x1, .LANCHOR86 - ldrh w1, [x1, #:lo12:.LANCHOR86] + cbnz w1, .L2672 + adrp x1, .LANCHOR85 + ldrh w1, [x1, #:lo12:.LANCHOR85] cmp w1, 47 - bls .L2593 - adrp x5, .LANCHOR114 + bls .L2672 + adrp x5, .LANCHOR113 mov w2, 65535 - ldrh w8, [x5, #:lo12:.LANCHOR114] + ldrh w8, [x5, #:lo12:.LANCHOR113] cmp w8, w2 - beq .L2541 - adrp x7, .LANCHOR113 - ldrh w1, [x7, #:lo12:.LANCHOR113] + beq .L2620 + adrp x7, .LANCHOR112 + ldrh w1, [x7, #:lo12:.LANCHOR112] cmp w1, w2 - bne .L2541 - adrp x3, .LANCHOR115 - ldrh w6, [x3, #:lo12:.LANCHOR115] + bne .L2620 + adrp x3, .LANCHOR114 + ldrh w6, [x3, #:lo12:.LANCHOR114] cmp w6, w1 - beq .L2541 - adrp x2, .LANCHOR116 - ldrh w4, [x2, #:lo12:.LANCHOR116] + beq .L2620 + adrp x2, .LANCHOR115 + ldrh w4, [x2, #:lo12:.LANCHOR115] cmp w4, w1 - beq .L2541 + beq .L2620 mov w1, -1 - strh w8, [x7, #:lo12:.LANCHOR113] - strh w6, [x5, #:lo12:.LANCHOR114] - strh w4, [x3, #:lo12:.LANCHOR115] - strh w1, [x2, #:lo12:.LANCHOR116] -.L2541: - cbnz w0, .L2594 - adrp x0, .LANCHOR89 - ldrh w0, [x0, #:lo12:.LANCHOR89] + strh w8, [x7, #:lo12:.LANCHOR112] + strh w6, [x5, #:lo12:.LANCHOR113] + strh w4, [x3, #:lo12:.LANCHOR114] + strh w1, [x2, #:lo12:.LANCHOR115] +.L2620: + cbnz w0, .L2673 + adrp x0, .LANCHOR88 + ldrh w0, [x0, #:lo12:.LANCHOR88] cmp w0, 24 - bhi .L2595 - adrp x1, .LANCHOR53 + bhi .L2674 + adrp x1, .LANCHOR52 cmp w0, 16 - ldrh w20, [x1, #:lo12:.LANCHOR53] - bls .L2544 + ldrh w20, [x1, #:lo12:.LANCHOR52] + bls .L2623 lsr w20, w20, 5 -.L2543: +.L2622: adrp x2, .LANCHOR176 mov x3, x2 ldrh w1, [x2, #:lo12:.LANCHOR176] cmp w1, w0 - bcs .L2547 - adrp x0, .LANCHOR94 + bcs .L2626 + adrp x0, .LANCHOR93 mov w1, 65535 - ldrh w0, [x0, #:lo12:.LANCHOR94] + ldrh w0, [x0, #:lo12:.LANCHOR93] cmp w0, w1 - bne .L2548 - adrp x1, .LANCHOR113 - ldrh w1, [x1, #:lo12:.LANCHOR113] + bne .L2627 + adrp x1, .LANCHOR112 + ldrh w1, [x1, #:lo12:.LANCHOR112] cmp w1, w0 - bne .L2548 + bne .L2627 adrp x0, .LANCHOR240 ldrh w0, [x0, #:lo12:.LANCHOR240] - cbnz w0, .L2549 - adrp x1, .LANCHOR73 - adrp x4, .LANCHOR101 - ldr w1, [x1, #:lo12:.LANCHOR73] - ldr w4, [x4, #:lo12:.LANCHOR101] + cbnz w0, .L2628 + adrp x1, .LANCHOR72 + adrp x4, .LANCHOR100 + ldr w1, [x1, #:lo12:.LANCHOR72] + ldr w4, [x4, #:lo12:.LANCHOR100] add w1, w1, w1, lsl 1 cmp w4, w1, lsr 2 - bcs .L2550 -.L2549: + bcs .L2629 +.L2628: adrp x1, .LANCHOR223 ldrh w1, [x1, #:lo12:.LANCHOR223] add w1, w1, w1, lsl 1 asr w1, w1, 2 strh w1, [x3, #:lo12:.LANCHOR176] -.L2551: +.L2630: adrp x1, .LANCHOR172 str wzr, [x1, #:lo12:.LANCHOR172] -.L2539: +.L2618: ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x23, x24, [sp, 48] @@ -17678,206 +18120,204 @@ rk_ftl_garbage_collect: ldp x27, x28, [sp, 80] ldp x29, x30, [sp], 192 ret -.L2544: +.L2623: cmp w0, 12 - bls .L2545 + bls .L2624 lsr w20, w20, 4 - b .L2543 -.L2545: + b .L2622 +.L2624: cmp w0, 8 - bls .L2543 + bls .L2622 lsr w20, w20, 2 - b .L2543 -.L2595: + b .L2622 +.L2674: mov w20, 1 - b .L2543 -.L2550: + b .L2622 +.L2629: mov w1, 18 strh w1, [x2, #:lo12:.LANCHOR176] - b .L2551 -.L2548: + b .L2630 +.L2627: adrp x0, .LANCHOR223 ldrh w0, [x0, #:lo12:.LANCHOR223] add w0, w0, w0, lsl 1 asr w0, w0, 2 strh w0, [x3, #:lo12:.LANCHOR176] -.L2547: - adrp x0, .LANCHOR117 - ldrh w0, [x0, #:lo12:.LANCHOR117] - cbz w0, .L2542 +.L2626: + adrp x0, .LANCHOR116 + ldrh w0, [x0, #:lo12:.LANCHOR116] + cbz w0, .L2621 add w20, w20, 32 and w20, w20, 65535 -.L2542: +.L2621: adrp x19, .LANCHOR204 mov w0, 65535 ldrh w2, [x19, #:lo12:.LANCHOR204] cmp w2, w0 - bne .L2554 - adrp x0, .LANCHOR113 - ldrh w1, [x0, #:lo12:.LANCHOR113] + bne .L2633 + adrp x0, .LANCHOR112 + ldrh w1, [x0, #:lo12:.LANCHOR112] cmp w1, w2 - beq .L2555 - adrp x2, .LANCHOR84 + beq .L2634 + adrp x2, .LANCHOR83 ubfiz x1, x1, 1, 16 - ldr x2, [x2, #:lo12:.LANCHOR84] + ldr x2, [x2, #:lo12:.LANCHOR83] ldrh w1, [x2, x1] - cbnz w1, .L2556 + cbnz w1, .L2635 mov w1, -1 - strh w1, [x0, #:lo12:.LANCHOR113] -.L2556: - ldrh w1, [x0, #:lo12:.LANCHOR113] + strh w1, [x0, #:lo12:.LANCHOR112] +.L2635: + ldrh w1, [x0, #:lo12:.LANCHOR112] strh w1, [x19, #:lo12:.LANCHOR204] mov w1, -1 - strh w1, [x0, #:lo12:.LANCHOR113] -.L2555: + strh w1, [x0, #:lo12:.LANCHOR112] +.L2634: add x0, x19, :lo12:.LANCHOR204 mov w1, 65535 strb wzr, [x0, 8] ldrh w0, [x19, #:lo12:.LANCHOR204] cmp w0, w1 - beq .L2554 + beq .L2633 bl IsBlkInGcList - cbz w0, .L2558 + cbz w0, .L2637 mov w0, -1 strh w0, [x19, #:lo12:.LANCHOR204] -.L2558: - adrp x0, .LANCHOR8 - ldrb w0, [x0, #:lo12:.LANCHOR8] - cbz w0, .L2559 +.L2637: + adrp x0, .LANCHOR15 + ldrb w0, [x0, #:lo12:.LANCHOR15] + cbz w0, .L2638 ldrh w0, [x19, #:lo12:.LANCHOR204] add x3, x19, :lo12:.LANCHOR204 bl ftl_get_blk_mode strb w0, [x3, 8] -.L2559: +.L2638: ldrh w1, [x19, #:lo12:.LANCHOR204] mov w0, 65535 add x22, x19, :lo12:.LANCHOR204 cmp w1, w0 - beq .L2554 + beq .L2633 mov x0, x22 bl make_superblock adrp x0, .LANCHOR241 ldrh w1, [x19, #:lo12:.LANCHOR204] strh wzr, [x22, 2] strh wzr, [x0, #:lo12:.LANCHOR241] - adrp x0, .LANCHOR84 + adrp x0, .LANCHOR83 strb wzr, [x22, 6] - ldr x0, [x0, #:lo12:.LANCHOR84] + ldr x0, [x0, #:lo12:.LANCHOR83] ldrh w1, [x0, x1, lsl 1] adrp x0, .LANCHOR242 strh w1, [x0, #:lo12:.LANCHOR242] -.L2554: - adrp x0, .LANCHOR92 +.L2633: + adrp x0, .LANCHOR91 ldrh w1, [x19, #:lo12:.LANCHOR204] str x0, [x29, 144] + ldrh w2, [x0, #:lo12:.LANCHOR91] + cmp w2, w1 + beq .L2639 + adrp x0, .LANCHOR92 + str x0, [x29, 136] ldrh w2, [x0, #:lo12:.LANCHOR92] cmp w2, w1 - beq .L2560 - adrp x0, .LANCHOR93 - str x0, [x29, 136] - ldrh w2, [x0, #:lo12:.LANCHOR93] - cmp w2, w1 - beq .L2560 - adrp x23, .LANCHOR178 - add x0, x23, :lo12:.LANCHOR178 - str x0, [x29, 168] -.L2561: + beq .L2639 + adrp x25, .LANCHOR178 + add x26, x25, :lo12:.LANCHOR178 +.L2640: ldrh w1, [x19, #:lo12:.LANCHOR204] mov w0, 65535 cmp w1, w0 - bne .L2562 + bne .L2641 adrp x0, .LANCHOR172 - adrp x22, .LANCHOR53 - add x22, x22, :lo12:.LANCHOR53 + adrp x22, .LANCHOR52 + add x22, x22, :lo12:.LANCHOR52 str wzr, [x0, #:lo12:.LANCHOR172] -.L2563: - ldrh w5, [x23, #:lo12:.LANCHOR178] - add x7, x23, :lo12:.LANCHOR178 +.L2642: + ldrh w5, [x25, #:lo12:.LANCHOR178] + add x7, x25, :lo12:.LANCHOR178 mov w0, w5 bl List_get_gc_head_node and w6, w0, 65535 strh w6, [x19, #:lo12:.LANCHOR204] mov w0, 65535 cmp w6, w0 - bne .L2564 + bne .L2643 strh wzr, [x7] mov w0, 8 - b .L2539 -.L2594: + b .L2618 +.L2673: mov w20, 1 - b .L2542 -.L2560: + b .L2621 +.L2639: mov w0, -1 strh w0, [x19, #:lo12:.LANCHOR204] -.L2630: +.L2709: adrp x0, .LANCHOR240 ldrh w0, [x0, #:lo12:.LANCHOR240] - b .L2539 -.L2564: + b .L2618 +.L2643: mov w0, w6 bl IsBlkInGcList add w5, w5, 1 - cbz w0, .L2565 - strh w5, [x23, #:lo12:.LANCHOR178] - b .L2563 -.L2565: - adrp x24, .LANCHOR84 + cbz w0, .L2644 + strh w5, [x25, #:lo12:.LANCHOR178] + b .L2642 +.L2644: + adrp x23, .LANCHOR83 adrp x4, .LANCHOR38 ldrh w0, [x22] ubfiz x1, x6, 1, 16 - ldr x2, [x24, #:lo12:.LANCHOR84] + ldr x2, [x23, #:lo12:.LANCHOR83] and w5, w5, 65535 ldrh w4, [x4, #:lo12:.LANCHOR38] - strh w5, [x23, #:lo12:.LANCHOR178] + strh w5, [x25, #:lo12:.LANCHOR178] ldrh w3, [x2, x1] mul w0, w0, w4 cmp w3, w0, asr 1 - bgt .L2567 + bgt .L2646 cmp w5, 48 - bls .L2568 + bls .L2647 cmp w3, 8 - bls .L2568 - adrp x3, .LANCHOR109 - ldrh w3, [x3, #:lo12:.LANCHOR109] + bls .L2647 + adrp x3, .LANCHOR108 + ldrh w3, [x3, #:lo12:.LANCHOR108] cmp w3, 35 - bhi .L2568 -.L2567: - ldr x3, [x29, 168] - strh wzr, [x3] -.L2568: + bhi .L2647 +.L2646: + strh wzr, [x26] +.L2647: ldrh w1, [x2, x1] cmp w0, w1 - bgt .L2569 + bgt .L2648 + ldrh w0, [x26] + cmp w0, 3 + bhi .L2648 mov w0, -1 + strh wzr, [x26] strh w0, [x19, #:lo12:.LANCHOR204] - adrp x0, .LANCHOR178 - strh wzr, [x0, #:lo12:.LANCHOR178] - b .L2630 -.L2569: - cbnz w1, .L2570 + b .L2709 +.L2648: + cbnz w1, .L2649 mov w0, -1 bl decrement_vpc_count - ldr x0, [x29, 168] - ldr x1, [x29, 168] - ldrh w0, [x0] + ldrh w0, [x26] add w0, w0, 1 - strh w0, [x1] - b .L2563 -.L2570: - adrp x0, .LANCHOR8 + strh w0, [x26] + b .L2642 +.L2649: + adrp x0, .LANCHOR15 add x3, x19, :lo12:.LANCHOR204 - ldrb w0, [x0, #:lo12:.LANCHOR8] + ldrb w0, [x0, #:lo12:.LANCHOR15] strb wzr, [x3, 8] - cbz w0, .L2571 + cbz w0, .L2650 mov w0, w6 bl ftl_get_blk_mode strb w0, [x3, 8] -.L2571: +.L2650: ldr x0, [x29, 144] - ldrh w0, [x0, #:lo12:.LANCHOR92] + ldrh w0, [x0, #:lo12:.LANCHOR91] cmp w0, w6 - bne .L2572 - mov w2, 857 + bne .L2651 + mov w2, 893 adrp x1, .LANCHOR243 adrp x0, .LC5 add x1, x1, :lo12:.LANCHOR243 @@ -17888,13 +18328,30 @@ rk_ftl_garbage_collect: add x1, x1, :lo12:.LC6 add x0, x0, :lo12:.LC7 bl printf -.L2572: +.L2651: ldr x0, [x29, 136] ldrh w1, [x19, #:lo12:.LANCHOR204] + ldrh w0, [x0, #:lo12:.LANCHOR92] + cmp w1, w0 + bne .L2652 + mov w2, 894 + adrp x1, .LANCHOR243 + adrp x0, .LC5 + add x1, x1, :lo12:.LANCHOR243 + add x0, x0, :lo12:.LC5 + bl printf + adrp x1, .LC6 + adrp x0, .LC7 + add x1, x1, :lo12:.LC6 + add x0, x0, :lo12:.LC7 + bl printf +.L2652: + adrp x0, .LANCHOR93 + ldrh w1, [x19, #:lo12:.LANCHOR204] ldrh w0, [x0, #:lo12:.LANCHOR93] cmp w1, w0 - bne .L2573 - mov w2, 858 + bne .L2653 + mov w2, 895 adrp x1, .LANCHOR243 adrp x0, .LC5 add x1, x1, :lo12:.LANCHOR243 @@ -17905,99 +18362,86 @@ rk_ftl_garbage_collect: add x1, x1, :lo12:.LC6 add x0, x0, :lo12:.LC7 bl printf -.L2573: - adrp x0, .LANCHOR94 - ldrh w1, [x19, #:lo12:.LANCHOR204] - ldrh w0, [x0, #:lo12:.LANCHOR94] - cmp w1, w0 - bne .L2574 - mov w2, 859 - adrp x1, .LANCHOR243 - adrp x0, .LC5 - add x1, x1, :lo12:.LANCHOR243 - add x0, x0, :lo12:.LC5 - bl printf - adrp x1, .LC6 - adrp x0, .LC7 - add x1, x1, :lo12:.LC6 - add x0, x0, :lo12:.LC7 - bl printf -.L2574: +.L2653: add x22, x19, :lo12:.LANCHOR204 mov x0, x22 bl make_superblock adrp x0, .LANCHOR241 ldrh w1, [x19, #:lo12:.LANCHOR204] strh wzr, [x0, #:lo12:.LANCHOR241] - ldr x0, [x24, #:lo12:.LANCHOR84] + ldr x0, [x23, #:lo12:.LANCHOR83] ldrh w1, [x0, x1, lsl 1] adrp x0, .LANCHOR242 strh wzr, [x22, 2] strh w1, [x0, #:lo12:.LANCHOR242] strb wzr, [x22, 6] -.L2562: +.L2641: + adrp x1, .LANCHOR52 mov w0, 1 str w0, [x21, #:lo12:.LANCHOR171] - adrp x0, .LANCHOR8 - adrp x1, .LANCHOR53 - stp x0, x1, [x29, 120] - ldrb w2, [x0, #:lo12:.LANCHOR8] - ldrh w26, [x1, #:lo12:.LANCHOR53] - cbz w2, .L2575 + ldrh w0, [x1, #:lo12:.LANCHOR52] + str w0, [x29, 172] + adrp x0, .LANCHOR15 + str x1, [x29, 128] + str x0, [x29, 120] + ldrb w2, [x0, #:lo12:.LANCHOR15] + cbz w2, .L2654 add x0, x19, :lo12:.LANCHOR204 ldrb w0, [x0, 8] cmp w0, 1 - bne .L2575 - adrp x0, .LANCHOR54 - ldrh w26, [x0, #:lo12:.LANCHOR54] -.L2575: + bne .L2654 + adrp x0, .LANCHOR53 + ldrh w0, [x0, #:lo12:.LANCHOR53] + str w0, [x29, 172] +.L2654: add x0, x19, :lo12:.LANCHOR204 + ldr w2, [x29, 172] ldrh w0, [x0, 2] add w1, w0, w20 - cmp w1, w26 - ble .L2576 - sub w20, w26, w0 + cmp w1, w2 + ble .L2655 + sub w20, w2, w0 and w20, w20, 65535 -.L2576: +.L2655: adrp x0, .LANCHOR241 - mov w27, 0 + mov w28, 0 add x0, x0, :lo12:.LANCHOR241 str x0, [x29, 160] -.L2577: - cmp w20, w27, uxth - bls .L2585 +.L2656: + cmp w20, w28, uxth + bls .L2664 add x1, x19, :lo12:.LANCHOR204 adrp x0, .LANCHOR38 - adrp x24, .LANCHOR107 + adrp x23, .LANCHOR106 add x1, x1, 16 ldrh w7, [x0, #:lo12:.LANCHOR38] mov w22, 0 ldrh w4, [x1, -14] mov w2, 0 - ldr x0, [x24, #:lo12:.LANCHOR107] + ldr x0, [x23, #:lo12:.LANCHOR106] mov w6, 65535 - add w4, w4, w27 + add w4, w4, w28 mov w5, 56 - b .L2586 -.L2579: + b .L2665 +.L2658: ldrh w3, [x1] cmp w3, w6 - beq .L2578 + beq .L2657 umaddl x8, w22, w5, x0 add w22, w22, 1 and w22, w22, 65535 orr w3, w4, w3, lsl 10 str w3, [x8, 4] -.L2578: +.L2657: add w2, w2, 1 add x1, x1, 2 and w2, w2, 65535 -.L2586: +.L2665: cmp w2, w7 - bne .L2579 + bne .L2658 add x1, x19, :lo12:.LANCHOR204 - adrp x25, .LANCHOR103 - add x25, x25, :lo12:.LANCHOR103 + adrp x24, .LANCHOR102 + add x24, x24, :lo12:.LANCHOR102 ldrb w2, [x1, 8] mov w1, w22 bl FlashReadPages @@ -18005,27 +18449,27 @@ rk_ftl_garbage_collect: umull x0, w22, w0 mov x22, 0 str x0, [x29, 152] -.L2580: +.L2659: ldr x0, [x29, 152] cmp x22, x0 - bne .L2584 - add w27, w27, 1 - b .L2577 -.L2584: - ldr x0, [x24, #:lo12:.LANCHOR107] + bne .L2663 + add w28, w28, 1 + b .L2656 +.L2663: + ldr x0, [x23, #:lo12:.LANCHOR106] add x1, x0, x22 ldr w0, [x0, x22] cmn w0, #1 - beq .L2581 - ldr x28, [x1, 16] + beq .L2660 + ldr x27, [x1, 16] mov w0, 61589 - ldrh w1, [x28] + ldrh w1, [x27] cmp w1, w0 - bne .L2581 - ldr w4, [x28, 8] + bne .L2660 + ldr w4, [x27, 8] cmn w4, #1 - bne .L2582 - mov w2, 898 + bne .L2661 + mov w2, 934 str w4, [x29, 112] adrp x1, .LANCHOR243 adrp x0, .LC5 @@ -18038,43 +18482,41 @@ rk_ftl_garbage_collect: add x0, x0, :lo12:.LC7 bl printf ldr w4, [x29, 112] -.L2582: +.L2661: mov w2, 0 add x1, x29, 188 mov w0, w4 bl log2phys - ldr x0, [x24, #:lo12:.LANCHOR107] + ldr x0, [x23, #:lo12:.LANCHOR106] ldr w1, [x29, 188] add x0, x0, x22 and w1, w1, 2147483647 ldr w2, [x0, 4] cmp w1, w2 - bne .L2581 + bne .L2660 ldr x1, [x29, 160] adrp x4, .LANCHOR181 ldr x2, [x29, 160] ldr x5, [x4, #:lo12:.LANCHOR181] ldr w0, [x0, 24] ldrh w1, [x1] - str x4, [x29, 96] add w1, w1, 1 strh w1, [x2] - ldr w2, [x25] + ldr w2, [x24] mov w1, 56 - str w1, [x29, 108] + str w1, [x29, 168] nop // between mem op and mult-accumulate umaddl x2, w2, w1, x5 - str x2, [x29, 112] + stp x4, x2, [x29, 104] str w0, [x2, 24] bl Ftl_get_new_temp_ppa - ldr x4, [x29, 96] - ldr x2, [x29, 112] - ldr w1, [x29, 108] + ldp x4, x2, [x29, 104] + ldr w1, [x29, 168] str w0, [x2, 4] ldr x0, [x4, #:lo12:.LANCHOR181] - ldr w2, [x25] + ldr w2, [x24] umaddl x1, w2, w1, x0 - ldr x0, [x24, #:lo12:.LANCHOR107] + ldr x0, [x23, #:lo12:.LANCHOR106] add w2, w2, 1 add x0, x0, x22 ldr x4, [x0, 8] @@ -18082,95 +18524,96 @@ rk_ftl_garbage_collect: ldr x4, [x0, 16] str x4, [x1, 16] ldr w1, [x29, 188] - str w1, [x28, 12] - adrp x1, .LANCHOR94 - add x12, x1, :lo12:.LANCHOR94 - ldrh w1, [x1, #:lo12:.LANCHOR94] - strh w1, [x28, 2] + str w1, [x27, 12] + adrp x1, .LANCHOR93 + add x12, x1, :lo12:.LANCHOR93 + ldrh w1, [x1, #:lo12:.LANCHOR93] + strh w1, [x27, 2] adrp x1, .LANCHOR160 - str w2, [x25] + str w2, [x24] ldr w1, [x1, #:lo12:.LANCHOR160] - str w1, [x28, 4] + str w1, [x27, 4] mov w1, 1 bl FtlGcBufAlloc ldr x0, [x29, 120] - ldrb w0, [x0, #:lo12:.LANCHOR8] - cbnz w0, .L2583 + ldrb w0, [x0, #:lo12:.LANCHOR15] + cbnz w0, .L2662 ldrb w1, [x12, 7] - ldr w0, [x25] + ldr w0, [x24] cmp w1, w0 - beq .L2583 + beq .L2662 ldrh w0, [x12, 4] - cbnz w0, .L2581 -.L2583: + cbnz w0, .L2660 +.L2662: bl Ftl_gc_temp_data_write_back - cbz w0, .L2581 -.L2631: + cbz w0, .L2660 +.L2710: str wzr, [x21, #:lo12:.LANCHOR171] - b .L2630 -.L2581: + b .L2709 +.L2660: add x22, x22, 56 - b .L2580 -.L2585: + b .L2659 +.L2664: add x1, x19, :lo12:.LANCHOR204 ldrh w0, [x1, 2] add w20, w20, w0 + ldr w0, [x29, 172] and w20, w20, 65535 strh w20, [x1, 2] - cmp w26, w20 - bhi .L2587 - adrp x0, .LANCHOR103 - ldr w0, [x0, #:lo12:.LANCHOR103] - cbz w0, .L2588 + cmp w0, w20 + bhi .L2666 + adrp x0, .LANCHOR102 + ldr w0, [x0, #:lo12:.LANCHOR102] + cbz w0, .L2667 bl Ftl_gc_temp_data_write_back - cbnz w0, .L2631 -.L2588: + cbnz w0, .L2710 +.L2667: adrp x0, .LANCHOR241 ldrh w0, [x0, #:lo12:.LANCHOR241] - cbnz w0, .L2589 + cbnz w0, .L2668 ldrh w1, [x19, #:lo12:.LANCHOR204] - adrp x20, .LANCHOR84 + adrp x20, .LANCHOR83 add x0, x19, :lo12:.LANCHOR204 - ldr x3, [x20, #:lo12:.LANCHOR84] + ldr x3, [x20, #:lo12:.LANCHOR83] ubfiz x2, x1, 1, 16 ldrh w4, [x3, x2] - cbz w4, .L2589 + cbz w4, .L2668 adrp x2, .LANCHOR242 mov w3, 0 ldrh w5, [x2, #:lo12:.LANCHOR242] ldrh w2, [x0, 2] - adrp x0, .LC65 - add x0, x0, :lo12:.LC65 + adrp x0, .LC66 + add x0, x0, :lo12:.LC66 bl printf ldrh w1, [x19, #:lo12:.LANCHOR204] - ldr x0, [x20, #:lo12:.LANCHOR84] + ldr x0, [x20, #:lo12:.LANCHOR83] strh wzr, [x0, x1, lsl 1] ldrh w0, [x19, #:lo12:.LANCHOR204] bl update_vpc_list bl FtlCacheWriteBack bl l2p_flush bl FtlVpcTblFlush -.L2589: +.L2668: mov w0, -1 strh w0, [x19, #:lo12:.LANCHOR204] -.L2587: - adrp x0, .LANCHOR89 - ldrh w0, [x0, #:lo12:.LANCHOR89] +.L2666: + adrp x0, .LANCHOR88 + ldrh w0, [x0, #:lo12:.LANCHOR88] cmp w0, 2 - bhi .L2590 + bhi .L2669 ldr x0, [x29, 128] - ldrh w20, [x0, #:lo12:.LANCHOR53] - b .L2561 -.L2590: + ldrh w20, [x0, #:lo12:.LANCHOR52] + b .L2640 +.L2669: str wzr, [x21, #:lo12:.LANCHOR171] add w0, w0, 1 - b .L2539 -.L2591: + b .L2618 +.L2670: mov w0, 0 ret -.L2593: +.L2672: mov w0, 0 - b .L2539 + b .L2618 .size rk_ftl_garbage_collect, .-rk_ftl_garbage_collect .section .text.FtlInit,"ax",@progbits .align 2 @@ -18178,18 +18621,18 @@ rk_ftl_garbage_collect: .type FtlInit, %function FtlInit: stp x29, x30, [sp, -32]! - adrp x1, .LC66 - add x1, x1, :lo12:.LC66 + adrp x1, .LC67 + add x1, x1, :lo12:.LC67 add x29, sp, 0 stp x19, x20, [sp, 16] - adrp x19, .LANCHOR231 + adrp x19, .LANCHOR230 mov x20, x0 mov w0, -1 - str w0, [x19, #:lo12:.LANCHOR231] + str w0, [x19, #:lo12:.LANCHOR230] adrp x0, .LANCHOR244 str wzr, [x0, #:lo12:.LANCHOR244] - adrp x0, .LANCHOR77 - str wzr, [x0, #:lo12:.LANCHOR77] + adrp x0, .LANCHOR76 + str wzr, [x0, #:lo12:.LANCHOR76] adrp x0, .LC7 add x0, x0, :lo12:.LC7 bl printf @@ -18201,42 +18644,42 @@ FtlInit: ldrh w0, [x0, #:lo12:.LANCHOR39] bl FtlFreeSysBlkQueueInit bl FtlLoadBbt - cbz w0, .L2633 - adrp x1, .LANCHOR245 - adrp x0, .LC67 - add x1, x1, :lo12:.LANCHOR245 - add x0, x0, :lo12:.LC67 -.L2641: - bl printf -.L2634: - mov w0, 0 - ldp x19, x20, [sp, 16] - ldp x29, x30, [sp], 32 - ret -.L2633: - bl FtlSysBlkInit - cbz w0, .L2635 + cbz w0, .L2712 adrp x1, .LANCHOR245 adrp x0, .LC68 add x1, x1, :lo12:.LANCHOR245 add x0, x0, :lo12:.LC68 - b .L2641 -.L2635: +.L2720: + bl printf +.L2713: + mov w0, 0 + ldp x19, x20, [sp, 16] + ldp x29, x30, [sp], 32 + ret +.L2712: + bl FtlSysBlkInit + cbz w0, .L2714 + adrp x1, .LANCHOR245 + adrp x0, .LC69 + add x1, x1, :lo12:.LANCHOR245 + add x0, x0, :lo12:.LC69 + b .L2720 +.L2714: mov w1, 1 - str w1, [x19, #:lo12:.LANCHOR231] + str w1, [x19, #:lo12:.LANCHOR230] bl rk_ftl_garbage_collect - adrp x0, .LANCHOR89 - ldrh w0, [x0, #:lo12:.LANCHOR89] + adrp x0, .LANCHOR88 + ldrh w0, [x0, #:lo12:.LANCHOR88] cmp w0, 15 - bhi .L2634 + bhi .L2713 mov w19, 1024 -.L2637: +.L2716: mov w1, 1 mov w0, w1 bl rk_ftl_garbage_collect subs w19, w19, #1 - bne .L2637 - b .L2634 + bne .L2716 + b .L2713 .size FtlInit, .-FtlInit .section .text.rk_ftl_init,"ax",@progbits .align 2 @@ -18248,15 +18691,15 @@ rk_ftl_init: str x19, [sp, 16] bl FlashInit mov w19, w0 - cbnz w0, .L2643 - adrp x0, .LANCHOR15 - add x0, x0, :lo12:.LANCHOR15 + cbnz w0, .L2722 + adrp x0, .LANCHOR14 + add x0, x0, :lo12:.LANCHOR14 bl FtlInit -.L2643: +.L2722: bl idb_init mov w1, w19 - adrp x0, .LC69 - add x0, x0, :lo12:.LC69 + adrp x0, .LC70 + add x0, x0, :lo12:.LC70 bl printf mov w0, w19 ldr x19, [sp, 16] @@ -18268,110 +18711,110 @@ rk_ftl_init: .global ftl_fix_nand_power_lost_error .type ftl_fix_nand_power_lost_error, %function ftl_fix_nand_power_lost_error: - adrp x0, .LANCHOR8 - ldrb w0, [x0, #:lo12:.LANCHOR8] - cbz w0, .L2660 + adrp x0, .LANCHOR15 + ldrb w0, [x0, #:lo12:.LANCHOR15] + cbz w0, .L2739 stp x29, x30, [sp, -128]! add x29, sp, 0 str x25, [sp, 64] - adrp x25, .LANCHOR235 + adrp x25, .LANCHOR234 stp x23, x24, [sp, 48] stp x21, x22, [sp, 32] - adrp x21, .LANCHOR84 - ldrh w23, [x25, #:lo12:.LANCHOR235] - ldr x0, [x21, #:lo12:.LANCHOR84] + adrp x21, .LANCHOR83 + ldrh w23, [x25, #:lo12:.LANCHOR234] + ldr x0, [x21, #:lo12:.LANCHOR83] mov w1, w23 stp x19, x20, [sp, 16] ubfiz x24, x23, 1, 16 - adrp x19, .LC70 + adrp x19, .LC71 ldrh w2, [x0, x24] - add x0, x19, :lo12:.LC70 + add x0, x19, :lo12:.LC71 bl printf - adrp x0, .LANCHOR92 - add x11, x0, :lo12:.LANCHOR92 - ldrh w0, [x0, #:lo12:.LANCHOR92] + adrp x0, .LANCHOR91 + add x11, x0, :lo12:.LANCHOR91 + ldrh w0, [x0, #:lo12:.LANCHOR91] bl FtlGcRefreshOpenBlock - adrp x0, .LANCHOR93 - add x20, x0, :lo12:.LANCHOR93 - ldrh w0, [x0, #:lo12:.LANCHOR93] + adrp x0, .LANCHOR92 + add x20, x0, :lo12:.LANCHOR92 + ldrh w0, [x0, #:lo12:.LANCHOR92] bl FtlGcRefreshOpenBlock mov x0, x11 bl allocate_new_data_superblock mov x0, x20 mov w20, 4097 bl allocate_new_data_superblock -.L2647: +.L2726: subs w20, w20, #1 - beq .L2651 + beq .L2730 mov w1, 1 mov w0, w1 bl rk_ftl_garbage_collect - ldr x0, [x21, #:lo12:.LANCHOR84] + ldr x0, [x21, #:lo12:.LANCHOR83] ldrh w0, [x0, x24] - cbnz w0, .L2647 -.L2651: - ldr x0, [x21, #:lo12:.LANCHOR84] + cbnz w0, .L2726 +.L2730: + ldr x0, [x21, #:lo12:.LANCHOR83] mov w1, w23 ldrh w2, [x0, x24] - add x0, x19, :lo12:.LC70 + add x0, x19, :lo12:.LC71 bl printf - ldr x0, [x21, #:lo12:.LANCHOR84] + ldr x0, [x21, #:lo12:.LANCHOR83] ldrh w19, [x0, x24] - cbnz w19, .L2649 + cbnz w19, .L2728 add x20, x29, 128 - adrp x22, .LANCHOR78 + adrp x22, .LANCHOR77 strh w23, [x20, -48]! mov x0, x20 bl make_superblock adrp x0, .LANCHOR38 - ldr x4, [x22, #:lo12:.LANCHOR78] + ldr x4, [x22, #:lo12:.LANCHOR77] add x20, x20, 16 mov w5, 65535 ldrh w3, [x0, #:lo12:.LANCHOR38] mov w6, 56 mov w0, 0 -.L2652: +.L2731: cmp w0, w3 - bne .L2654 - ldr x0, [x21, #:lo12:.LANCHOR84] + bne .L2733 + ldr x0, [x21, #:lo12:.LANCHOR83] mov w1, w23 ldrh w2, [x0, x24] - adrp x0, .LC71 - add x0, x0, :lo12:.LC71 + adrp x0, .LC72 + add x0, x0, :lo12:.LC72 bl printf - ldr x0, [x22, #:lo12:.LANCHOR78] + ldr x0, [x22, #:lo12:.LANCHOR77] mov w2, w19 mov w1, 0 bl FlashEraseBlocks - ldr x0, [x22, #:lo12:.LANCHOR78] + ldr x0, [x22, #:lo12:.LANCHOR77] mov w2, w19 mov w1, 1 bl FlashEraseBlocks -.L2649: +.L2728: mov w0, -1 - strh w0, [x25, #:lo12:.LANCHOR235] + strh w0, [x25, #:lo12:.LANCHOR234] ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x23, x24, [sp, 48] ldr x25, [sp, 64] ldp x29, x30, [sp], 128 ret -.L2654: +.L2733: ldrh w1, [x20] cmp w1, w5 - beq .L2653 + beq .L2732 umaddl x2, w19, w6, x4 add w19, w19, 1 and w19, w19, 65535 lsl w1, w1, 10 stp xzr, xzr, [x2, 8] str w1, [x2, 4] -.L2653: +.L2732: add w0, w0, 1 add x20, x20, 2 and w0, w0, 65535 - b .L2652 -.L2660: + b .L2731 +.L2739: ret .size ftl_fix_nand_power_lost_error, .-ftl_fix_nand_power_lost_error .section .text.ftl_read,"ax",@progbits @@ -18392,13 +18835,13 @@ ftl_read: mov w27, w2 stp x21, x22, [sp, 48] stp x25, x26, [sp, 80] - bne .L2664 + bne .L2743 mov x2, x3 mov w1, w27 add w0, w19, 256 bl FtlVendorPartRead mov w21, w0 -.L2663: +.L2742: mov w0, w21 ldp x19, x20, [sp, 32] ldp x21, x22, [sp, 48] @@ -18408,23 +18851,23 @@ ftl_read: ldp x29, x30, [sp, 16] add sp, sp, 208 ret -.L2664: +.L2743: add w0, w1, w2 str w0, [x29, 148] - adrp x0, .LANCHOR69 + adrp x0, .LANCHOR68 add w1, w1, w2 - ldr w0, [x0, #:lo12:.LANCHOR69] + ldr w0, [x0, #:lo12:.LANCHOR68] cmp w1, w0 - bhi .L2687 - adrp x0, .LANCHOR231 - ldr w21, [x0, #:lo12:.LANCHOR231] + bhi .L2766 + adrp x0, .LANCHOR230 + ldr w21, [x0, #:lo12:.LANCHOR230] cmn w21, #1 - beq .L2663 - adrp x22, .LANCHOR56 + beq .L2742 + adrp x22, .LANCHOR55 bl FtlCacheWriteBack adrp x25, .LANCHOR138 add x25, x25, :lo12:.LANCHOR138 - ldrh w0, [x22, #:lo12:.LANCHOR56] + ldrh w0, [x22, #:lo12:.LANCHOR55] mov w24, 0 mov w21, 0 adrp x26, .LANCHOR180 @@ -18445,42 +18888,42 @@ ftl_read: ldr w2, [x29, 172] add w0, w0, w2 str w0, [x1, #:lo12:.LANCHOR166] -.L2666: +.L2745: ldr w0, [x29, 172] - cbnz w0, .L2686 - adrp x0, .LANCHOR117 - ldrh w0, [x0, #:lo12:.LANCHOR117] - cbz w0, .L2663 + cbnz w0, .L2765 + adrp x0, .LANCHOR116 + ldrh w0, [x0, #:lo12:.LANCHOR116] + cbz w0, .L2742 mov w1, 1 mov w0, 0 bl rk_ftl_garbage_collect - b .L2663 -.L2686: + b .L2742 +.L2765: add x1, x29, 188 mov w2, 0 mov w0, w20 bl log2phys ldr w1, [x29, 188] cmn w1, #1 - bne .L2667 - add x3, x22, :lo12:.LANCHOR56 + bne .L2746 + add x3, x22, :lo12:.LANCHOR55 mov w28, 0 -.L2668: +.L2747: ldrh w0, [x3] cmp w28, w0 - bcc .L2670 -.L2671: + bcc .L2749 +.L2750: ldr w0, [x29, 172] add w20, w20, 1 subs w0, w0, #1 str w0, [x29, 172] - beq .L2675 + beq .L2754 adrp x0, .LANCHOR38 ldrh w0, [x0, #:lo12:.LANCHOR38] cmp w24, w0, lsl 2 - bne .L2666 -.L2675: - cbz w24, .L2666 + bne .L2745 +.L2754: + cbz w24, .L2745 ldr x0, [x26, #:lo12:.LANCHOR180] mov w1, w24 mov w2, 0 @@ -18499,35 +18942,35 @@ ftl_read: umull x0, w24, w0 mov x24, 0 str x0, [x29, 120] - adrp x0, .LC60 - add x0, x0, :lo12:.LC60 + adrp x0, .LC59 + add x0, x0, :lo12:.LC59 str x0, [x29, 112] -.L2685: +.L2764: ldr x0, [x26, #:lo12:.LANCHOR180] ldr w2, [x29, 168] add x0, x0, x24 ldr w1, [x0, 24] cmp w2, w1 - bne .L2677 + bne .L2756 ldr x1, [x0, 8] adrp x0, .LANCHOR186 ldr x0, [x0, #:lo12:.LANCHOR186] cmp x1, x0 - bne .L2678 + bne .L2757 ldr x0, [x29, 136] ldr w2, [x29, 144] add x1, x1, x0 mov x0, x23 -.L2702: +.L2781: bl ftl_memcpy -.L2678: +.L2757: ldr x0, [x26, #:lo12:.LANCHOR180] add x0, x0, x24 ldr x2, [x0, 16] ldr w1, [x0, 24] ldr w3, [x2, 8] cmp w1, w3 - beq .L2679 + beq .L2758 ldr w3, [x25, 72] add w3, w3, 1 str w3, [x25, 72] @@ -18541,30 +18984,30 @@ ftl_read: ldr w2, [x0, 4] ldr x0, [x29, 112] bl printf -.L2679: +.L2758: ldr x0, [x26, #:lo12:.LANCHOR180] add x1, x0, x24 ldr w0, [x0, x24] cmn w0, #1 - bne .L2680 + bne .L2759 ldr w1, [x25, 72] mov w21, w0 add w1, w1, 1 str w1, [x25, 72] -.L2681: +.L2760: ldr x0, [x29, 120] add x24, x24, 56 cmp x0, x24 - bne .L2685 + bne .L2764 mov w24, 0 - b .L2666 -.L2670: + b .L2745 +.L2749: madd w0, w20, w0, w28 cmp w19, w0 - bhi .L2669 + bhi .L2748 ldr w1, [x29, 148] cmp w1, w0 - bls .L2669 + bls .L2748 sub w0, w0, w19 str x3, [x29, 136] lsl w0, w0, 9 @@ -18573,21 +19016,21 @@ ftl_read: add x0, x23, x0 bl ftl_memset ldr x3, [x29, 136] -.L2669: +.L2748: add w28, w28, 1 - b .L2668 -.L2667: + b .L2747 +.L2746: ldr x0, [x26, #:lo12:.LANCHOR180] mov w2, 56 umaddl x0, w24, w2, x0 str w1, [x0, 4] ldr w1, [x29, 168] cmp w20, w1 - bne .L2672 + bne .L2751 adrp x1, .LANCHOR186 ldr x1, [x1, #:lo12:.LANCHOR186] str x1, [x0, 8] - ldrh w1, [x22, #:lo12:.LANCHOR56] + ldrh w1, [x22, #:lo12:.LANCHOR55] udiv w2, w19, w1 msub w2, w2, w1, w19 str w2, [x29, 152] @@ -18596,25 +19039,25 @@ ftl_read: csel w2, w27, w2, ls str w2, [x29, 160] cmp w1, w2 - bne .L2673 + bne .L2752 str x23, [x0, 8] -.L2673: - adrp x1, .LANCHOR59 +.L2752: + adrp x1, .LANCHOR58 adrp x2, .LANCHOR189 str w20, [x0, 24] - ldrh w1, [x1, #:lo12:.LANCHOR59] + ldrh w1, [x1, #:lo12:.LANCHOR58] ldr x2, [x2, #:lo12:.LANCHOR189] mul w1, w1, w24 add w24, w24, 1 and x1, x1, 4294967292 add x1, x2, x1 str x1, [x0, 16] - b .L2671 -.L2672: + b .L2750 +.L2751: ldr w1, [x29, 164] cmp w20, w1 - bne .L2674 - ldrh w2, [x22, #:lo12:.LANCHOR56] + bne .L2753 + ldrh w2, [x22, #:lo12:.LANCHOR55] adrp x1, .LANCHOR187 ldr w3, [x29, 148] ldr x1, [x1, #:lo12:.LANCHOR187] @@ -18623,35 +19066,35 @@ ftl_read: sub w3, w3, w1 str w3, [x29, 156] cmp w2, w3 - bne .L2673 -.L2701: + bne .L2752 +.L2780: sub w1, w1, w19 lsl w1, w1, 9 add x1, x23, x1 str x1, [x0, 8] - b .L2673 -.L2674: - ldrh w1, [x22, #:lo12:.LANCHOR56] + b .L2752 +.L2753: + ldrh w1, [x22, #:lo12:.LANCHOR55] mul w1, w1, w20 - b .L2701 -.L2677: + b .L2780 +.L2756: ldr w2, [x29, 164] cmp w2, w1 - bne .L2678 + bne .L2757 ldr x1, [x0, 8] ldr x0, [x28, #:lo12:.LANCHOR187] cmp x1, x0 - bne .L2678 - ldrh w0, [x22, #:lo12:.LANCHOR56] + bne .L2757 + ldrh w0, [x22, #:lo12:.LANCHOR55] mul w0, w0, w2 ldr w2, [x29, 132] sub w0, w0, w19 lsl w0, w0, 9 add x0, x23, x0 - b .L2702 -.L2680: + b .L2781 +.L2759: cmp w0, 256 - bne .L2681 + bne .L2760 ldr w0, [x1, 4] lsr w0, w0, 10 bl P2V_block_in_plane @@ -18660,13 +19103,13 @@ ftl_read: bl FtlGcRefreshBlock mov w2, 2049 adrp x3, .LANCHOR204 -.L2683: +.L2762: subs w2, w2, #1 - bne .L2682 -.L2684: + bne .L2761 +.L2763: bl FtlSysFlush - b .L2681 -.L2682: + b .L2760 +.L2761: mov w1, 1 str x3, [x29, 96] mov w0, w1 @@ -18677,11 +19120,11 @@ ftl_read: ldr w2, [x29, 108] ldrh w0, [x3, #:lo12:.LANCHOR204] cmp w0, w1 - beq .L2683 - b .L2684 -.L2687: + beq .L2762 + b .L2763 +.L2766: mov w21, -1 - b .L2663 + b .L2742 .size ftl_read, .-ftl_read .section .text.FtlWrite,"ax",@progbits .align 2 @@ -18692,23 +19135,23 @@ FtlWrite: add x29, sp, 0 stp x21, x22, [sp, 32] mov w21, w1 - adrp x1, .LANCHOR77 + adrp x1, .LANCHOR76 stp x19, x20, [sp, 16] stp x23, x24, [sp, 48] - ldr w1, [x1, #:lo12:.LANCHOR77] + ldr w1, [x1, #:lo12:.LANCHOR76] stp x25, x26, [sp, 64] stp x27, x28, [sp, 80] - cbnz w1, .L2735 + cbnz w1, .L2814 and w0, w0, 255 mov w23, w2 mov x24, x3 cmp w0, 16 - bne .L2705 + bne .L2784 mov x2, x3 mov w1, w23 add w0, w21, 256 bl FtlVendorPartWrite -.L2703: +.L2782: ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x23, x24, [sp, 48] @@ -18716,22 +19159,22 @@ FtlWrite: ldp x27, x28, [sp, 80] ldp x29, x30, [sp], 240 ret -.L2705: - adrp x0, .LANCHOR69 +.L2784: + adrp x0, .LANCHOR68 add w2, w21, w2 - ldr w0, [x0, #:lo12:.LANCHOR69] + ldr w0, [x0, #:lo12:.LANCHOR68] cmp w2, w0 - bhi .L2736 - adrp x0, .LANCHOR231 - ldr w0, [x0, #:lo12:.LANCHOR231] + bhi .L2815 + adrp x0, .LANCHOR230 + ldr w0, [x0, #:lo12:.LANCHOR230] cmn w0, #1 - beq .L2703 + beq .L2782 adrp x0, .LANCHOR246 - adrp x26, .LANCHOR56 + adrp x26, .LANCHOR55 mov w1, 2048 sub w2, w2, #1 str w1, [x0, #:lo12:.LANCHOR246] - ldrh w1, [x26, #:lo12:.LANCHOR56] + ldrh w1, [x26, #:lo12:.LANCHOR55] str x26, [x29, 160] udiv w0, w2, w1 adrp x2, .LANCHOR162 @@ -18744,25 +19187,25 @@ FtlWrite: str w0, [x2, #:lo12:.LANCHOR162] adrp x0, .LANCHOR132 ldr x2, [x0, #:lo12:.LANCHOR132] - cbz x2, .L2707 + cbz x2, .L2786 ldr w0, [x2, 24] cmp w20, w0 - beq .L2708 + beq .L2787 bl FtlCacheWriteBack -.L2707: - adrp x0, .LANCHOR92 +.L2786: + adrp x0, .LANCHOR91 mov w19, w20 - add x22, x0, :lo12:.LANCHOR92 -.L2709: - cbnz w25, .L2734 + add x22, x0, :lo12:.LANCHOR91 +.L2788: + cbnz w25, .L2813 ldr w0, [x29, 152] sub w1, w0, w20 mov w0, 0 bl rk_ftl_garbage_collect -.L2735: +.L2814: mov w0, 0 - b .L2703 -.L2708: + b .L2782 +.L2787: adrp x3, .LANCHOR164 ldr w0, [x3, #:lo12:.LANCHOR164] add w0, w0, 1 @@ -18778,23 +19221,23 @@ FtlWrite: mov x1, x24 mov w2, w22 bl ftl_memcpy - cbz w27, .L2735 + cbz w27, .L2814 sub w23, w23, w19 add w21, w21, w19 add x24, x24, x22 add w20, w20, 1 bl FtlCacheWriteBack mov w25, w27 - b .L2707 -.L2734: - adrp x0, .LANCHOR92 - add x0, x0, :lo12:.LANCHOR92 + b .L2786 +.L2813: + adrp x0, .LANCHOR91 + add x0, x0, :lo12:.LANCHOR91 adrp x1, .LANCHOR38 str x1, [x29, 120] ldrb w2, [x0, 6] ldrh w0, [x1, #:lo12:.LANCHOR38] cmp w2, w0 - bcc .L2710 + bcc .L2789 mov w2, 1668 adrp x1, .LANCHOR247 adrp x0, .LC5 @@ -18806,13 +19249,13 @@ FtlWrite: add x1, x1, :lo12:.LC6 add x0, x0, :lo12:.LC7 bl printf -.L2710: +.L2789: ldrh w0, [x22, 4] - cbnz w0, .L2711 + cbnz w0, .L2790 bl FtlCacheWriteBack mov x0, x22 bl allocate_new_data_superblock -.L2711: +.L2790: ldrb w0, [x22, 7] ldrh w1, [x22, 4] lsl w0, w0, 2 @@ -18825,7 +19268,7 @@ FtlWrite: ldr x0, [x29, 120] ldrh w0, [x0, #:lo12:.LANCHOR38] cmp w1, w0 - bcc .L2712 + bcc .L2791 mov w2, 1701 adrp x1, .LANCHOR247 adrp x0, .LC5 @@ -18837,29 +19280,29 @@ FtlWrite: add x1, x1, :lo12:.LC6 add x0, x0, :lo12:.LC7 bl printf -.L2712: - adrp x0, .LANCHOR59 - add x0, x0, :lo12:.LANCHOR59 - str xzr, [x29, 168] - str x0, [x29, 112] +.L2791: adrp x0, .LANCHOR58 add x0, x0, :lo12:.LANCHOR58 + str xzr, [x29, 168] + str x0, [x29, 112] + adrp x0, .LANCHOR57 + add x0, x0, :lo12:.LANCHOR57 str x0, [x29, 104] -.L2713: +.L2792: ldr w1, [x29, 144] adrp x28, .LANCHOR182 ldr w27, [x29, 168] cmp w27, w1 - bcc .L2732 + bcc .L2811 mov x27, x1 -.L2714: +.L2793: ldr x0, [x28, #:lo12:.LANCHOR182] mov x3, x22 mov w2, 0 mov w1, w27 bl FtlProgPages cmp w25, w27 - bcs .L2733 + bcs .L2812 mov w2, 1790 adrp x1, .LANCHOR247 adrp x0, .LC5 @@ -18871,12 +19314,12 @@ FtlWrite: add x1, x1, :lo12:.LC6 add x0, x0, :lo12:.LC7 bl printf -.L2733: +.L2812: sub w25, w25, w27 - b .L2709 -.L2732: + b .L2788 +.L2811: ldrh w0, [x22, 4] - cbz w0, .L2714 + cbz w0, .L2793 add x1, x29, 180 mov w2, 0 mov w0, w19 @@ -18907,11 +19350,11 @@ FtlWrite: ldr w0, [x29, 152] cmp w19, w20 ccmp w0, w19, 4, ne - bne .L2715 + bne .L2794 cmp w19, w20 - bne .L2716 + bne .L2795 ldr x0, [x29, 160] - ldrh w2, [x0, #:lo12:.LANCHOR56] + ldrh w2, [x0, #:lo12:.LANCHOR55] udiv w0, w21, w2 msub w0, w0, w2, w21 str w0, [x29, 148] @@ -18919,23 +19362,23 @@ FtlWrite: cmp w2, w23 csel w0, w2, w23, ls str w0, [x29, 156] -.L2717: +.L2796: ldr x0, [x29, 160] ldr w1, [x29, 156] - ldrh w0, [x0, #:lo12:.LANCHOR56] + ldrh w0, [x0, #:lo12:.LANCHOR55] cmp w0, w1 ldr x0, [x28, #:lo12:.LANCHOR182] - bne .L2718 + bne .L2797 add x3, x0, x26 cmp w19, w20 - bne .L2719 + bne .L2798 str x24, [x3, 8] -.L2720: +.L2799: ldr x0, [x29, 120] ldrb w1, [x22, 6] ldrh w0, [x0, #:lo12:.LANCHOR38] cmp w1, w0 - bcc .L2729 + bcc .L2808 mov w2, 1775 adrp x1, .LANCHOR247 adrp x0, .LC5 @@ -18947,7 +19390,7 @@ FtlWrite: add x1, x1, :lo12:.LC6 add x0, x0, :lo12:.LC7 bl printf -.L2729: +.L2808: ldp x1, x2, [x29, 128] mov w0, -3947 strh w0, [x1, x2] @@ -18966,36 +19409,36 @@ FtlWrite: ldr x0, [x29, 168] add x0, x0, 1 str x0, [x29, 168] - b .L2713 -.L2716: + b .L2792 +.L2795: ldr x0, [x29, 160] add w2, w21, w23 str wzr, [x29, 148] - ldrh w0, [x0, #:lo12:.LANCHOR56] + ldrh w0, [x0, #:lo12:.LANCHOR55] msub w2, w19, w0, w2 and w0, w2, 65535 str w0, [x29, 156] - b .L2717 -.L2719: + b .L2796 +.L2798: ldr w0, [x29, 156] -.L2747: +.L2826: mul w0, w0, w19 sub w0, w0, w21 lsl w0, w0, 9 add x0, x24, x0 str x0, [x3, 8] - b .L2720 -.L2718: + b .L2799 +.L2797: add x0, x0, x26 cmp w19, w20 - bne .L2721 + bne .L2800 adrp x1, .LANCHOR186 ldr x1, [x1, #:lo12:.LANCHOR186] -.L2746: +.L2825: str x1, [x0, 8] ldr w0, [x29, 180] cmn w0, #1 - beq .L2723 + beq .L2802 str w0, [x29, 188] mov w2, 0 ldr x0, [x28, #:lo12:.LANCHOR182] @@ -19008,17 +19451,17 @@ FtlWrite: bl FlashReadPages ldr w0, [x29, 184] cmn w0, #1 - bne .L2724 + bne .L2803 adrp x0, .LANCHOR138 add x0, x0, :lo12:.LANCHOR138 ldr w1, [x0, 72] add w1, w1, 1 str w1, [x0, 72] -.L2727: +.L2806: ldr w0, [x29, 156] cmp w19, w20 lsl w2, w0, 9 - bne .L2728 + bne .L2807 ldr x0, [x28, #:lo12:.LANCHOR182] mov x1, x24 add x3, x0, x26 @@ -19026,30 +19469,30 @@ FtlWrite: ldr x3, [x3, 8] lsl w0, w0, 9 add x0, x3, x0 -.L2748: +.L2827: bl ftl_memcpy - b .L2720 -.L2721: + b .L2799 +.L2800: adrp x1, .LANCHOR187 ldr x1, [x1, #:lo12:.LANCHOR187] - b .L2746 -.L2724: + b .L2825 +.L2803: ldr w1, [x27, 8] cmp w19, w1 - beq .L2726 + beq .L2805 adrp x0, .LANCHOR138 add x0, x0, :lo12:.LANCHOR138 ldr w2, [x0, 72] add w2, w2, 1 str w2, [x0, 72] - adrp x0, .LC72 + adrp x0, .LC73 mov w2, w19 - add x0, x0, :lo12:.LC72 + add x0, x0, :lo12:.LC73 bl printf -.L2726: +.L2805: ldr w0, [x27, 8] cmp w19, w0 - beq .L2727 + beq .L2806 mov w2, 1754 adrp x1, .LANCHOR247 adrp x0, .LC5 @@ -19061,8 +19504,8 @@ FtlWrite: add x1, x1, :lo12:.LC6 add x0, x0, :lo12:.LC7 bl printf - b .L2727 -.L2723: + b .L2806 +.L2802: ldr x0, [x28, #:lo12:.LANCHOR182] ldr x1, [x29, 104] add x0, x0, x26 @@ -19070,10 +19513,10 @@ FtlWrite: mov w1, 0 ldr x0, [x0, 8] bl ftl_memset - b .L2727 -.L2728: + b .L2806 +.L2807: ldr x0, [x29, 160] - ldrh w1, [x0, #:lo12:.LANCHOR56] + ldrh w1, [x0, #:lo12:.LANCHOR55] ldr x0, [x28, #:lo12:.LANCHOR182] add x3, x0, x26 mul w1, w1, w19 @@ -19081,16 +19524,16 @@ FtlWrite: ldr x0, [x3, 8] lsl w1, w1, 9 add x1, x24, x1 - b .L2748 -.L2715: + b .L2827 +.L2794: ldr x0, [x28, #:lo12:.LANCHOR182] add x3, x0, x26 ldr x0, [x29, 160] - ldrh w0, [x0, #:lo12:.LANCHOR56] - b .L2747 -.L2736: + ldrh w0, [x0, #:lo12:.LANCHOR55] + b .L2826 +.L2815: mov w0, -1 - b .L2703 + b .L2782 .size FtlWrite, .-FtlWrite .section .text.ftl_vendor_write,"ax",@progbits .align 2 @@ -19149,12 +19592,12 @@ ftl_write: mov x20, x3 mov w22, w1 ands w21, w0, 255 - bne .L2754 + bne .L2833 mov w3, w2 mov w0, 0 mov x2, x20 bl idb_write_data -.L2754: +.L2833: mov x3, x20 mov w2, w19 mov w1, w22 @@ -19174,8 +19617,8 @@ FtlCheckVpc: add x0, x0, :lo12:.LC45 add x29, sp, 0 stp x23, x24, [sp, 48] - adrp x23, .LANCHOR73 - add x23, x23, :lo12:.LANCHOR73 + adrp x23, .LANCHOR72 + add x23, x23, :lo12:.LANCHOR72 stp x21, x22, [sp, 32] mov w21, 0 stp x19, x20, [sp, 16] @@ -19190,47 +19633,47 @@ FtlCheckVpc: mov w1, 0 mov x0, x19 bl memset -.L2757: +.L2836: ldr w0, [x23] cmp w21, w0 - bcc .L2759 + bcc .L2838 adrp x24, .LANCHOR40 - adrp x23, .LANCHOR84 + adrp x23, .LANCHOR83 mov w2, 2 - adrp x0, .LC73 + adrp x0, .LC74 ldrh w3, [x24, #:lo12:.LANCHOR40] - add x0, x0, :lo12:.LC73 - ldr x1, [x23, #:lo12:.LANCHOR84] + add x0, x0, :lo12:.LC74 + ldr x1, [x23, #:lo12:.LANCHOR83] add x21, x20, :lo12:check_valid_page_count_table - adrp x26, .LC75 - add x26, x26, :lo12:.LC75 + adrp x26, .LC76 + add x26, x26, :lo12:.LC76 mov w25, 0 mov w19, 0 bl rknand_print_hex ldrh w3, [x24, #:lo12:.LANCHOR40] mov w2, 2 mov x1, x21 - adrp x0, .LC74 + adrp x0, .LC75 add x24, x24, :lo12:.LANCHOR40 - add x0, x0, :lo12:.LC74 + add x0, x0, :lo12:.LC75 bl rknand_print_hex mov w4, 65535 -.L2760: +.L2839: ldrh w0, [x24] cmp w0, w19 - bhi .L2762 + bhi .L2841 + adrp x0, .LANCHOR87 + ldr x19, [x0, #:lo12:.LANCHOR87] + cbz x19, .L2842 adrp x0, .LANCHOR88 - ldr x19, [x0, #:lo12:.LANCHOR88] - cbz x19, .L2763 - adrp x0, .LANCHOR89 - adrp x26, .LC76 + adrp x26, .LC77 add x20, x20, :lo12:check_valid_page_count_table - add x26, x26, :lo12:.LC76 - ldrh w27, [x0, #:lo12:.LANCHOR89] - adrp x0, .LANCHOR82 + add x26, x26, :lo12:.LC77 + ldrh w27, [x0, #:lo12:.LANCHOR88] + adrp x0, .LANCHOR81 mov x24, x0 mov w21, 0 - ldr x1, [x0, #:lo12:.LANCHOR82] + ldr x1, [x0, #:lo12:.LANCHOR81] mov w28, 6 mov w4, 65535 sub x19, x19, x1 @@ -19239,12 +19682,12 @@ FtlCheckVpc: movk x1, 0xaaab, lsl 0 mul x19, x19, x1 and w19, w19, 65535 -.L2764: +.L2843: cmp w21, w27 - bne .L2766 -.L2763: - cbz w25, .L2756 - mov w2, 1669 + bne .L2845 +.L2842: + cbz w25, .L2835 + mov w2, 1686 add x1, x22, :lo12:.LANCHOR248 adrp x0, .LC5 add x0, x0, :lo12:.LC5 @@ -19254,7 +19697,7 @@ FtlCheckVpc: add x1, x1, :lo12:.LC6 add x0, x0, :lo12:.LC7 bl printf -.L2756: +.L2835: ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x23, x24, [sp, 48] @@ -19262,52 +19705,52 @@ FtlCheckVpc: ldp x27, x28, [sp, 80] ldp x29, x30, [sp], 128 ret -.L2759: +.L2838: mov w2, 0 add x1, x29, 124 mov w0, w21 bl log2phys ldr w0, [x29, 124] cmn w0, #1 - beq .L2758 + beq .L2837 lsr w0, w0, 10 bl P2V_block_in_plane and x0, x0, 65535 ldrh w1, [x19, x0, lsl 1] add w1, w1, 1 strh w1, [x19, x0, lsl 1] -.L2758: +.L2837: add w21, w21, 1 - b .L2757 -.L2762: - ldr x0, [x23, #:lo12:.LANCHOR84] + b .L2836 +.L2841: + ldr x0, [x23, #:lo12:.LANCHOR83] ubfiz x28, x19, 1, 16 sxtw x27, w19 ldrh w2, [x0, x28] ldrh w3, [x21, x27, lsl 1] cmp w2, w3 - beq .L2761 + beq .L2840 str w4, [x29, 108] mov w1, w19 mov x0, x26 bl printf - ldr x0, [x23, #:lo12:.LANCHOR84] + ldr x0, [x23, #:lo12:.LANCHOR83] ldr w4, [x29, 108] ldrh w0, [x0, x28] cmp w0, w4 - beq .L2761 + beq .L2840 ldrh w1, [x21, x27, lsl 1] cmp w1, w0 csinc w25, w25, wzr, ls -.L2761: +.L2840: add w19, w19, 1 and w19, w19, 65535 - b .L2760 -.L2766: - ldr x1, [x23, #:lo12:.LANCHOR84] + b .L2839 +.L2845: + ldr x1, [x23, #:lo12:.LANCHOR83] ubfiz x0, x19, 1, 16 ldrh w2, [x1, x0] - cbz w2, .L2765 + cbz w2, .L2844 ldrh w3, [x20, w19, sxtw 1] mov w1, w19 str w4, [x29, 108] @@ -19315,15 +19758,15 @@ FtlCheckVpc: mov w25, 1 bl printf ldr w4, [x29, 108] -.L2765: +.L2844: umull x19, w19, w28 - ldr x0, [x24, #:lo12:.LANCHOR82] + ldr x0, [x24, #:lo12:.LANCHOR81] ldrh w19, [x0, x19] cmp w19, w4 - beq .L2763 + beq .L2842 add w21, w21, 1 and w21, w21, 65535 - b .L2764 + b .L2843 .size FtlCheckVpc, .-FtlCheckVpc .section .text.FtlDumpSysBlock,"ax",@progbits .align 2 @@ -19340,26 +19783,26 @@ FtlDumpSysBlock: adrp x21, .LANCHOR202 add x1, x21, :lo12:.LANCHOR202 ldr x2, [x0, #:lo12:.LANCHOR183] - adrp x22, .LANCHOR54 + adrp x22, .LANCHOR53 stp x23, x24, [sp, 64] lsl w26, w25, 10 stp x19, x20, [sp, 32] - adrp x23, .LC77 + adrp x23, .LC78 str x27, [sp, 96] - adrp x24, .LC78 + adrp x24, .LC79 str x2, [x1, 8] adrp x2, .LANCHOR188 - add x22, x22, :lo12:.LANCHOR54 - add x23, x23, :lo12:.LC77 + add x22, x22, :lo12:.LANCHOR53 + add x23, x23, :lo12:.LC78 ldr x2, [x2, #:lo12:.LANCHOR188] - add x24, x24, :lo12:.LC78 + add x24, x24, :lo12:.LC79 mov x27, x0 mov w19, 0 str x2, [x1, 16] -.L2782: +.L2861: ldrh w0, [x22] cmp w19, w0 - blt .L2784 + blt .L2863 ldp x19, x20, [sp, 32] ldp x21, x22, [sp, 48] ldp x23, x24, [sp, 64] @@ -19368,7 +19811,7 @@ FtlDumpSysBlock: ldr x27, [sp, 96] add sp, sp, 112 ret -.L2784: +.L2863: add x20, x21, :lo12:.LANCHOR202 orr w0, w19, w26 mov w2, 1 @@ -19389,16 +19832,16 @@ FtlDumpSysBlock: ldr x0, [x20, 16] ldr w0, [x0] cmn w0, #1 - beq .L2783 + beq .L2862 ldr x1, [x27, #:lo12:.LANCHOR183] mov w3, 768 mov w2, 4 mov x0, x24 bl rknand_print_hex -.L2783: +.L2862: add w19, w19, 1 sxth w19, w19 - b .L2782 + b .L2861 .size FtlDumpSysBlock, .-FtlDumpSysBlock .section .text.dump_map_info,"ax",@progbits .align 2 @@ -19419,33 +19862,33 @@ dump_map_info: add x22, x22, :lo12:.LANCHOR41 stp x25, x26, [sp, 80] adrp x24, .LANCHOR38 -.L2790: +.L2869: ldrh w0, [x22] cmp w0, w20 - bhi .L2796 + bhi .L2875 adrp x25, .LANCHOR128 adrp x19, .LANCHOR202 add x25, x25, :lo12:.LANCHOR128 add x19, x19, :lo12:.LANCHOR202 mov w26, 0 -.L2797: +.L2876: ldrh w0, [x25] cmp w26, w0 - bge .L2800 - adrp x21, .LANCHOR54 + bge .L2879 + adrp x21, .LANCHOR53 adrp x0, .LC48 sbfiz x23, x26, 1, 32 mov w20, 0 - add x21, x21, :lo12:.LANCHOR54 + add x21, x21, :lo12:.LANCHOR53 add x24, x0, :lo12:.LC48 - b .L2801 -.L2792: + b .L2880 +.L2871: ldrb w0, [x23, x5] mov w1, w20 bl V2P_block and w4, w0, 65535 bl FtlBbmIsBadBlock - cbnz w0, .L2791 + cbnz w0, .L2870 umaddl x1, w19, w7, x6 lsl w4, w4, 10 mul w0, w19, w8 @@ -19455,27 +19898,27 @@ dump_map_info: str w4, [x1, 4] add x0, x10, x0, sxtw 2 stp x11, x0, [x1, 8] -.L2791: +.L2870: add x5, x5, 1 -.L2798: +.L2877: cmp w12, w5, uxth - bhi .L2792 - cbnz w19, .L2793 -.L2795: + bhi .L2871 + cbnz w19, .L2872 +.L2874: add w20, w20, 1 and w20, w20, 65535 - b .L2790 -.L2793: + b .L2869 +.L2872: mov w1, w19 mov w2, 1 mov x0, x6 bl FlashReadPages mov w0, 56 - adrp x26, .LC79 - add x26, x26, :lo12:.LC79 + adrp x26, .LC80 + add x26, x26, :lo12:.LC80 mov x25, 0 umull x19, w19, w0 -.L2794: +.L2873: ldr x0, [x21, #:lo12:.LANCHOR180] add x0, x0, x25 add x25, x25, 56 @@ -19491,23 +19934,23 @@ dump_map_info: ubfx x1, x2, 10, 16 bl printf cmp x25, x19 - bne .L2794 - b .L2795 -.L2796: - adrp x0, .LANCHOR105 + bne .L2873 + b .L2874 +.L2875: + adrp x0, .LANCHOR104 adrp x21, .LANCHOR180 ldrh w12, [x24, #:lo12:.LANCHOR38] mov x5, 0 - ldr x11, [x0, #:lo12:.LANCHOR105] - adrp x0, .LANCHOR106 + ldr x11, [x0, #:lo12:.LANCHOR104] + adrp x0, .LANCHOR105 ldr x6, [x21, #:lo12:.LANCHOR180] mov w19, 0 - ldr x10, [x0, #:lo12:.LANCHOR106] - adrp x0, .LANCHOR59 + ldr x10, [x0, #:lo12:.LANCHOR105] + adrp x0, .LANCHOR58 mov w7, 56 - ldrh w8, [x0, #:lo12:.LANCHOR59] - b .L2798 -.L2799: + ldrh w8, [x0, #:lo12:.LANCHOR58] + b .L2877 +.L2878: adrp x22, .LANCHOR129 mov w2, 1 mov w1, w2 @@ -19531,38 +19974,38 @@ dump_map_info: mov x0, x24 ldp w2, w3, [x19] bl printf -.L2801: +.L2880: ldrh w0, [x21] cmp w20, w0 - blt .L2799 + blt .L2878 add w0, w26, 1 sxth w26, w0 - b .L2797 -.L2800: - adrp x0, .LANCHOR65 + b .L2876 +.L2879: + adrp x0, .LANCHOR64 mov w2, 2 - adrp x19, .LANCHOR67 - ldr w3, [x0, #:lo12:.LANCHOR65] + adrp x19, .LANCHOR66 + ldr w3, [x0, #:lo12:.LANCHOR64] adrp x0, .LANCHOR129 ldr x1, [x0, #:lo12:.LANCHOR129] - adrp x0, .LC80 - add x0, x0, :lo12:.LC80 - bl rknand_print_hex - adrp x0, .LANCHOR131 - ldrh w3, [x19, #:lo12:.LANCHOR67] - mov w2, 4 - ldr x1, [x0, #:lo12:.LANCHOR131] adrp x0, .LC81 add x0, x0, :lo12:.LC81 bl rknand_print_hex + adrp x0, .LANCHOR131 + ldrh w3, [x19, #:lo12:.LANCHOR66] + mov w2, 4 + ldr x1, [x0, #:lo12:.LANCHOR131] + adrp x0, .LC82 + add x0, x0, :lo12:.LC82 + bl rknand_print_hex adrp x0, .LANCHOR195 - ldrh w3, [x19, #:lo12:.LANCHOR67] + ldrh w3, [x19, #:lo12:.LANCHOR66] ldp x21, x22, [sp, 48] mov w2, 4 ldr x1, [x0, #:lo12:.LANCHOR195] - adrp x0, .LC82 + adrp x0, .LC83 ldp x19, x20, [sp, 32] - add x0, x0, :lo12:.LC82 + add x0, x0, :lo12:.LC83 ldp x23, x24, [sp, 64] ldp x25, x26, [sp, 80] ldp x29, x30, [sp, 16] @@ -19733,7 +20176,6 @@ dump_map_info: .global c_ftl_nand_ext_blk_pre_plane .global c_ftl_nand_blk_pre_plane .global c_ftl_nand_planes_num - .global c_ftl_nand_blks_per_die_shift .global c_ftl_nand_blks_per_die .global c_ftl_nand_planes_per_die .global c_ftl_nand_die_num @@ -19750,6 +20192,7 @@ dump_map_info: .global gNandcVer .global gNandChipMap .global gNandIDataBuf + .global idb_flash_slc_mode .global FlashDdrTunningReadCount .global FlashWaitBusyScheduleEn .global gNandPhyInfo @@ -19796,7 +20239,7 @@ dump_map_info: .global read_retry_cur_offset .section .bss.DeviceCapacity,"aw",@nobits .align 2 - .set .LANCHOR61,. + 0 + .set .LANCHOR60,. + 0 .type DeviceCapacity, %object .size DeviceCapacity, 4 DeviceCapacity: @@ -19836,7 +20279,7 @@ FtlMallocBuffer: .zero 1310720 .section .bss.FtlUpdateVaildLpnCount,"aw",@nobits .align 1 - .set .LANCHOR100,. + 0 + .set .LANCHOR99,. + 0 .type FtlUpdateVaildLpnCount, %object .size FtlUpdateVaildLpnCount, 2 FtlUpdateVaildLpnCount: @@ -19868,24 +20311,17 @@ c_ftl_nand_blk_pre_plane: .type c_ftl_nand_blks_per_die, %object .size c_ftl_nand_blks_per_die, 2 c_ftl_nand_blks_per_die: - .zero 2 - .section .bss.c_ftl_nand_blks_per_die_shift,"aw",@nobits - .align 1 - .set .LANCHOR52,. + 0 - .type c_ftl_nand_blks_per_die_shift, %object - .size c_ftl_nand_blks_per_die_shift, 2 -c_ftl_nand_blks_per_die_shift: .zero 2 .section .bss.c_ftl_nand_byte_pre_oob,"aw",@nobits .align 1 - .set .LANCHOR59,. + 0 + .set .LANCHOR58,. + 0 .type c_ftl_nand_byte_pre_oob, %object .size c_ftl_nand_byte_pre_oob, 2 c_ftl_nand_byte_pre_oob: .zero 2 .section .bss.c_ftl_nand_byte_pre_page,"aw",@nobits .align 1 - .set .LANCHOR58,. + 0 + .set .LANCHOR57,. + 0 .type c_ftl_nand_byte_pre_page, %object .size c_ftl_nand_byte_pre_page, 2 c_ftl_nand_byte_pre_page: @@ -19920,28 +20356,28 @@ c_ftl_nand_ext_blk_pre_plane: .zero 2 .section .bss.c_ftl_nand_init_sys_blks_per_plane,"aw",@nobits .align 2 - .set .LANCHOR66,. + 0 + .set .LANCHOR65,. + 0 .type c_ftl_nand_init_sys_blks_per_plane, %object .size c_ftl_nand_init_sys_blks_per_plane, 4 c_ftl_nand_init_sys_blks_per_plane: .zero 4 .section .bss.c_ftl_nand_l2pmap_ram_region_num,"aw",@nobits .align 1 - .set .LANCHOR68,. + 0 + .set .LANCHOR67,. + 0 .type c_ftl_nand_l2pmap_ram_region_num, %object .size c_ftl_nand_l2pmap_ram_region_num, 2 c_ftl_nand_l2pmap_ram_region_num: .zero 2 .section .bss.c_ftl_nand_map_blks_per_plane,"aw",@nobits .align 1 - .set .LANCHOR64,. + 0 + .set .LANCHOR63,. + 0 .type c_ftl_nand_map_blks_per_plane, %object .size c_ftl_nand_map_blks_per_plane, 2 c_ftl_nand_map_blks_per_plane: .zero 2 .section .bss.c_ftl_nand_map_region_num,"aw",@nobits .align 1 - .set .LANCHOR67,. + 0 + .set .LANCHOR66,. + 0 .type c_ftl_nand_map_region_num, %object .size c_ftl_nand_map_region_num, 2 c_ftl_nand_map_region_num: @@ -19955,7 +20391,7 @@ c_ftl_nand_max_data_blks: .zero 4 .section .bss.c_ftl_nand_max_map_blks,"aw",@nobits .align 2 - .set .LANCHOR65,. + 0 + .set .LANCHOR64,. + 0 .type c_ftl_nand_max_map_blks, %object .size c_ftl_nand_max_map_blks, 4 c_ftl_nand_max_map_blks: @@ -19969,28 +20405,28 @@ c_ftl_nand_max_sys_blks: .zero 4 .section .bss.c_ftl_nand_max_vendor_blks,"aw",@nobits .align 1 - .set .LANCHOR62,. + 0 + .set .LANCHOR61,. + 0 .type c_ftl_nand_max_vendor_blks, %object .size c_ftl_nand_max_vendor_blks, 2 c_ftl_nand_max_vendor_blks: .zero 2 .section .bss.c_ftl_nand_page_pre_blk,"aw",@nobits .align 1 - .set .LANCHOR53,. + 0 + .set .LANCHOR52,. + 0 .type c_ftl_nand_page_pre_blk, %object .size c_ftl_nand_page_pre_blk, 2 c_ftl_nand_page_pre_blk: .zero 2 .section .bss.c_ftl_nand_page_pre_slc_blk,"aw",@nobits .align 1 - .set .LANCHOR54,. + 0 + .set .LANCHOR53,. + 0 .type c_ftl_nand_page_pre_slc_blk, %object .size c_ftl_nand_page_pre_slc_blk, 2 c_ftl_nand_page_pre_slc_blk: .zero 2 .section .bss.c_ftl_nand_page_pre_super_blk,"aw",@nobits .align 1 - .set .LANCHOR55,. + 0 + .set .LANCHOR54,. + 0 .type c_ftl_nand_page_pre_super_blk, %object .size c_ftl_nand_page_pre_super_blk, 2 c_ftl_nand_page_pre_super_blk: @@ -20011,21 +20447,21 @@ c_ftl_nand_planes_per_die: .zero 2 .section .bss.c_ftl_nand_reserved_blks,"aw",@nobits .align 1 - .set .LANCHOR60,. + 0 + .set .LANCHOR59,. + 0 .type c_ftl_nand_reserved_blks, %object .size c_ftl_nand_reserved_blks, 2 c_ftl_nand_reserved_blks: .zero 2 .section .bss.c_ftl_nand_sec_pre_page,"aw",@nobits .align 1 - .set .LANCHOR56,. + 0 + .set .LANCHOR55,. + 0 .type c_ftl_nand_sec_pre_page, %object .size c_ftl_nand_sec_pre_page, 2 c_ftl_nand_sec_pre_page: .zero 2 .section .bss.c_ftl_nand_sec_pre_page_shift,"aw",@nobits .align 1 - .set .LANCHOR57,. + 0 + .set .LANCHOR56,. + 0 .type c_ftl_nand_sec_pre_page_shift, %object .size c_ftl_nand_sec_pre_page_shift, 2 c_ftl_nand_sec_pre_page_shift: @@ -20053,7 +20489,7 @@ c_ftl_nand_type: .zero 2 .section .bss.c_ftl_nand_vendor_region_num,"aw",@nobits .align 1 - .set .LANCHOR63,. + 0 + .set .LANCHOR62,. + 0 .type c_ftl_nand_vendor_region_num, %object .size c_ftl_nand_vendor_region_num, 2 c_ftl_nand_vendor_region_num: @@ -20067,7 +20503,7 @@ c_ftl_vendor_part_size: .zero 2 .section .bss.c_gc_page_buf_num,"aw",@nobits .align 2 - .set .LANCHOR108,. + 0 + .set .LANCHOR107,. + 0 .type c_gc_page_buf_num, %object .size c_gc_page_buf_num, 4 c_gc_page_buf_num: @@ -20094,7 +20530,7 @@ ftl_gc_temp_power_lost_recovery_flag: .zero 4 .section .bss.gBbtInfo,"aw",@nobits .align 3 - .set .LANCHOR75,. + 0 + .set .LANCHOR74,. + 0 .type gBbtInfo, %object .size gBbtInfo, 96 gBbtInfo: @@ -20165,7 +20601,7 @@ gFlashProgCheckSpareBuffer: gFlashSdrModeEn: .zero 1 .section .bss.gFlashSlcMode,"aw",@nobits - .set .LANCHOR8,. + 0 + .set .LANCHOR15,. + 0 .type gFlashSlcMode, %object .size gFlashSlcMode, 1 gFlashSlcMode: @@ -20300,7 +20736,7 @@ gNandOptPara: .zero 32 .section .bss.gNandPhyInfo,"aw",@nobits .align 3 - .set .LANCHOR15,. + 0 + .set .LANCHOR14,. + 0 .type gNandPhyInfo, %object .size gNandPhyInfo, 28 gNandPhyInfo: @@ -20341,7 +20777,7 @@ gReadRetryInfo: .zero 852 .section .bss.gSysFreeQueue,"aw",@nobits .align 3 - .set .LANCHOR76,. + 0 + .set .LANCHOR75,. + 0 .type gSysFreeQueue, %object .size gSysFreeQueue, 2056 gSysFreeQueue: @@ -20350,9 +20786,9 @@ gSysFreeQueue: .align 3 .set .LANCHOR209,. + 0 .type gSysInfo, %object - .size gSysInfo, 12 + .size gSysInfo, 16 gSysInfo: - .zero 12 + .zero 16 .section .bss.gToggleModeClkDiv,"aw",@nobits .align 2 .type gToggleModeClkDiv, %object @@ -20396,7 +20832,7 @@ g_LowFormat: .zero 4 .section .bss.g_MaxLbaSector,"aw",@nobits .align 2 - .set .LANCHOR69,. + 0 + .set .LANCHOR68,. + 0 .type g_MaxLbaSector, %object .size g_MaxLbaSector, 4 g_MaxLbaSector: @@ -20410,7 +20846,7 @@ g_MaxLbn: .zero 4 .section .bss.g_MaxLpn,"aw",@nobits .align 2 - .set .LANCHOR73,. + 0 + .set .LANCHOR72,. + 0 .type g_MaxLpn, %object .size g_MaxLpn, 4 g_MaxLpn: @@ -20424,14 +20860,14 @@ g_SlcPartLbaEndSector: .zero 4 .section .bss.g_VaildLpn,"aw",@nobits .align 2 - .set .LANCHOR101,. + 0 + .set .LANCHOR100,. + 0 .type g_VaildLpn, %object .size g_VaildLpn, 4 g_VaildLpn: .zero 4 .section .bss.g_active_superblock,"aw",@nobits .align 3 - .set .LANCHOR92,. + 0 + .set .LANCHOR91,. + 0 .type g_active_superblock, %object .size g_active_superblock, 48 g_active_superblock: @@ -20445,14 +20881,14 @@ g_all_blk_used_slc_mode: .zero 4 .section .bss.g_buffer_superblock,"aw",@nobits .align 3 - .set .LANCHOR93,. + 0 + .set .LANCHOR92,. + 0 .type g_buffer_superblock, %object .size g_buffer_superblock, 48 g_buffer_superblock: .zero 48 .section .bss.g_cur_erase_blk,"aw",@nobits .align 2 - .set .LANCHOR74,. + 0 + .set .LANCHOR73,. + 0 .type g_cur_erase_blk, %object .size g_cur_erase_blk, 4 g_cur_erase_blk: @@ -20473,7 +20909,7 @@ g_ect_tbl_power_up_flush: .zero 2 .section .bss.g_flash_read_only_en,"aw",@nobits .align 2 - .set .LANCHOR77,. + 0 + .set .LANCHOR76,. + 0 .type g_flash_read_only_en, %object .size g_flash_read_only_en, 4 g_flash_read_only_en: @@ -20494,21 +20930,21 @@ g_ftl_nand_free_count: .zero 4 .section .bss.g_gc_bad_block_gc_index,"aw",@nobits .align 1 - .set .LANCHOR119,. + 0 + .set .LANCHOR118,. + 0 .type g_gc_bad_block_gc_index, %object .size g_gc_bad_block_gc_index, 2 g_gc_bad_block_gc_index: .zero 2 .section .bss.g_gc_bad_block_temp_num,"aw",@nobits .align 1 - .set .LANCHOR117,. + 0 + .set .LANCHOR116,. + 0 .type g_gc_bad_block_temp_num, %object .size g_gc_bad_block_temp_num, 2 g_gc_bad_block_temp_num: .zero 2 .section .bss.g_gc_bad_block_temp_tbl,"aw",@nobits .align 3 - .set .LANCHOR118,. + 0 + .set .LANCHOR117,. + 0 .type g_gc_bad_block_temp_tbl, %object .size g_gc_bad_block_temp_tbl, 34 g_gc_bad_block_temp_tbl: @@ -20522,7 +20958,7 @@ g_gc_blk_index: .zero 2 .section .bss.g_gc_blk_num,"aw",@nobits .align 1 - .set .LANCHOR109,. + 0 + .set .LANCHOR108,. + 0 .type g_gc_blk_num, %object .size g_gc_blk_num, 2 g_gc_blk_num: @@ -20571,42 +21007,42 @@ g_gc_merge_free_blk_threshold: .zero 2 .section .bss.g_gc_next_blk,"aw",@nobits .align 1 - .set .LANCHOR113,. + 0 + .set .LANCHOR112,. + 0 .type g_gc_next_blk, %object .size g_gc_next_blk, 2 g_gc_next_blk: .zero 2 .section .bss.g_gc_next_blk_1,"aw",@nobits .align 1 - .set .LANCHOR114,. + 0 + .set .LANCHOR113,. + 0 .type g_gc_next_blk_1, %object .size g_gc_next_blk_1, 2 g_gc_next_blk_1: .zero 2 .section .bss.g_gc_next_blk_2,"aw",@nobits .align 1 - .set .LANCHOR115,. + 0 + .set .LANCHOR114,. + 0 .type g_gc_next_blk_2, %object .size g_gc_next_blk_2, 2 g_gc_next_blk_2: .zero 2 .section .bss.g_gc_next_blk_3,"aw",@nobits .align 1 - .set .LANCHOR116,. + 0 + .set .LANCHOR115,. + 0 .type g_gc_next_blk_3, %object .size g_gc_next_blk_3, 2 g_gc_next_blk_3: .zero 2 .section .bss.g_gc_num_req,"aw",@nobits .align 2 - .set .LANCHOR103,. + 0 + .set .LANCHOR102,. + 0 .type g_gc_num_req, %object .size g_gc_num_req, 4 g_gc_num_req: .zero 4 .section .bss.g_gc_page_offset,"aw",@nobits .align 1 - .set .LANCHOR111,. + 0 + .set .LANCHOR110,. + 0 .type g_gc_page_offset, %object .size g_gc_page_offset, 2 g_gc_page_offset: @@ -20640,7 +21076,7 @@ g_gc_superblock: .zero 48 .section .bss.g_gc_temp_superblock,"aw",@nobits .align 3 - .set .LANCHOR94,. + 0 + .set .LANCHOR93,. + 0 .type g_gc_temp_superblock, %object .size g_gc_temp_superblock, 48 g_gc_temp_superblock: @@ -20668,13 +21104,13 @@ g_inkDie_check_enable: .zero 4 .section .bss.g_l2p_last_update_region_id,"aw",@nobits .align 1 - .set .LANCHOR98,. + 0 + .set .LANCHOR97,. + 0 .type g_l2p_last_update_region_id, %object .size g_l2p_last_update_region_id, 2 g_l2p_last_update_region_id: .zero 2 .section .bss.g_maxRegNum,"aw",@nobits - .set .LANCHOR13,. + 0 + .set .LANCHOR12,. + 0 .type g_maxRegNum, %object .size g_maxRegNum, 1 g_maxRegNum: @@ -20701,42 +21137,42 @@ g_min_erase_count: .zero 4 .section .bss.g_nandc_version_data,"aw",@nobits .align 2 - .set .LANCHOR29,. + 0 + .set .LANCHOR119,. + 0 .type g_nandc_version_data, %object .size g_nandc_version_data, 4 g_nandc_version_data: .zero 4 .section .bss.g_num_data_superblocks,"aw",@nobits .align 1 - .set .LANCHOR86,. + 0 + .set .LANCHOR85,. + 0 .type g_num_data_superblocks, %object .size g_num_data_superblocks, 2 g_num_data_superblocks: .zero 2 .section .bss.g_num_free_superblocks,"aw",@nobits .align 1 - .set .LANCHOR89,. + 0 + .set .LANCHOR88,. + 0 .type g_num_free_superblocks, %object .size g_num_free_superblocks, 2 g_num_free_superblocks: .zero 2 .section .bss.g_page_map_check_enable,"aw",@nobits .align 1 - .set .LANCHOR70,. + 0 + .set .LANCHOR69,. + 0 .type g_page_map_check_enable, %object .size g_page_map_check_enable, 2 g_page_map_check_enable: .zero 2 .section .bss.g_power_lost_ecc_error_blk,"aw",@nobits .align 1 - .set .LANCHOR235,. + 0 + .set .LANCHOR234,. + 0 .type g_power_lost_ecc_error_blk, %object .size g_power_lost_ecc_error_blk, 2 g_power_lost_ecc_error_blk: .zero 2 .section .bss.g_power_lost_recovery_flag,"aw",@nobits .align 1 - .set .LANCHOR236,. + 0 + .set .LANCHOR235,. + 0 .type g_power_lost_recovery_flag, %object .size g_power_lost_recovery_flag, 2 g_power_lost_recovery_flag: @@ -20750,14 +21186,14 @@ g_recovery_page_min_ver: .zero 4 .section .bss.g_recovery_page_num,"aw",@nobits .align 2 - .set .LANCHOR237,. + 0 + .set .LANCHOR236,. + 0 .type g_recovery_page_num, %object .size g_recovery_page_num, 4 g_recovery_page_num: .zero 4 .section .bss.g_recovery_ppa_tbl,"aw",@nobits .align 3 - .set .LANCHOR238,. + 0 + .set .LANCHOR237,. + 0 .type g_recovery_ppa_tbl, %object .size g_recovery_ppa_tbl, 128 g_recovery_ppa_tbl: @@ -20770,7 +21206,7 @@ g_recovery_ppa_tbl: g_req_cache: .zero 8 .section .bss.g_retryMode,"aw",@nobits - .set .LANCHOR11,. + 0 + .set .LANCHOR10,. + 0 .type g_retryMode, %object .size g_retryMode, 1 g_retryMode: @@ -20790,7 +21226,7 @@ g_sys_ext_data: .zero 512 .section .bss.g_sys_save_data,"aw",@nobits .align 3 - .set .LANCHOR81,. + 0 + .set .LANCHOR80,. + 0 .type g_sys_save_data, %object .size g_sys_save_data, 48 g_sys_save_data: @@ -20881,14 +21317,14 @@ g_totle_swl_count: .zero 4 .section .bss.g_totle_sys_slc_erase_count,"aw",@nobits .align 2 - .set .LANCHOR80,. + 0 + .set .LANCHOR79,. + 0 .type g_totle_sys_slc_erase_count, %object .size g_totle_sys_slc_erase_count, 4 g_totle_sys_slc_erase_count: .zero 4 .section .bss.g_totle_vendor_block,"aw",@nobits .align 1 - .set .LANCHOR71,. + 0 + .set .LANCHOR70,. + 0 .type g_totle_vendor_block, %object .size g_totle_vendor_block, 2 g_totle_vendor_block: @@ -20909,7 +21345,7 @@ g_totle_write_sector: .zero 4 .section .bss.gc_discard_updated,"aw",@nobits .align 2 - .set .LANCHOR232,. + 0 + .set .LANCHOR231,. + 0 .type gc_discard_updated, %object .size gc_discard_updated, 4 gc_discard_updated: @@ -20970,14 +21406,14 @@ gp_flash_check_buf: .zero 262144 .section .bss.gp_gc_page_buf_info,"aw",@nobits .align 3 - .set .LANCHOR104,. + 0 + .set .LANCHOR103,. + 0 .type gp_gc_page_buf_info, %object .size gp_gc_page_buf_info, 8 gp_gc_page_buf_info: .zero 8 .section .bss.gp_last_act_superblock,"aw",@nobits .align 3 - .set .LANCHOR230,. + 0 + .set .LANCHOR229,. + 0 .type gp_last_act_superblock, %object .size gp_last_act_superblock, 8 gp_last_act_superblock: @@ -20988,6 +21424,13 @@ gp_last_act_superblock: .size idb_buf, 262144 idb_buf: .zero 262144 + .section .bss.idb_flash_slc_mode,"aw",@nobits + .align 2 + .set .LANCHOR29,. + 0 + .type idb_flash_slc_mode, %object + .size idb_flash_slc_mode, 4 +idb_flash_slc_mode: + .zero 4 .section .bss.idb_need_write_back,"aw",@nobits .align 2 .set .LANCHOR154,. + 0 @@ -21011,63 +21454,63 @@ p_blk_mode_table: .zero 8 .section .bss.p_data_block_list_head,"aw",@nobits .align 3 - .set .LANCHOR83,. + 0 + .set .LANCHOR82,. + 0 .type p_data_block_list_head, %object .size p_data_block_list_head, 8 p_data_block_list_head: .zero 8 .section .bss.p_data_block_list_table,"aw",@nobits .align 3 - .set .LANCHOR82,. + 0 + .set .LANCHOR81,. + 0 .type p_data_block_list_table, %object .size p_data_block_list_table, 8 p_data_block_list_table: .zero 8 .section .bss.p_data_block_list_tail,"aw",@nobits .align 3 - .set .LANCHOR85,. + 0 + .set .LANCHOR84,. + 0 .type p_data_block_list_tail, %object .size p_data_block_list_tail, 8 p_data_block_list_tail: .zero 8 .section .bss.p_erase_count_table,"aw",@nobits .align 3 - .set .LANCHOR79,. + 0 + .set .LANCHOR78,. + 0 .type p_erase_count_table, %object .size p_erase_count_table, 8 p_erase_count_table: .zero 8 .section .bss.p_free_data_block_list_head,"aw",@nobits .align 3 - .set .LANCHOR88,. + 0 + .set .LANCHOR87,. + 0 .type p_free_data_block_list_head, %object .size p_free_data_block_list_head, 8 p_free_data_block_list_head: .zero 8 .section .bss.p_gc_blk_tbl,"aw",@nobits .align 3 - .set .LANCHOR110,. + 0 + .set .LANCHOR109,. + 0 .type p_gc_blk_tbl, %object .size p_gc_blk_tbl, 8 p_gc_blk_tbl: .zero 8 .section .bss.p_gc_data_buf,"aw",@nobits .align 3 - .set .LANCHOR105,. + 0 + .set .LANCHOR104,. + 0 .type p_gc_data_buf, %object .size p_gc_data_buf, 8 p_gc_data_buf: .zero 8 .section .bss.p_gc_page_info,"aw",@nobits .align 3 - .set .LANCHOR112,. + 0 + .set .LANCHOR111,. + 0 .type p_gc_page_info, %object .size p_gc_page_info, 8 p_gc_page_info: .zero 8 .section .bss.p_gc_spare_buf,"aw",@nobits .align 3 - .set .LANCHOR106,. + 0 + .set .LANCHOR105,. + 0 .type p_gc_spare_buf, %object .size p_gc_spare_buf, 8 p_gc_spare_buf: @@ -21102,7 +21545,7 @@ p_l2p_map_buf: .zero 8 .section .bss.p_l2p_ram_map,"aw",@nobits .align 3 - .set .LANCHOR97,. + 0 + .set .LANCHOR96,. + 0 .type p_l2p_ram_map, %object .size p_l2p_ram_map, 8 p_l2p_ram_map: @@ -21185,14 +21628,14 @@ p_valid_page_count_check_table: .zero 8 .section .bss.p_valid_page_count_table,"aw",@nobits .align 3 - .set .LANCHOR84,. + 0 + .set .LANCHOR83,. + 0 .type p_valid_page_count_table, %object .size p_valid_page_count_table, 8 p_valid_page_count_table: .zero 8 .section .bss.p_vendor_block_table,"aw",@nobits .align 3 - .set .LANCHOR72,. + 0 + .set .LANCHOR71,. + 0 .type p_vendor_block_table, %object .size p_vendor_block_table, 8 p_vendor_block_table: @@ -21234,14 +21677,14 @@ read_retry_cur_offset: .zero 4 .section .bss.req_erase,"aw",@nobits .align 3 - .set .LANCHOR78,. + 0 + .set .LANCHOR77,. + 0 .type req_erase, %object .size req_erase, 8 req_erase: .zero 8 .section .bss.req_gc,"aw",@nobits .align 3 - .set .LANCHOR107,. + 0 + .set .LANCHOR106,. + 0 .type req_gc, %object .size req_gc, 8 req_gc: @@ -21297,7 +21740,7 @@ LastWritenPbaAddr: .align 3 .set .LANCHOR142,. + 0 .type NandFlashParaTbl, %object - .size NandFlashParaTbl, 2464 + .size NandFlashParaTbl, 2592 NandFlashParaTbl: .byte 6 .byte 44 @@ -21874,6 +22317,58 @@ NandFlashParaTbl: .byte 5 .byte 44 .byte -124 + .byte 68 + .byte 50 + .byte -86 + .byte 0 + .byte 4 + .byte 1 + .byte 32 + .hword 512 + .byte 2 + .byte 1 + .hword 2184 + .hword 1479 + .byte 5 + .byte 19 + .byte 60 + .byte 32 + .byte 1 + .byte 0 + .byte 4 + .byte 0 + .byte 1 + .byte 0 + .zero 4 + .byte 5 + .byte 44 + .byte -124 + .byte 68 + .byte 52 + .byte -86 + .byte 0 + .byte 4 + .byte 1 + .byte 32 + .hword 512 + .byte 2 + .byte 1 + .hword 2184 + .hword 1479 + .byte 5 + .byte 19 + .byte 60 + .byte 32 + .byte 1 + .byte 0 + .byte 4 + .byte 0 + .byte 1 + .byte 0 + .zero 4 + .byte 5 + .byte 44 + .byte -124 .byte -60 .byte 52 .byte -86 @@ -21923,6 +22418,32 @@ NandFlashParaTbl: .byte 1 .byte 0 .zero 4 + .byte 5 + .byte 44 + .byte -124 + .byte 100 + .byte 60 + .byte -87 + .byte 0 + .byte 4 + .byte 1 + .byte 32 + .hword 512 + .byte 2 + .byte 2 + .hword 1024 + .hword 479 + .byte 3 + .byte 17 + .byte 40 + .byte 32 + .byte 1 + .byte 0 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .zero 4 .byte 6 .byte -83 .byte -34 @@ -22262,6 +22783,32 @@ NandFlashParaTbl: .byte 0 .zero 4 .byte 6 + .byte -83 + .byte 58 + .byte 20 + .byte 3 + .byte 8 + .byte 80 + .byte 2 + .byte 1 + .byte 32 + .hword 388 + .byte 2 + .byte 2 + .hword 1362 + .hword 473 + .byte 9 + .byte 8 + .byte 40 + .byte 32 + .byte 3 + .byte 1 + .byte 3 + .byte 0 + .byte 0 + .byte 0 + .zero 4 + .byte 6 .byte -119 .byte 100 .byte 68 @@ -22458,7 +23005,7 @@ NandFlashParaTbl: .byte 1 .hword 1024 .hword 455 - .byte 3 + .byte 4 .byte 17 .byte 40 .byte 32 @@ -23385,7 +23932,7 @@ NandOptPara: .zero 14 .section .data.SamsungRefValue,"aw",@progbits .align 3 - .set .LANCHOR14,. + 0 + .set .LANCHOR13,. + 0 .type SamsungRefValue, %object .size SamsungRefValue, 64 SamsungRefValue: @@ -23455,7 +24002,7 @@ SamsungRefValue: .byte 0 .section .data.Toshiba15RefValue,"aw",@progbits .align 3 - .set .LANCHOR9,. + 0 + .set .LANCHOR8,. + 0 .type Toshiba15RefValue, %object .size Toshiba15RefValue, 95 Toshiba15RefValue: @@ -23556,7 +24103,7 @@ Toshiba15RefValue: .byte 0 .section .data.ToshibaA19RefValue,"aw",@progbits .align 3 - .set .LANCHOR10,. + 0 + .set .LANCHOR9,. + 0 .type ToshibaA19RefValue, %object .size ToshibaA19RefValue, 45 ToshibaA19RefValue: @@ -23607,7 +24154,7 @@ ToshibaA19RefValue: .byte 0 .section .data.ToshibaRefValue,"aw",@progbits .align 3 - .set .LANCHOR12,. + 0 + .set .LANCHOR11,. + 0 .type ToshibaRefValue, %object .size ToshibaRefValue, 8 ToshibaRefValue: @@ -23621,14 +24168,14 @@ ToshibaRefValue: .byte 112 .section .data.ftl_gc_temp_block_bops_scan_page_addr,"aw",@progbits .align 1 - .set .LANCHOR226,. + 0 + .set .LANCHOR238,. + 0 .type ftl_gc_temp_block_bops_scan_page_addr, %object .size ftl_gc_temp_block_bops_scan_page_addr, 2 ftl_gc_temp_block_bops_scan_page_addr: .hword -1 .section .data.gFtlInitStatus,"aw",@progbits .align 2 - .set .LANCHOR231,. + 0 + .set .LANCHOR230,. + 0 .type gFtlInitStatus, %object .size gFtlInitStatus, 4 gFtlInitStatus: @@ -23892,7 +24439,7 @@ refValueDefault: .LC32: .string "prog read d error: = %x %x %x\n" .section .rodata.FlashReadFacBbtData.str1.1,"aMS",@progbits,1 -.LC53: +.LC52: .string "BBT:" .section .rodata.FlashReadIdbDataRaw.str1.1,"aMS",@progbits,1 .LC14: @@ -23921,13 +24468,13 @@ refValueDefault: .LC35: .string "FtlBbmTblFlush error = %x error count = %d\n" .section .rodata.FtlCheckVpc.str1.1,"aMS",@progbits,1 -.LC73: - .string "vpc1" .LC74: - .string "vpc2" + .string "vpc1" .LC75: - .string "FtlCheckVpc2 %x = %x %x\n" + .string "vpc2" .LC76: + .string "FtlCheckVpc2 %x = %x %x\n" +.LC77: .string "free blk vpc error %x = %x %x\n" .section .rodata.FtlDumpBlockInfo.str1.1,"aMS",@progbits,1 .LC45: @@ -23939,9 +24486,9 @@ refValueDefault: .LC48: .string "id = %x,%x addr= %x,spare= %x %x %x %x data=%x %x\n" .section .rodata.FtlDumpSysBlock.str1.1,"aMS",@progbits,1 -.LC77: - .string "id = %x,%x addr= %x,spare= %x %x %x %x data = %x\n" .LC78: + .string "id = %x,%x addr= %x,spare= %x %x %x %x data = %x\n" +.LC79: .string ":" .section .rodata.FtlFreeSysBlkQueueOut.str1.1,"aMS",@progbits,1 .LC3: @@ -23949,17 +24496,19 @@ refValueDefault: .LC4: .string "FtlFreeSysBlkQueueOut = %x, free count = %d, error\n" .section .rodata.FtlGcFreeTempBlock.str1.1,"aMS",@progbits,1 -.LC64: +.LC65: .string "GC des block %x done\n" .section .rodata.FtlGcScanTempBlk.str1.1,"aMS",@progbits,1 -.LC52: +.LC63: + .string "FtlGcScanTempBlk Error ID %x %x!!!!!!! \n" +.LC64: .string "FtlGcScanTempBlkError ID %x %x!!!!!!!\n" .section .rodata.FtlInit.str1.1,"aMS",@progbits,1 -.LC66: - .string "FTL version: 5.0.50 20180905" .LC67: - .string "...%s: no bad block mapping table, format device\n" + .string "FTL version: 5.0.53 20190107" .LC68: + .string "...%s: no bad block mapping table, format device\n" +.LC69: .string "...%s FtlSysBlkInit error ,format device!\n" .section .rodata.FtlLoadEctTbl.str1.1,"aMS",@progbits,1 .LC43: @@ -23970,14 +24519,14 @@ refValueDefault: .LC41: .string "FtlMapWritePage error = %x error count = %d\n" .section .rodata.FtlProgPages.str1.1,"aMS",@progbits,1 -.LC57: +.LC56: .string "Ftlwrite decrement_vpc_count %x = %d\n" .section .rodata.FtlRecoverySuperblock.str1.1,"aMS",@progbits,1 -.LC61: +.LC60: .string "RSB refresh addr %x\n" -.LC62: +.LC61: .string "spuer block %x vpn is 0\n " -.LC63: +.LC62: .string "g_recovery_ppa %x ver %x\n " .section .rodata.FtlScanAllBlock.str1.1,"aMS",@progbits,1 .LC49: @@ -23993,17 +24542,17 @@ refValueDefault: .LC38: .string "FtlVpcTblFlush error = %x error count = %d\n" .section .rodata.FtlWrite.str1.1,"aMS",@progbits,1 -.LC72: +.LC73: .string "FtlWrite: lpa error:%x %x\n" .section .rodata.Ftl_load_ext_data.str1.1,"aMS",@progbits,1 .LC44: .string "slc mode" .section .rodata.Ftlscanalldata.str1.1,"aMS",@progbits,1 -.LC58: +.LC57: .string "Ftlscanalldata = %x\n" -.LC59: +.LC58: .string "scan lpa = %x ppa= %x\n" -.LC60: +.LC59: .string "lba = %x,addr= %x,spare= %x %x %x %x data=%x %x\n" .section .rodata.HynixGetReadRetryDefault.str1.1,"aMS",@progbits,1 .LC21: @@ -24020,255 +24569,255 @@ refValueDefault: .section .rodata.MicronReadRetrial.str1.1,"aMS",@progbits,1 .LC13: .string "micron RR %d row=%x,count %d,status=%d\n" - .section .rodata.__func__.10011,"a",@progbits - .align 3 - .set .LANCHOR225,. + 0 - .type __func__.10011, %object - .size __func__.10011, 16 -__func__.10011: - .string "FtlScanAllBlock" - .section .rodata.__func__.10116,"a",@progbits - .align 3 - .set .LANCHOR233,. + 0 - .type __func__.10116, %object - .size __func__.10116, 16 -__func__.10116: - .string "FtlReUsePrevPpa" - .section .rodata.__func__.10149,"a",@progbits - .align 3 - .set .LANCHOR234,. + 0 - .type __func__.10149, %object - .size __func__.10149, 22 -__func__.10149: - .string "FtlRecoverySuperblock" - .section .rodata.__func__.10203,"a",@progbits - .align 3 - .set .LANCHOR102,. + 0 - .type __func__.10203, %object - .size __func__.10203, 16 -__func__.10203: - .string "make_superblock" - .section .rodata.__func__.10223,"a",@progbits - .align 3 - .set .LANCHOR140,. + 0 - .type __func__.10223, %object - .size __func__.10223, 18 -__func__.10223: - .string "SupperBlkListInit" - .section .rodata.__func__.10300,"a",@progbits - .align 3 - .set .LANCHOR203,. + 0 - .type __func__.10300, %object - .size __func__.10300, 25 -__func__.10300: - .string "allocate_data_superblock" - .section .rodata.__func__.10314,"a",@progbits - .align 3 - .set .LANCHOR219,. + 0 - .type __func__.10314, %object - .size __func__.10314, 29 -__func__.10314: - .string "allocate_new_data_superblock" - .section .rodata.__func__.10320,"a",@progbits - .align 3 - .set .LANCHOR208,. + 0 - .type __func__.10320, %object - .size __func__.10320, 19 -__func__.10320: - .string "get_new_active_ppa" - .section .rodata.__func__.10331,"a",@progbits - .align 3 - .set .LANCHOR206,. + 0 - .type __func__.10331, %object - .size __func__.10331, 16 -__func__.10331: - .string "update_vpc_list" - .section .rodata.__func__.10336,"a",@progbits - .align 3 - .set .LANCHOR207,. + 0 - .type __func__.10336, %object - .size __func__.10336, 20 -__func__.10336: - .string "decrement_vpc_count" - .section .rodata.__func__.10404,"a",@progbits - .align 3 - .set .LANCHOR239,. + 0 - .type __func__.10404, %object - .size __func__.10404, 19 -__func__.10404: - .string "FtlGcFreeTempBlock" - .section .rodata.__func__.10498,"a",@progbits - .align 3 - .set .LANCHOR243,. + 0 - .type __func__.10498, %object - .size __func__.10498, 23 -__func__.10498: - .string "rk_ftl_garbage_collect" - .section .rodata.__func__.9325,"a",@progbits - .align 3 - .set .LANCHOR245,. + 0 - .type __func__.9325, %object - .size __func__.9325, 8 -__func__.9325: - .string "FtlInit" - .section .rodata.__func__.9385,"a",@progbits - .align 3 - .set .LANCHOR229,. + 0 - .type __func__.9385, %object - .size __func__.9385, 13 -__func__.9385: - .string "FtlProgPages" - .section .rodata.__func__.9411,"a",@progbits - .align 3 - .set .LANCHOR247,. + 0 - .type __func__.9411, %object - .size __func__.9411, 9 -__func__.9411: - .string "FtlWrite" - .section .rodata.__func__.9494,"a",@progbits - .align 3 - .set .LANCHOR124,. + 0 - .type __func__.9494, %object - .size __func__.9494, 14 -__func__.9494: - .string "FtlBbt2Bitmap" - .section .rodata.__func__.9540,"a",@progbits - .align 3 - .set .LANCHOR211,. + 0 - .type __func__.9540, %object - .size __func__.9540, 11 -__func__.9540: - .string "FtlLoadBbt" - .section .rodata.__func__.9633,"a",@progbits - .align 3 - .set .LANCHOR90,. + 0 - .type __func__.9633, %object - .size __func__.9633, 17 -__func__.9633: - .string "INSERT_FREE_LIST" - .section .rodata.__func__.9637,"a",@progbits - .align 3 - .set .LANCHOR87,. + 0 - .type __func__.9637, %object - .size __func__.9637, 17 -__func__.9637: - .string "INSERT_DATA_LIST" - .section .rodata.__func__.9674,"a",@progbits - .align 3 - .set .LANCHOR91,. + 0 - .type __func__.9674, %object - .size __func__.9674, 17 -__func__.9674: - .string "List_remove_node" - .section .rodata.__func__.9704,"a",@progbits - .align 3 - .set .LANCHOR95,. + 0 - .type __func__.9704, %object - .size __func__.9704, 22 -__func__.9704: - .string "List_update_data_list" - .section .rodata.__func__.9711,"a",@progbits - .align 3 - .set .LANCHOR228,. + 0 - .type __func__.9711, %object - .size __func__.9711, 20 -__func__.9711: - .string "ftl_load_l2p_region" - .section .rodata.__func__.9742,"a",@progbits - .align 3 - .set .LANCHOR96,. + 0 - .type __func__.9742, %object - .size __func__.9742, 26 -__func__.9742: - .string "ftl_map_blk_alloc_new_blk" - .section .rodata.__func__.9752,"a",@progbits - .align 3 - .set .LANCHOR212,. + 0 - .type __func__.9752, %object - .size __func__.9752, 15 -__func__.9752: - .string "ftl_map_blk_gc" - .section .rodata.__func__.9765,"a",@progbits - .align 3 - .set .LANCHOR213,. + 0 - .type __func__.9765, %object - .size __func__.9765, 31 -__func__.9765: - .string "Ftl_write_map_blk_to_last_page" - .section .rodata.__func__.9778,"a",@progbits - .align 3 - .set .LANCHOR214,. + 0 - .type __func__.9778, %object - .size __func__.9778, 16 -__func__.9778: - .string "FtlMapWritePage" - .section .rodata.__func__.9798,"a",@progbits - .align 3 - .set .LANCHOR99,. + 0 - .type __func__.9798, %object - .size __func__.9798, 22 -__func__.9798: - .string "select_l2p_ram_region" - .section .rodata.__func__.9814,"a",@progbits - .align 3 - .set .LANCHOR227,. + 0 - .type __func__.9814, %object - .size __func__.9814, 9 -__func__.9814: - .string "log2phys" - .section .rodata.__func__.9876,"a",@progbits - .align 3 - .set .LANCHOR210,. + 0 - .type __func__.9876, %object - .size __func__.9876, 15 -__func__.9876: - .string "FtlVpcTblFlush" - .section .rodata.__func__.9895,"a",@progbits + .section .rodata.__func__.10005,"a",@progbits .align 3 .set .LANCHOR220,. + 0 - .type __func__.9895, %object - .size __func__.9895, 14 -__func__.9895: + .type __func__.10005, %object + .size __func__.10005, 14 +__func__.10005: .string "FtlScanSysBlk" - .section .rodata.__func__.9949,"a",@progbits + .section .rodata.__func__.10060,"a",@progbits .align 3 .set .LANCHOR221,. + 0 - .type __func__.9949, %object - .size __func__.9949, 15 -__func__.9949: + .type __func__.10060, %object + .size __func__.10060, 15 +__func__.10060: .string "FtlLoadSysInfo" - .section .rodata.__func__.9960,"a",@progbits + .section .rodata.__func__.10071,"a",@progbits .align 3 .set .LANCHOR248,. + 0 - .type __func__.9960, %object - .size __func__.9960, 12 -__func__.9960: + .type __func__.10071, %object + .size __func__.10071, 12 +__func__.10071: .string "FtlCheckVpc" - .section .rodata.__func__.9992,"a",@progbits + .section .rodata.__func__.10103,"a",@progbits .align 3 .set .LANCHOR224,. + 0 - .type __func__.9992, %object - .size __func__.9992, 17 -__func__.9992: + .type __func__.10103, %object + .size __func__.10103, 17 +__func__.10103: .string "FtlDumpBlockInfo" + .section .rodata.__func__.10122,"a",@progbits + .align 3 + .set .LANCHOR225,. + 0 + .type __func__.10122, %object + .size __func__.10122, 16 +__func__.10122: + .string "FtlScanAllBlock" + .section .rodata.__func__.10227,"a",@progbits + .align 3 + .set .LANCHOR232,. + 0 + .type __func__.10227, %object + .size __func__.10227, 16 +__func__.10227: + .string "FtlReUsePrevPpa" + .section .rodata.__func__.10260,"a",@progbits + .align 3 + .set .LANCHOR233,. + 0 + .type __func__.10260, %object + .size __func__.10260, 22 +__func__.10260: + .string "FtlRecoverySuperblock" + .section .rodata.__func__.10314,"a",@progbits + .align 3 + .set .LANCHOR101,. + 0 + .type __func__.10314, %object + .size __func__.10314, 16 +__func__.10314: + .string "make_superblock" + .section .rodata.__func__.10334,"a",@progbits + .align 3 + .set .LANCHOR140,. + 0 + .type __func__.10334, %object + .size __func__.10334, 18 +__func__.10334: + .string "SupperBlkListInit" + .section .rodata.__func__.10411,"a",@progbits + .align 3 + .set .LANCHOR203,. + 0 + .type __func__.10411, %object + .size __func__.10411, 25 +__func__.10411: + .string "allocate_data_superblock" + .section .rodata.__func__.10425,"a",@progbits + .align 3 + .set .LANCHOR219,. + 0 + .type __func__.10425, %object + .size __func__.10425, 29 +__func__.10425: + .string "allocate_new_data_superblock" + .section .rodata.__func__.10431,"a",@progbits + .align 3 + .set .LANCHOR208,. + 0 + .type __func__.10431, %object + .size __func__.10431, 19 +__func__.10431: + .string "get_new_active_ppa" + .section .rodata.__func__.10442,"a",@progbits + .align 3 + .set .LANCHOR206,. + 0 + .type __func__.10442, %object + .size __func__.10442, 16 +__func__.10442: + .string "update_vpc_list" + .section .rodata.__func__.10447,"a",@progbits + .align 3 + .set .LANCHOR207,. + 0 + .type __func__.10447, %object + .size __func__.10447, 20 +__func__.10447: + .string "decrement_vpc_count" + .section .rodata.__func__.10515,"a",@progbits + .align 3 + .set .LANCHOR239,. + 0 + .type __func__.10515, %object + .size __func__.10515, 19 +__func__.10515: + .string "FtlGcFreeTempBlock" + .section .rodata.__func__.10614,"a",@progbits + .align 3 + .set .LANCHOR243,. + 0 + .type __func__.10614, %object + .size __func__.10614, 23 +__func__.10614: + .string "rk_ftl_garbage_collect" + .section .rodata.__func__.9435,"a",@progbits + .align 3 + .set .LANCHOR245,. + 0 + .type __func__.9435, %object + .size __func__.9435, 8 +__func__.9435: + .string "FtlInit" + .section .rodata.__func__.9495,"a",@progbits + .align 3 + .set .LANCHOR228,. + 0 + .type __func__.9495, %object + .size __func__.9495, 13 +__func__.9495: + .string "FtlProgPages" + .section .rodata.__func__.9521,"a",@progbits + .align 3 + .set .LANCHOR247,. + 0 + .type __func__.9521, %object + .size __func__.9521, 9 +__func__.9521: + .string "FtlWrite" + .section .rodata.__func__.9604,"a",@progbits + .align 3 + .set .LANCHOR124,. + 0 + .type __func__.9604, %object + .size __func__.9604, 14 +__func__.9604: + .string "FtlBbt2Bitmap" + .section .rodata.__func__.9650,"a",@progbits + .align 3 + .set .LANCHOR211,. + 0 + .type __func__.9650, %object + .size __func__.9650, 11 +__func__.9650: + .string "FtlLoadBbt" + .section .rodata.__func__.9743,"a",@progbits + .align 3 + .set .LANCHOR89,. + 0 + .type __func__.9743, %object + .size __func__.9743, 17 +__func__.9743: + .string "INSERT_FREE_LIST" + .section .rodata.__func__.9747,"a",@progbits + .align 3 + .set .LANCHOR86,. + 0 + .type __func__.9747, %object + .size __func__.9747, 17 +__func__.9747: + .string "INSERT_DATA_LIST" + .section .rodata.__func__.9784,"a",@progbits + .align 3 + .set .LANCHOR90,. + 0 + .type __func__.9784, %object + .size __func__.9784, 17 +__func__.9784: + .string "List_remove_node" + .section .rodata.__func__.9814,"a",@progbits + .align 3 + .set .LANCHOR94,. + 0 + .type __func__.9814, %object + .size __func__.9814, 22 +__func__.9814: + .string "List_update_data_list" + .section .rodata.__func__.9821,"a",@progbits + .align 3 + .set .LANCHOR227,. + 0 + .type __func__.9821, %object + .size __func__.9821, 20 +__func__.9821: + .string "ftl_load_l2p_region" + .section .rodata.__func__.9852,"a",@progbits + .align 3 + .set .LANCHOR95,. + 0 + .type __func__.9852, %object + .size __func__.9852, 26 +__func__.9852: + .string "ftl_map_blk_alloc_new_blk" + .section .rodata.__func__.9862,"a",@progbits + .align 3 + .set .LANCHOR212,. + 0 + .type __func__.9862, %object + .size __func__.9862, 15 +__func__.9862: + .string "ftl_map_blk_gc" + .section .rodata.__func__.9875,"a",@progbits + .align 3 + .set .LANCHOR213,. + 0 + .type __func__.9875, %object + .size __func__.9875, 31 +__func__.9875: + .string "Ftl_write_map_blk_to_last_page" + .section .rodata.__func__.9888,"a",@progbits + .align 3 + .set .LANCHOR214,. + 0 + .type __func__.9888, %object + .size __func__.9888, 16 +__func__.9888: + .string "FtlMapWritePage" + .section .rodata.__func__.9908,"a",@progbits + .align 3 + .set .LANCHOR98,. + 0 + .type __func__.9908, %object + .size __func__.9908, 22 +__func__.9908: + .string "select_l2p_ram_region" + .section .rodata.__func__.9924,"a",@progbits + .align 3 + .set .LANCHOR226,. + 0 + .type __func__.9924, %object + .size __func__.9924, 9 +__func__.9924: + .string "log2phys" + .section .rodata.__func__.9986,"a",@progbits + .align 3 + .set .LANCHOR210,. + 0 + .type __func__.9986, %object + .size __func__.9986, 15 +__func__.9986: + .string "FtlVpcTblFlush" .section .rodata.decrement_vpc_count.str1.1,"aMS",@progbits,1 .LC36: .string "decrement_vpc_count %x = %d\n" .LC37: .string "decrement_vpc_count %x = %d in free list\n" .section .rodata.dump_map_info.str1.1,"aMS",@progbits,1 -.LC79: - .string "phyBlk = %x,addr= %x,spare= %x %x %x %x data=%x %x\n" .LC80: - .string "Mblk:" + .string "phyBlk = %x,addr= %x,spare= %x %x %x %x data=%x %x\n" .LC81: - .string "L2P:" + .string "Mblk:" .LC82: + .string "L2P:" +.LC83: .string "L2PC:" .section .rodata.ftl_fix_nand_power_lost_error.str1.1,"aMS",@progbits,1 -.LC70: - .string "fix power lost blk = %x vpc=%x\n" .LC71: + .string "fix power lost blk = %x vpc=%x\n" +.LC72: .string "erase power lost blk = %x vpc=%x\n" .section .rodata.ftl_map_blk_alloc_new_blk.str1.1,"aMS",@progbits,1 .LC8: @@ -24284,17 +24833,17 @@ __func__.9992: .LC17: .string "write_idblock fail! %x\n" .section .rodata.log2phys.str1.1,"aMS",@progbits,1 -.LC54: +.LC53: .string "region_id = %x phyAddr = %x\n" -.LC55: +.LC54: .string "map_ppn:" -.LC56: +.LC55: .string "load_l2p_region refresh = %x phyAddr = %x\n" .section .rodata.rk_ftl_garbage_collect.str1.1,"aMS",@progbits,1 -.LC65: +.LC66: .string "g_gc_superblock_free %x %x %x %x %x\n" .section .rodata.rk_ftl_init.str1.1,"aMS",@progbits,1 -.LC69: +.LC70: .string "FtlInit %x\n" .section .rodata.rknand_print_hex.str1.1,"aMS",@progbits,1 .LC18: diff --git a/drivers/rknand/rk_zftl_arm_v8.S b/drivers/rknand/rk_zftl_arm_v8.S index 125ba6d30c..8e0423e3d2 100644 --- a/drivers/rknand/rk_zftl_arm_v8.S +++ b/drivers/rknand/rk_zftl_arm_v8.S @@ -5,10 +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: 2018-09-08 + * date: 2019-01-07 */ .arch armv8-a - .file "rk_zftl_arm_v8.S" + .file "rk_zftl_arm_v8.c" .section .text.flash_mem_cmp8,"ax",@progbits .align 2 .type flash_mem_cmp8, %function @@ -540,10 +540,10 @@ zftl_get_gc_node.part.9: ldr x0, [x0, #:lo12:.LANCHOR12] b _list_get_gc_head_node.isra.2 .size zftl_get_gc_node.part.9, .-zftl_get_gc_node.part.9 - .section .text.nandc_de_cs.constprop.29,"ax",@progbits + .section .text.nandc_de_cs.constprop.28,"ax",@progbits .align 2 - .type nandc_de_cs.constprop.29, %function -nandc_de_cs.constprop.29: + .type nandc_de_cs.constprop.28, %function +nandc_de_cs.constprop.28: adrp x0, .LANCHOR13 ldr x1, [x0, #:lo12:.LANCHOR13] ldr w0, [x1] @@ -551,7 +551,7 @@ nandc_de_cs.constprop.29: and w0, w0, -131073 str w0, [x1] ret - .size nandc_de_cs.constprop.29, .-nandc_de_cs.constprop.29 + .size nandc_de_cs.constprop.28, .-nandc_de_cs.constprop.28 .section .text.nand_flash_print_info,"ax",@progbits .align 2 .global nand_flash_print_info @@ -957,43 +957,47 @@ toshiba_set_rr_para: hynix_set_rr_para: adrp x2, .LANCHOR26 and w1, w1, 255 - mov x3, 32 and w0, w0, 255 - ldr x2, [x2, #:lo12:.LANCHOR26] - mov x4, 0 - add x6, x2, 128 - add x2, x2, 112 - ldrb w5, [x2, 1] - cmp w5, w4, uxtb - umaddl x3, w1, w5, x3 - mov w1, 160 - umaddl x1, w1, w0, x3 + ldr x3, [x2, #:lo12:.LANCHOR26] + adrp x2, .LANCHOR13 + add x6, x3, 128 + add x4, x3, 112 + ldr x2, [x2, #:lo12:.LANCHOR13] + ldrb w5, [x3, 113] + ldrb w3, [x3, 112] + cmp w3, 8 + mov x3, 32 + umaddl x1, w1, w5, x3 + beq .L223 + mov w3, 160 + umaddl x1, w3, w0, x1 +.L223: ubfiz x0, x0, 8, 8 - add x2, x2, x1 - adrp x1, .LANCHOR13 - ldr x3, [x1, #:lo12:.LANCHOR13] - add x3, x3, x0 + mov x3, 0 + add x2, x2, x0 mov w0, 54 - str w0, [x3, 2056] - bhi .L228 + add x4, x4, x1 + cmp w5, w3, uxtb + str w0, [x2, 2056] + bhi .L230 mov w0, 22 - str w0, [x3, 2056] + str w0, [x2, 2056] ret -.L228: +.L230: stp x29, x30, [sp, -16]! add x29, sp, 0 -.L224: - ldrb w0, [x6, x4] - str w0, [x3, 2052] +.L226: + ldrb w0, [x6, x3] + str w0, [x2, 2052] mov w0, 120 bl timer_delay_ns - ldrsb w0, [x2, x4] - str w0, [x3, 2048] - add x4, x4, 1 - cmp w5, w4, uxtb - bhi .L224 + ldrsb w0, [x4, x3] + str w0, [x2, 2048] + add x3, x3, 1 + cmp w5, w3, uxtb + bhi .L226 mov w0, 22 - str w0, [x3, 2056] + str w0, [x2, 2056] ldp x29, x30, [sp], 16 ret .size hynix_set_rr_para, .-hynix_set_rr_para @@ -1006,15 +1010,15 @@ hynix_reconfig_rr_para: ldrb w1, [x1, #:lo12:.LANCHOR23] sub w1, w1, #1 and w1, w1, 255 - cmp w1, 6 - bhi .L235 + cmp w1, 7 + bhi .L237 adrp x8, .LANCHOR26 and w0, w0, 255 sxtw x7, w0 ldr x1, [x8, #:lo12:.LANCHOR26] add x1, x1, x7 ldrb w1, [x1, 120] - cbz w1, .L235 + cbz w1, .L237 stp x29, x30, [sp, -16]! mov w1, 0 add x29, sp, 0 @@ -1024,7 +1028,7 @@ hynix_reconfig_rr_para: strb wzr, [x0, 120] ldp x29, x30, [sp], 16 ret -.L235: +.L237: ret .size hynix_reconfig_rr_para, .-hynix_reconfig_rr_para .section .text.nandc_set_ddr_para,"ax",@progbits @@ -1042,10 +1046,10 @@ nandc_set_ddr_para: lsl w0, w0, 8 orr w1, w1, w0 orr w1, w1, 3 - bne .L239 + bne .L241 str w1, [x2, 80] ret -.L239: +.L241: str w1, [x2, 304] ret .size nandc_set_ddr_para, .-nandc_set_ddr_para @@ -1059,14 +1063,14 @@ nandc_get_ddr_para: cmp w0, 9 adrp x0, .LANCHOR13 ldr x0, [x0, #:lo12:.LANCHOR13] - bne .L242 + bne .L244 ldr w0, [x0, 80] -.L244: +.L246: ubfx x0, x0, 8, 8 ret -.L242: +.L244: ldr w0, [x0, 304] - b .L244 + b .L246 .size nandc_get_ddr_para, .-nandc_get_ddr_para .section .text.nandc_set_if_mode,"ax",@progbits .align 2 @@ -1078,7 +1082,7 @@ nandc_set_if_mode: tst w0, 6 ldr x2, [x1, #:lo12:.LANCHOR13] ldr w1, [x2] - beq .L246 + beq .L248 tst x0, 4 orr w1, w1, 24576 adrp x0, .LANCHOR27 @@ -1090,7 +1094,7 @@ nandc_set_if_mode: cmp w0, 9 mov w0, 4099 movk w0, 0x10, lsl 16 - bne .L248 + bne .L250 mov w3, 8321 str w3, [x2, 8] str w0, [x2, 80] @@ -1098,10 +1102,10 @@ nandc_set_if_mode: str w0, [x2, 84] mov w0, 39 str w0, [x2, 84] -.L249: +.L251: str w1, [x2] ret -.L248: +.L250: mov w3, 8322 str w3, [x2, 344] str w0, [x2, 304] @@ -1109,10 +1113,10 @@ nandc_set_if_mode: str w0, [x2, 308] mov w0, 39 str w0, [x2, 308] - b .L249 -.L246: + b .L251 +.L248: and w1, w1, -8193 - b .L249 + b .L251 .size nandc_set_if_mode, .-nandc_set_if_mode .section .text.nandc_cs,"ax",@progbits .align 2 @@ -1143,14 +1147,14 @@ flash_wait_device_ready_raw: mov w20, w2 ldrb w0, [x0, #:lo12:.LANCHOR18] cmp w0, w21 - bhi .L254 + bhi .L256 adrp x1, .LANCHOR28 adrp x0, .LC0 - mov w2, 606 + mov w2, 677 add x1, x1, :lo12:.LANCHOR28 add x0, x0, :lo12:.LC0 bl printf -.L254: +.L256: adrp x0, .LANCHOR29 add x0, x0, :lo12:.LANCHOR29 ldrb w5, [x0, w21, sxtw] @@ -1164,7 +1168,7 @@ flash_wait_device_ready_raw: and w19, w19, 255 add x2, x4, x2 mov w4, 120 -.L257: +.L259: str w4, [x2, 2056] mov w0, 120 str w19, [x2, 2052] @@ -1174,10 +1178,10 @@ flash_wait_device_ready_raw: ldr w3, [x2, 2048] and w3, w3, 255 bics wzr, w20, w3 - bne .L257 + bne .L259 cmp w3, 255 - beq .L257 - bl nandc_de_cs.constprop.29 + beq .L259 + bl nandc_de_cs.constprop.28 ldr x21, [sp, 32] mov w0, w3 ldp x19, x20, [sp, 16] @@ -1193,31 +1197,31 @@ flash_wait_device_ready: ubfx x6, x0, 21, 3 and w1, w0, 2097151 tst x0, 50331648 - bne .L261 + bne .L263 adrp x0, .LANCHOR0 adrp x5, .LANCHOR1 ldrb w0, [x0, #:lo12:.LANCHOR0] - cbz w0, .L262 + cbz w0, .L264 ldrb w0, [x5, #:lo12:.LANCHOR1] - cbz w0, .L261 -.L262: + cbz w0, .L263 +.L264: adrp x0, .LANCHOR2 ldrh w3, [x0, #:lo12:.LANCHOR2] ldrb w0, [x5, #:lo12:.LANCHOR1] udiv w4, w1, w3 mul w4, w4, w3 sub w3, w1, w4 - cbz w0, .L263 + cbz w0, .L265 add w1, w4, w3, lsl 1 -.L261: +.L263: mov w0, w6 b flash_wait_device_ready_raw -.L263: +.L265: adrp x5, .LANCHOR3 add x5, x5, :lo12:.LANCHOR3 ldrh w3, [x5, w3, uxtw 1] add w1, w3, w4 - b .L261 + b .L263 .size flash_wait_device_ready, .-flash_wait_device_ready .section .text.nandc_de_cs,"ax",@progbits .align 2 @@ -1232,33 +1236,289 @@ nandc_de_cs: str w0, [x1] ret .size nandc_de_cs, .-nandc_de_cs - .section .text.nandc_wait_flash_ready,"ax",@progbits + .section .text.nandc_wait_flash_ready_no_delay,"ax",@progbits .align 2 - .global nandc_wait_flash_ready - .type nandc_wait_flash_ready, %function -nandc_wait_flash_ready: + .global nandc_wait_flash_ready_no_delay + .type nandc_wait_flash_ready_no_delay, %function +nandc_wait_flash_ready_no_delay: mov w2, 34464 stp x29, x30, [sp, -32]! movk w2, 0x1, lsl 16 adrp x3, .LANCHOR13 add x29, sp, 0 -.L273: - mov w0, 100 - bl timer_delay_ns +.L275: ldr x0, [x3, #:lo12:.LANCHOR13] ldr w0, [x0] str w0, [x29, 24] ldr w0, [x29, 24] - tbnz x0, 9, .L274 + tbnz x0, 9, .L276 + mov w0, 10 + bl timer_delay_ns subs w2, w2, #1 - bne .L273 + bne .L275 mov w0, -1 -.L271: +.L273: ldp x29, x30, [sp], 32 ret -.L274: +.L276: mov w0, 0 - b .L271 + b .L273 + .size nandc_wait_flash_ready_no_delay, .-nandc_wait_flash_ready_no_delay + .section .text.zftl_flash_enter_slc_mode,"ax",@progbits + .align 2 + .global zftl_flash_enter_slc_mode + .type zftl_flash_enter_slc_mode, %function +zftl_flash_enter_slc_mode: + adrp x1, .LANCHOR0 + ldrb w1, [x1, #:lo12:.LANCHOR0] + cbz w1, .L279 + adrp x2, .LANCHOR13 + and x0, x0, 255 + cmp w1, 1 + ldr x4, [x2, #:lo12:.LANCHOR13] + bne .L282 +.L302: + adrp x1, .LANCHOR30+29 + ldrb w1, [x1, #:lo12:.LANCHOR30+29] + cbz w1, .L279 + add x0, x0, 8 + add x0, x4, x0, lsl 8 + str w1, [x0, 8] + ret +.L282: + cmp w1, 2 + bne .L284 + adrp x1, .LANCHOR31 + add x1, x1, :lo12:.LANCHOR31 + ldrb w2, [x1, x0] + cbz w2, .L279 + strb wzr, [x1, x0] + b .L302 +.L284: + cmp w1, 3 + bne .L279 + adrp x1, .LANCHOR31 + sxtw x2, w0 + add x1, x1, :lo12:.LANCHOR31 + ldrb w3, [x1, x2] + cbz w3, .L279 + ubfiz x0, x0, 8, 8 + stp x29, x30, [sp, -16]! + add x4, x4, x0 + mov w0, 239 + add x29, sp, 0 + strb wzr, [x1, x2] + str w0, [x4, 2056] + mov w0, 145 + str w0, [x4, 2052] + mov w0, 50 + bl timer_delay_ns + str wzr, [x4, 2048] + mov w0, 1 + str w0, [x4, 2048] + str wzr, [x4, 2048] + mov w0, 150 + str wzr, [x4, 2048] + bl timer_delay_ns + bl nandc_wait_flash_ready_no_delay + mov w0, 218 + str w0, [x4, 2056] + mov w0, 150 + bl timer_delay_ns + ldp x29, x30, [sp], 16 + b nandc_wait_flash_ready_no_delay +.L279: + ret + .size zftl_flash_enter_slc_mode, .-zftl_flash_enter_slc_mode + .section .text.zftl_flash_exit_slc_mode,"ax",@progbits + .align 2 + .global zftl_flash_exit_slc_mode + .type zftl_flash_exit_slc_mode, %function +zftl_flash_exit_slc_mode: + adrp x1, .LANCHOR0 + ldrb w1, [x1, #:lo12:.LANCHOR0] + cbz w1, .L303 + adrp x2, .LANCHOR13 + and x0, x0, 255 + cmp w1, 1 + ldr x4, [x2, #:lo12:.LANCHOR13] + bne .L306 + adrp x1, .LANCHOR30+30 + ldrb w1, [x1, #:lo12:.LANCHOR30+30] +.L328: + cbz w1, .L303 + add x0, x0, 8 + add x0, x4, x0, lsl 8 + str w1, [x0, 8] + ret +.L306: + cmp w1, 2 + bne .L308 + adrp x2, .LANCHOR31 + add x2, x2, :lo12:.LANCHOR31 + ldrb w1, [x2, x0] + cbnz w1, .L303 + adrp x1, .LANCHOR30 + add x1, x1, :lo12:.LANCHOR30 + mov w5, 4 + ldrb w3, [x1, 12] + ldrb w1, [x1, 30] + cmp w3, 2 + csel w3, w3, w5, eq + strb w3, [x2, x0] + b .L328 +.L308: + cmp w1, 3 + bne .L303 + adrp x2, .LANCHOR31 + sxtw x5, w0 + add x2, x2, :lo12:.LANCHOR31 + ldrb w1, [x2, x5] + cbnz w1, .L303 + adrp x3, .LANCHOR30 + add x3, x3, :lo12:.LANCHOR30 + stp x29, x30, [sp, -16]! + ubfiz x0, x0, 8, 8 + add x4, x4, x0 + mov w6, 4 + add x29, sp, 0 + ldrb w1, [x3, 12] + mov w0, 239 + str w0, [x4, 2056] + mov w0, 145 + cmp w1, 2 + str w0, [x4, 2052] + csel w1, w1, w6, eq + mov w0, 50 + strb w1, [x2, x5] + bl timer_delay_ns + ldrb w0, [x3, 7] + cmp w0, 9 + mov w0, 1 + bne .L311 + str w0, [x4, 2048] +.L312: + str w0, [x4, 2048] + mov w0, 150 + str wzr, [x4, 2048] + str wzr, [x4, 2048] + bl timer_delay_ns + bl nandc_wait_flash_ready_no_delay + mov w0, 223 + str w0, [x4, 2056] + mov w0, 150 + bl timer_delay_ns + ldp x29, x30, [sp], 16 + b nandc_wait_flash_ready_no_delay +.L311: + ldrb w1, [x2, x5] + str w1, [x4, 2048] + b .L312 +.L303: + ret + .size zftl_flash_exit_slc_mode, .-zftl_flash_exit_slc_mode + .section .text.flash_start_page_read,"ax",@progbits + .align 2 + .global flash_start_page_read + .type flash_start_page_read, %function +flash_start_page_read: + stp x29, x30, [sp, -48]! + add x29, sp, 0 + stp x19, x20, [sp, 16] + and w20, w0, 255 + adrp x0, .LANCHOR18 + stp x21, x22, [sp, 32] + ubfx x22, x1, 21, 3 + and w19, w1, 2097151 + ldrb w0, [x0, #:lo12:.LANCHOR18] + ubfx x21, x1, 24, 2 + cmp w0, w22 + bhi .L330 + adrp x1, .LANCHOR32 + adrp x0, .LC0 + mov w2, 845 + add x1, x1, :lo12:.LANCHOR32 + add x0, x0, :lo12:.LC0 + bl printf +.L330: + adrp x0, .LANCHOR29 + add x0, x0, :lo12:.LANCHOR29 + ldrb w8, [x0, w22, sxtw] + adrp x0, .LANCHOR13 + ldr x7, [x0, #:lo12:.LANCHOR13] + mov w0, w8 + bl nandc_cs + cbnz w21, .L331 + mov w0, w19 + bl slc_phy_page_address_calc + mov w19, w0 + adrp x0, .LANCHOR0 + ldrb w0, [x0, #:lo12:.LANCHOR0] + cbz w0, .L332 + mov w0, w8 + bl zftl_flash_enter_slc_mode +.L332: + ubfiz x1, x8, 8, 8 + and w0, w19, 255 + add x1, x7, x1 + ldp x21, x22, [sp, 32] + str wzr, [x1, 2056] + str wzr, [x1, 2052] + str wzr, [x1, 2052] + str w0, [x1, 2052] + lsr w0, w19, 8 + str w0, [x1, 2052] + lsr w19, w19, 16 + str w19, [x1, 2052] + str w20, [x1, 2056] + ldp x19, x20, [sp, 16] + ldp x29, x30, [sp], 48 + b nandc_de_cs.constprop.28 +.L331: + adrp x0, .LANCHOR16 + ldr x0, [x0, #:lo12:.LANCHOR16] + ldrb w0, [x0, 12] + cmp w0, 3 + bne .L333 + sxtw x0, w8 + add x0, x0, 8 + add x0, x7, x0, lsl 8 + str w21, [x0, 8] + b .L332 +.L333: + mov w0, w8 + bl zftl_flash_exit_slc_mode + b .L332 + .size flash_start_page_read, .-flash_start_page_read + .section .text.nandc_wait_flash_ready,"ax",@progbits + .align 2 + .global nandc_wait_flash_ready + .type nandc_wait_flash_ready, %function +nandc_wait_flash_ready: + stp x29, x30, [sp, -32]! + mov w0, 150 + add x29, sp, 0 + bl timer_delay_ns + mov w2, 34464 + adrp x3, .LANCHOR13 + movk w2, 0x1, lsl 16 +.L340: + ldr x0, [x3, #:lo12:.LANCHOR13] + ldr w0, [x0] + str w0, [x29, 24] + ldr w0, [x29, 24] + tbnz x0, 9, .L341 + mov w0, 10 + bl timer_delay_ns + subs w2, w2, #1 + bne .L340 + mov w0, -1 +.L338: + ldp x29, x30, [sp], 32 + ret +.L341: + mov w0, 0 + b .L338 .size nandc_wait_flash_ready, .-nandc_wait_flash_ready .section .text.sandisk_set_rr_para,"ax",@progbits .align 2 @@ -1289,22 +1549,22 @@ sandisk_set_rr_para: add x2, x2, x1 add x1, x0, x1 mov x0, 0 -.L278: +.L345: cmp w4, w0 - bhi .L281 + bhi .L348 ldp x29, x30, [sp], 16 b nandc_wait_flash_ready -.L281: +.L348: cmp w5, 67 - bne .L279 + bne .L346 ldrsb w6, [x1, x0] -.L283: +.L350: add x0, x0, 1 str w6, [x3] - b .L278 -.L279: + b .L345 +.L346: ldrsb w6, [x2, x0] - b .L283 + b .L350 .size sandisk_set_rr_para, .-sandisk_set_rr_para .section .text.toshiba_3d_set_tlc_rr_para,"ax",@progbits .align 2 @@ -1323,8 +1583,8 @@ toshiba_3d_set_tlc_rr_para: madd x1, x2, x1, x1 mov w0, -119 str w0, [x4, 4] - adrp x0, .LANCHOR30 - add x0, x0, :lo12:.LANCHOR30 + adrp x0, .LANCHOR33 + add x0, x0, :lo12:.LANCHOR33 add x5, x0, x1 ldrsb w0, [x0, x1] str w0, [x4] @@ -1359,8 +1619,8 @@ toshiba_3d_set_slc_rr_para: str wzr, [x0, 4] mov w2, -117 str w2, [x0, 4] - adrp x2, .LANCHOR31 - add x2, x2, :lo12:.LANCHOR31 + adrp x2, .LANCHOR34 + add x2, x2, :lo12:.LANCHOR34 add x1, x2, x1, uxtb ldrsb w1, [x1, 1] str w1, [x0] @@ -1376,7 +1636,7 @@ toshiba_3d_set_slc_rr_para: toshiba_tlc_set_rr_para: mov w6, 239 uxtw x1, w1 - cbz w2, .L288 + cbz w2, .L355 stp x29, x30, [sp, -16]! mov x4, x0 mov x2, 7 @@ -1385,8 +1645,8 @@ toshiba_tlc_set_rr_para: str w6, [x4, 8] mul x1, x1, x2 str w0, [x4, 4] - adrp x0, .LANCHOR32 - add x0, x0, :lo12:.LANCHOR32 + adrp x0, .LANCHOR35 + add x0, x0, :lo12:.LANCHOR35 add x5, x0, x1 ldrb w0, [x0, x1] str w0, [x4] @@ -1408,214 +1668,21 @@ toshiba_tlc_set_rr_para: str w0, [x4] str wzr, [x4] ldp x29, x30, [sp], 16 -.L291: +.L358: b nandc_wait_flash_ready -.L288: +.L355: str w6, [x0, 8] mov w2, 20 str w2, [x0, 4] - adrp x2, .LANCHOR33 - add x2, x2, :lo12:.LANCHOR33 + adrp x2, .LANCHOR36 + add x2, x2, :lo12:.LANCHOR36 ldrb w1, [x2, x1] str w1, [x0] str wzr, [x0] str wzr, [x0] str wzr, [x0] - b .L291 + b .L358 .size toshiba_tlc_set_rr_para, .-toshiba_tlc_set_rr_para - .section .text.zftl_flash_enter_slc_mode,"ax",@progbits - .align 2 - .global zftl_flash_enter_slc_mode - .type zftl_flash_enter_slc_mode, %function -zftl_flash_enter_slc_mode: - adrp x1, .LANCHOR0 - and x0, x0, 255 - ldrb w2, [x1, #:lo12:.LANCHOR0] - cbz w2, .L294 - adrp x1, .LANCHOR13 - cmp w2, 1 - ldr x1, [x1, #:lo12:.LANCHOR13] - bne .L297 -.L314: - adrp x2, .LANCHOR34+29 - ldrb w2, [x2, #:lo12:.LANCHOR34+29] - cbz w2, .L294 - add x0, x0, 8 - add x0, x1, x0, lsl 8 - str w2, [x0, 8] - ret -.L297: - cmp w2, 2 - bne .L299 - adrp x2, .LANCHOR35 - add x2, x2, :lo12:.LANCHOR35 - ldrb w3, [x2, x0] - cbz w3, .L294 - strb wzr, [x2, x0] - b .L314 -.L299: - cmp w2, 3 - bne .L294 - adrp x2, .LANCHOR35 - sxtw x3, w0 - add x2, x2, :lo12:.LANCHOR35 - ldrb w4, [x2, x3] - cbz w4, .L294 - ubfiz x0, x0, 8, 8 - strb wzr, [x2, x3] - add x0, x1, x0 - mov w1, 239 - str w1, [x0, 2056] - mov w1, 145 - str w1, [x0, 2052] - mov w1, 1 - str wzr, [x0, 2048] - str w1, [x0, 2048] - str wzr, [x0, 2048] - str wzr, [x0, 2048] - b nandc_wait_flash_ready -.L294: - ret - .size zftl_flash_enter_slc_mode, .-zftl_flash_enter_slc_mode - .section .text.zftl_flash_exit_slc_mode,"ax",@progbits - .align 2 - .global zftl_flash_exit_slc_mode - .type zftl_flash_exit_slc_mode, %function -zftl_flash_exit_slc_mode: - adrp x1, .LANCHOR0 - and x0, x0, 255 - ldrb w2, [x1, #:lo12:.LANCHOR0] - cbz w2, .L315 - adrp x1, .LANCHOR13 - cmp w2, 1 - ldr x1, [x1, #:lo12:.LANCHOR13] - bne .L318 - adrp x2, .LANCHOR34+30 - ldrb w2, [x2, #:lo12:.LANCHOR34+30] -.L335: - cbz w2, .L315 - add x0, x0, 8 - add x0, x1, x0, lsl 8 - str w2, [x0, 8] - ret -.L318: - cmp w2, 2 - bne .L320 - adrp x3, .LANCHOR35 - add x3, x3, :lo12:.LANCHOR35 - ldrb w2, [x3, x0] - cbnz w2, .L315 - adrp x2, .LANCHOR34 - add x2, x2, :lo12:.LANCHOR34 - mov w5, 4 - ldrb w4, [x2, 12] - ldrb w2, [x2, 30] - cmp w4, 2 - csel w4, w4, w5, eq - strb w4, [x3, x0] - b .L335 -.L320: - cmp w2, 3 - bne .L315 - adrp x3, .LANCHOR35 - sxtw x4, w0 - add x3, x3, :lo12:.LANCHOR35 - ldrb w2, [x3, x4] - cbnz w2, .L315 - ubfiz x0, x0, 8, 8 - adrp x2, .LANCHOR34+12 - add x0, x1, x0 - mov w1, 239 - ldrb w2, [x2, #:lo12:.LANCHOR34+12] - mov w5, 4 - str w1, [x0, 2056] - cmp w2, 2 - mov w1, 145 - str w1, [x0, 2052] - csel w2, w2, w5, eq - str w2, [x0, 2048] - mov w1, 1 - str w1, [x0, 2048] - str wzr, [x0, 2048] - str wzr, [x0, 2048] - strb w2, [x3, x4] - b nandc_wait_flash_ready -.L315: - ret - .size zftl_flash_exit_slc_mode, .-zftl_flash_exit_slc_mode - .section .text.flash_start_page_read,"ax",@progbits - .align 2 - .global flash_start_page_read - .type flash_start_page_read, %function -flash_start_page_read: - stp x29, x30, [sp, -48]! - add x29, sp, 0 - stp x19, x20, [sp, 16] - and w20, w0, 255 - adrp x0, .LANCHOR18 - stp x21, x22, [sp, 32] - ubfx x22, x1, 21, 3 - and w19, w1, 2097151 - ldrb w0, [x0, #:lo12:.LANCHOR18] - ubfx x21, x1, 24, 2 - cmp w0, w22 - bhi .L337 - adrp x1, .LANCHOR36 - adrp x0, .LC0 - mov w2, 748 - add x1, x1, :lo12:.LANCHOR36 - add x0, x0, :lo12:.LC0 - bl printf -.L337: - adrp x0, .LANCHOR29 - add x0, x0, :lo12:.LANCHOR29 - ldrb w7, [x0, w22, sxtw] - adrp x0, .LANCHOR13 - ldr x6, [x0, #:lo12:.LANCHOR13] - mov w0, w7 - bl nandc_cs - cbnz w21, .L338 - mov w0, w19 - bl slc_phy_page_address_calc - mov w19, w0 - adrp x0, .LANCHOR0 - ldrb w0, [x0, #:lo12:.LANCHOR0] - cbz w0, .L339 - mov w0, w7 - bl zftl_flash_enter_slc_mode -.L339: - ubfiz x1, x7, 8, 8 - and w0, w19, 255 - add x1, x6, x1 - ldp x21, x22, [sp, 32] - str wzr, [x1, 2056] - str wzr, [x1, 2052] - str wzr, [x1, 2052] - str w0, [x1, 2052] - lsr w0, w19, 8 - str w0, [x1, 2052] - lsr w19, w19, 16 - str w19, [x1, 2052] - str w20, [x1, 2056] - ldp x19, x20, [sp, 16] - ldp x29, x30, [sp], 48 - b nandc_de_cs.constprop.29 -.L338: - adrp x0, .LANCHOR16 - ldr x0, [x0, #:lo12:.LANCHOR16] - ldrb w0, [x0, 12] - cmp w0, 3 - bne .L340 - sxtw x0, w7 - add x0, x0, 8 - add x0, x6, x0, lsl 8 - str w21, [x0, 8] - b .L339 -.L340: - mov w0, w7 - bl zftl_flash_exit_slc_mode - b .L339 - .size flash_start_page_read, .-flash_start_page_read .section .text.flash_erase_duplane_block,"ax",@progbits .align 2 .global flash_erase_duplane_block @@ -1634,14 +1701,14 @@ flash_erase_duplane_block: stp x23, x24, [sp, 48] and w25, w1, 255 cmp w0, w19 - bhi .L346 + bhi .L362 adrp x1, .LANCHOR37 adrp x0, .LC0 - mov w2, 517 + mov w2, 588 add x1, x1, :lo12:.LANCHOR37 add x0, x0, :lo12:.LC0 bl printf -.L346: +.L362: adrp x0, .LANCHOR29 add x0, x0, :lo12:.LANCHOR29 ldrb w22, [x0, w19, sxtw] @@ -1652,21 +1719,21 @@ flash_erase_duplane_block: ldr w0, [x0, #:lo12:.LANCHOR14] add x23, x19, 8 add x23, x24, x23, lsl 8 - tbz x0, 4, .L347 + tbz x0, 4, .L363 adrp x0, .LC31 mov w3, w20 mov w2, w21 mov w1, w22 add x0, x0, :lo12:.LC31 bl printf -.L347: +.L363: bl nandc_wait_flash_ready mov w0, w22 bl nandc_cs mov w0, w22 - cbnz w25, .L348 + cbnz w25, .L364 bl zftl_flash_enter_slc_mode -.L349: +.L365: add x24, x24, x19, lsl 8 mov w0, 96 str w0, [x24, 2056] @@ -1678,7 +1745,7 @@ flash_erase_duplane_block: str w0, [x24, 2052] adrp x0, .LANCHOR38 ldrb w0, [x0, #:lo12:.LANCHOR38] - cbnz w0, .L352 + cbnz w0, .L368 mov w0, 208 str w0, [x24, 2056] mov w19, 5 @@ -1686,7 +1753,7 @@ flash_erase_duplane_block: mov x0, x23 bl flash_read_status and w5, w0, w19 -.L350: +.L366: mov w0, 96 str w0, [x24, 2056] and w0, w20, 255 @@ -1702,15 +1769,15 @@ flash_erase_duplane_block: mov x0, x23 bl flash_read_status mov w2, w0 - bl nandc_de_cs.constprop.29 + bl nandc_de_cs.constprop.28 and w19, w2, w19 orr w19, w19, w5 - cbz w19, .L351 + cbz w19, .L367 adrp x0, .LC32 mov w1, w21 add x0, x0, :lo12:.LC32 bl printf -.L351: +.L367: mov w0, w19 ldr x25, [sp, 64] ldp x19, x20, [sp, 16] @@ -1718,12 +1785,12 @@ flash_erase_duplane_block: ldp x23, x24, [sp, 48] ldp x29, x30, [sp], 80 ret -.L348: +.L364: bl zftl_flash_exit_slc_mode - b .L349 -.L352: + b .L365 +.L368: mov w5, 0 - b .L350 + b .L366 .size flash_erase_duplane_block, .-flash_erase_duplane_block .section .text.flash_erase_block_en,"ax",@progbits .align 2 @@ -1743,14 +1810,14 @@ flash_erase_block_en: stp x19, x20, [sp, 16] and w22, w2, 2097151 cmp w0, w23 - bhi .L361 + bhi .L377 adrp x1, .LANCHOR39 adrp x0, .LC0 - mov w2, 562 + mov w2, 633 add x1, x1, :lo12:.LANCHOR39 add x0, x0, :lo12:.LC0 bl printf -.L361: +.L377: adrp x0, .LANCHOR29 add x0, x0, :lo12:.LANCHOR29 ldrb w20, [x0, w23, sxtw] @@ -1761,21 +1828,21 @@ flash_erase_block_en: ldr w0, [x0, #:lo12:.LANCHOR14] add x24, x19, 8 add x24, x25, x24, lsl 8 - tbz x0, 4, .L362 + tbz x0, 4, .L378 adrp x0, .LC33 mov w3, w26 mov w2, w21 mov w1, w20 add x0, x0, :lo12:.LC33 bl printf -.L362: +.L378: bl nandc_wait_flash_ready mov w0, w20 bl nandc_cs mov w0, w20 - cbnz w26, .L363 + cbnz w26, .L379 bl zftl_flash_enter_slc_mode -.L364: +.L380: add x0, x25, x19, lsl 8 mov w1, 96 str w1, [x0, 2056] @@ -1791,10 +1858,10 @@ flash_erase_block_en: mov x0, x24 bl flash_read_status mov w19, w0 - bl nandc_de_cs.constprop.29 + bl nandc_de_cs.constprop.28 mov w0, 5 ands w19, w19, w0 - beq .L365 + beq .L381 adrp x0, .LANCHOR2 mov w3, w19 mov w1, w23 @@ -1803,7 +1870,7 @@ flash_erase_block_en: add x0, x0, :lo12:.LC34 udiv w2, w21, w2 bl printf -.L365: +.L381: mov w0, w19 ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] @@ -1811,9 +1878,9 @@ flash_erase_block_en: ldp x25, x26, [sp, 64] ldp x29, x30, [sp], 80 ret -.L363: +.L379: bl zftl_flash_exit_slc_mode - b .L364 + b .L380 .size flash_erase_block_en, .-flash_erase_block_en .section .text.flash_erase_block,"ax",@progbits .align 2 @@ -1830,8 +1897,8 @@ flash_erase_block: .type flash_erase_all, %function flash_erase_all: stp x29, x30, [sp, -80]! - adrp x0, .LANCHOR34 - add x0, x0, :lo12:.LANCHOR34 + adrp x0, .LANCHOR30 + add x0, x0, :lo12:.LANCHOR30 add x29, sp, 0 stp x19, x20, [sp, 16] mov w19, 0 @@ -1847,10 +1914,10 @@ flash_erase_all: ldrb w1, [x0, 13] mul w20, w20, w1 and w20, w20, 65535 -.L375: +.L391: ldrb w0, [x22] cmp w0, w19 - bhi .L378 + bhi .L394 ldp x19, x20, [sp, 16] mov w1, 0 ldp x21, x22, [sp, 32] @@ -1860,23 +1927,23 @@ flash_erase_all: ldr x25, [sp, 64] ldp x29, x30, [sp], 80 b printf -.L378: +.L394: add x0, x24, :lo12:.LANCHOR29 mov w21, 0 ldrb w25, [x0, w19, sxtw] -.L376: +.L392: cmp w20, w21, uxth - bhi .L377 + bhi .L393 add w19, w19, 1 and w19, w19, 65535 - b .L375 -.L377: + b .L391 +.L393: ldrh w1, [x23] mov w0, w25 mul w1, w1, w21 add w21, w21, 1 bl flash_erase_block - b .L376 + b .L392 .size flash_erase_all, .-flash_erase_all .section .text.flash_start_plane_read,"ax",@progbits .align 2 @@ -1894,23 +1961,23 @@ flash_start_plane_read: and w20, w1, 2097151 ldrb w0, [x0, #:lo12:.LANCHOR18] cmp w0, w22 - bhi .L381 + bhi .L397 adrp x1, .LANCHOR40 adrp x0, .LC0 - mov w2, 843 + mov w2, 940 add x1, x1, :lo12:.LANCHOR40 add x0, x0, :lo12:.LC0 bl printf -.L381: +.L397: adrp x0, .LANCHOR29 add x0, x0, :lo12:.LANCHOR29 - ldrb w6, [x0, w22, sxtw] + ldrb w7, [x0, w22, sxtw] adrp x0, .LANCHOR13 - ldr x8, [x0, #:lo12:.LANCHOR13] - mov w0, w6 + ldr x10, [x0, #:lo12:.LANCHOR13] + mov w0, w7 bl nandc_cs - adrp x7, .LANCHOR16 - cbnz w19, .L382 + adrp x8, .LANCHOR16 + cbnz w19, .L398 mov w0, w21 bl slc_phy_page_address_calc mov w21, w0 @@ -1919,25 +1986,25 @@ flash_start_plane_read: mov w20, w0 adrp x0, .LANCHOR0 ldrb w0, [x0, #:lo12:.LANCHOR0] - cbz w0, .L383 - mov w0, w6 + cbz w0, .L399 + mov w0, w7 bl zftl_flash_enter_slc_mode -.L383: - and x4, x6, 255 +.L399: adrp x0, .LANCHOR19 + and x4, x7, 255 add x1, x0, :lo12:.LANCHOR19 - add x4, x8, x4, lsl 8 + add x4, x10, x4, lsl 8 and w3, w21, 255 and w6, w20, 255 lsr w5, w20, 8 lsr w20, w20, 16 - ldrb w10, [x1, 8] + ldrb w11, [x1, 8] ldrb w2, [x1, 16] - str w10, [x4, 2056] + str w11, [x4, 2056] cmp w2, 1 lsr w2, w21, 8 lsr w21, w21, 16 - bne .L385 + bne .L401 str wzr, [x4, 2052] str wzr, [x4, 2052] str w3, [x4, 2052] @@ -1946,17 +2013,17 @@ flash_start_plane_read: str w21, [x4, 2052] str w0, [x4, 2056] bl nandc_wait_flash_ready - ldr x0, [x7, #:lo12:.LANCHOR16] + ldr x0, [x8, #:lo12:.LANCHOR16] ldrb w0, [x0, 12] cmp w0, 3 - bne .L386 - cbz w19, .L386 + bne .L402 + cbz w19, .L402 str w19, [x4, 2056] -.L386: +.L402: str wzr, [x4, 2056] str wzr, [x4, 2052] str wzr, [x4, 2052] -.L399: +.L415: ldp x21, x22, [sp, 32] str w6, [x4, 2052] str w5, [x4, 2052] @@ -1965,36 +2032,36 @@ flash_start_plane_read: str w0, [x4, 2056] ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 48 - b nandc_de_cs.constprop.29 -.L382: - ldr x0, [x7, #:lo12:.LANCHOR16] + b nandc_de_cs.constprop.28 +.L398: + ldr x0, [x8, #:lo12:.LANCHOR16] ldrb w0, [x0, 12] cmp w0, 3 - bne .L384 - sxtw x0, w6 + bne .L400 + sxtw x0, w7 add x0, x0, 8 - add x0, x8, x0, lsl 8 + add x0, x10, x0, lsl 8 str w19, [x0, 8] - b .L383 -.L384: - mov w0, w6 + b .L399 +.L400: + mov w0, w7 bl zftl_flash_exit_slc_mode - b .L383 -.L385: + b .L399 +.L401: str w3, [x4, 2052] - ldr x1, [x7, #:lo12:.LANCHOR16] + ldr x1, [x8, #:lo12:.LANCHOR16] str w2, [x4, 2052] str w21, [x4, 2052] ldrb w1, [x1, 12] cmp w1, 3 - bne .L388 - cbz w19, .L388 + bne .L404 + cbz w19, .L404 str w19, [x4, 2056] -.L388: +.L404: add x0, x0, :lo12:.LANCHOR19 ldrb w0, [x0, 9] str w0, [x4, 2056] - b .L399 + b .L415 .size flash_start_plane_read, .-flash_start_plane_read .section .text.flash_set_interface_mode,"ax",@progbits .align 2 @@ -2004,61 +2071,70 @@ flash_set_interface_mode: stp x29, x30, [sp, -80]! add x29, sp, 0 stp x21, x22, [sp, 32] - adrp x22, .LANCHOR42 - stp x23, x24, [sp, 48] - add x22, x22, :lo12:.LANCHOR42 - adrp x24, .LANCHOR41 - adrp x23, .LANCHOR14 - str x25, [sp, 64] - add x24, x24, :lo12:.LANCHOR41 - add x23, x23, :lo12:.LANCHOR14 - mov w25, w0 + adrp x22, .LANCHOR41 stp x19, x20, [sp, 16] - mov x21, 0 -.L410: - lsl x0, x21, 3 - ldrb w19, [x0, x24] - mov w0, 69 - cmp w19, 152 - ccmp w19, w0, 4, ne - beq .L401 - cmp w19, 44 - mov w0, 137 - ccmp w19, w0, 4, ne - bne .L402 -.L401: + adrp x21, .LANCHOR14 + stp x23, x24, [sp, 48] + adrp x20, .LANCHOR42 + mov w23, w0 + add x22, x22, :lo12:.LANCHOR41 + add x20, x20, :lo12:.LANCHOR42 + add x21, x21, :lo12:.LANCHOR14 + str x25, [sp, 64] + mov x25, 0 +.L429: adrp x0, .LANCHOR13 - ldrb w1, [x22] - cmp w25, 1 - ldr x20, [x0, #:lo12:.LANCHOR13] - bne .L403 - tbz x1, 0, .L402 - ldr w0, [x23] - tbz x0, 12, .L404 + ldr x19, [x0, #:lo12:.LANCHOR13] + lsl x0, x25, 3 + ldrb w24, [x0, x22] + cmp w24, 69 + beq .L417 + add w0, w24, 119 + cmp w24, 44 + and w1, w0, 255 + cset w2, eq + cmp w1, 18 + bhi .L430 + mov x0, 32769 + movk x0, 0x4, lsl 16 + lsr x0, x0, x1 + mvn x0, x0 +.L418: + and w0, w0, 1 + eor w0, w0, 1 + orr w0, w2, w0 + cbz w0, .L419 +.L417: + ldrb w1, [x20] + cmp w23, 1 + bne .L420 + tbz x1, 0, .L419 + ldr w0, [x21] + tbz x0, 12, .L421 adrp x0, .LC36 add x0, x0, :lo12:.LC36 bl printf -.L404: - add x0, x20, x21, lsl 8 +.L421: + add x0, x19, x25, lsl 8 mov w1, 239 - cmp w19, 44 + cmp w24, 44 str w1, [x0, 2056] mov w1, 137 - ccmp w19, w1, 4, ne + ccmp w24, w1, 4, ne mov w1, 1 - bne .L405 + bne .L422 str w1, [x0, 2052] mov w1, 5 -.L428: +.L452: str w1, [x0, 2048] -.L409: +.L427: str wzr, [x0, 2048] str wzr, [x0, 2048] str wzr, [x0, 2048] -.L402: - add x21, x21, 1 - cmp x21, 4 - bne .L410 +.L419: + add x25, x25, 1 + cmp x25, 4 + bne .L429 bl nandc_wait_flash_ready ldr x25, [sp, 64] mov w0, 0 @@ -2067,34 +2143,50 @@ flash_set_interface_mode: ldp x23, x24, [sp, 48] ldp x29, x30, [sp], 80 ret -.L405: +.L430: + mov x0, 1 + b .L418 +.L422: + cmp w24, 155 + bne .L424 + str w1, [x0, 2052] + mov w1, 3 + b .L452 +.L424: mov w2, 128 str w2, [x0, 2052] - b .L428 -.L403: - tbz x1, 2, .L402 - ldr w0, [x23] - tbz x0, 12, .L407 + b .L452 +.L420: + tbz x1, 2, .L419 + ldr w0, [x21] + tbz x0, 12, .L425 adrp x0, .LC37 add x0, x0, :lo12:.LC37 bl printf -.L407: - add x0, x20, x21, lsl 8 +.L425: + add x0, x19, x25, lsl 8 mov w1, 239 - cmp w19, 44 + cmp w24, 44 str w1, [x0, 2056] mov w1, 137 - ccmp w19, w1, 4, ne - bne .L408 + ccmp w24, w1, 4, ne + bne .L426 mov w1, 1 str w1, [x0, 2052] mov w1, 35 - b .L428 -.L408: + b .L452 +.L426: + cmp w24, 155 + bne .L428 + mov w1, 1 + str w1, [x0, 2052] + mov w1, 37 + b .L452 +.L428: mov w1, 128 str w1, [x0, 2052] str wzr, [x0, 2048] - b .L409 + b .L427 .size flash_set_interface_mode, .-flash_set_interface_mode .section .text.flash_reset,"ax",@progbits .align 2 @@ -2148,12 +2240,12 @@ flash_read_id: strb w0, [x8, 6] ldr w0, [x2, 2048] strb w0, [x8, 7] - bl nandc_de_cs.constprop.29 + bl nandc_de_cs.constprop.28 ldrb w2, [x8] sub w0, w2, #1 and w0, w0, 255 cmp w0, 253 - bhi .L430 + bhi .L454 ldrb w7, [x8, 5] add w1, w10, 1 ldrb w6, [x8, 4] @@ -2164,7 +2256,7 @@ flash_read_id: ldrb w3, [x8, 1] ldp x29, x30, [sp], 16 b printf -.L430: +.L454: ldp x29, x30, [sp], 16 ret .size flash_read_id, .-flash_read_id @@ -2175,10 +2267,10 @@ flash_read_id: flash_read_spare: stp x29, x30, [sp, -16]! mov x5, x2 - adrp x2, .LANCHOR34+9 + adrp x2, .LANCHOR30+9 ubfiz x0, x0, 8, 8 add x29, sp, 0 - ldrb w3, [x2, #:lo12:.LANCHOR34+9] + ldrb w3, [x2, #:lo12:.LANCHOR30+9] adrp x2, .LANCHOR13 ldr x4, [x2, #:lo12:.LANCHOR13] lsl w3, w3, 9 @@ -2201,6 +2293,81 @@ flash_read_spare: strb w0, [x5] ret .size flash_read_spare, .-flash_read_spare + .section .text.flash_read_otp_data,"ax",@progbits + .align 2 + .global flash_read_otp_data + .type flash_read_otp_data, %function +flash_read_otp_data: + stp x29, x30, [sp, -48]! + and w4, w0, 255 + adrp x0, .LANCHOR13 + add x29, sp, 0 + stp x19, x20, [sp, 16] + mov w20, w1 + ldr x19, [x0, #:lo12:.LANCHOR13] + mov w0, w4 + str x21, [sp, 32] + mov x21, x2 + bl nandc_cs + ubfiz x4, x4, 8, 8 + add x19, x19, x4 + mov w0, 239 + mov w4, 144 + str w0, [x19, 2056] + mov w0, 50 + str w4, [x19, 2052] + bl timer_delay_ns + mov w0, 1 + str w0, [x19, 2048] + str wzr, [x19, 2048] + str wzr, [x19, 2048] + str wzr, [x19, 2048] + bl nandc_wait_flash_ready + mov w0, 238 + str w0, [x19, 2056] + str w4, [x19, 2052] + mov w1, w20 + adrp x0, .LC39 + add x0, x0, :lo12:.LC39 + ldr w2, [x19, 2048] + ldr w3, [x19, 2048] + ldr w4, [x19, 2048] + bl printf + bl nandc_wait_flash_ready + str wzr, [x19, 2056] + str wzr, [x19, 2052] + and w0, w20, 255 + str wzr, [x19, 2052] + str w0, [x19, 2052] + lsr w0, w20, 8 + str w0, [x19, 2052] + lsr w20, w20, 16 + str w20, [x19, 2052] + mov w0, 48 + str w0, [x19, 2056] + bl nandc_wait_flash_ready + mov x0, 0 +.L460: + ldr w1, [x19, 2048] + strb w1, [x21, x0] + add x0, x0, 1 + cmp x0, 16384 + bne .L460 + mov w0, 239 + str w0, [x19, 2056] + mov w0, 144 + str w0, [x19, 2052] + mov w0, 50 + bl timer_delay_ns + ldr x21, [sp, 32] + str wzr, [x19, 2048] + str wzr, [x19, 2048] + str wzr, [x19, 2048] + str wzr, [x19, 2048] + ldp x19, x20, [sp, 16] + ldp x29, x30, [sp], 48 + b nandc_de_cs.constprop.28 + .size flash_read_otp_data, .-flash_read_otp_data .section .text.sandisk_prog_test_bad_block,"ax",@progbits .align 2 .global sandisk_prog_test_bad_block @@ -2212,14 +2379,14 @@ sandisk_prog_test_bad_block: and x2, x0, 255 add x29, sp, 0 ldr x4, [x1, #:lo12:.LANCHOR13] - adrp x1, .LANCHOR34+29 + adrp x1, .LANCHOR30+29 str x19, [sp, 16] mov x0, x2 - ldrb w1, [x1, #:lo12:.LANCHOR34+29] + ldrb w1, [x1, #:lo12:.LANCHOR30+29] add x2, x2, 8 add x2, x4, x2, lsl 8 - cbz w1, .L436 -.L446: + cbz w1, .L464 +.L474: ubfiz x0, x0, 8, 8 str w1, [x2, 8] add x4, x4, x0 @@ -2243,22 +2410,22 @@ sandisk_prog_test_bad_block: ldr w2, [x4, 2048] mov w0, 5 ands w19, w2, w0 - beq .L435 + beq .L463 adrp x0, .LANCHOR14 ldr w0, [x0, #:lo12:.LANCHOR14] - tbz x0, 12, .L435 - adrp x0, .LC39 + tbz x0, 12, .L463 + adrp x0, .LC40 mov w1, w5 - add x0, x0, :lo12:.LC39 + add x0, x0, :lo12:.LC40 bl printf -.L435: +.L463: mov w0, w19 ldr x19, [sp, 16] ldp x29, x30, [sp], 32 ret -.L436: +.L464: mov w1, 162 - b .L446 + b .L474 .size sandisk_prog_test_bad_block, .-sandisk_prog_test_bad_block .section .text.nandc_rdy_status,"ax",@progbits .align 2 @@ -2288,48 +2455,48 @@ nandc_bch_sel: cmp w2, 9 adrp x2, .LANCHOR13 ldr x2, [x2, #:lo12:.LANCHOR13] - bne .L450 + bne .L478 str w1, [x2, 16] cmp w0, 70 - beq .L457 + beq .L485 cmp w0, 60 - beq .L458 + beq .L486 cmp w0, 40 cset w1, eq add w1, w1, 1 -.L451: +.L479: lsl w1, w1, 25 orr w1, w1, 1 str w1, [x2, 32] ret -.L457: +.L485: mov w1, 0 - b .L451 -.L458: + b .L479 +.L486: mov w1, 3 - b .L451 -.L450: + b .L479 +.L478: str w1, [x2, 8] cmp w0, 16 mov w1, 4096 - bne .L453 -.L456: + bne .L481 +.L484: and w1, w1, -17 -.L454: +.L482: orr w1, w1, 1 str w1, [x2, 12] ret -.L453: +.L481: cmp w0, 24 - bne .L455 + bne .L483 orr w1, w1, 16 - b .L454 -.L455: + b .L482 +.L483: orr w1, w1, 262144 cmp w0, 40 orr w1, w1, 16 - bne .L454 - b .L456 + bne .L482 + b .L484 .size nandc_bch_sel, .-nandc_bch_sel .section .text.zftl_nandc_get_irq_status,"ax",@progbits .align 2 @@ -2339,10 +2506,10 @@ zftl_nandc_get_irq_status: adrp x1, .LANCHOR27 ldrb w1, [x1, #:lo12:.LANCHOR27] cmp w1, 9 - bne .L464 + bne .L492 ldr w0, [x0, 296] ret -.L464: +.L492: ldr w0, [x0, 372] ret .size zftl_nandc_get_irq_status, .-zftl_nandc_get_irq_status @@ -2385,7 +2552,7 @@ nandc_xfer_start: ldrb w0, [x0, #:lo12:.LANCHOR27] adrp x24, .LANCHOR13 cmp w0, 9 - bne .L470 + bne .L498 ubfiz w19, w23, 1, 1 mov w0, 1 orr w19, w19, 8 @@ -2398,13 +2565,13 @@ nandc_xfer_start: and w19, w19, -17 bfi w19, w20, 22, 6 orr w19, w19, 128 - cbz w0, .L471 + cbz w0, .L499 adrp x0, .LANCHOR45 ldrb w1, [x0, #:lo12:.LANCHOR45] orr w0, w19, 512 cmp w1, 0 csel w19, w0, w19, ne -.L471: +.L499: add x21, x4, :lo12:.LANCHOR46 add x0, x2, 63 and w20, w20, 63 @@ -2447,13 +2614,13 @@ nandc_xfer_start: str w19, [x1, 16] orr w19, w19, 4 str w19, [x1, 16] -.L469: +.L497: ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x23, x24, [sp, 48] ldp x29, x30, [sp], 64 ret -.L470: +.L498: ldr x0, [x24, #:lo12:.LANCHOR13] ubfiz w19, w23, 1, 1 orr w19, w19, 8 @@ -2469,7 +2636,7 @@ nandc_xfer_start: orr w19, w19, 1024 and w19, w19, -17 bfi w19, w20, 22, 6 - cbz w23, .L473 + cbz w23, .L501 adrp x0, .LANCHOR43 ubfx x1, x1, 1, 7 ldr x8, [x4, #:lo12:.LANCHOR46] @@ -2480,11 +2647,11 @@ nandc_xfer_start: mov w0, 64 csel w5, w5, w0, hi mov w0, 0 -.L475: +.L503: add w7, w5, w0 cmp x3, x1 - bne .L476 -.L477: + bne .L504 +.L505: add x21, x4, :lo12:.LANCHOR46 ldr x0, [x4, #:lo12:.LANCHOR46] and w20, w20, 63 @@ -2520,8 +2687,8 @@ nandc_xfer_start: str w19, [x1, 8] orr w19, w19, 4 str w19, [x1, 8] - b .L469 -.L476: + b .L497 +.L504: ldrh w10, [x3] and x0, x0, 4294967292 ldrh w6, [x3, 2] @@ -2529,11 +2696,11 @@ nandc_xfer_start: orr x6, x10, x6, lsl 16 str w6, [x8, x0] mov w0, w7 - b .L475 -.L473: + b .L503 +.L501: ldr x1, [x4, #:lo12:.LANCHOR46] str w0, [x1] - b .L477 + b .L505 .size nandc_xfer_start, .-nandc_xfer_start .section .text.nandc_set_seed,"ax",@progbits .align 2 @@ -2554,10 +2721,10 @@ nandc_set_seed: cmp w1, 9 adrp x1, .LANCHOR13 ldr x1, [x1, #:lo12:.LANCHOR13] - bne .L487 + bne .L515 str w0, [x1, 520] ret -.L487: +.L515: str w0, [x1, 336] ret .size nandc_set_seed, .-nandc_set_seed @@ -2570,29 +2737,37 @@ zftl_flash_de_init: add x29, sp, 0 str x19, [sp, 16] bl nandc_wait_flash_ready + adrp x0, .LANCHOR0 + ldrb w0, [x0, #:lo12:.LANCHOR0] + cbz w0, .L520 + adrp x0, .LANCHOR49 + ldrb w0, [x0, #:lo12:.LANCHOR49] + cbnz w0, .L520 + bl zftl_flash_exit_slc_mode +.L520: adrp x19, .LANCHOR20 mov w0, 0 bl hynix_reconfig_rr_para ldrb w0, [x19, #:lo12:.LANCHOR20] - cbz w0, .L492 + cbz w0, .L521 adrp x0, .LANCHOR42 ldrb w0, [x0, #:lo12:.LANCHOR42] - tbz x0, 0, .L492 + tbz x0, 0, .L521 mov w0, 1 bl flash_set_interface_mode mov w0, 1 bl nandc_set_if_mode strb wzr, [x19, #:lo12:.LANCHOR20] -.L492: +.L521: adrp x3, .LANCHOR45 ldrb w0, [x3, #:lo12:.LANCHOR45] - cbz w0, .L493 + cbz w0, .L522 mov w0, 0 strb wzr, [x3, #:lo12:.LANCHOR45] bl nandc_set_seed mov w0, 1 strb w0, [x3, #:lo12:.LANCHOR45] -.L493: +.L522: mov w0, 0 ldr x19, [sp, 16] ldp x29, x30, [sp], 32 @@ -2624,10 +2799,10 @@ nandc_get_chip_if: .global buf_reinit .type buf_reinit, %function buf_reinit: - adrp x0, .LANCHOR49 - add x1, x0, :lo12:.LANCHOR49 + adrp x0, .LANCHOR50 + add x1, x0, :lo12:.LANCHOR50 mov w2, 0 -.L507: +.L539: and w3, w2, 255 strb wzr, [x1, 2] add w4, w3, 1 @@ -2637,14 +2812,14 @@ buf_reinit: str xzr, [x1, 16] cmp w2, 32 add x1, x1, 64 - bne .L507 - add x0, x0, :lo12:.LANCHOR49 + bne .L539 + add x0, x0, :lo12:.LANCHOR50 mov w1, -1 strb w1, [x0, 1984] - adrp x0, .LANCHOR50 - strb wzr, [x0, #:lo12:.LANCHOR50] adrp x0, .LANCHOR51 - strb w2, [x0, #:lo12:.LANCHOR51] + strb wzr, [x0, #:lo12:.LANCHOR51] + adrp x0, .LANCHOR52 + strb w2, [x0, #:lo12:.LANCHOR52] ret .size buf_reinit, .-buf_reinit .section .text.buf_add_tail,"ax",@progbits @@ -2662,49 +2837,49 @@ buf_add_tail: mov x20, x1 ldrb w1, [x19] cmp w1, 255 - bne .L515 + bne .L547 ldrb w0, [x20, 1] cmp w0, 255 - bne .L511 - adrp x1, .LANCHOR52 + bne .L543 + adrp x1, .LANCHOR53 adrp x0, .LC0 mov w2, 74 - add x1, x1, :lo12:.LANCHOR52 + add x1, x1, :lo12:.LANCHOR53 add x0, x0, :lo12:.LC0 bl printf -.L511: +.L543: ldrb w0, [x20, 1] strb w0, [x19] -.L509: +.L541: ldp x19, x20, [sp, 16] ldr x21, [sp, 32] ldp x29, x30, [sp], 48 ret -.L515: - adrp x0, .LANCHOR49 - add x2, x0, :lo12:.LANCHOR49 +.L547: + adrp x0, .LANCHOR50 + add x2, x0, :lo12:.LANCHOR50 mov x19, x0 -.L516: +.L548: sbfiz x0, x1, 6, 32 mov w21, w1 ldrb w1, [x2, x0] cmp w1, 255 - bne .L516 + bne .L548 ldrb w0, [x20, 1] cmp w0, 255 - bne .L513 - adrp x1, .LANCHOR52 + bne .L545 + adrp x1, .LANCHOR53 adrp x0, .LC0 mov w2, 81 - add x1, x1, :lo12:.LANCHOR52 + add x1, x1, :lo12:.LANCHOR53 add x0, x0, :lo12:.LC0 bl printf -.L513: - add x0, x19, :lo12:.LANCHOR49 +.L545: + add x0, x19, :lo12:.LANCHOR50 sbfiz x21, x21, 6, 32 ldrb w1, [x20, 1] strb w1, [x0, x21] - b .L509 + b .L541 .size buf_add_tail, .-buf_add_tail .section .text.queue_read_cmd,"ax",@progbits .align 2 @@ -2723,9 +2898,9 @@ queue_read_cmd: mov w0, -1 strb w0, [x19] mov x1, x19 - adrp x0, .LANCHOR53 + adrp x0, .LANCHOR54 ldr x19, [sp, 16] - add x0, x0, :lo12:.LANCHOR53 + add x0, x0, :lo12:.LANCHOR54 ldp x29, x30, [sp], 32 b buf_add_tail .size queue_read_cmd, .-queue_read_cmd @@ -2735,33 +2910,33 @@ queue_read_cmd: .type buf_free, %function buf_free: ldrb w1, [x0, 2] - adrp x2, .LANCHOR50 + adrp x2, .LANCHOR51 and w1, w1, 8 strb w1, [x0, 2] - cbz w1, .L521 + cbz w1, .L553 ldr w1, [x0, 36] cmn w1, #1 - beq .L521 + beq .L553 stp x29, x30, [sp, -16]! mov x1, x0 - add x0, x2, :lo12:.LANCHOR50 + add x0, x2, :lo12:.LANCHOR51 add x29, sp, 0 bl buf_add_tail - adrp x1, .LANCHOR51 + adrp x1, .LANCHOR52 ldp x29, x30, [sp], 16 - ldrb w0, [x1, #:lo12:.LANCHOR51] + ldrb w0, [x1, #:lo12:.LANCHOR52] add w0, w0, 1 - strb w0, [x1, #:lo12:.LANCHOR51] + strb w0, [x1, #:lo12:.LANCHOR52] ret -.L521: - ldrb w1, [x2, #:lo12:.LANCHOR50] +.L553: + ldrb w1, [x2, #:lo12:.LANCHOR51] strb w1, [x0] - adrp x1, .LANCHOR51 + adrp x1, .LANCHOR52 ldrb w0, [x0, 1] - strb w0, [x2, #:lo12:.LANCHOR50] - ldrb w0, [x1, #:lo12:.LANCHOR51] + strb w0, [x2, #:lo12:.LANCHOR51] + ldrb w0, [x1, #:lo12:.LANCHOR52] add w0, w0, 1 - strb w0, [x1, #:lo12:.LANCHOR51] + strb w0, [x1, #:lo12:.LANCHOR52] ret .size buf_free, .-buf_free .section .text.buf_alloc,"ax",@progbits @@ -2772,29 +2947,29 @@ buf_alloc: stp x29, x30, [sp, -32]! add x29, sp, 0 stp x19, x20, [sp, 16] - adrp x19, .LANCHOR51 + adrp x19, .LANCHOR52 and w20, w0, 255 - ldrb w0, [x19, #:lo12:.LANCHOR51] - cbz w0, .L534 -.L537: - adrp x2, .LANCHOR50 - adrp x1, .LANCHOR49 - add x0, x1, :lo12:.LANCHOR49 - ldrb w3, [x2, #:lo12:.LANCHOR50] + ldrb w0, [x19, #:lo12:.LANCHOR52] + cbz w0, .L566 +.L569: + adrp x2, .LANCHOR51 + adrp x1, .LANCHOR50 + add x0, x1, :lo12:.LANCHOR50 + ldrb w3, [x2, #:lo12:.LANCHOR51] ubfiz x4, x3, 6, 8 add x0, x0, x4 mov x4, x2 - cbz w20, .L535 -.L536: - add x1, x1, :lo12:.LANCHOR49 + cbz w20, .L567 +.L568: + add x1, x1, :lo12:.LANCHOR50 sbfiz x3, x3, 6, 32 add x2, x1, x3 ldrb w5, [x1, x3] - strb w5, [x4, #:lo12:.LANCHOR50] - ldrb w4, [x19, #:lo12:.LANCHOR51] + strb w5, [x4, #:lo12:.LANCHOR51] + ldrb w4, [x19, #:lo12:.LANCHOR52] strh wzr, [x2, 50] sub w4, w4, #1 - strb w4, [x19, #:lo12:.LANCHOR51] + strb w4, [x19, #:lo12:.LANCHOR52] mov w4, 1 strb wzr, [x2, 56] strb w4, [x2, 2] @@ -2804,27 +2979,27 @@ buf_alloc: mov w1, -1 str xzr, [x2, 16] str w1, [x2, 36] - b .L533 -.L534: + b .L565 +.L566: mov w2, 121 - adrp x1, .LANCHOR54 + adrp x1, .LANCHOR55 adrp x0, .LC0 - add x1, x1, :lo12:.LANCHOR54 + add x1, x1, :lo12:.LANCHOR55 add x0, x0, :lo12:.LC0 bl printf - ldrb w0, [x19, #:lo12:.LANCHOR51] - cbnz w0, .L537 -.L539: + ldrb w0, [x19, #:lo12:.LANCHOR52] + cbnz w0, .L569 +.L571: mov x0, 0 -.L533: +.L565: ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 32 ret -.L535: - ldrb w2, [x19, #:lo12:.LANCHOR51] +.L567: + ldrb w2, [x19, #:lo12:.LANCHOR52] cmp w2, 1 - bne .L536 - b .L539 + bne .L568 + b .L571 .size buf_alloc, .-buf_alloc .section .text.buf_remove_buf,"ax",@progbits .align 2 @@ -2834,30 +3009,30 @@ buf_remove_buf: ldrb w4, [x1, 1] ldrb w2, [x0] cmp w4, w2 - bne .L547 + bne .L579 ldrb w1, [x1] strb w1, [x0] -.L551: +.L583: mov w0, 1 ret -.L548: +.L580: mov w3, w2 sbfiz x2, x2, 6, 32 ldrb w2, [x0, x2] cmp w4, w2 - bne .L549 + bne .L581 sbfiz x3, x3, 6, 32 ldrb w2, [x1] strb w2, [x0, x3] mov w0, -1 strb w0, [x1] - b .L551 -.L547: - adrp x0, .LANCHOR49 - add x0, x0, :lo12:.LANCHOR49 -.L549: + b .L583 +.L579: + adrp x0, .LANCHOR50 + add x0, x0, :lo12:.LANCHOR50 +.L581: cmp w2, 255 - bne .L548 + bne .L580 mov w0, 0 ret .size buf_remove_buf, .-buf_remove_buf @@ -2869,32 +3044,32 @@ buf_remove_free: stp x29, x30, [sp, -32]! add x29, sp, 0 stp x19, x20, [sp, 16] - adrp x19, .LANCHOR51 + adrp x19, .LANCHOR52 mov x20, x0 - ldrb w0, [x19, #:lo12:.LANCHOR51] - cbnz w0, .L553 - adrp x1, .LANCHOR55 + ldrb w0, [x19, #:lo12:.LANCHOR52] + cbnz w0, .L585 + adrp x1, .LANCHOR56 adrp x0, .LC0 mov w2, 172 - add x1, x1, :lo12:.LANCHOR55 + add x1, x1, :lo12:.LANCHOR56 add x0, x0, :lo12:.LC0 bl printf -.L553: - ldrb w0, [x19, #:lo12:.LANCHOR51] - cbz w0, .L552 +.L585: + ldrb w0, [x19, #:lo12:.LANCHOR52] + cbz w0, .L584 mov x1, x20 - adrp x0, .LANCHOR50 - add x0, x0, :lo12:.LANCHOR50 + adrp x0, .LANCHOR51 + add x0, x0, :lo12:.LANCHOR51 bl buf_remove_buf cmp w0, 1 - bne .L552 - ldrb w0, [x19, #:lo12:.LANCHOR51] + bne .L584 + ldrb w0, [x19, #:lo12:.LANCHOR52] sub w0, w0, #1 - strb w0, [x19, #:lo12:.LANCHOR51] + strb w0, [x19, #:lo12:.LANCHOR52] ldrb w0, [x20, 2] orr w0, w0, 1 strb w0, [x20, 2] -.L552: +.L584: ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 32 ret @@ -2904,8 +3079,8 @@ buf_remove_free: .global flash_check_bad_block .type flash_check_bad_block, %function flash_check_bad_block: - adrp x3, .LANCHOR34 - add x3, x3, :lo12:.LANCHOR34 + adrp x3, .LANCHOR30 + add x3, x3, :lo12:.LANCHOR30 and w5, w0, 255 lsr w4, w1, 5 and w1, w1, 31 @@ -2936,14 +3111,14 @@ flash_mask_bad_block: add x29, sp, 0 str x21, [sp, 32] and w21, w0, 255 - adrp x0, .LANCHOR34 - add x0, x0, :lo12:.LANCHOR34 + adrp x0, .LANCHOR30 + add x0, x0, :lo12:.LANCHOR30 stp x19, x20, [sp, 16] mov w20, w1 ldrh w19, [x0, 14] ldrb w1, [x0, 13] - adrp x0, .LC40 - add x0, x0, :lo12:.LC40 + adrp x0, .LC41 + add x0, x0, :lo12:.LC41 mul w19, w19, w1 mov w1, w21 bl printf @@ -2979,15 +3154,15 @@ ftl_gc_write_buf: orr w1, w1, 2 strb w1, [x0, 2] mov x1, x0 - adrp x0, .LANCHOR56 - add x0, x0, :lo12:.LANCHOR56 + adrp x0, .LANCHOR57 + add x0, x0, :lo12:.LANCHOR57 bl buf_add_tail - adrp x1, .LANCHOR57 + adrp x1, .LANCHOR58 ldp x29, x30, [sp], 16 - ldrb w0, [x1, #:lo12:.LANCHOR57] + ldrb w0, [x1, #:lo12:.LANCHOR58] add w0, w0, 1 and w0, w0, 255 - strb w0, [x1, #:lo12:.LANCHOR57] + strb w0, [x1, #:lo12:.LANCHOR58] ret .size ftl_gc_write_buf, .-ftl_gc_write_buf .section .text.zftl_cache_flush,"ax",@progbits @@ -3002,11 +3177,11 @@ zftl_cache_flush: .global zftl_get_density .type zftl_get_density, %function zftl_get_density: - cbnz w0, .L565 - adrp x0, .LANCHOR58 - ldr w0, [x0, #:lo12:.LANCHOR58] + cbnz w0, .L597 + adrp x0, .LANCHOR59 + ldr w0, [x0, #:lo12:.LANCHOR59] ret -.L565: +.L597: cmp w0, 4 cset w0, cc lsl w0, w0, 13 @@ -3031,8 +3206,8 @@ vpn_check: .global FtlGetCurEraseBlock .type FtlGetCurEraseBlock, %function FtlGetCurEraseBlock: - adrp x0, .LANCHOR59 - ldrh w0, [x0, #:lo12:.LANCHOR59] + adrp x0, .LANCHOR60 + ldrh w0, [x0, #:lo12:.LANCHOR60] ret .size FtlGetCurEraseBlock, .-FtlGetCurEraseBlock .section .text.FtlGetAllBlockNum,"ax",@progbits @@ -3070,14 +3245,14 @@ gc_add_sblk: stp x21, x22, [sp, 32] str x27, [sp, 80] cmp w0, w20 - bhi .L574 - adrp x1, .LANCHOR60 + bhi .L606 + adrp x1, .LANCHOR61 adrp x0, .LC0 - mov w2, 259 - add x1, x1, :lo12:.LANCHOR60 + mov w2, 339 + add x1, x1, :lo12:.LANCHOR61 add x0, x0, :lo12:.LC0 bl printf -.L574: +.L606: adrp x22, .LANCHOR9 uxtw x19, w20 lsl x26, x19, 1 @@ -3086,127 +3261,127 @@ gc_add_sblk: adrp x27, .LANCHOR7 ldrh w21, [x0, x26] ldr w0, [x23, #:lo12:.LANCHOR14] - tbz x0, 8, .L575 + tbz x0, 8, .L607 ldr x0, [x27, #:lo12:.LANCHOR7] mov w4, w21 mov w2, w24 mov w1, w20 add x0, x0, x19, lsl 2 ldrb w3, [x0, 2] - adrp x0, .LANCHOR61 - ldrh w6, [x0, #:lo12:.LANCHOR61] - adrp x0, .LANCHOR62+56 + adrp x0, .LANCHOR62 + ldrh w6, [x0, #:lo12:.LANCHOR62] + adrp x0, .LANCHOR63+56 ubfx x3, x3, 5, 3 - ldrh w5, [x0, #:lo12:.LANCHOR62+56] - adrp x0, .LC41 - add x0, x0, :lo12:.LC41 + ldrh w5, [x0, #:lo12:.LANCHOR63+56] + adrp x0, .LC42 + add x0, x0, :lo12:.LC42 bl printf -.L575: +.L607: ldr x0, [x27, #:lo12:.LANCHOR7] add x19, x0, x19, lsl 2 ldrb w2, [x19, 2] tst w2, 224 - bne .L576 - cbz w21, .L596 - adrp x1, .LANCHOR60 + bne .L608 + cbz w21, .L628 + adrp x1, .LANCHOR61 adrp x0, .LC0 - mov w2, 264 - add x1, x1, :lo12:.LANCHOR60 + mov w2, 344 + add x1, x1, :lo12:.LANCHOR61 add x0, x0, :lo12:.LC0 bl printf -.L596: +.L628: mov w0, 0 - b .L573 -.L576: - adrp x0, .LANCHOR62 - add x1, x0, :lo12:.LANCHOR62 - ldrh w0, [x0, #:lo12:.LANCHOR62] + b .L605 +.L608: + adrp x0, .LANCHOR63 + add x1, x0, :lo12:.LANCHOR63 + ldrh w0, [x0, #:lo12:.LANCHOR63] cmp w0, w20 - beq .L596 + beq .L628 adrp x21, .LANCHOR10 ldr x0, [x21, #:lo12:.LANCHOR10] ldrh w3, [x0, 48] cmp w3, w20 - beq .L596 + beq .L628 ldrh w3, [x0, 16] cmp w3, w20 - beq .L596 + beq .L628 ldrh w3, [x0, 80] cmp w3, w20 - beq .L596 + beq .L628 ldrh w4, [x1, 56] add x1, x1, 58 mov w3, 0 -.L578: +.L610: cmp w3, w4 - bcc .L579 - cbnz w24, .L583 - adrp x1, .LANCHOR63 - ldrh w5, [x1, #:lo12:.LANCHOR63] + bcc .L611 + cbnz w24, .L615 + adrp x1, .LANCHOR64 + ldrh w5, [x1, #:lo12:.LANCHOR64] cmp w20, w5 - beq .L596 - adrp x3, .LANCHOR64 - add x3, x3, :lo12:.LANCHOR64 + beq .L628 + adrp x3, .LANCHOR65 + add x3, x3, :lo12:.LANCHOR65 mov x1, 0 -.L582: +.L614: ldrh w6, [x1, x3] cmp w20, w6 - bne .L581 + bne .L613 ldr w0, [x23, #:lo12:.LANCHOR14] - tbz x0, 8, .L596 + tbz x0, 8, .L628 ldr x0, [x22, #:lo12:.LANCHOR9] mov w4, w20 ubfx x2, x2, 5, 3 mov w1, w20 ldrh w3, [x0, x26] - adrp x0, .LC42 - add x0, x0, :lo12:.LC42 + adrp x0, .LC43 + add x0, x0, :lo12:.LC43 bl printf - b .L596 -.L579: + b .L628 +.L611: ldrh w5, [x1], 2 cmp w5, w20 - beq .L596 + beq .L628 add w3, w3, 1 - b .L578 -.L581: + b .L610 +.L613: add x1, x1, 2 cmp x1, 16 - bne .L582 + bne .L614 ubfiz x19, x25, 7, 16 add x19, x19, 136 add x19, x0, x19 -.L584: +.L616: ldr w0, [x23, #:lo12:.LANCHOR14] - tbz x0, 8, .L585 + tbz x0, 8, .L617 ldr x0, [x22, #:lo12:.LANCHOR9] - adrp x1, .LANCHOR61 + adrp x1, .LANCHOR62 mov w5, w4 ubfx x3, x2, 5, 3 - ldrh w6, [x1, #:lo12:.LANCHOR61] + ldrh w6, [x1, #:lo12:.LANCHOR62] mov w2, w24 mov w1, w20 ldrh w4, [x0, x26] - adrp x0, .LC41 - add x0, x0, :lo12:.LC41 + adrp x0, .LC42 + add x0, x0, :lo12:.LC42 bl printf -.L585: +.L617: mov x0, x19 add x1, x19, 128 mov w2, 65535 -.L588: +.L620: ldrh w3, [x0] cmp w3, w2 - bne .L586 + bne .L618 strh w20, [x0] - cbz w24, .L587 + cbz w24, .L619 ldr x1, [x21, #:lo12:.LANCHOR10] ldrh w0, [x1, 124] add w0, w0, 1 strh w0, [x1, 124] -.L606: +.L638: mov w0, 1 -.L573: +.L605: ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x23, x24, [sp, 48] @@ -3214,30 +3389,30 @@ gc_add_sblk: ldr x27, [sp, 80] ldp x29, x30, [sp], 96 ret -.L583: +.L615: add x19, x0, 392 - b .L584 -.L587: + b .L616 +.L619: ldr x0, [x21, #:lo12:.LANCHOR10] add x25, x0, x25, uxth 1 ldrh w0, [x25, 120] add w0, w0, 1 strh w0, [x25, 120] - b .L606 -.L586: + b .L638 +.L618: add x0, x0, 2 cmp x1, x0 - bne .L588 - b .L606 + bne .L620 + b .L638 .size gc_add_sblk, .-gc_add_sblk .section .text.gc_get_src_ppa_from_index,"ax",@progbits .align 2 .global gc_get_src_ppa_from_index .type gc_get_src_ppa_from_index, %function gc_get_src_ppa_from_index: - adrp x1, .LANCHOR65 + adrp x1, .LANCHOR66 ubfiz x0, x0, 2, 16 - ldr x1, [x1, #:lo12:.LANCHOR65] + ldr x1, [x1, #:lo12:.LANCHOR66] ldr w0, [x1, x0] ret .size gc_get_src_ppa_from_index, .-gc_get_src_ppa_from_index @@ -3248,19 +3423,19 @@ gc_get_src_ppa_from_index: gc_write_completed: stp x29, x30, [sp, -96]! add x29, sp, 0 - stp x23, x24, [sp, 48] - adrp x23, .LANCHOR66 stp x21, x22, [sp, 32] - adrp x24, .LANCHOR49 - add x23, x23, :lo12:.LANCHOR66 - add x22, x24, :lo12:.LANCHOR49 + adrp x22, .LANCHOR67 + stp x23, x24, [sp, 48] + add x22, x22, :lo12:.LANCHOR67 + adrp x23, .LANCHOR50 + add x21, x23, :lo12:.LANCHOR50 stp x19, x20, [sp, 16] stp x25, x26, [sp, 64] stp x27, x28, [sp, 80] -.L609: - ldrb w19, [x23] - cmp w19, 255 - bne .L620 +.L641: + ldrb w0, [x22] + cmp w0, 255 + bne .L654 ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x23, x24, [sp, 48] @@ -3268,117 +3443,138 @@ gc_write_completed: ldp x27, x28, [sp, 80] ldp x29, x30, [sp], 96 ret -.L620: - lsl x1, x19, 6 - add x0, x24, :lo12:.LANCHOR49 - add x2, x0, x1 - ldrb w0, [x0, x1] +.L654: + sxtw x26, w0 + add x1, x23, :lo12:.LANCHOR50 + lsl x3, x26, 6 + add x2, x1, x3 + ldrb w0, [x1, x3] ldr w1, [x2, 52] - strb w0, [x23] - ldrh w25, [x2, 48] - cbz w1, .L610 + strb w0, [x22] + ldrh w24, [x2, 48] + cbz w1, .L642 ldr w2, [x2, 40] - adrp x0, .LANCHOR62 - add x0, x0, :lo12:.LANCHOR62 + adrp x0, .LANCHOR63 + add x0, x0, :lo12:.LANCHOR63 mov w3, 1 str w2, [x0, 324] strh w3, [x0, 320] - adrp x0, .LC43 - add x0, x0, :lo12:.LC43 + adrp x0, .LC44 + add x0, x0, :lo12:.LC44 bl printf - adrp x1, .LANCHOR67 + adrp x1, .LANCHOR68 adrp x0, .LC0 - mov w2, 545 - add x1, x1, :lo12:.LANCHOR67 + mov w2, 625 + add x1, x1, :lo12:.LANCHOR68 add x0, x0, :lo12:.LC0 bl printf -.L610: - adrp x26, .LANCHOR68 - ldrb w0, [x26, #:lo12:.LANCHOR68] +.L642: + adrp x25, .LANCHOR69 + ldrb w0, [x25, #:lo12:.LANCHOR69] cmp w0, 3 - bne .L621 + bne .L643 adrp x0, .LANCHOR10 ldr x0, [x0, #:lo12:.LANCHOR10] - ldrb w20, [x0, 89] - add w20, w20, w20, lsl 1 - and w20, w20, 1023 -.L611: + ldrb w19, [x0, 89] + add w19, w19, w19, lsl 1 + and w19, w19, 1023 +.L644: adrp x0, .LANCHOR14 - adrp x28, .LANCHOR69 - and x21, x25, 65535 + adrp x28, .LANCHOR72 + and x20, x24, 65535 ldr w0, [x0, #:lo12:.LANCHOR14] - tbz x0, 8, .L612 - ldr x1, [x28, #:lo12:.LANCHOR69] - add x0, x22, x19, lsl 6 - mov w3, w25 + tbz x0, 8, .L645 + ldr x1, [x28, #:lo12:.LANCHOR72] + add x0, x21, x26, lsl 6 + mov w3, w24 ldrb w2, [x0, 1] - adrp x0, .LC44 - ldrb w4, [x1, x21] - add x0, x0, :lo12:.LC44 - mov w1, w25 + adrp x0, .LC45 + ldrb w4, [x1, x20] + add x0, x0, :lo12:.LC45 + mov w1, w24 bl printf -.L612: - ldr x1, [x28, #:lo12:.LANCHOR69] - add x0, x22, x19, lsl 6 - mov x27, x21 +.L645: + ldr x1, [x28, #:lo12:.LANCHOR72] + add x0, x21, x26, lsl 6 + mov x27, x20 ldrb w0, [x0, 1] - ldrb w1, [x1, x21] + ldrb w1, [x1, x20] cmp w1, w0 - beq .L613 - adrp x1, .LANCHOR67 + beq .L646 + adrp x1, .LANCHOR68 adrp x0, .LC0 - mov w2, 552 - add x1, x1, :lo12:.LANCHOR67 + mov w2, 634 + add x1, x1, :lo12:.LANCHOR68 add x0, x0, :lo12:.LC0 bl printf -.L613: - add x19, x22, x19, lsl 6 - ldrb w0, [x19, 61] +.L646: + add x0, x21, x26, lsl 6 + ldrb w0, [x0, 61] cmp w0, 3 - beq .L614 - ldrb w0, [x26, #:lo12:.LANCHOR68] + beq .L647 + ldrb w0, [x25, #:lo12:.LANCHOR69] cmp w0, 3 - bne .L614 + bne .L647 + adrp x0, .LANCHOR73 + ldrb w0, [x0, #:lo12:.LANCHOR73] + cbnz w0, .L647 adrp x0, .LANCHOR70 ldrb w0, [x0, #:lo12:.LANCHOR70] - cbnz w0, .L614 - ldr x1, [x28, #:lo12:.LANCHOR69] + cbz w0, .L648 + adrp x0, .LANCHOR71 + ldrb w0, [x0, #:lo12:.LANCHOR71] + cbnz w0, .L647 +.L648: + ldr x1, [x28, #:lo12:.LANCHOR72] mov x0, 0 - add x21, x1, x21 -.L615: - cmp w20, w0, uxth - bls .L609 - ldrb w1, [x21, x0] + add x20, x1, x20 +.L649: + cmp w19, w0, uxth + bls .L641 + ldrb w1, [x20, x0] add x0, x0, 1 - add x1, x22, x1, lsl 6 + add x1, x21, x1, lsl 6 strb wzr, [x1, 61] - b .L615 -.L621: - mov w20, 1 - b .L611 -.L614: - adrp x19, .LANCHOR62 - add x19, x19, :lo12:.LANCHOR62 - add x20, x21, x20, uxth - mov w21, -1 - strh w25, [x19, 316] -.L616: - cmp x20, x27 - beq .L609 - ldr x1, [x28, #:lo12:.LANCHOR69] + b .L649 +.L643: + adrp x0, .LANCHOR70 + ldrb w0, [x0, #:lo12:.LANCHOR70] + cbz w0, .L656 + adrp x0, .LANCHOR71 + ldrb w0, [x0, #:lo12:.LANCHOR71] + cbz w0, .L656 + adrp x0, .LANCHOR10 + ldr x0, [x0, #:lo12:.LANCHOR10] + ldrb w19, [x0, 89] + ubfiz w19, w19, 1, 8 + b .L644 +.L656: + mov w19, 1 + b .L644 +.L647: + adrp x0, .LANCHOR63 + add x0, x0, :lo12:.LANCHOR63 + add x19, x20, x19, uxth + mov x20, x0 + strh w24, [x0, 316] + mov w24, -1 +.L650: + cmp x19, x27 + beq .L641 + ldr x1, [x28, #:lo12:.LANCHOR72] ldrb w0, [x1, x27] - strb w21, [x1, x27] + strb w24, [x1, x27] add x27, x27, 1 sbfiz x1, x0, 6, 32 ubfiz x0, x0, 6, 8 - add x1, x22, x1 - add x0, x22, x0 + add x1, x21, x1 + add x0, x21, x0 strb wzr, [x1, 61] bl buf_free - ldrb w0, [x19, 7] + ldrb w0, [x20, 7] sub w0, w0, #1 - strb w0, [x19, 7] - b .L616 + strb w0, [x20, 7] + b .L650 .size gc_write_completed, .-gc_write_completed .section .text.gc_get_src_blk,"ax",@progbits .align 2 @@ -3387,47 +3583,47 @@ gc_write_completed: gc_get_src_blk: adrp x0, .LANCHOR10 ldr x2, [x0, #:lo12:.LANCHOR10] - adrp x0, .LANCHOR71 - ldrb w3, [x0, #:lo12:.LANCHOR71] + adrp x0, .LANCHOR74 + ldrb w3, [x0, #:lo12:.LANCHOR74] ldrh w0, [x2, 124] - cbz w0, .L633 + cbz w0, .L671 add x1, x2, 392 mov w4, 1 -.L634: +.L672: add x5, x1, 128 mov w6, 65535 -.L638: +.L676: ldrh w0, [x1] cmp w0, w6 - beq .L636 + beq .L674 mov w5, -1 strh w5, [x1] - cbz w4, .L637 + cbz w4, .L675 ldrh w1, [x2, 124] sub w1, w1, #1 strh w1, [x2, 124] ret -.L633: +.L671: add x0, x2, x3, sxtw 1 ldrh w0, [x0, 120] - cbz w0, .L639 + cbz w0, .L677 ubfiz x1, x3, 7, 8 mov w4, 0 add x1, x1, 136 add x1, x2, x1 - b .L634 -.L637: + b .L672 +.L675: add x2, x2, x3, uxtb 1 ldrh w1, [x2, 120] sub w1, w1, #1 strh w1, [x2, 120] ret -.L636: +.L674: add x1, x1, 2 cmp x1, x5 - bne .L638 + bne .L676 ret -.L639: +.L677: mov w0, 65535 ret .size gc_get_src_blk, .-gc_get_src_blk @@ -3439,90 +3635,90 @@ gc_free_temp_buf: stp x29, x30, [sp, -48]! add x29, sp, 0 stp x19, x20, [sp, 16] - adrp x20, .LANCHOR62 - add x0, x20, :lo12:.LANCHOR62 + adrp x20, .LANCHOR63 + add x0, x20, :lo12:.LANCHOR63 stp x21, x22, [sp, 32] ldrb w1, [x0, 7] - cbz w1, .L648 - adrp x1, .LANCHOR51 - ldrb w1, [x1, #:lo12:.LANCHOR51] + cbz w1, .L686 + adrp x1, .LANCHOR52 + ldrb w1, [x1, #:lo12:.LANCHOR52] cmp w1, 1 - bhi .L648 + bhi .L686 ldrh w19, [x0, 316] - adrp x2, .LANCHOR73 - adrp x0, .LANCHOR72 - adrp x21, .LANCHOR69 - ldrb w2, [x2, #:lo12:.LANCHOR73] + adrp x2, .LANCHOR76 + adrp x0, .LANCHOR75 + adrp x21, .LANCHOR72 + ldrb w2, [x2, #:lo12:.LANCHOR76] add w1, w19, 24 - ldrh w0, [x0, #:lo12:.LANCHOR72] - ldr x4, [x21, #:lo12:.LANCHOR69] + ldrh w0, [x0, #:lo12:.LANCHOR75] + ldr x4, [x21, #:lo12:.LANCHOR72] mul w0, w0, w2 cmp w0, w1 csel w1, w0, w1, ls - adrp x0, .LANCHOR49 - add x0, x0, :lo12:.LANCHOR49 -.L643: + adrp x0, .LANCHOR50 + add x0, x0, :lo12:.LANCHOR50 +.L681: cmp w19, w1 - bcc .L646 -.L648: + bcc .L684 +.L686: mov w0, 0 - b .L641 -.L646: + b .L679 +.L684: uxtw x22, w19 ldrb w2, [x4, x22] cmp w2, 255 - beq .L644 + beq .L682 sbfiz x3, x2, 6, 32 add x3, x0, x3 ldrb w3, [x3, 61] - cbnz w3, .L644 + cbnz w3, .L682 ubfiz x2, x2, 6, 8 add x0, x0, x2 bl buf_free adrp x0, .LANCHOR14 ldr w0, [x0, #:lo12:.LANCHOR14] - tbz x0, 8, .L645 - ldr x0, [x21, #:lo12:.LANCHOR69] + tbz x0, 8, .L683 + ldr x0, [x21, #:lo12:.LANCHOR72] mov w1, w19 ldrb w2, [x0, x22] - adrp x0, .LC45 - add x0, x0, :lo12:.LC45 + adrp x0, .LC46 + add x0, x0, :lo12:.LC46 bl printf -.L645: - ldr x0, [x21, #:lo12:.LANCHOR69] - add x20, x20, :lo12:.LANCHOR62 +.L683: + ldr x0, [x21, #:lo12:.LANCHOR72] + add x20, x20, :lo12:.LANCHOR63 mov w1, -1 strb w1, [x0, x22] ldrb w0, [x20, 7] sub w0, w0, #1 strb w0, [x20, 7] mov w0, 1 -.L641: +.L679: ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x29, x30, [sp], 48 ret -.L644: +.L682: add w19, w19, 1 - b .L643 + b .L681 .size gc_free_temp_buf, .-gc_free_temp_buf .section .text.print_gc_debug_info,"ax",@progbits .align 2 .global print_gc_debug_info .type print_gc_debug_info, %function print_gc_debug_info: - adrp x2, .LANCHOR74 - adrp x1, .LANCHOR62 - add x0, x1, :lo12:.LANCHOR62 - ldrh w6, [x2, #:lo12:.LANCHOR74] - adrp x2, .LANCHOR51 - ldrh w1, [x1, #:lo12:.LANCHOR62] + adrp x2, .LANCHOR77 + adrp x1, .LANCHOR63 + add x0, x1, :lo12:.LANCHOR63 + ldrh w6, [x2, #:lo12:.LANCHOR77] + adrp x2, .LANCHOR52 + ldrh w1, [x1, #:lo12:.LANCHOR63] ldrb w5, [x0, 7] - ldrb w4, [x2, #:lo12:.LANCHOR51] + ldrb w4, [x2, #:lo12:.LANCHOR52] ldrh w3, [x0, 314] ldrh w2, [x0, 2] - adrp x0, .LC46 - add x0, x0, :lo12:.LC46 + adrp x0, .LC47 + add x0, x0, :lo12:.LC47 b printf .size print_gc_debug_info, .-print_gc_debug_info .section .text.zftl_get_gc_node,"ax",@progbits @@ -3533,21 +3729,21 @@ zftl_get_gc_node: and w1, w1, 65535 and w0, w0, 65535 cmp w1, 5 - bne .L658 + bne .L696 mov w1, w0 - adrp x0, .LANCHOR75 - ldr x0, [x0, #:lo12:.LANCHOR75] -.L660: + adrp x0, .LANCHOR78 + ldr x0, [x0, #:lo12:.LANCHOR78] +.L698: b _list_get_gc_head_node.isra.2 -.L658: +.L696: cmp w1, 2 - bne .L659 + bne .L697 b zftl_get_gc_node.part.9 -.L659: +.L697: mov w1, w0 - adrp x0, .LANCHOR76 - ldr x0, [x0, #:lo12:.LANCHOR76] - b .L660 + adrp x0, .LANCHOR79 + ldr x0, [x0, #:lo12:.LANCHOR79] + b .L698 .size zftl_get_gc_node, .-zftl_get_gc_node .section .text.gc_search_src_blk,"ax",@progbits .align 2 @@ -3568,9 +3764,9 @@ gc_search_src_blk: stp x27, x28, [sp, 80] add x0, x0, x21, sxtw 1 ldrh w19, [x0, 120] - cbz w19, .L662 + cbz w19, .L700 mov w0, w19 -.L661: +.L699: ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x23, x24, [sp, 48] @@ -3578,72 +3774,72 @@ gc_search_src_blk: ldp x27, x28, [sp, 80] ldp x29, x30, [sp], 128 ret -.L662: +.L700: and w20, w2, 255 - cbnz w21, .L664 - adrp x24, .LANCHOR77 + cbnz w21, .L702 + adrp x24, .LANCHOR80 adrp x26, .LANCHOR14 - adrp x27, .LC47 + adrp x27, .LC48 and w22, w20, 65535 add x26, x26, :lo12:.LANCHOR14 - add x27, x27, :lo12:.LC47 - strh wzr, [x24, #:lo12:.LANCHOR77] + add x27, x27, :lo12:.LC48 + strh wzr, [x24, #:lo12:.LANCHOR80] mov w23, 0 mov w25, 0 -.L665: +.L703: cmp w25, w22 - bcs .L670 - ldrh w6, [x24, #:lo12:.LANCHOR77] - add x7, x24, :lo12:.LANCHOR77 + bcs .L708 + ldrh w6, [x24, #:lo12:.LANCHOR80] + add x7, x24, :lo12:.LANCHOR80 mov w1, 3 mov w0, w6 bl zftl_get_gc_node add w2, w6, 1 and w2, w2, 65535 - strh w2, [x24, #:lo12:.LANCHOR77] + strh w2, [x24, #:lo12:.LANCHOR80] and w1, w0, 65535 mov w0, 65535 mov w28, w1 cmp w1, w0 - beq .L666 + beq .L704 ldr w0, [x26] adrp x6, .LANCHOR9 uxtw x4, w1 - tbz x0, 8, .L667 + tbz x0, 8, .L705 ldr x0, [x6, #:lo12:.LANCHOR9] stp x6, x4, [x29, 96] ldrh w3, [x0, x4, lsl 1] mov x0, x27 bl printf ldp x6, x4, [x29, 96] -.L667: +.L705: ldr x0, [x6, #:lo12:.LANCHOR9] ldrh w1, [x0, x4, lsl 1] - adrp x0, .LANCHOR61 - ldrh w0, [x0, #:lo12:.LANCHOR61] + adrp x0, .LANCHOR62 + ldrh w0, [x0, #:lo12:.LANCHOR62] cmp w1, w0 - bcs .L668 + bcs .L706 mov w2, 0 mov w1, 0 mov w0, w28 bl gc_add_sblk - cbz w0, .L669 + cbz w0, .L707 add w5, w23, 1 and w23, w5, 65535 cmp w22, w23 - bcs .L669 -.L670: + bcs .L707 +.L708: ldr x0, [x29, 112] - tbz x0, 1, .L672 - adrp x25, .LANCHOR79 - adrp x24, .LANCHOR78 - add x27, x25, :lo12:.LANCHOR79 - add x24, x24, :lo12:.LANCHOR78 + tbz x0, 1, .L710 + adrp x25, .LANCHOR82 + adrp x24, .LANCHOR81 + add x27, x25, :lo12:.LANCHOR82 + add x24, x24, :lo12:.LANCHOR81 mov w28, 0 mov w26, 65535 -.L673: +.L711: cmp w28, w22 - beq .L677 + beq .L715 ldrh w6, [x24] mov w1, 5 mov w0, w6 @@ -3652,219 +3848,219 @@ gc_search_src_blk: strh w6, [x24] and w1, w0, 65535 cmp w1, w26 - beq .L674 + beq .L712 adrp x2, .LANCHOR9 ubfiz x1, x1, 1, 16 ldr x2, [x2, #:lo12:.LANCHOR9] ldrh w2, [x2, x1] ldrh w1, [x27] cmp w2, w1 - bcs .L674 + bcs .L712 mov w2, 0 mov w1, 0 bl gc_add_sblk - cbz w0, .L676 + cbz w0, .L714 add w5, w23, 1 and w23, w5, 65535 cmp w22, w23 - bcs .L676 -.L677: + bcs .L714 +.L715: cmp w23, w22 - adrp x0, .LANCHOR80 - bcs .L679 - ldrh w1, [x0, #:lo12:.LANCHOR80] - adrp x3, .LANCHOR73 - adrp x0, .LANCHOR72 - ldrh w2, [x25, #:lo12:.LANCHOR79] - ldrb w3, [x3, #:lo12:.LANCHOR73] - ldrh w0, [x0, #:lo12:.LANCHOR72] + adrp x0, .LANCHOR83 + bcs .L717 + ldrh w1, [x0, #:lo12:.LANCHOR83] + adrp x3, .LANCHOR76 + adrp x0, .LANCHOR75 + ldrh w2, [x25, #:lo12:.LANCHOR82] + ldrb w3, [x3, #:lo12:.LANCHOR76] + ldrh w0, [x0, #:lo12:.LANCHOR75] mul w0, w0, w3 sub w0, w0, w1, lsr 2 cmp w2, w0 - bge .L672 + bge .L710 add w1, w2, w1, lsr 3 - strh w1, [x25, #:lo12:.LANCHOR79] -.L672: + strh w1, [x25, #:lo12:.LANCHOR82] +.L710: ldr x0, [x29, 112] - tbz x0, 0, .L680 + tbz x0, 0, .L718 cmp w23, w22 - bcs .L680 - adrp x24, .LANCHOR81 - add x24, x24, :lo12:.LANCHOR81 + bcs .L718 + adrp x24, .LANCHOR84 + add x24, x24, :lo12:.LANCHOR84 mov w25, 65535 -.L685: +.L723: ldrh w6, [x24] mov w0, w6 bl zftl_get_gc_node.part.9 add w6, w6, 1 strh w6, [x24] cmp w25, w0, uxth - beq .L681 + beq .L719 mov w2, 0 mov w1, 0 bl gc_add_sblk - cbz w0, .L682 + cbz w0, .L720 add w5, w23, 1 and w23, w5, 65535 cmp w22, w23 - bhi .L682 -.L683: - adrp x0, .LANCHOR80 - adrp x1, .LANCHOR61 - ldrh w0, [x0, #:lo12:.LANCHOR80] - ldrh w2, [x1, #:lo12:.LANCHOR61] + bhi .L720 +.L721: + adrp x0, .LANCHOR83 + adrp x1, .LANCHOR62 + ldrh w0, [x0, #:lo12:.LANCHOR83] + ldrh w2, [x1, #:lo12:.LANCHOR62] cmp w2, w0, lsr 1 - bls .L680 + bls .L718 sub w0, w2, w0, lsr 3 - b .L760 -.L668: - strh wzr, [x24, #:lo12:.LANCHOR77] - b .L670 -.L666: + b .L798 +.L706: + strh wzr, [x24, #:lo12:.LANCHOR80] + b .L708 +.L704: strh wzr, [x7] - b .L670 -.L669: + b .L708 +.L707: add w25, w25, 1 and w25, w25, 65535 - b .L665 -.L674: + b .L703 +.L712: strh wzr, [x24] - b .L677 -.L676: + b .L715 +.L714: add w28, w28, 1 and w28, w28, 65535 - b .L673 -.L679: - ldrh w1, [x25, #:lo12:.LANCHOR79] - ldrh w0, [x0, #:lo12:.LANCHOR80] + b .L711 +.L717: + ldrh w1, [x25, #:lo12:.LANCHOR82] + ldrh w0, [x0, #:lo12:.LANCHOR83] cmp w1, w0 - bls .L672 + bls .L710 sub w0, w1, w0, lsr 3 - strh w0, [x25, #:lo12:.LANCHOR79] - b .L672 -.L681: + strh w0, [x25, #:lo12:.LANCHOR82] + b .L710 +.L719: strh wzr, [x24] -.L684: +.L722: cmp w23, w22 - bcs .L683 - adrp x1, .LANCHOR61 - adrp x0, .LANCHOR80 - ldrh w2, [x1, #:lo12:.LANCHOR61] - ldrh w0, [x0, #:lo12:.LANCHOR80] + bcs .L721 + adrp x1, .LANCHOR62 + adrp x0, .LANCHOR83 + ldrh w2, [x1, #:lo12:.LANCHOR62] + ldrh w0, [x0, #:lo12:.LANCHOR83] cmp w2, w0 - bcs .L680 + bcs .L718 add w0, w2, w0, lsr 3 -.L760: - strh w0, [x1, #:lo12:.LANCHOR61] -.L680: +.L798: + strh w0, [x1, #:lo12:.LANCHOR62] +.L718: adrp x0, .LANCHOR14 ldr w0, [x0, #:lo12:.LANCHOR14] - tbz x0, 8, .L707 + tbz x0, 8, .L745 ldr w2, [x29, 112] - adrp x0, .LC48 + adrp x0, .LC49 mov w4, w20 mov w3, w23 mov w1, w21 - add x0, x0, :lo12:.LC48 + add x0, x0, :lo12:.LC49 bl printf -.L707: +.L745: mov w0, w23 - b .L661 -.L682: + b .L699 +.L720: add w19, w19, 1 and w19, w19, 65535 cmp w22, w19 - bne .L685 - b .L684 -.L664: - adrp x0, .LANCHOR62+318 - strh wzr, [x0, #:lo12:.LANCHOR62+318] - adrp x0, .LANCHOR82 - strh wzr, [x0, #:lo12:.LANCHOR82] + bne .L723 + b .L722 +.L702: + adrp x0, .LANCHOR63+318 + strh wzr, [x0, #:lo12:.LANCHOR63+318] + adrp x0, .LANCHOR85 + strh wzr, [x0, #:lo12:.LANCHOR85] ldr w0, [x29, 112] and w0, w0, 1 str w0, [x29, 104] ldr x0, [x29, 112] - tbz x0, 0, .L710 - adrp x1, .LANCHOR84 - adrp x25, .LANCHOR83 + tbz x0, 0, .L748 + adrp x1, .LANCHOR87 + adrp x25, .LANCHOR86 str x1, [x29, 96] - adrp x26, .LANCHOR85 - ldrh w0, [x25, #:lo12:.LANCHOR83] - ldrh w2, [x1, #:lo12:.LANCHOR84] + adrp x26, .LANCHOR88 + ldrh w0, [x25, #:lo12:.LANCHOR86] + ldrh w2, [x1, #:lo12:.LANCHOR87] cmp w0, w2, lsr 2 - bcc .L687 - ldrh w1, [x26, #:lo12:.LANCHOR85] + bcc .L725 + ldrh w1, [x26, #:lo12:.LANCHOR88] cmp w1, w0 - bls .L711 -.L687: - ldrh w0, [x26, #:lo12:.LANCHOR85] - adrp x22, .LANCHOR81 + bls .L749 +.L725: + ldrh w0, [x26, #:lo12:.LANCHOR88] + adrp x22, .LANCHOR84 lsr w0, w0, 2 - strh w0, [x22, #:lo12:.LANCHOR81] + strh w0, [x22, #:lo12:.LANCHOR84] mov w0, 0 bl zftl_get_gc_node.part.9 and w1, w0, 65535 mov w2, 65535 cmp w1, w2 - beq .L713 + beq .L751 adrp x2, .LANCHOR9 ubfiz x1, x1, 1, 16 ldr x3, [x2, #:lo12:.LANCHOR9] - adrp x2, .LANCHOR80 - ldrh w2, [x2, #:lo12:.LANCHOR80] + adrp x2, .LANCHOR83 + ldrh w2, [x2, #:lo12:.LANCHOR83] ldrh w1, [x3, x1] cmp w1, w2, lsr 2 - bcs .L713 - strh wzr, [x22, #:lo12:.LANCHOR81] + bcs .L751 + strh wzr, [x22, #:lo12:.LANCHOR84] mov w2, w21 mov w1, 0 bl gc_add_sblk cmp w0, 0 cset w23, ne -.L689: - add x22, x22, :lo12:.LANCHOR81 +.L727: + add x22, x22, :lo12:.LANCHOR84 and w28, w20, 65535 mov w24, 64 mov w27, 65535 -.L691: +.L729: ldrh w6, [x22] mov w0, w6 bl zftl_get_gc_node.part.9 add w6, w6, 1 strh w6, [x22] cmp w27, w0, uxth - beq .L688 + beq .L726 mov w2, w21 mov w1, 0 bl gc_add_sblk - cbz w0, .L690 + cbz w0, .L728 add w5, w23, 1 and w23, w5, 65535 cmp w23, w28 - bcs .L688 -.L690: + bcs .L726 +.L728: sub w24, w24, #1 ands w24, w24, 65535 - bne .L691 -.L688: + bne .L729 +.L726: ldr x0, [x29, 96] - ldrh w1, [x25, #:lo12:.LANCHOR83] - ldrh w0, [x0, #:lo12:.LANCHOR84] + ldrh w1, [x25, #:lo12:.LANCHOR86] + ldrh w0, [x0, #:lo12:.LANCHOR87] cmp w1, w0, lsr 3 - bhi .L708 - ldrh w0, [x26, #:lo12:.LANCHOR85] + bhi .L746 + ldrh w0, [x26, #:lo12:.LANCHOR88] add w0, w0, 8 cmp w1, w0 - ble .L686 -.L708: - adrp x24, .LANCHOR77 + ble .L724 +.L746: + adrp x24, .LANCHOR80 and w26, w20, 65535 mov w22, 64 mov w25, 65535 - strh wzr, [x24, #:lo12:.LANCHOR77] - add x24, x24, :lo12:.LANCHOR77 -.L693: + strh wzr, [x24, #:lo12:.LANCHOR80] + add x24, x24, :lo12:.LANCHOR80 +.L731: ldrh w6, [x24] mov w1, 3 mov w0, w6 @@ -3872,31 +4068,31 @@ gc_search_src_blk: add w6, w6, 1 strh w6, [x24] cmp w25, w0, uxth - beq .L686 + beq .L724 mov w2, w21 mov w1, 0 bl gc_add_sblk - cbz w0, .L692 + cbz w0, .L730 add w5, w23, 1 and w23, w5, 65535 cmp w23, w26 - bcs .L686 -.L692: + bcs .L724 +.L730: sub w22, w22, #1 ands w22, w22, 65535 - bne .L693 -.L686: + bne .L731 +.L724: ldr x0, [x29, 112] - tbz x0, 1, .L694 - adrp x24, .LANCHOR78 - adrp x28, .LANCHOR86 - adrp x25, .LANCHOR73 - add x26, x24, :lo12:.LANCHOR78 - add x27, x28, :lo12:.LANCHOR86 - add x25, x25, :lo12:.LANCHOR73 - strh wzr, [x24, #:lo12:.LANCHOR78] + tbz x0, 1, .L732 + adrp x24, .LANCHOR81 + adrp x28, .LANCHOR89 + adrp x25, .LANCHOR76 + add x26, x24, :lo12:.LANCHOR81 + add x27, x28, :lo12:.LANCHOR89 + add x25, x25, :lo12:.LANCHOR76 + strh wzr, [x24, #:lo12:.LANCHOR81] mov w22, 64 -.L699: +.L737: ldrh w6, [x26] mov w1, 5 mov w0, w6 @@ -3906,159 +4102,159 @@ gc_search_src_blk: and w1, w0, 65535 mov w2, 65535 cmp w1, w2 - beq .L695 + beq .L733 cmp w20, 1 - bne .L696 - adrp x3, .LANCHOR72 + bne .L734 + adrp x3, .LANCHOR75 ldrb w2, [x25] - ldrh w3, [x3, #:lo12:.LANCHOR72] + ldrh w3, [x3, #:lo12:.LANCHOR75] mul w3, w2, w3 - adrp x2, .LANCHOR80 - ldrh w2, [x2, #:lo12:.LANCHOR80] + adrp x2, .LANCHOR83 + ldrh w2, [x2, #:lo12:.LANCHOR83] sub w2, w3, w2, lsr 3 strh w2, [x27] -.L696: +.L734: adrp x2, .LANCHOR9 ubfiz x1, x1, 1, 16 ldr x2, [x2, #:lo12:.LANCHOR9] ldrh w2, [x2, x1] ldrh w1, [x27] cmp w2, w1 - bcs .L697 + bcs .L735 mov w2, w21 mov w1, 0 bl gc_add_sblk - cbz w0, .L698 + cbz w0, .L736 add w5, w23, 1 add w19, w19, 1 and w23, w5, 65535 and w19, w19, 65535 cmp w23, w20 - bcc .L698 -.L695: + bcc .L736 +.L733: cmp w23, w20 - adrp x0, .LANCHOR80 - adrp x3, .LANCHOR73 - bcc .L700 - cbnz w19, .L701 - adrp x1, .LANCHOR87 - ldrh w2, [x1, #:lo12:.LANCHOR87] - adrp x1, .LANCHOR88 - ldrh w1, [x1, #:lo12:.LANCHOR88] + adrp x0, .LANCHOR83 + adrp x3, .LANCHOR76 + bcc .L738 + cbnz w19, .L739 + adrp x1, .LANCHOR90 + ldrh w2, [x1, #:lo12:.LANCHOR90] + adrp x1, .LANCHOR91 + ldrh w1, [x1, #:lo12:.LANCHOR91] cmp w2, w1 - bls .L701 -.L700: - ldrh w2, [x0, #:lo12:.LANCHOR80] - adrp x0, .LANCHOR72 - ldrb w3, [x3, #:lo12:.LANCHOR73] - ldrh w0, [x0, #:lo12:.LANCHOR72] - ldrh w1, [x28, #:lo12:.LANCHOR86] + bls .L739 +.L738: + ldrh w2, [x0, #:lo12:.LANCHOR83] + adrp x0, .LANCHOR75 + ldrb w3, [x3, #:lo12:.LANCHOR76] + ldrh w0, [x0, #:lo12:.LANCHOR75] + ldrh w1, [x28, #:lo12:.LANCHOR89] lsr w2, w2, 3 mul w0, w0, w3 sub w0, w0, w2 cmp w1, w0 - bge .L694 + bge .L732 add w1, w1, w2 - strh w1, [x28, #:lo12:.LANCHOR86] -.L694: + strh w1, [x28, #:lo12:.LANCHOR89] +.L732: ldr w0, [x29, 104] - cbz w0, .L680 - adrp x25, .LANCHOR77 - adrp x22, .LANCHOR89 - adrp x26, .LANCHOR84 - adrp x27, .LANCHOR83 - add x28, x22, :lo12:.LANCHOR89 - add x26, x26, :lo12:.LANCHOR84 - add x27, x27, :lo12:.LANCHOR83 - strh wzr, [x25, #:lo12:.LANCHOR77] + cbz w0, .L718 + adrp x25, .LANCHOR80 + adrp x22, .LANCHOR92 + adrp x26, .LANCHOR87 + adrp x27, .LANCHOR86 + add x28, x22, :lo12:.LANCHOR92 + add x26, x26, :lo12:.LANCHOR87 + add x27, x27, :lo12:.LANCHOR86 + strh wzr, [x25, #:lo12:.LANCHOR80] mov w24, 64 -.L705: - ldrh w6, [x25, #:lo12:.LANCHOR77] +.L743: + ldrh w6, [x25, #:lo12:.LANCHOR80] mov w1, 3 mov w0, w6 bl zftl_get_gc_node add w6, w6, 1 - strh w6, [x25, #:lo12:.LANCHOR77] + strh w6, [x25, #:lo12:.LANCHOR80] and w1, w0, 65535 mov w2, 65535 cmp w1, w2 - beq .L702 + beq .L740 adrp x2, .LANCHOR9 ubfiz x1, x1, 1, 16 ldr x2, [x2, #:lo12:.LANCHOR9] ldrh w1, [x2, x1] ldrh w2, [x28] cmp w2, w1 - bls .L703 + bls .L741 cmp w1, 2 - bls .L703 + bls .L741 ldrh w2, [x26] ldrh w1, [x27] cmp w1, w2, lsr 1 - bls .L702 -.L703: + bls .L740 +.L741: mov w2, w21 mov w1, 0 bl gc_add_sblk - cbz w0, .L704 + cbz w0, .L742 add w5, w23, 1 and w23, w5, 65535 cmp w23, w20 - bcs .L702 -.L704: + bcs .L740 +.L742: sub w24, w24, #1 ands w24, w24, 65535 - bne .L705 -.L702: + bne .L743 +.L740: cmp w23, w20 - adrp x0, .LANCHOR80 - bcs .L706 - ldrh w0, [x0, #:lo12:.LANCHOR80] - ldrh w1, [x22, #:lo12:.LANCHOR89] + adrp x0, .LANCHOR83 + bcs .L744 + ldrh w0, [x0, #:lo12:.LANCHOR83] + ldrh w1, [x22, #:lo12:.LANCHOR92] cmp w1, w0, lsr 1 - bls .L680 + bls .L718 sub w0, w1, w0, lsr 3 - strh w0, [x22, #:lo12:.LANCHOR89] - b .L680 -.L713: + strh w0, [x22, #:lo12:.LANCHOR92] + b .L718 +.L751: mov w23, 0 - b .L689 -.L710: + b .L727 +.L748: mov w23, 0 - b .L686 -.L697: - strh wzr, [x24, #:lo12:.LANCHOR78] - b .L695 -.L698: + b .L724 +.L735: + strh wzr, [x24, #:lo12:.LANCHOR81] + b .L733 +.L736: sub w22, w22, #1 ands w22, w22, 65535 - bne .L699 - b .L695 -.L701: - ldrh w0, [x0, #:lo12:.LANCHOR80] - ldrb w1, [x3, #:lo12:.LANCHOR73] - ldrh w2, [x28, #:lo12:.LANCHOR86] + bne .L737 + b .L733 +.L739: + ldrh w0, [x0, #:lo12:.LANCHOR83] + ldrb w1, [x3, #:lo12:.LANCHOR76] + ldrh w2, [x28, #:lo12:.LANCHOR89] mul w1, w1, w0 cmp w2, w1 - ble .L694 + ble .L732 sub w0, w2, w0, lsr 3 - strh w0, [x28, #:lo12:.LANCHOR86] - b .L694 -.L706: - ldrh w1, [x0, #:lo12:.LANCHOR80] - adrp x0, .LANCHOR73 - ldrh w2, [x22, #:lo12:.LANCHOR89] - ldrb w0, [x0, #:lo12:.LANCHOR73] + strh w0, [x28, #:lo12:.LANCHOR89] + b .L732 +.L744: + ldrh w1, [x0, #:lo12:.LANCHOR83] + adrp x0, .LANCHOR76 + ldrh w2, [x22, #:lo12:.LANCHOR92] + ldrb w0, [x0, #:lo12:.LANCHOR76] mul w0, w0, w1 sub w0, w0, #32 cmp w2, w0 - bge .L680 + bge .L718 add w1, w2, w1, lsr 3 - strh w1, [x22, #:lo12:.LANCHOR89] - b .L680 -.L711: + strh w1, [x22, #:lo12:.LANCHOR92] + b .L718 +.L749: mov w23, 0 - b .L688 + b .L726 .size gc_search_src_blk, .-gc_search_src_blk .section .text.zftl_insert_free_list,"ax",@progbits .align 2 @@ -4071,27 +4267,27 @@ zftl_insert_free_list: add x0, x0, x1, uxth 2 ldrb w0, [x0, 2] ands w0, w0, 24 - bne .L762 - adrp x2, .LANCHOR90 - adrp x0, .LANCHOR91 - add x2, x2, :lo12:.LANCHOR90 - add x0, x0, :lo12:.LANCHOR91 -.L764: + bne .L800 + adrp x2, .LANCHOR93 + adrp x0, .LANCHOR94 + add x2, x2, :lo12:.LANCHOR93 + add x0, x0, :lo12:.LANCHOR94 +.L802: b _insert_free_list -.L762: +.L800: cmp w0, 16 - bne .L763 - adrp x2, .LANCHOR92 - adrp x0, .LANCHOR93 - add x2, x2, :lo12:.LANCHOR92 - add x0, x0, :lo12:.LANCHOR93 - b .L764 -.L763: - adrp x2, .LANCHOR94 - adrp x0, .LANCHOR95 - add x2, x2, :lo12:.LANCHOR94 - add x0, x0, :lo12:.LANCHOR95 - b .L764 + bne .L801 + adrp x2, .LANCHOR95 + adrp x0, .LANCHOR96 + add x2, x2, :lo12:.LANCHOR95 + add x0, x0, :lo12:.LANCHOR96 + b .L802 +.L801: + adrp x2, .LANCHOR97 + adrp x0, .LANCHOR98 + add x2, x2, :lo12:.LANCHOR97 + add x0, x0, :lo12:.LANCHOR98 + b .L802 .size zftl_insert_free_list, .-zftl_insert_free_list .section .text.zftl_insert_data_list,"ax",@progbits .align 2 @@ -4105,30 +4301,30 @@ zftl_insert_data_list: ldrb w2, [x0, 2] and w2, w2, 224 cmp w2, 64 - bne .L766 - adrp x2, .LANCHOR85 + bne .L804 + adrp x2, .LANCHOR88 adrp x0, .LANCHOR12 - add x2, x2, :lo12:.LANCHOR85 + add x2, x2, :lo12:.LANCHOR88 add x0, x0, :lo12:.LANCHOR12 -.L769: +.L807: b _insert_data_list -.L766: +.L804: cmp w2, 96 - bne .L767 - adrp x2, .LANCHOR83 - adrp x0, .LANCHOR76 - add x2, x2, :lo12:.LANCHOR83 - add x0, x0, :lo12:.LANCHOR76 - b .L769 -.L767: + bne .L805 + adrp x2, .LANCHOR86 + adrp x0, .LANCHOR79 + add x2, x2, :lo12:.LANCHOR86 + add x0, x0, :lo12:.LANCHOR79 + b .L807 +.L805: cmp w2, 160 - bne .L765 - adrp x2, .LANCHOR87 - adrp x0, .LANCHOR75 - add x2, x2, :lo12:.LANCHOR87 - add x0, x0, :lo12:.LANCHOR75 - b .L769 -.L765: + bne .L803 + adrp x2, .LANCHOR90 + adrp x0, .LANCHOR78 + add x2, x2, :lo12:.LANCHOR90 + add x0, x0, :lo12:.LANCHOR78 + b .L807 +.L803: ret .size zftl_insert_data_list, .-zftl_insert_data_list .section .text.zftl_gc_get_free_sblk,"ax",@progbits @@ -4147,55 +4343,55 @@ zftl_gc_get_free_sblk: ldrh w19, [x0, 588] mov w0, 65535 cmp w19, w0 - beq .L771 - cbnz w21, .L771 + beq .L809 + cbnz w21, .L809 mov w1, w19 - adrp x0, .LC49 - add x0, x0, :lo12:.LC49 + adrp x0, .LC50 + add x0, x0, :lo12:.LC50 bl printf ldr x0, [x20, #:lo12:.LANCHOR10] mov w1, -1 strh w1, [x0, 588] -.L772: +.L810: mov w0, w19 ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x29, x30, [sp], 48 ret -.L771: - adrp x2, .LANCHOR92 - adrp x20, .LANCHOR94 - ldrh w0, [x2, #:lo12:.LANCHOR92] - ldrh w1, [x20, #:lo12:.LANCHOR94] +.L809: + adrp x2, .LANCHOR95 + adrp x20, .LANCHOR97 + ldrh w0, [x2, #:lo12:.LANCHOR95] + ldrh w1, [x20, #:lo12:.LANCHOR97] cmp w0, w1 - bls .L773 + bls .L811 lsr w1, w0, 3 cmp w21, 0 - adrp x0, .LANCHOR93 + adrp x0, .LANCHOR96 csel w1, w1, wzr, ne - add x2, x2, :lo12:.LANCHOR92 - add x0, x0, :lo12:.LANCHOR93 -.L787: + add x2, x2, :lo12:.LANCHOR95 + add x0, x0, :lo12:.LANCHOR96 +.L825: bl _list_pop_index_node and w19, w0, 65535 mov w0, 65535 cmp w19, w0 - bne .L778 - adrp x0, .LANCHOR90 - ldrh w5, [x20, #:lo12:.LANCHOR94] + bne .L816 + adrp x0, .LANCHOR93 + ldrh w5, [x20, #:lo12:.LANCHOR97] mov w2, w22 mov w1, w19 - ldrh w4, [x0, #:lo12:.LANCHOR90] - adrp x0, .LANCHOR91 - ldr x3, [x0, #:lo12:.LANCHOR91] - adrp x0, .LC50 - add x0, x0, :lo12:.LC50 + ldrh w4, [x0, #:lo12:.LANCHOR93] + adrp x0, .LANCHOR94 + ldr x3, [x0, #:lo12:.LANCHOR94] + adrp x0, .LC51 + add x0, x0, :lo12:.LC51 bl printf -.L778: - cbz w21, .L772 +.L816: + cbz w21, .L810 adrp x0, .LANCHOR14 ldr w0, [x0, #:lo12:.LANCHOR14] - tbz x0, 8, .L772 + tbz x0, 8, .L810 adrp x4, .LANCHOR9 adrp x1, .LANCHOR7 uxtw x3, w19 @@ -4209,26 +4405,26 @@ zftl_gc_get_free_sblk: ldrh w5, [x1, x0] ubfx x4, x4, 11, 8 mov w1, w19 - adrp x0, .LC51 + adrp x0, .LC52 ubfx x3, x2, 3, 2 and w5, w5, 2047 ubfx x2, x2, 5, 3 - add x0, x0, :lo12:.LC51 + add x0, x0, :lo12:.LC52 bl printf - b .L772 -.L773: - cbnz w21, .L776 + b .L810 +.L811: + cbnz w21, .L814 lsr w1, w1, 2 -.L777: - adrp x0, .LANCHOR95 - add x2, x20, :lo12:.LANCHOR94 - add x0, x0, :lo12:.LANCHOR95 - b .L787 -.L776: +.L815: + adrp x0, .LANCHOR98 + add x2, x20, :lo12:.LANCHOR97 + add x0, x0, :lo12:.LANCHOR98 + b .L825 +.L814: mov w1, 7 mul w1, w0, w1 lsr w1, w1, 3 - b .L777 + b .L815 .size zftl_gc_get_free_sblk, .-zftl_gc_get_free_sblk .section .text.zftl_get_free_sblk,"ax",@progbits .align 2 @@ -4241,99 +4437,99 @@ zftl_get_free_sblk: and w20, w1, 65535 str x21, [sp, 32] cmp w20, 5 - bne .L789 - adrp x2, .LANCHOR92 - adrp x0, .LANCHOR94 - ldrh w3, [x2, #:lo12:.LANCHOR92] - ldrh w1, [x0, #:lo12:.LANCHOR94] + bne .L827 + adrp x2, .LANCHOR95 + adrp x0, .LANCHOR97 + ldrh w3, [x2, #:lo12:.LANCHOR95] + ldrh w1, [x0, #:lo12:.LANCHOR97] cmp w3, w1 - bcc .L790 - adrp x4, .LANCHOR90 - ldrh w4, [x4, #:lo12:.LANCHOR90] + bcc .L828 + adrp x4, .LANCHOR93 + ldrh w4, [x4, #:lo12:.LANCHOR93] cmp w4, w3 - bls .L791 - cbz w1, .L791 -.L790: - add x2, x0, :lo12:.LANCHOR94 + bls .L829 + cbz w1, .L829 +.L828: + add x2, x0, :lo12:.LANCHOR97 lsr w1, w1, 1 -.L810: - adrp x0, .LANCHOR95 - add x0, x0, :lo12:.LANCHOR95 - b .L809 -.L791: - adrp x0, .LANCHOR93 - add x2, x2, :lo12:.LANCHOR92 - add x0, x0, :lo12:.LANCHOR93 +.L848: + adrp x0, .LANCHOR98 + add x0, x0, :lo12:.LANCHOR98 + b .L847 +.L829: + adrp x0, .LANCHOR96 + add x2, x2, :lo12:.LANCHOR95 + add x0, x0, :lo12:.LANCHOR96 mov w1, 0 -.L809: +.L847: bl _list_pop_index_node and w19, w0, 65535 mov w0, 65535 cmp w19, w0 - bne .L794 - adrp x0, .LANCHOR94 + bne .L832 + adrp x0, .LANCHOR97 mov w2, w20 mov w1, w19 - ldrh w5, [x0, #:lo12:.LANCHOR94] - adrp x0, .LANCHOR90 - ldrh w4, [x0, #:lo12:.LANCHOR90] - adrp x0, .LANCHOR91 - ldr x3, [x0, #:lo12:.LANCHOR91] - adrp x0, .LC50 - add x0, x0, :lo12:.LC50 + ldrh w5, [x0, #:lo12:.LANCHOR97] + adrp x0, .LANCHOR93 + ldrh w4, [x0, #:lo12:.LANCHOR93] + adrp x0, .LANCHOR94 + ldr x3, [x0, #:lo12:.LANCHOR94] + adrp x0, .LC51 + add x0, x0, :lo12:.LC51 bl printf - b .L794 -.L789: + b .L832 +.L827: adrp x21, .LANCHOR10 and w0, w0, 65535 ldr x1, [x21, #:lo12:.LANCHOR10] ldrh w19, [x1, 590] mov w1, 65535 cmp w19, w1 - beq .L793 + beq .L831 cmp w20, 1 - beq .L793 + beq .L831 mov w1, w19 - adrp x0, .LC52 - add x0, x0, :lo12:.LC52 + adrp x0, .LC53 + add x0, x0, :lo12:.LC53 bl printf ldr x0, [x21, #:lo12:.LANCHOR10] mov w1, -1 strh w1, [x0, 590] -.L794: +.L832: mov w0, w19 ldr x21, [sp, 32] ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 48 ret -.L793: - adrp x2, .LANCHOR90 - adrp x4, .LANCHOR94 - ldrh w1, [x2, #:lo12:.LANCHOR90] - ldrh w3, [x4, #:lo12:.LANCHOR94] +.L831: + adrp x2, .LANCHOR93 + adrp x4, .LANCHOR97 + ldrh w1, [x2, #:lo12:.LANCHOR93] + ldrh w3, [x4, #:lo12:.LANCHOR97] cmp w1, w3 - bcc .L795 - adrp x5, .LANCHOR92 - ldrh w5, [x5, #:lo12:.LANCHOR92] + bcc .L833 + adrp x5, .LANCHOR95 + ldrh w5, [x5, #:lo12:.LANCHOR95] cmp w5, w1 - bls .L796 - cbz w3, .L796 -.L795: + bls .L834 + cbz w3, .L834 +.L833: cmp w20, 1 lsr w3, w3, 1 csel w0, w3, w0, eq - add x2, x4, :lo12:.LANCHOR94 + add x2, x4, :lo12:.LANCHOR97 mov w1, w0 - b .L810 -.L796: + b .L848 +.L834: lsr w1, w1, 1 cmp w20, 1 csel w0, w1, w0, eq - add x2, x2, :lo12:.LANCHOR90 + add x2, x2, :lo12:.LANCHOR93 mov w1, w0 - adrp x0, .LANCHOR91 - add x0, x0, :lo12:.LANCHOR91 - b .L809 + adrp x0, .LANCHOR94 + add x0, x0, :lo12:.LANCHOR94 + b .L847 .size zftl_get_free_sblk, .-zftl_get_free_sblk .section .text.zftl_remove_data_node,"ax",@progbits .align 2 @@ -4347,30 +4543,30 @@ zftl_remove_data_node: ldrb w2, [x0, 2] and w2, w2, 224 cmp w2, 64 - bne .L812 - adrp x2, .LANCHOR85 + bne .L850 + adrp x2, .LANCHOR88 adrp x0, .LANCHOR12 - add x2, x2, :lo12:.LANCHOR85 + add x2, x2, :lo12:.LANCHOR88 add x0, x0, :lo12:.LANCHOR12 -.L815: +.L853: b _list_remove_node -.L812: +.L850: cmp w2, 96 - bne .L813 - adrp x2, .LANCHOR83 - adrp x0, .LANCHOR76 - add x2, x2, :lo12:.LANCHOR83 - add x0, x0, :lo12:.LANCHOR76 - b .L815 -.L813: + bne .L851 + adrp x2, .LANCHOR86 + adrp x0, .LANCHOR79 + add x2, x2, :lo12:.LANCHOR86 + add x0, x0, :lo12:.LANCHOR79 + b .L853 +.L851: cmp w2, 160 - bne .L811 - adrp x2, .LANCHOR87 - adrp x0, .LANCHOR75 - add x2, x2, :lo12:.LANCHOR87 - add x0, x0, :lo12:.LANCHOR75 - b .L815 -.L811: + bne .L849 + adrp x2, .LANCHOR90 + adrp x0, .LANCHOR78 + add x2, x2, :lo12:.LANCHOR90 + add x0, x0, :lo12:.LANCHOR78 + b .L853 +.L849: ret .size zftl_remove_data_node, .-zftl_remove_data_node .section .text.zftl_remove_free_node,"ax",@progbits @@ -4384,27 +4580,27 @@ zftl_remove_free_node: add x0, x0, x1, uxth 2 ldrb w0, [x0, 2] ands w0, w0, 24 - bne .L817 - adrp x2, .LANCHOR90 - adrp x0, .LANCHOR91 - add x2, x2, :lo12:.LANCHOR90 - add x0, x0, :lo12:.LANCHOR91 -.L819: + bne .L855 + adrp x2, .LANCHOR93 + adrp x0, .LANCHOR94 + add x2, x2, :lo12:.LANCHOR93 + add x0, x0, :lo12:.LANCHOR94 +.L857: b _list_remove_node -.L817: +.L855: cmp w0, 16 - bne .L818 - adrp x2, .LANCHOR92 - adrp x0, .LANCHOR93 - add x2, x2, :lo12:.LANCHOR92 - add x0, x0, :lo12:.LANCHOR93 - b .L819 -.L818: - adrp x2, .LANCHOR94 - adrp x0, .LANCHOR95 - add x2, x2, :lo12:.LANCHOR94 - add x0, x0, :lo12:.LANCHOR95 - b .L819 + bne .L856 + adrp x2, .LANCHOR95 + adrp x0, .LANCHOR96 + add x2, x2, :lo12:.LANCHOR95 + add x0, x0, :lo12:.LANCHOR96 + b .L857 +.L856: + adrp x2, .LANCHOR97 + adrp x0, .LANCHOR98 + add x2, x2, :lo12:.LANCHOR97 + add x0, x0, :lo12:.LANCHOR98 + b .L857 .size zftl_remove_free_node, .-zftl_remove_free_node .section .text.zftl_list_update_data_list,"ax",@progbits .align 2 @@ -4418,30 +4614,30 @@ zftl_list_update_data_list: ldrb w2, [x0, 2] and w2, w2, 224 cmp w2, 64 - bne .L821 - adrp x2, .LANCHOR85 + bne .L859 + adrp x2, .LANCHOR88 adrp x0, .LANCHOR12 - add x2, x2, :lo12:.LANCHOR85 + add x2, x2, :lo12:.LANCHOR88 add x0, x0, :lo12:.LANCHOR12 -.L824: +.L862: b _list_update_data_list -.L821: +.L859: cmp w2, 96 - bne .L822 - adrp x2, .LANCHOR83 - adrp x0, .LANCHOR76 - add x2, x2, :lo12:.LANCHOR83 - add x0, x0, :lo12:.LANCHOR76 - b .L824 -.L822: + bne .L860 + adrp x2, .LANCHOR86 + adrp x0, .LANCHOR79 + add x2, x2, :lo12:.LANCHOR86 + add x0, x0, :lo12:.LANCHOR79 + b .L862 +.L860: cmp w2, 160 - bne .L820 - adrp x2, .LANCHOR87 - adrp x0, .LANCHOR75 - add x2, x2, :lo12:.LANCHOR87 - add x0, x0, :lo12:.LANCHOR75 - b .L824 -.L820: + bne .L858 + adrp x2, .LANCHOR90 + adrp x0, .LANCHOR78 + add x2, x2, :lo12:.LANCHOR90 + add x0, x0, :lo12:.LANCHOR78 + b .L862 +.L858: ret .size zftl_list_update_data_list, .-zftl_list_update_data_list .section .text.print_list_info,"ax",@progbits @@ -4457,21 +4653,21 @@ print_list_info: stp x19, x20, [sp, 48] mov x19, x0 stp x21, x22, [sp, 64] - adrp x0, .LC53 + adrp x0, .LC54 stp x23, x24, [sp, 80] - add x0, x0, :lo12:.LC53 + add x0, x0, :lo12:.LC54 bl printf ldr x19, [x19] - cbz x19, .L825 + cbz x19, .L863 mov x24, -6148914691236517206 - adrp x22, .LC54 - adrp x21, .LANCHOR96 - add x22, x22, :lo12:.LC54 - add x21, x21, :lo12:.LANCHOR96 + adrp x22, .LC55 + adrp x21, .LANCHOR99 + add x22, x22, :lo12:.LC55 + add x21, x21, :lo12:.LANCHOR99 mov w20, 0 adrp x23, .LANCHOR4 movk x24, 0xaaab, lsl 0 -.L829: +.L867: ldr x2, [x23, #:lo12:.LANCHOR4] adrp x1, .LANCHOR7 adrp x8, .LANCHOR9 @@ -4504,7 +4700,7 @@ print_list_info: ldrh w19, [x19] mov w0, 65535 cmp w19, w0 - beq .L825 + beq .L863 ldr x0, [x23, #:lo12:.LANCHOR4] mov w1, 6 add w20, w20, 1 @@ -4512,8 +4708,8 @@ print_list_info: umaddl x19, w19, w1, x0 ldrh w0, [x21] cmp w0, w20 - bcs .L829 -.L825: + bcs .L867 +.L863: ldp x19, x20, [sp, 48] ldp x21, x22, [sp, 64] ldp x23, x24, [sp, 80] @@ -4527,37 +4723,37 @@ print_list_info: .type dump_all_list_info, %function dump_all_list_info: stp x29, x30, [sp, -16]! - adrp x1, .LANCHOR90 - adrp x0, .LANCHOR91 - add x1, x1, :lo12:.LANCHOR90 + adrp x1, .LANCHOR93 + adrp x0, .LANCHOR94 + add x1, x1, :lo12:.LANCHOR93 add x29, sp, 0 - add x0, x0, :lo12:.LANCHOR91 + add x0, x0, :lo12:.LANCHOR94 bl print_list_info - adrp x1, .LANCHOR92 - adrp x0, .LANCHOR93 - add x1, x1, :lo12:.LANCHOR92 - add x0, x0, :lo12:.LANCHOR93 + adrp x1, .LANCHOR95 + adrp x0, .LANCHOR96 + add x1, x1, :lo12:.LANCHOR95 + add x0, x0, :lo12:.LANCHOR96 bl print_list_info - adrp x1, .LANCHOR94 - adrp x0, .LANCHOR95 - add x1, x1, :lo12:.LANCHOR94 - add x0, x0, :lo12:.LANCHOR95 + adrp x1, .LANCHOR97 + adrp x0, .LANCHOR98 + add x1, x1, :lo12:.LANCHOR97 + add x0, x0, :lo12:.LANCHOR98 bl print_list_info - adrp x1, .LANCHOR85 + adrp x1, .LANCHOR88 adrp x0, .LANCHOR12 - add x1, x1, :lo12:.LANCHOR85 + add x1, x1, :lo12:.LANCHOR88 add x0, x0, :lo12:.LANCHOR12 bl print_list_info - adrp x1, .LANCHOR83 - adrp x0, .LANCHOR76 - add x1, x1, :lo12:.LANCHOR83 - add x0, x0, :lo12:.LANCHOR76 + adrp x1, .LANCHOR86 + adrp x0, .LANCHOR79 + add x1, x1, :lo12:.LANCHOR86 + add x0, x0, :lo12:.LANCHOR79 bl print_list_info ldp x29, x30, [sp], 16 - adrp x1, .LANCHOR87 - adrp x0, .LANCHOR75 - add x1, x1, :lo12:.LANCHOR87 - add x0, x0, :lo12:.LANCHOR75 + adrp x1, .LANCHOR90 + adrp x0, .LANCHOR78 + add x1, x1, :lo12:.LANCHOR90 + add x0, x0, :lo12:.LANCHOR78 b print_list_info .size dump_all_list_info, .-dump_all_list_info .section .text.ftl_tmp_into_update,"ax",@progbits @@ -4565,40 +4761,40 @@ dump_all_list_info: .global ftl_tmp_into_update .type ftl_tmp_into_update, %function ftl_tmp_into_update: - adrp x0, .LANCHOR97 - ldr x0, [x0, #:lo12:.LANCHOR97] + adrp x0, .LANCHOR100 + ldr x0, [x0, #:lo12:.LANCHOR100] ldr w1, [x0, 16] cmp w1, 2048 - bls .L834 + bls .L872 ldr w2, [x0, 20] add w2, w2, w1, lsr 11 and w1, w1, 2047 stp w1, w2, [x0, 16] -.L834: +.L872: ldr w1, [x0, 24] cmp w1, 2048 - bls .L835 + bls .L873 ldr w2, [x0, 28] add w2, w2, w1, lsr 11 and w1, w1, 2047 stp w1, w2, [x0, 24] -.L835: +.L873: ldr w1, [x0, 32] cmp w1, 1024 - bls .L836 + bls .L874 ldr w2, [x0, 36] add w2, w2, w1, lsr 10 and w1, w1, 1023 stp w1, w2, [x0, 32] -.L836: +.L874: ldr w1, [x0, 40] cmp w1, 1024 - bls .L833 + bls .L871 ldr w2, [x0, 44] add w2, w2, w1, lsr 10 and w1, w1, 1023 stp w1, w2, [x0, 40] -.L833: +.L871: ret .size ftl_tmp_into_update, .-ftl_tmp_into_update .section .text.ftl_get_blk_list_in_sblk,"ax",@progbits @@ -4608,35 +4804,35 @@ ftl_tmp_into_update: ftl_get_blk_list_in_sblk: adrp x2, .LANCHOR7 and w0, w0, 65535 - adrp x7, .LANCHOR99 - add x7, x7, :lo12:.LANCHOR99 + adrp x7, .LANCHOR102 + add x7, x7, :lo12:.LANCHOR102 ldr x2, [x2, #:lo12:.LANCHOR7] mov w3, 0 mov w13, 21 add x2, x2, x0, uxth 2 ldrb w12, [x2, 3] - adrp x2, .LANCHOR73 - ldrb w10, [x2, #:lo12:.LANCHOR73] - adrp x2, .LANCHOR98 - ldrb w6, [x2, #:lo12:.LANCHOR98] + adrp x2, .LANCHOR76 + ldrb w10, [x2, #:lo12:.LANCHOR76] + adrp x2, .LANCHOR101 + ldrb w6, [x2, #:lo12:.LANCHOR101] and w2, w6, 65535 mul w0, w0, w2 sub w2, w2, #1 sxth w5, w2 and w4, w0, 65535 mov w0, 0 -.L839: +.L877: cmp w3, w10 - blt .L843 + blt .L881 sxtw x2, w0 mov w3, -1 -.L844: +.L882: cmp w10, w2 - bgt .L845 + bgt .L883 ret -.L843: +.L881: asr w2, w12, w3 - tbnz x2, 0, .L840 + tbnz x2, 0, .L878 sdiv w2, w3, w6 ldrh w8, [x7] sbfiz x11, x0, 1, 32 @@ -4645,21 +4841,21 @@ ftl_get_blk_list_in_sblk: lsl w2, w2, w8 add w2, w4, w2 and w2, w2, 65535 - bhi .L841 -.L846: + bhi .L879 +.L884: add w0, w0, 1 strh w2, [x1, x11] -.L840: +.L878: add w3, w3, 1 - b .L839 -.L841: + b .L877 +.L879: and w8, w5, w3 add w2, w2, w8 - b .L846 -.L845: + b .L884 +.L883: strh w3, [x1, x2, lsl 1] add x2, x2, 1 - b .L844 + b .L882 .size ftl_get_blk_list_in_sblk, .-ftl_get_blk_list_in_sblk .section .text.ftl_free_sblk,"ax",@progbits .align 2 @@ -4678,14 +4874,14 @@ ftl_free_sblk: mov x19, x23 add x20, x4, x21 ldrb w0, [x20, 2] - tbz x0, 3, .L849 - adrp x1, .LANCHOR97 + tbz x0, 3, .L887 + adrp x1, .LANCHOR100 ldrh w2, [x4, x21] - adrp x8, .LANCHOR100 - ldr x7, [x1, #:lo12:.LANCHOR97] + adrp x8, .LANCHOR103 + ldr x7, [x1, #:lo12:.LANCHOR100] and w3, w2, 2047 ldr w2, [x4, x21] - ldrh w8, [x8, #:lo12:.LANCHOR100] + ldrh w8, [x8, #:lo12:.LANCHOR103] ldrh w1, [x7, 74] ubfx x6, x2, 11, 8 adrp x2, .LANCHOR8 @@ -4698,26 +4894,26 @@ ftl_free_sblk: and w1, w1, 65535 add w7, w7, w1 cmp w7, w8 - ble .L850 - adrp x1, .LANCHOR88 - adrp x7, .LANCHOR92 - ldrh w5, [x1, #:lo12:.LANCHOR88] - adrp x1, .LANCHOR87 - ldrh w7, [x7, #:lo12:.LANCHOR92] - ldrh w1, [x1, #:lo12:.LANCHOR87] + ble .L888 + adrp x1, .LANCHOR91 + adrp x7, .LANCHOR95 + ldrh w5, [x1, #:lo12:.LANCHOR91] + adrp x1, .LANCHOR90 + ldrh w7, [x7, #:lo12:.LANCHOR95] + ldrh w1, [x1, #:lo12:.LANCHOR90] add w5, w5, 7 add w1, w1, w7 cmp w5, w1 - blt .L851 -.L866: + blt .L889 +.L904: mov w1, 2 bfi w0, w1, 3, 2 -.L864: +.L902: strb w0, [x20, 2] -.L852: +.L890: ldrb w0, [x20, 2] ands w0, w0, 24 - bne .L856 + bne .L894 mul w2, w6, w2 ldrh w0, [x4, x21] add w2, w2, w2, lsl 1 @@ -4725,7 +4921,7 @@ ftl_free_sblk: ubfx x2, x2, 2, 9 bfi w0, w2, 0, 11 strh w0, [x4, x21] -.L849: +.L887: mov w0, w19 bl zftl_remove_data_node ldr x0, [x22, #:lo12:.LANCHOR7] @@ -4737,78 +4933,78 @@ ftl_free_sblk: ldr x0, [x0, #:lo12:.LANCHOR9] strh wzr, [x0, x23, lsl 1] ldrb w0, [x20, 2] - tbz x0, 3, .L858 + tbz x0, 3, .L896 adrp x0, .LANCHOR10 ldr x0, [x0, #:lo12:.LANCHOR10] ldrh w1, [x0, 584] cmp w1, w19 - bne .L859 + bne .L897 mov w1, -1 ldrh w2, [x0, 588] strh w1, [x0, 584] mov w1, 65535 cmp w2, w1 - bne .L858 + bne .L896 strh w19, [x0, 588] mov w1, w19 - adrp x0, .LC55 - add x0, x0, :lo12:.LC55 -.L865: + adrp x0, .LC56 + add x0, x0, :lo12:.LC56 +.L903: ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldr x23, [sp, 48] ldp x29, x30, [sp], 64 b printf -.L851: - adrp x1, .LANCHOR101 - adrp x7, .LANCHOR90 - ldrh w5, [x1, #:lo12:.LANCHOR101] - adrp x1, .LANCHOR85 - ldrh w7, [x7, #:lo12:.LANCHOR90] - ldrh w1, [x1, #:lo12:.LANCHOR85] - add w5, w5, 7 - add w1, w1, w7 - adrp x7, .LANCHOR83 - ldrh w7, [x7, #:lo12:.LANCHOR83] - add w1, w1, w7 - cmp w5, w1 - blt .L866 -.L855: - and w0, w0, -25 - b .L864 -.L850: - madd w1, w2, w1, w5 - adrp x5, .LANCHOR102 - ldrh w5, [x5, #:lo12:.LANCHOR102] - cmp w1, w5 - ble .L852 - adrp x1, .LANCHOR101 - adrp x7, .LANCHOR90 - ldrh w5, [x1, #:lo12:.LANCHOR101] - adrp x1, .LANCHOR85 - ldrh w7, [x7, #:lo12:.LANCHOR90] - ldrh w1, [x1, #:lo12:.LANCHOR85] - add w5, w5, 7 - add w1, w1, w7 - adrp x7, .LANCHOR83 - ldrh w7, [x7, #:lo12:.LANCHOR83] - add w1, w1, w7 - cmp w5, w1 - bge .L855 +.L889: + adrp x1, .LANCHOR104 + adrp x7, .LANCHOR93 + ldrh w5, [x1, #:lo12:.LANCHOR104] adrp x1, .LANCHOR88 - adrp x7, .LANCHOR92 - ldrh w5, [x1, #:lo12:.LANCHOR88] - adrp x1, .LANCHOR87 - ldrh w7, [x7, #:lo12:.LANCHOR92] - ldrh w1, [x1, #:lo12:.LANCHOR87] + ldrh w7, [x7, #:lo12:.LANCHOR93] + ldrh w1, [x1, #:lo12:.LANCHOR88] + add w5, w5, 7 + add w1, w1, w7 + adrp x7, .LANCHOR86 + ldrh w7, [x7, #:lo12:.LANCHOR86] + add w1, w1, w7 + cmp w5, w1 + blt .L904 +.L893: + and w0, w0, -25 + b .L902 +.L888: + madd w1, w2, w1, w5 + adrp x5, .LANCHOR105 + ldrh w5, [x5, #:lo12:.LANCHOR105] + cmp w1, w5 + ble .L890 + adrp x1, .LANCHOR104 + adrp x7, .LANCHOR93 + ldrh w5, [x1, #:lo12:.LANCHOR104] + adrp x1, .LANCHOR88 + ldrh w7, [x7, #:lo12:.LANCHOR93] + ldrh w1, [x1, #:lo12:.LANCHOR88] + add w5, w5, 7 + add w1, w1, w7 + adrp x7, .LANCHOR86 + ldrh w7, [x7, #:lo12:.LANCHOR86] + add w1, w1, w7 + cmp w5, w1 + bge .L893 + adrp x1, .LANCHOR91 + adrp x7, .LANCHOR95 + ldrh w5, [x1, #:lo12:.LANCHOR91] + adrp x1, .LANCHOR90 + ldrh w7, [x7, #:lo12:.LANCHOR95] + ldrh w1, [x1, #:lo12:.LANCHOR90] add w5, w5, 7 add w1, w1, w7 cmp w5, w1 - blt .L855 - b .L866 -.L856: + blt .L893 + b .L904 +.L894: cmp w0, 16 - bne .L849 + bne .L887 sdiv w2, w3, w2 ldr w0, [x4, x21] add w2, w2, w2, lsl 1 @@ -4816,23 +5012,23 @@ ftl_free_sblk: ubfx x2, x2, 2, 6 bfi w0, w2, 11, 8 str w0, [x4, x21] - b .L849 -.L859: + b .L887 +.L897: ldrh w1, [x0, 586] cmp w1, w19 - bne .L858 + bne .L896 mov w1, -1 ldrh w2, [x0, 590] strh w1, [x0, 586] mov w1, 65535 cmp w2, w1 - bne .L858 + bne .L896 strh w19, [x0, 590] mov w1, w19 - adrp x0, .LC56 - add x0, x0, :lo12:.LC56 - b .L865 -.L858: + adrp x0, .LC57 + add x0, x0, :lo12:.LC57 + b .L903 +.L896: mov w0, w19 ldr x23, [sp, 48] ldp x19, x20, [sp, 16] @@ -4848,20 +5044,20 @@ gc_free_src_blk: stp x29, x30, [sp, -80]! add x29, sp, 0 stp x21, x22, [sp, 32] - adrp x21, .LANCHOR62 + adrp x21, .LANCHOR63 stp x23, x24, [sp, 48] - adrp x22, .LC57 + adrp x22, .LC58 adrp x23, .LANCHOR9 - add x21, x21, :lo12:.LANCHOR62 + add x21, x21, :lo12:.LANCHOR63 mov x24, x23 - add x22, x22, :lo12:.LC57 + add x22, x22, :lo12:.LC58 stp x19, x20, [sp, 16] mov w20, 0 stp x25, x26, [sp, 64] -.L868: +.L906: ldrh w0, [x21, 56] cmp w0, w20 - bhi .L882 + bhi .L920 strh wzr, [x21, 56] ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] @@ -4869,18 +5065,18 @@ gc_free_src_blk: ldp x25, x26, [sp, 64] ldp x29, x30, [sp], 80 ret -.L882: +.L920: add x0, x21, x20, sxtw 1 ldrh w25, [x0, 58] ldr x0, [x23, #:lo12:.LANCHOR9] mov x19, x25 lsl x26, x25, 1 ldrh w2, [x0, x26] - cbz w2, .L869 + cbz w2, .L907 mov w1, w25 mov x0, x22 bl printf -.L869: +.L907: ldr x0, [x24, #:lo12:.LANCHOR9] strh wzr, [x0, x26] adrp x0, .LANCHOR7 @@ -4888,95 +5084,95 @@ gc_free_src_blk: add x25, x0, x25, lsl 2 adrp x0, .LANCHOR14 ldr w0, [x0, #:lo12:.LANCHOR14] - tbz x0, 8, .L870 + tbz x0, 8, .L908 ldrb w2, [x25, 2] - adrp x0, .LC58 + adrp x0, .LC59 mov w1, w19 - add x0, x0, :lo12:.LC58 + add x0, x0, :lo12:.LC59 ubfx x2, x2, 5, 3 bl printf -.L870: +.L908: ldrb w0, [x25, 2] and w1, w0, 224 cmp w1, 224 - beq .L871 + beq .L909 tst w0, 192 - bne .L872 -.L871: - adrp x1, .LANCHOR103 + bne .L910 +.L909: + adrp x1, .LANCHOR106 adrp x0, .LC0 - mov w2, 799 - add x1, x1, :lo12:.LANCHOR103 + mov w2, 884 + add x1, x1, :lo12:.LANCHOR106 add x0, x0, :lo12:.LC0 bl printf -.L872: +.L910: mov w0, w19 bl ftl_free_sblk adrp x0, .LANCHOR10 ldr x0, [x0, #:lo12:.LANCHOR10] ldrh w2, [x0, 124] - cbz w2, .L873 + cbz w2, .L911 add x3, x0, 392 mov w1, 0 -.L875: +.L913: ldrh w4, [x3] cmp w4, w19 - bne .L874 + bne .L912 add x1, x0, x1, sxtw 1 mov w3, -1 sub w2, w2, #1 strh w3, [x1, 392] strh w2, [x0, 124] -.L873: +.L911: ldrh w2, [x0, 120] - cbz w2, .L876 + cbz w2, .L914 add x3, x0, 136 mov w1, 0 -.L878: +.L916: ldrh w4, [x3] cmp w4, w19 - bne .L877 + bne .L915 add x1, x0, x1, sxtw 1 mov w3, -1 sub w2, w2, #1 strh w3, [x1, 136] strh w2, [x0, 120] -.L876: +.L914: ldrh w2, [x0, 122] - cbz w2, .L879 + cbz w2, .L917 add x3, x0, 264 mov w1, 0 -.L881: +.L919: ldrh w4, [x3] cmp w4, w19 - bne .L880 + bne .L918 add x1, x0, x1, sxtw 1 mov w3, -1 sub w2, w2, #1 strh w3, [x1, 264] strh w2, [x0, 122] -.L879: +.L917: add w20, w20, 1 and w20, w20, 65535 - b .L868 -.L874: + b .L906 +.L912: add w1, w1, 1 add x3, x3, 2 cmp w1, 64 - bne .L875 - b .L873 -.L877: + bne .L913 + b .L911 +.L915: add w1, w1, 1 add x3, x3, 2 cmp w1, 64 - bne .L878 - b .L876 -.L880: + bne .L916 + b .L914 +.L918: add w1, w1, 1 add x3, x3, 2 cmp w1, 64 - bne .L881 - b .L879 + bne .L919 + b .L917 .size gc_free_src_blk, .-gc_free_src_blk .section .text.ftl_erase_phy_blk,"ax",@progbits .align 2 @@ -4988,29 +5184,32 @@ ftl_erase_phy_blk: add x29, sp, 0 stp x21, x22, [sp, 32] mov w21, w1 - adrp x1, .LANCHOR99 + adrp x1, .LANCHOR102 stp x19, x20, [sp, 16] mov w19, 21 - adrp x22, .LANCHOR105 - ldrh w1, [x1, #:lo12:.LANCHOR99] + adrp x22, .LANCHOR107 + ldrh w1, [x1, #:lo12:.LANCHOR102] sub w1, w19, w1 mov w19, 1 lsl w19, w19, w1 sub w19, w19, #1 and w19, w19, w0 asr w20, w0, w1 - adrp x0, .LANCHOR104 + adrp x0, .LANCHOR70 sxth w19, w19 - ldrb w0, [x0, #:lo12:.LANCHOR104] - cbz w0, .L906 - ldrh w2, [x22, #:lo12:.LANCHOR105] + ldrb w0, [x0, #:lo12:.LANCHOR70] + cbz w0, .L944 + adrp x0, .LANCHOR71 + ldrb w0, [x0, #:lo12:.LANCHOR71] + cbnz w0, .L944 + ldrh w2, [x22, #:lo12:.LANCHOR107] cmp w21, 0 cset w1, eq mov w0, w20 mul w2, w2, w19 bl flash_erase_block_en -.L906: - ldrh w2, [x22, #:lo12:.LANCHOR105] +.L944: + ldrh w2, [x22, #:lo12:.LANCHOR107] mov w1, w21 mov w0, w20 ldp x21, x22, [sp, 32] @@ -5031,56 +5230,56 @@ ftl_erase_sblk: stp x25, x26, [sp, 64] and w26, w0, 65535 ldr x0, [x23, #:lo12:.LANCHOR7] - adrp x25, .LANCHOR106 + adrp x25, .LANCHOR108 stp x21, x22, [sp, 32] ubfiz x22, x26, 2, 16 add x0, x0, x22 stp x27, x28, [sp, 80] stp x19, x20, [sp, 16] - adrp x24, .LANCHOR98 + adrp x24, .LANCHOR101 mov w20, w1 - add x25, x25, :lo12:.LANCHOR106 + add x25, x25, :lo12:.LANCHOR108 ldrb w28, [x0, 3] - add x24, x24, :lo12:.LANCHOR98 + add x24, x24, :lo12:.LANCHOR101 add x27, x29, 112 mov w19, 0 -.L912: +.L950: ldrb w0, [x25] cmp w19, w0 - bge .L923 + bge .L961 ldrb w1, [x24] - adrp x0, .LANCHOR105 + adrp x0, .LANCHOR107 mov w21, 0 - ldrh w3, [x0, #:lo12:.LANCHOR105] + ldrh w3, [x0, #:lo12:.LANCHOR107] sub w4, w1, #1 mov w0, 0 mul w6, w19, w1 mul w5, w26, w1 - b .L924 -.L914: + b .L962 +.L952: add w2, w0, w6 asr w2, w28, w2 - tbnz x2, 0, .L913 + tbnz x2, 0, .L951 and w2, w0, w4 add w2, w2, w5 mul w2, w2, w3 str w2, [x27, w21, sxtw 2] add w21, w21, 1 -.L913: +.L951: add w0, w0, 1 -.L924: +.L962: cmp w0, w1 - blt .L914 + blt .L952 cmp w1, 4 - bne .L915 + bne .L953 mov x3, 0 -.L916: +.L954: cmp w21, w3 - bgt .L917 -.L918: + bgt .L955 +.L956: add w19, w19, 1 - b .L912 -.L917: + b .L950 +.L955: ldr w2, [x27, x3, lsl 2] mov w1, w20 str x3, [x29, 104] @@ -5088,59 +5287,65 @@ ftl_erase_sblk: bl flash_erase_block_en ldr x3, [x29, 104] add x3, x3, 1 - b .L916 -.L915: + b .L954 +.L953: cmp w21, 2 - bne .L919 - adrp x0, .LANCHOR104 - ldrb w0, [x0, #:lo12:.LANCHOR104] - cbz w0, .L920 + bne .L957 + adrp x0, .LANCHOR70 + ldrb w0, [x0, #:lo12:.LANCHOR70] + cbz w0, .L958 + adrp x0, .LANCHOR71 + ldrb w0, [x0, #:lo12:.LANCHOR71] + cbnz w0, .L958 ldp w2, w3, [x29, 112] cmp w20, 0 cset w1, eq mov w0, w19 bl flash_erase_duplane_block -.L920: +.L958: ldp w2, w3, [x29, 112] mov w1, w20 mov w0, w19 bl flash_erase_duplane_block - b .L918 -.L919: + b .L956 +.L957: cmp w21, 1 - bne .L918 - adrp x0, .LANCHOR104 - ldrb w0, [x0, #:lo12:.LANCHOR104] - cbz w0, .L922 + bne .L956 + adrp x0, .LANCHOR70 + ldrb w0, [x0, #:lo12:.LANCHOR70] + cbz w0, .L960 + adrp x0, .LANCHOR71 + ldrb w0, [x0, #:lo12:.LANCHOR71] + cbnz w0, .L960 ldr w2, [x29, 112] cmp w20, 0 cset w1, eq mov w0, w19 bl flash_erase_block_en -.L922: +.L960: ldr w2, [x29, 112] mov w1, w20 mov w0, w19 bl flash_erase_block_en - b .L918 -.L923: - adrp x2, .LANCHOR97 + b .L956 +.L961: + adrp x2, .LANCHOR100 ldr x3, [x23, #:lo12:.LANCHOR7] - cbnz w20, .L925 + cbnz w20, .L963 ldrh w1, [x3, x22] add w0, w1, 1 and w0, w0, 2047 bfi w1, w0, 0, 11 strh w1, [x3, x22] - ldr x1, [x2, #:lo12:.LANCHOR97] + ldr x1, [x2, #:lo12:.LANCHOR100] ldr w2, [x1, 84] add w2, w2, 1 str w2, [x1, 84] ldrh w2, [x1, 96] cmp w2, w0 - bge .L927 + bge .L965 strh w0, [x1, 96] -.L927: +.L965: ldp x19, x20, [sp, 16] mov w0, 0 ldp x21, x22, [sp, 32] @@ -5149,7 +5354,7 @@ ftl_erase_sblk: ldp x27, x28, [sp, 80] ldp x29, x30, [sp], 176 ret -.L925: +.L963: ldr w1, [x3, x22] ubfx x0, x1, 11, 8 add w0, w0, 1 @@ -5157,15 +5362,15 @@ ftl_erase_sblk: bfi w1, w0, 11, 8 str w1, [x3, x22] and w0, w0, 65535 - ldr x1, [x2, #:lo12:.LANCHOR97] + ldr x1, [x2, #:lo12:.LANCHOR100] ldr w2, [x1, 80] add w2, w2, 1 str w2, [x1, 80] ldrh w2, [x1, 98] cmp w2, w0 - bcs .L927 + bcs .L965 strh w0, [x1, 98] - b .L927 + b .L965 .size ftl_erase_sblk, .-ftl_erase_sblk .section .text.ftl_alloc_sys_blk,"ax",@progbits .align 2 @@ -5173,44 +5378,44 @@ ftl_erase_sblk: .type ftl_alloc_sys_blk, %function ftl_alloc_sys_blk: stp x29, x30, [sp, -32]! - adrp x0, .LANCHOR97 + adrp x0, .LANCHOR100 add x29, sp, 0 - ldr x1, [x0, #:lo12:.LANCHOR97] + ldr x1, [x0, #:lo12:.LANCHOR100] ldrh w2, [x1, 136] str x19, [sp, 16] mov x19, x0 cmp w2, 63 - bls .L937 + bls .L975 strh wzr, [x1, 136] -.L937: +.L975: ldrh w0, [x1, 112] - cbnz w0, .L938 - adrp x1, .LANCHOR107 + cbnz w0, .L976 + adrp x1, .LANCHOR109 adrp x0, .LC0 mov w2, 1117 - add x1, x1, :lo12:.LANCHOR107 + add x1, x1, :lo12:.LANCHOR109 add x0, x0, :lo12:.LC0 bl printf -.L938: - ldr x1, [x19, #:lo12:.LANCHOR97] +.L976: + ldr x1, [x19, #:lo12:.LANCHOR100] mov w5, 65535 -.L941: +.L979: ldrh w2, [x1, 136] -.L939: +.L977: mov w3, w2 cmp w2, 63 - ble .L940 + ble .L978 strh wzr, [x1, 136] - b .L941 -.L940: + b .L979 +.L978: add x4, x2, 1 add x0, x1, x4, lsl 1 ldrh w0, [x0, 158] cmp w0, w5 - bne .L944 + bne .L982 mov x2, x4 - b .L939 -.L944: + b .L977 +.L982: add x3, x1, x3, sxtw 1 mov w4, -1 ldr x19, [sp, 16] @@ -5231,40 +5436,40 @@ ftl_free_sys_blk: add x29, sp, 0 stp x19, x20, [sp, 16] and w20, w0, 65535 - adrp x0, .LANCHOR97 + adrp x0, .LANCHOR100 mov x19, x0 - ldr x1, [x0, #:lo12:.LANCHOR97] + ldr x1, [x0, #:lo12:.LANCHOR100] ldrh w2, [x1, 138] cmp w2, 63 - bls .L947 + bls .L985 strh wzr, [x1, 138] -.L947: +.L985: ldrh w0, [x1, 112] cmp w0, 63 - bls .L948 - adrp x1, .LANCHOR108 + bls .L986 + adrp x1, .LANCHOR110 adrp x0, .LC0 mov w2, 1141 - add x1, x1, :lo12:.LANCHOR108 + add x1, x1, :lo12:.LANCHOR110 add x0, x0, :lo12:.LC0 bl printf -.L948: - ldr x0, [x19, #:lo12:.LANCHOR97] +.L986: + ldr x0, [x19, #:lo12:.LANCHOR100] mov w4, 65535 -.L951: +.L989: ldrh w1, [x0, 138] -.L949: +.L987: mov w2, w1 cmp w1, 63 - ble .L950 + ble .L988 strh wzr, [x0, 138] - b .L951 -.L950: + b .L989 +.L988: add x3, x1, 1 add x5, x0, x3, lsl 1 ldrh w5, [x5, 158] cmp w5, w4 - bne .L952 + bne .L990 add x2, x0, x2, sxtw 1 strh w20, [x2, 160] strh w1, [x0, 138] @@ -5274,9 +5479,9 @@ ftl_free_sys_blk: strh w1, [x0, 112] ldp x29, x30, [sp], 32 ret -.L952: +.L990: mov x1, x3 - b .L949 + b .L987 .size ftl_free_sys_blk, .-ftl_free_sys_blk .section .text.ftl_info_data_recovery,"ax",@progbits .align 2 @@ -5286,7 +5491,7 @@ ftl_info_data_recovery: ldrh w2, [x0] mov w1, 65535 cmp w2, w1 - beq .L965 + beq .L1003 stp x29, x30, [sp, -48]! adrp x1, .LANCHOR7 add x29, sp, 0 @@ -5297,25 +5502,25 @@ ftl_info_data_recovery: add x21, x20, x19 ldrb w1, [x21, 2] tst w1, 224 - bne .L955 + bne .L993 ldrb w0, [x0, 4] bfi w1, w0, 5, 3 strb w1, [x21, 2] mov w0, w2 bl zftl_remove_free_node ldrb w0, [x21, 2] - adrp x1, .LANCHOR97 - ldr x3, [x1, #:lo12:.LANCHOR97] - tbz x0, 3, .L959 + adrp x1, .LANCHOR100 + ldr x3, [x1, #:lo12:.LANCHOR100] + tbz x0, 3, .L997 ldrh w2, [x3, 116] sub w2, w2, #1 strh w2, [x3, 116] -.L960: +.L998: and w0, w0, 224 cmp w0, 160 - bne .L962 + bne .L1000 ldr w0, [x20, x19] - ldr x1, [x1, #:lo12:.LANCHOR97] + ldr x1, [x1, #:lo12:.LANCHOR100] ubfx x2, x0, 11, 8 add w2, w2, 1 bfi w0, w2, 11, 8 @@ -5323,44 +5528,44 @@ ftl_info_data_recovery: ldrh w0, [x1, 120] sub w0, w0, #1 strh w0, [x1, 120] -.L955: +.L993: ldp x19, x20, [sp, 16] ldr x21, [sp, 32] ldp x29, x30, [sp], 48 ret -.L959: +.L997: tst w0, 24 - bne .L961 + bne .L999 ldrh w2, [x3, 114] sub w2, w2, #1 strh w2, [x3, 114] - b .L960 -.L961: + b .L998 +.L999: ldrh w2, [x3, 118] sub w2, w2, #1 strh w2, [x3, 118] - b .L960 -.L962: + b .L998 +.L1000: ldrh w2, [x20, x19] cmp w0, 64 add w3, w2, 1 bfi w2, w3, 0, 11 strh w2, [x20, x19] - bne .L963 - ldr x1, [x1, #:lo12:.LANCHOR97] + bne .L1001 + ldr x1, [x1, #:lo12:.LANCHOR100] ldrh w0, [x1, 122] sub w0, w0, #1 strh w0, [x1, 122] - b .L955 -.L963: + b .L993 +.L1001: cmp w0, 96 - bne .L955 - ldr x1, [x1, #:lo12:.LANCHOR97] + bne .L993 + ldr x1, [x1, #:lo12:.LANCHOR100] ldrh w0, [x1, 124] sub w0, w0, #1 strh w0, [x1, 124] - b .L955 -.L965: + b .L993 +.L1003: ret .size ftl_info_data_recovery, .-ftl_info_data_recovery .section .text.ftl_get_ppa_from_index,"ax",@progbits @@ -5370,19 +5575,19 @@ ftl_info_data_recovery: ftl_get_ppa_from_index: stp x29, x30, [sp, -32]! adrp x1, .LANCHOR10 - adrp x3, .LANCHOR73 + adrp x3, .LANCHOR76 and w0, w0, 65535 add x29, sp, 0 ldr x2, [x1, #:lo12:.LANCHOR10] - adrp x1, .LANCHOR80 - ldrb w3, [x3, #:lo12:.LANCHOR73] - ldrh w1, [x1, #:lo12:.LANCHOR80] + adrp x1, .LANCHOR83 + ldrb w3, [x3, #:lo12:.LANCHOR76] + ldrh w1, [x1, #:lo12:.LANCHOR83] stp x19, x20, [sp, 16] mul w1, w1, w3 cmp w0, w1 - bge .L969 + bge .L1007 add x2, x2, 16 -.L970: +.L1008: ldrb w1, [x2, 9] sdiv w19, w0, w1 msub w0, w19, w1, w0 @@ -5390,25 +5595,25 @@ ftl_get_ppa_from_index: ldrh w20, [x0, 16] mov w0, 65535 cmp w20, w0 - bne .L971 - adrp x1, .LANCHOR109 + bne .L1009 + adrp x1, .LANCHOR111 adrp x0, .LC0 - mov w2, 1528 - add x1, x1, :lo12:.LANCHOR109 + mov w2, 1580 + add x1, x1, :lo12:.LANCHOR111 add x0, x0, :lo12:.LC0 bl printf -.L971: - adrp x0, .LANCHOR105 - ldrh w0, [x0, #:lo12:.LANCHOR105] +.L1009: + adrp x0, .LANCHOR107 + ldrh w0, [x0, #:lo12:.LANCHOR107] madd w0, w0, w20, w19 ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 32 ret -.L969: +.L1007: sub w0, w0, w1 add x2, x2, 48 and w0, w0, 65535 - b .L970 + b .L1008 .size ftl_get_ppa_from_index, .-ftl_get_ppa_from_index .section .text.lpa_hash_get_ppa,"ax",@progbits .align 2 @@ -5416,29 +5621,29 @@ ftl_get_ppa_from_index: .type lpa_hash_get_ppa, %function lpa_hash_get_ppa: and x2, x0, 255 - adrp x1, .LANCHOR110 - add x1, x1, :lo12:.LANCHOR110 + adrp x1, .LANCHOR112 + add x1, x1, :lo12:.LANCHOR112 mov w3, 65535 ldrh w1, [x1, x2, lsl 1] - adrp x2, .LANCHOR111 - ldr x4, [x2, #:lo12:.LANCHOR111] - adrp x2, .LANCHOR112 - ldr x5, [x2, #:lo12:.LANCHOR112] -.L974: + adrp x2, .LANCHOR113 + ldr x4, [x2, #:lo12:.LANCHOR113] + adrp x2, .LANCHOR114 + ldr x5, [x2, #:lo12:.LANCHOR114] +.L1012: cmp w1, w3 - bne .L976 + bne .L1014 mov w0, -1 ret -.L976: +.L1014: uxtw x2, w1 ldr w6, [x4, x2, lsl 2] cmp w0, w6 - bne .L975 + bne .L1013 mov w0, w1 b ftl_get_ppa_from_index -.L975: +.L1013: ldrh w1, [x5, x2, lsl 1] - b .L974 + b .L1012 .size lpa_hash_get_ppa, .-lpa_hash_get_ppa .section .text.ftl_get_new_free_page,"ax",@progbits .align 2 @@ -5452,50 +5657,50 @@ ftl_get_new_free_page: mov x19, x0 mov w0, 65535 cmp w1, w0 - bne .L978 - adrp x1, .LANCHOR113 + bne .L1016 + adrp x1, .LANCHOR115 adrp x0, .LC0 - mov w2, 1643 - add x1, x1, :lo12:.LANCHOR113 + mov w2, 1695 + add x1, x1, :lo12:.LANCHOR115 add x0, x0, :lo12:.LC0 bl printf -.L978: - adrp x0, .LANCHOR80 +.L1016: + adrp x0, .LANCHOR83 ldrh w1, [x19, 2] - ldrh w0, [x0, #:lo12:.LANCHOR80] + ldrh w0, [x0, #:lo12:.LANCHOR83] cmp w1, w0 - bne .L979 - adrp x1, .LANCHOR113 + bne .L1017 + adrp x1, .LANCHOR115 adrp x0, .LC0 - mov w2, 1644 - add x1, x1, :lo12:.LANCHOR113 + mov w2, 1696 + add x1, x1, :lo12:.LANCHOR115 add x0, x0, :lo12:.LC0 bl printf -.L979: +.L1017: ldrh w0, [x19, 6] - cbnz w0, .L980 - adrp x1, .LANCHOR113 + cbnz w0, .L1018 + adrp x1, .LANCHOR115 adrp x0, .LC0 - mov w2, 1645 - add x1, x1, :lo12:.LANCHOR113 + mov w2, 1697 + add x1, x1, :lo12:.LANCHOR115 add x0, x0, :lo12:.LC0 bl printf -.L980: +.L1018: ldrb w0, [x19, 5] mov w2, 65535 add x0, x0, 8 ldrh w3, [x19, x0, lsl 1] - adrp x0, .LANCHOR73 - ldrb w4, [x0, #:lo12:.LANCHOR73] -.L981: + adrp x0, .LANCHOR76 + ldrb w4, [x0, #:lo12:.LANCHOR76] +.L1019: cmp w3, w2 ldrb w1, [x19, 5] - beq .L983 - adrp x0, .LANCHOR105 + beq .L1021 + adrp x0, .LANCHOR107 add w1, w1, 1 and w1, w1, 255 ldrh w2, [x19, 2] - ldrh w0, [x0, #:lo12:.LANCHOR105] + ldrh w0, [x0, #:lo12:.LANCHOR107] cmp w4, w1 strb w1, [x19, 5] mul w0, w0, w3 @@ -5506,29 +5711,29 @@ ftl_get_new_free_page: orr w0, w0, w2 add w3, w3, 1 strh w3, [x19, 10] - bne .L977 + bne .L1015 add w2, w2, 1 strb wzr, [x19, 5] strh w2, [x19, 2] -.L977: +.L1015: ldr x19, [sp, 16] ldp x29, x30, [sp], 32 ret -.L983: +.L1021: add w1, w1, 1 and w1, w1, 255 strb w1, [x19, 5] cmp w1, w4 - bne .L982 + bne .L1020 ldrh w0, [x19, 2] strb wzr, [x19, 5] add w0, w0, 1 strh w0, [x19, 2] -.L982: +.L1020: ldrb w0, [x19, 5] add x0, x0, 8 ldrh w3, [x19, x0, lsl 1] - b .L981 + b .L1019 .size ftl_get_new_free_page, .-ftl_get_new_free_page .section .text.ftl_ext_alloc_new_blk,"ax",@progbits .align 2 @@ -5544,22 +5749,22 @@ ftl_ext_alloc_new_blk: mov w19, w0 sub w0, w0, #1 cmp w1, w0, uxth - bcs .L987 - adrp x1, .LANCHOR114 + bcs .L1025 + adrp x1, .LANCHOR116 adrp x0, .LC0 - mov w2, 1676 - add x1, x1, :lo12:.LANCHOR114 + mov w2, 1728 + add x1, x1, :lo12:.LANCHOR116 add x0, x0, :lo12:.LC0 bl printf -.L987: - adrp x20, .LANCHOR97 +.L1025: + adrp x20, .LANCHOR100 mov w1, 0 mov w0, w19 bl ftl_erase_phy_blk - ldr x0, [x20, #:lo12:.LANCHOR97] + ldr x0, [x20, #:lo12:.LANCHOR100] ldrh w0, [x0, 130] bl ftl_free_sys_blk - ldr x0, [x20, #:lo12:.LANCHOR97] + ldr x0, [x20, #:lo12:.LANCHOR100] strh w19, [x0, 130] strh wzr, [x0, 140] mov w0, 0 @@ -5572,18 +5777,18 @@ ftl_ext_alloc_new_blk: .global ftl_total_vpn_update .type ftl_total_vpn_update, %function ftl_total_vpn_update: - adrp x2, .LANCHOR115 + adrp x2, .LANCHOR117 mov x3, x2 - ldrh w1, [x2, #:lo12:.LANCHOR115] + ldrh w1, [x2, #:lo12:.LANCHOR117] cmp w1, 4 - bhi .L990 - cbnz w0, .L990 + bhi .L1028 + cbnz w0, .L1028 add w1, w1, 1 - strh w1, [x2, #:lo12:.LANCHOR115] + strh w1, [x2, #:lo12:.LANCHOR117] ret -.L990: +.L1028: adrp x0, .LANCHOR6 - strh wzr, [x3, #:lo12:.LANCHOR115] + strh wzr, [x3, #:lo12:.LANCHOR117] mov x1, 0 mov w2, 0 ldrh w5, [x0, #:lo12:.LANCHOR6] @@ -5593,37 +5798,37 @@ ftl_total_vpn_update: adrp x0, .LANCHOR7 ldr x7, [x0, #:lo12:.LANCHOR7] mov w0, 0 -.L992: +.L1030: cmp w5, w1, uxth - bhi .L995 + bhi .L1033 adrp x1, .LANCHOR10 ldr x1, [x1, #:lo12:.LANCHOR10] str w2, [x1, 524] - adrp x2, .LANCHOR97 + adrp x2, .LANCHOR100 str w0, [x1, 528] - ldr x2, [x2, #:lo12:.LANCHOR97] + ldr x2, [x2, #:lo12:.LANCHOR100] ldrh w2, [x2, 120] - cbz w2, .L989 + cbz w2, .L1027 udiv w0, w0, w2 str w0, [x1, 532] -.L989: +.L1027: ret -.L995: +.L1033: ldrh w3, [x6, x1, lsl 1] cmp w3, w8 - beq .L993 + beq .L1031 add x4, x7, x1, lsl 2 ldrb w4, [x4, 2] and w4, w4, 224 cmp w4, 160 - bne .L994 + bne .L1032 add w0, w0, w3 -.L993: +.L1031: add x1, x1, 1 - b .L992 -.L994: + b .L1030 +.L1032: add w2, w2, w3 - b .L993 + b .L1031 .size ftl_total_vpn_update, .-ftl_total_vpn_update .section .text.ftl_debug_info_fill,"ax",@progbits .align 2 @@ -5648,17 +5853,17 @@ ftl_vpn_update: ubfiz x19, x19, 1, 16 ldr x0, [x0, #:lo12:.LANCHOR9] ldrh w0, [x0, x19] - cbnz w0, .L1003 - adrp x1, .LANCHOR116 + cbnz w0, .L1041 + adrp x1, .LANCHOR118 mov w0, 1 - str w0, [x1, #:lo12:.LANCHOR116] -.L1001: + str w0, [x1, #:lo12:.LANCHOR118] +.L1039: ldr x19, [sp, 16] ldp x29, x30, [sp], 32 ret -.L1003: +.L1041: mov w0, 0 - b .L1001 + b .L1039 .size ftl_vpn_update, .-ftl_vpn_update .section .text.ftl_vpn_decrement,"ax",@progbits .align 2 @@ -5671,57 +5876,57 @@ ftl_vpn_decrement: and w19, w0, 65535 mov w0, 65535 cmp w19, w0 - beq .L1006 + beq .L1044 adrp x0, .LANCHOR9 uxtw x1, w19 lsl x2, x1, 1 ldr x3, [x0, #:lo12:.LANCHOR9] ldrh w0, [x3, x2] - cbnz w0, .L1007 + cbnz w0, .L1045 adrp x0, .LANCHOR7 mov w2, 0 ldr x0, [x0, #:lo12:.LANCHOR7] add x1, x0, x1, lsl 2 - adrp x0, .LC59 - add x0, x0, :lo12:.LC59 + adrp x0, .LC60 + add x0, x0, :lo12:.LC60 ldrb w3, [x1, 2] mov w1, w19 ubfx x3, x3, 5, 3 bl printf -.L1012: +.L1050: mov w0, 0 - b .L1005 -.L1007: + b .L1043 +.L1045: sub w0, w0, #1 strh w0, [x3, x2] -.L1006: - adrp x20, .LANCHOR63 - ldrh w0, [x20, #:lo12:.LANCHOR63] +.L1044: + adrp x20, .LANCHOR64 + ldrh w0, [x20, #:lo12:.LANCHOR64] cmp w19, w0 - beq .L1012 + beq .L1050 mov w1, 65535 cmp w0, w1 - bne .L1009 - strh w19, [x20, #:lo12:.LANCHOR63] - b .L1012 -.L1009: + bne .L1047 + strh w19, [x20, #:lo12:.LANCHOR64] + b .L1050 +.L1047: bl ftl_vpn_update cmp w0, 0 - adrp x1, .LANCHOR117 + adrp x1, .LANCHOR119 cset w0, ne - ldrh w3, [x20, #:lo12:.LANCHOR63] - ldrh w2, [x1, #:lo12:.LANCHOR117] - strh w19, [x20, #:lo12:.LANCHOR63] + ldrh w3, [x20, #:lo12:.LANCHOR64] + ldrh w2, [x1, #:lo12:.LANCHOR119] + strh w19, [x20, #:lo12:.LANCHOR64] add w2, w2, 1 and w2, w2, 65535 cmp w2, 7 csel w2, w2, wzr, ls - strh w2, [x1, #:lo12:.LANCHOR117] + strh w2, [x1, #:lo12:.LANCHOR119] and x2, x2, 65535 - adrp x1, .LANCHOR64 - add x1, x1, :lo12:.LANCHOR64 + adrp x1, .LANCHOR65 + add x1, x1, :lo12:.LANCHOR65 strh w3, [x1, x2, lsl 1] -.L1005: +.L1043: ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 32 ret @@ -5731,50 +5936,50 @@ ftl_vpn_decrement: .global lpa_hash_update_ppa .type lpa_hash_update_ppa, %function lpa_hash_update_ppa: - adrp x3, .LANCHOR110 + adrp x3, .LANCHOR112 and x5, x0, 255 - add x4, x3, :lo12:.LANCHOR110 + add x4, x3, :lo12:.LANCHOR112 mov w7, 65535 and w2, w2, 65535 mov w12, w7 ldrh w6, [x4, x5, lsl 1] - adrp x4, .LANCHOR111 - ldr x8, [x4, #:lo12:.LANCHOR111] - adrp x4, .LANCHOR112 - ldr x4, [x4, #:lo12:.LANCHOR112] -.L1015: + adrp x4, .LANCHOR113 + ldr x8, [x4, #:lo12:.LANCHOR113] + adrp x4, .LANCHOR114 + ldr x4, [x4, #:lo12:.LANCHOR114] +.L1053: cmp w6, w12 - beq .L1019 + beq .L1057 uxtw x11, w6 lsl x10, x11, 2 add x13, x8, x10 ldr w10, [x8, x10] cmp w0, w10 lsl x10, x11, 1 - bne .L1016 + bne .L1054 mov w6, -1 str w6, [x13] cmp w7, w12 - bne .L1017 - add x6, x3, :lo12:.LANCHOR110 + bne .L1055 + add x6, x3, :lo12:.LANCHOR112 ldrh w7, [x4, x10] strh w7, [x6, x5, lsl 1] -.L1018: +.L1056: mov w6, -1 strh w6, [x4, x11, lsl 1] -.L1019: +.L1057: uxtw x6, w2 - add x3, x3, :lo12:.LANCHOR110 + add x3, x3, :lo12:.LANCHOR112 cmn w1, #1 str w0, [x8, x6, lsl 2] ldrh w0, [x3, x5, lsl 1] strh w2, [x3, x5, lsl 1] strh w0, [x4, x6, lsl 1] - beq .L1026 + beq .L1064 stp x29, x30, [sp, -16]! - adrp x0, .LANCHOR99 + adrp x0, .LANCHOR102 add x29, sp, 0 - ldrh w3, [x0, #:lo12:.LANCHOR99] + ldrh w3, [x0, #:lo12:.LANCHOR102] mov w0, 21 sub w2, w0, w3 mov w0, 1 @@ -5782,22 +5987,22 @@ lpa_hash_update_ppa: lsl w0, w0, w2 sub w0, w0, #1 and w1, w0, w1 - adrp x0, .LANCHOR98 - ldrb w0, [x0, #:lo12:.LANCHOR98] + adrp x0, .LANCHOR101 + ldrb w0, [x0, #:lo12:.LANCHOR101] udiv w0, w1, w0 bl ftl_vpn_decrement mov w0, -1 ldp x29, x30, [sp], 16 ret -.L1017: +.L1055: ldrh w6, [x4, x10] strh w6, [x4, w7, uxtw 1] - b .L1018 -.L1016: + b .L1056 +.L1054: mov w7, w6 ldrh w6, [x4, x10] - b .L1015 -.L1026: + b .L1053 +.L1064: mov w0, -1 ret .size lpa_hash_update_ppa, .-lpa_hash_update_ppa @@ -5807,10 +6012,10 @@ lpa_hash_update_ppa: .type ftl_mask_bad_block, %function ftl_mask_bad_block: stp x29, x30, [sp, -32]! - adrp x1, .LANCHOR99 + adrp x1, .LANCHOR102 mov w2, 21 add x29, sp, 0 - ldrh w3, [x1, #:lo12:.LANCHOR99] + ldrh w3, [x1, #:lo12:.LANCHOR102] stp x19, x20, [sp, 16] ubfx x20, x0, 21, 3 sub w1, w2, w3 @@ -5819,23 +6024,23 @@ ftl_mask_bad_block: lsl w2, w2, w1 sub w2, w2, #1 and w2, w2, w0 - adrp x0, .LANCHOR98 - ldrb w0, [x0, #:lo12:.LANCHOR98] + adrp x0, .LANCHOR101 + ldrb w0, [x0, #:lo12:.LANCHOR101] udiv w2, w2, w0 adrp x0, .LANCHOR14 ldr w0, [x0, #:lo12:.LANCHOR14] and w19, w2, 65535 - tbz x0, 14, .L1030 - adrp x0, .LC60 + tbz x0, 14, .L1068 + adrp x0, .LC61 mov w2, w19 mov w1, w20 - add x0, x0, :lo12:.LC60 + add x0, x0, :lo12:.LC61 bl printf -.L1030: +.L1068: adrp x0, .LANCHOR6 ldrh w0, [x0, #:lo12:.LANCHOR6] cmp w0, w19 - bls .L1029 + bls .L1067 adrp x0, .LANCHOR7 mov w1, 1 lsl w1, w1, w20 @@ -5844,7 +6049,7 @@ ftl_mask_bad_block: ldrb w0, [x19, 3] orr w1, w1, w0 strb w1, [x19, 3] -.L1029: +.L1067: ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 32 ret @@ -5855,52 +6060,57 @@ ftl_mask_bad_block: .type print_ftl_debug_info, %function print_ftl_debug_info: sub sp, sp, #64 - adrp x1, .LANCHOR87 - adrp x0, .LANCHOR10 - adrp x7, .LANCHOR118 + adrp x2, .LANCHOR86 + adrp x8, .LANCHOR120 stp x29, x30, [sp, 32] add x29, sp, 32 - ldrh w6, [x1, #:lo12:.LANCHOR87] - adrp x1, .LANCHOR83 - ldr x0, [x0, #:lo12:.LANCHOR10] - ldr w7, [x7, #:lo12:.LANCHOR118] - ldrh w5, [x1, #:lo12:.LANCHOR83] - adrp x1, .LANCHOR85 - str w7, [sp, 8] - ldrh w4, [x1, #:lo12:.LANCHOR85] - adrp x1, .LANCHOR94 - ldr w7, [x0, 528] - ldrh w3, [x1, #:lo12:.LANCHOR94] - adrp x1, .LANCHOR92 - str w7, [sp] - ldrh w2, [x1, #:lo12:.LANCHOR92] - adrp x1, .LANCHOR90 - ldr w7, [x0, 524] - adrp x0, .LC61 - ldrh w1, [x1, #:lo12:.LANCHOR90] - add x0, x0, :lo12:.LC61 - str x19, [sp, 48] - adrp x19, .LANCHOR97 + ldrh w7, [x2, #:lo12:.LANCHOR86] + adrp x2, .LANCHOR88 + stp x19, x20, [sp, 48] + adrp x19, .LANCHOR100 + adrp x20, .LANCHOR10 + ldrh w6, [x2, #:lo12:.LANCHOR88] + adrp x2, .LANCHOR97 + ldr x1, [x19, #:lo12:.LANCHOR100] + ldrh w5, [x2, #:lo12:.LANCHOR97] + adrp x2, .LANCHOR95 + ldr x0, [x20, #:lo12:.LANCHOR10] + ldrh w4, [x2, #:lo12:.LANCHOR95] + adrp x2, .LANCHOR93 + ldr w8, [x8, #:lo12:.LANCHOR120] + ldrh w3, [x2, #:lo12:.LANCHOR93] + ldrh w2, [x1, 146] + ldrh w1, [x1, 148] + str w8, [sp, 24] + ldr w8, [x0, 528] + str w8, [sp, 16] + ldr w0, [x0, 524] + str w0, [sp, 8] + adrp x0, .LANCHOR90 + ldrh w0, [x0, #:lo12:.LANCHOR90] + str w0, [sp] + adrp x0, .LC62 + add x0, x0, :lo12:.LC62 bl printf - ldr x0, [x19, #:lo12:.LANCHOR97] - adrp x1, .LANCHOR119 - ldrb w3, [x1, #:lo12:.LANCHOR119] + ldr x0, [x19, #:lo12:.LANCHOR100] + adrp x1, .LANCHOR121 + ldrb w3, [x1, #:lo12:.LANCHOR121] ldr w4, [x0, 8] ldr w5, [x0, 64] ldr w1, [x0, 20] ldr w2, [x0, 28] - adrp x0, .LC62 - add x0, x0, :lo12:.LC62 + adrp x0, .LC63 + add x0, x0, :lo12:.LC63 bl printf - ldr x0, [x19, #:lo12:.LANCHOR97] + ldr x0, [x19, #:lo12:.LANCHOR100] ldr w1, [x0, 52] ldr w2, [x0, 60] ldr w3, [x0, 16] - adrp x0, .LC63 - add x0, x0, :lo12:.LC63 + adrp x0, .LC64 + add x0, x0, :lo12:.LC64 lsr w3, w3, 11 bl printf - ldr x0, [x19, #:lo12:.LANCHOR97] + ldr x0, [x19, #:lo12:.LANCHOR100] ldrh w2, [x0, 98] ldrh w6, [x0, 72] ldrh w5, [x0, 96] @@ -5913,24 +6123,32 @@ print_ftl_debug_info: ldrh w2, [x0, 90] str w2, [sp] ldp w7, w2, [x0, 80] - adrp x0, .LC64 - add x0, x0, :lo12:.LC64 - bl printf - ldr x19, [sp, 48] - adrp x0, .LANCHOR74 - ldp x29, x30, [sp, 32] - add sp, sp, 64 - ldrh w5, [x0, #:lo12:.LANCHOR74] - adrp x0, .LANCHOR79 - ldrh w4, [x0, #:lo12:.LANCHOR79] - adrp x0, .LANCHOR61 - ldrh w3, [x0, #:lo12:.LANCHOR61] - adrp x0, .LANCHOR89 - ldrh w2, [x0, #:lo12:.LANCHOR89] - adrp x0, .LANCHOR86 - ldrh w1, [x0, #:lo12:.LANCHOR86] adrp x0, .LC65 add x0, x0, :lo12:.LC65 + bl printf + adrp x0, .LANCHOR77 + ldrh w5, [x0, #:lo12:.LANCHOR77] + adrp x0, .LANCHOR82 + ldrh w4, [x0, #:lo12:.LANCHOR82] + adrp x0, .LANCHOR62 + ldrh w3, [x0, #:lo12:.LANCHOR62] + adrp x0, .LANCHOR92 + ldrh w2, [x0, #:lo12:.LANCHOR92] + adrp x0, .LANCHOR89 + ldrh w1, [x0, #:lo12:.LANCHOR89] + adrp x0, .LC66 + add x0, x0, :lo12:.LC66 + bl printf + ldr x0, [x20, #:lo12:.LANCHOR10] + ldp x29, x30, [sp, 32] + ldp x19, x20, [sp, 48] + add sp, sp, 64 + ldrh w4, [x0, 590] + ldrh w3, [x0, 588] + ldrh w2, [x0, 586] + ldrh w1, [x0, 584] + adrp x0, .LC67 + add x0, x0, :lo12:.LC67 b printf .size print_ftl_debug_info, .-print_ftl_debug_info .section .text.ftl_write_buf,"ax",@progbits @@ -5942,65 +6160,65 @@ ftl_write_buf: add x29, sp, 0 stp x19, x20, [sp, 16] str x21, [sp, 32] - cbnz x0, .L1039 - adrp x1, .LANCHOR120 - add x1, x1, :lo12:.LANCHOR120 - mov w2, 662 + cbnz x0, .L1077 + adrp x1, .LANCHOR122 + add x1, x1, :lo12:.LANCHOR122 + mov w2, 667 adrp x0, .LC0 add x0, x0, :lo12:.LC0 bl printf bl print_ftl_debug_info mov w0, -1 -.L1038: +.L1076: ldp x19, x20, [sp, 16] ldr x21, [sp, 32] ldp x29, x30, [sp], 48 ret -.L1042: +.L1080: mov x1, x19 - adrp x0, .LANCHOR56 - add x0, x0, :lo12:.LANCHOR56 + adrp x0, .LANCHOR57 + add x0, x0, :lo12:.LANCHOR57 bl buf_add_tail - adrp x1, .LANCHOR97 + adrp x1, .LANCHOR100 ldrb w3, [x19, 56] - ldrb w0, [x21, #:lo12:.LANCHOR57] - ldr x1, [x1, #:lo12:.LANCHOR97] + ldrb w0, [x21, #:lo12:.LANCHOR58] + ldr x1, [x1, #:lo12:.LANCHOR100] add w0, w0, 1 and w0, w0, 255 - strb w0, [x21, #:lo12:.LANCHOR57] + strb w0, [x21, #:lo12:.LANCHOR58] ldr w2, [x1, 16] add w2, w2, w3 str w2, [x1, 16] ldr w2, [x1, 32] add w2, w2, 1 str w2, [x1, 32] - b .L1038 -.L1039: + b .L1076 +.L1077: mov x19, x0 - adrp x0, .LANCHOR121 + adrp x0, .LANCHOR123 mov x20, x0 - ldrb w1, [x0, #:lo12:.LANCHOR121] + ldrb w1, [x0, #:lo12:.LANCHOR123] ldrb w2, [x19, 56] cmp w2, w1 - bls .L1044 - adrp x1, .LANCHOR120 + bls .L1082 + adrp x1, .LANCHOR122 adrp x0, .LC0 - mov w2, 667 - add x1, x1, :lo12:.LANCHOR120 + mov w2, 672 + add x1, x1, :lo12:.LANCHOR122 add x0, x0, :lo12:.LC0 bl printf -.L1044: +.L1082: ldrb w0, [x19, 56] - adrp x21, .LANCHOR57 - cbz w0, .L1041 - ldrb w1, [x20, #:lo12:.LANCHOR121] + adrp x21, .LANCHOR58 + cbz w0, .L1079 + ldrb w1, [x20, #:lo12:.LANCHOR123] cmp w1, w0 - bcs .L1042 -.L1041: + bcs .L1080 +.L1079: mov x0, x19 bl buf_free - ldrb w0, [x21, #:lo12:.LANCHOR57] - b .L1038 + ldrb w0, [x21, #:lo12:.LANCHOR58] + b .L1076 .size ftl_write_buf, .-ftl_write_buf .section .text.ftl_write_completed,"ax",@progbits .align 2 @@ -6010,26 +6228,26 @@ ftl_write_completed: stp x29, x30, [sp, -80]! add x29, sp, 0 stp x19, x20, [sp, 16] - adrp x20, .LANCHOR122 + adrp x20, .LANCHOR124 stp x21, x22, [sp, 32] - adrp x19, .LANCHOR49 - adrp x22, .LANCHOR99 - add x20, x20, :lo12:.LANCHOR122 - add x19, x19, :lo12:.LANCHOR49 - add x22, x22, :lo12:.LANCHOR99 + adrp x19, .LANCHOR50 + adrp x22, .LANCHOR102 + add x20, x20, :lo12:.LANCHOR124 + add x19, x19, :lo12:.LANCHOR50 + add x22, x22, :lo12:.LANCHOR102 stp x23, x24, [sp, 48] str x25, [sp, 64] -.L1050: +.L1088: ldrb w0, [x20] cmp w0, 255 - bne .L1056 + bne .L1094 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 -.L1056: +.L1094: ubfiz x21, x0, 6, 8 sbfiz x0, x0, 6, 32 add x23, x19, x0 @@ -6038,7 +6256,7 @@ ftl_write_completed: strb w0, [x20] ldr w0, [x23, 52] cmn w0, #1 - bne .L1051 + bne .L1089 ldp w2, w3, [x23, 36] mov w1, 21 ldrh w0, [x22] @@ -6048,11 +6266,11 @@ ftl_write_completed: lsl w1, w25, w1 sub w1, w1, #1 and w1, w1, w0 - adrp x0, .LANCHOR98 - ldrb w0, [x0, #:lo12:.LANCHOR98] + adrp x0, .LANCHOR101 + ldrb w0, [x0, #:lo12:.LANCHOR101] udiv w1, w1, w0 - adrp x0, .LC66 - add x0, x0, :lo12:.LC66 + adrp x0, .LC68 + add x0, x0, :lo12:.LC68 and w24, w1, 65535 mov w1, w24 bl printf @@ -6067,32 +6285,32 @@ ftl_write_completed: str w1, [x0, 556] ldrh w1, [x0, 16] cmp w1, w24 - bne .L1052 + bne .L1090 strh wzr, [x0, 22] -.L1053: +.L1091: mov x0, x21 bl ftl_write_buf - b .L1050 -.L1052: + b .L1088 +.L1090: ldrh w1, [x0, 48] cmp w1, w24 - bne .L1053 + bne .L1091 strh wzr, [x0, 54] - b .L1053 -.L1051: + b .L1091 +.L1089: ldrh w2, [x23, 48] ldr w0, [x23, 36] ldr w1, [x23, 44] bl lpa_hash_update_ppa ldrb w0, [x23, 2] - tbz x0, 2, .L1055 + tbz x0, 2, .L1093 and w0, w0, -3 strb w0, [x23, 2] - b .L1050 -.L1055: + b .L1088 +.L1093: mov x0, x21 bl buf_free - b .L1050 + b .L1088 .size ftl_write_completed, .-ftl_write_completed .section .text.zftl_add_read_buf,"ax",@progbits .align 2 @@ -6102,40 +6320,40 @@ zftl_add_read_buf: stp x29, x30, [sp, -32]! add x29, sp, 0 str x19, [sp, 16] - cbnz x0, .L1059 - mov w2, 949 - adrp x1, .LANCHOR123 + cbnz x0, .L1097 + mov w2, 954 + adrp x1, .LANCHOR125 adrp x0, .LC0 - add x1, x1, :lo12:.LANCHOR123 + add x1, x1, :lo12:.LANCHOR125 add x0, x0, :lo12:.LC0 bl printf ldr x19, [sp, 16] ldp x29, x30, [sp], 32 b print_ftl_debug_info -.L1059: +.L1097: ldrb w1, [x0, 56] mov x19, x0 - adrp x0, .LANCHOR121 - ldrb w0, [x0, #:lo12:.LANCHOR121] + adrp x0, .LANCHOR123 + ldrb w0, [x0, #:lo12:.LANCHOR123] cmp w1, w0 - bls .L1061 - adrp x1, .LANCHOR123 + bls .L1099 + adrp x1, .LANCHOR125 adrp x0, .LC0 - mov w2, 954 - add x1, x1, :lo12:.LANCHOR123 + mov w2, 959 + add x1, x1, :lo12:.LANCHOR125 add x0, x0, :lo12:.LC0 bl printf -.L1061: +.L1099: mov x1, x19 - adrp x0, .LANCHOR124 - add x0, x0, :lo12:.LANCHOR124 + adrp x0, .LANCHOR126 + add x0, x0, :lo12:.LANCHOR126 bl buf_add_tail - adrp x1, .LANCHOR125 + adrp x1, .LANCHOR127 ldr x19, [sp, 16] ldp x29, x30, [sp], 32 - ldrb w0, [x1, #:lo12:.LANCHOR125] + ldrb w0, [x1, #:lo12:.LANCHOR127] add w0, w0, 1 - strb w0, [x1, #:lo12:.LANCHOR125] + strb w0, [x1, #:lo12:.LANCHOR127] ret .size zftl_add_read_buf, .-zftl_add_read_buf .section .text.ftl_alloc_sblk,"ax",@progbits @@ -6158,39 +6376,39 @@ ftl_alloc_sblk: and w19, w0, 65535 mov w0, 65535 cmp w19, w0 - beq .L1066 + beq .L1104 adrp x0, .LANCHOR7 lsl w22, w22, 1 ldr x21, [x0, #:lo12:.LANCHOR7] add x21, x21, x19, uxth 2 ldrb w0, [x21, 2] tst w0, 224 - beq .L1067 - adrp x1, .LANCHOR126 + beq .L1105 + adrp x1, .LANCHOR128 adrp x0, .LC0 mov w2, 827 - add x1, x1, :lo12:.LANCHOR126 + add x1, x1, :lo12:.LANCHOR128 add x0, x0, :lo12:.LC0 bl printf -.L1067: +.L1105: ldrb w0, [x21, 2] bfi w0, w20, 5, 3 ubfx x1, x0, 3, 2 orr w22, w22, w1 bfi w0, w22, 3, 2 strb w0, [x21, 2] -.L1068: +.L1106: mov w0, w19 ldr x23, [sp, 48] ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x29, x30, [sp], 64 ret -.L1066: +.L1104: bl print_ftl_debug_info - adrp x21, .LC67 + adrp x21, .LC69 mov w2, w20 - add x21, x21, :lo12:.LC67 + add x21, x21, :lo12:.LC69 mov w1, w19 mov x0, x21 bl printf @@ -6204,27 +6422,27 @@ ftl_alloc_sblk: bl printf bl dump_all_list_info mov w2, 837 - adrp x1, .LANCHOR126 + adrp x1, .LANCHOR128 adrp x0, .LC0 - add x1, x1, :lo12:.LANCHOR126 + add x1, x1, :lo12:.LANCHOR128 add x0, x0, :lo12:.LC0 bl printf - b .L1068 + b .L1106 .size ftl_alloc_sblk, .-ftl_alloc_sblk .section .text.sblk_init,"ax",@progbits .align 2 .global sblk_init .type sblk_init, %function sblk_init: - adrp x1, .LANCHOR53 + adrp x1, .LANCHOR54 mov w0, -1 - strb w0, [x1, #:lo12:.LANCHOR53] - adrp x1, .LANCHOR122 - strb w0, [x1, #:lo12:.LANCHOR122] - adrp x1, .LANCHOR127 - strb w0, [x1, #:lo12:.LANCHOR127] - adrp x1, .LANCHOR66 - strb w0, [x1, #:lo12:.LANCHOR66] + strb w0, [x1, #:lo12:.LANCHOR54] + adrp x1, .LANCHOR124 + strb w0, [x1, #:lo12:.LANCHOR124] + adrp x1, .LANCHOR129 + strb w0, [x1, #:lo12:.LANCHOR129] + adrp x1, .LANCHOR67 + strb w0, [x1, #:lo12:.LANCHOR67] mov w0, 0 ret .size sblk_init, .-sblk_init @@ -6234,25 +6452,25 @@ sblk_init: .type dump_sblk_queue, %function dump_sblk_queue: stp x29, x30, [sp, -48]! - adrp x0, .LC68 - add x0, x0, :lo12:.LC68 + adrp x0, .LC70 + add x0, x0, :lo12:.LC70 add x29, sp, 0 stp x19, x20, [sp, 16] - adrp x19, .LANCHOR53 + adrp x19, .LANCHOR54 str x21, [sp, 32] - ldrb w1, [x19, #:lo12:.LANCHOR53] + ldrb w1, [x19, #:lo12:.LANCHOR54] bl printf - ldrb w19, [x19, #:lo12:.LANCHOR53] + ldrb w19, [x19, #:lo12:.LANCHOR54] cmp w19, 255 - beq .L1075 - adrp x1, .LANCHOR49 + beq .L1113 + adrp x1, .LANCHOR50 ubfiz x19, x19, 6, 8 - add x1, x1, :lo12:.LANCHOR49 - adrp x21, .LC69 + add x1, x1, :lo12:.LANCHOR50 + adrp x21, .LC71 add x19, x1, x19 - add x21, x21, :lo12:.LC69 + add x21, x21, :lo12:.LC71 mov x20, x1 -.L1077: +.L1115: ldrb w2, [x19, 58] mov x0, x21 ldrb w1, [x19, 1] @@ -6260,11 +6478,11 @@ dump_sblk_queue: bl printf ldrb w19, [x19] cmp w19, 255 - beq .L1075 + beq .L1113 ubfiz x19, x19, 6, 8 add x19, x20, x19 - b .L1077 -.L1075: + b .L1115 +.L1113: ldp x19, x20, [sp, 16] ldr x21, [sp, 32] ldp x29, x30, [sp], 48 @@ -6275,82 +6493,82 @@ dump_sblk_queue: .global queue_lun_state .type queue_lun_state, %function queue_lun_state: - adrp x2, .LANCHOR53 - ldrb w2, [x2, #:lo12:.LANCHOR53] + adrp x2, .LANCHOR54 + ldrb w2, [x2, #:lo12:.LANCHOR54] cmp w2, 255 - beq .L1093 - adrp x3, .LANCHOR99 - adrp x7, .LANCHOR49 - add x7, x7, :lo12:.LANCHOR49 - adrp x10, .L1089 - ldrh w8, [x3, #:lo12:.LANCHOR99] + beq .L1131 + adrp x3, .LANCHOR102 + adrp x7, .LANCHOR50 + add x7, x7, :lo12:.LANCHOR50 + adrp x10, .L1127 + ldrh w8, [x3, #:lo12:.LANCHOR102] mov w3, 21 ubfx x11, x0, 21, 3 - add x10, x10, :lo12:.L1089 + add x10, x10, :lo12:.L1127 sub w4, w3, w8 mov w3, 1 mov x12, x7 lsl w3, w3, w4 - adrp x4, .LANCHOR98 + adrp x4, .LANCHOR101 sub w3, w3, #1 - ldrb w6, [x4, #:lo12:.LANCHOR98] + ldrb w6, [x4, #:lo12:.LANCHOR101] and w3, w3, 65535 asr w4, w0, w8 sub w6, w6, #1 and w6, w6, 65535 and w4, w4, w6 and w4, w4, w3 -.L1092: +.L1130: add x0, x7, x2, lsl 6 ldr w5, [x0, 40] ubfx x13, x5, 21, 3 cmp w11, w13 - bne .L1087 + bne .L1125 lsr w5, w5, w8 and w5, w6, w5 and w5, w3, w5 ldrb w0, [x0, 58] cmp w4, w5 - bne .L1088 + bne .L1126 cmp w1, 1 - bne .L1085 - cmp w0, 6 - ccmp w0, 8, 4, ne - beq .L1087 + bne .L1123 + cmp w0, 7 + ccmp w0, 9, 4, ne + beq .L1125 ret -.L1088: +.L1126: cmp w1, 3 - bhi .L1087 + bhi .L1125 ldrb w5, [x10,w1,uxtw] - adr x13, .Lrtx1089 + adr x13, .Lrtx1127 add x5, x13, w5, sxtb #2 br x5 -.Lrtx1089: +.Lrtx1127: .section .rodata.queue_lun_state,"a",@progbits .align 0 .align 2 -.L1089: - .byte (.L1085 - .Lrtx1089) / 4 - .byte (.L1090 - .Lrtx1089) / 4 - .byte (.L1091 - .Lrtx1089) / 4 - .byte (.L1085 - .Lrtx1089) / 4 +.L1127: + .byte (.L1123 - .Lrtx1127) / 4 + .byte (.L1128 - .Lrtx1127) / 4 + .byte (.L1129 - .Lrtx1127) / 4 + .byte (.L1123 - .Lrtx1127) / 4 .section .text.queue_lun_state -.L1090: - cmp w0, 6 - ccmp w0, 8, 4, ne - beq .L1087 +.L1128: + cmp w0, 7 + ccmp w0, 9, 4, ne + beq .L1125 ret -.L1091: - cmp w0, 10 - bne .L1085 -.L1087: +.L1129: + cmp w0, 11 + bne .L1123 +.L1125: lsl x2, x2, 6 ldrb w2, [x12, x2] cmp w2, 255 - bne .L1092 -.L1093: + bne .L1130 +.L1131: mov w0, 0 -.L1085: +.L1123: ret .size queue_lun_state, .-queue_lun_state .section .text.queue_remove_completed_req,"ax",@progbits @@ -6358,87 +6576,87 @@ queue_lun_state: .global queue_remove_completed_req .type queue_remove_completed_req, %function queue_remove_completed_req: - adrp x4, .LANCHOR122 - adrp x8, .LANCHOR66 - adrp x1, .LANCHOR53 - adrp x7, .LANCHOR127 - adrp x3, .LANCHOR49 - ldrb w14, [x4, #:lo12:.LANCHOR122] - add x5, x3, :lo12:.LANCHOR49 - ldrb w2, [x1, #:lo12:.LANCHOR53] - ldrb w12, [x8, #:lo12:.LANCHOR66] + adrp x4, .LANCHOR124 + adrp x8, .LANCHOR67 + adrp x1, .LANCHOR54 + adrp x7, .LANCHOR129 + adrp x3, .LANCHOR50 + ldrb w14, [x4, #:lo12:.LANCHOR124] + add x5, x3, :lo12:.LANCHOR50 + ldrb w2, [x1, #:lo12:.LANCHOR54] + ldrb w12, [x8, #:lo12:.LANCHOR67] mov x11, x5 - ldrb w13, [x7, #:lo12:.LANCHOR127] - add x16, x8, :lo12:.LANCHOR66 - add x7, x7, :lo12:.LANCHOR127 - add x10, x4, :lo12:.LANCHOR122 + ldrb w13, [x7, #:lo12:.LANCHOR129] + add x16, x8, :lo12:.LANCHOR67 + add x7, x7, :lo12:.LANCHOR129 + add x10, x4, :lo12:.LANCHOR124 mov w6, 0 mov w15, -1 -.L1096: +.L1134: cmp w2, 255 - beq .L1097 + beq .L1135 sbfiz x8, x2, 6, 32 sxtw x0, w2 add x4, x5, x8 ldrb w4, [x4, 58] - sub w4, w4, #11 + sub w4, w4, #12 and w4, w4, 255 cmp w4, 1 - bls .L1098 - cbz w6, .L1095 - strb w2, [x1, #:lo12:.LANCHOR53] + bls .L1136 + cbz w6, .L1133 + strb w2, [x1, #:lo12:.LANCHOR54] ret -.L1098: +.L1136: lsl x6, x0, 6 ldrb w2, [x5, x8] add x4, x5, x6 strb w15, [x5, x6] ldrb w6, [x4, 59] cmp w6, 1 - bne .L1101 + bne .L1139 ldrh w4, [x4, 50] - cbnz w4, .L1109 + cbnz w4, .L1147 mov w4, w14 mov x6, x10 -.L1102: +.L1140: cmp w4, 255 - bne .L1107 - add x3, x3, :lo12:.LANCHOR49 - strb w2, [x1, #:lo12:.LANCHOR53] + bne .L1145 + add x3, x3, :lo12:.LANCHOR50 + strb w2, [x1, #:lo12:.LANCHOR54] add x0, x3, x0, lsl 6 ldrb w0, [x0, 1] strb w0, [x6] ret -.L1101: - cbnz w6, .L1103 +.L1139: + cbnz w6, .L1141 ldr w4, [x4, 36] cmn w4, #1 - beq .L1103 + beq .L1141 mov w4, w13 mov x6, x7 - b .L1102 -.L1109: + b .L1140 +.L1147: mov w4, w12 mov x6, x16 - b .L1102 -.L1107: + b .L1140 +.L1145: mov w6, w4 sbfiz x4, x4, 6, 32 ldrb w4, [x11, x4] cmp w4, 255 - bne .L1107 + bne .L1145 add x0, x11, x0, lsl 6 sbfiz x6, x6, 6, 32 ldrb w0, [x0, 1] strb w0, [x11, x6] -.L1103: +.L1141: mov w6, 1 - b .L1096 -.L1097: - cbz w6, .L1095 + b .L1134 +.L1135: + cbz w6, .L1133 mov w0, -1 - strb w0, [x1, #:lo12:.LANCHOR53] -.L1095: + strb w0, [x1, #:lo12:.LANCHOR54] +.L1133: ret .size queue_remove_completed_req, .-queue_remove_completed_req .section .text.pm_alloc_new_blk,"ax",@progbits @@ -6447,42 +6665,42 @@ queue_remove_completed_req: .type pm_alloc_new_blk, %function pm_alloc_new_blk: stp x29, x30, [sp, -64]! - adrp x2, .LANCHOR73 + adrp x2, .LANCHOR76 add x29, sp, 0 stp x19, x20, [sp, 16] - adrp x20, .LANCHOR97 + adrp x20, .LANCHOR100 stp x21, x22, [sp, 32] - ldr x1, [x20, #:lo12:.LANCHOR97] - ldrb w2, [x2, #:lo12:.LANCHOR73] + ldr x1, [x20, #:lo12:.LANCHOR100] + ldrb w2, [x2, #:lo12:.LANCHOR76] ldrh w0, [x1, 690] str x23, [sp, 48] add w0, w0, 1 and w0, w0, 65535 strh w0, [x1, 690] cmp w2, w0 - bls .L1120 + bls .L1158 add x0, x1, x0, sxtw 1 ldrh w1, [x0, 672] mov w0, 65535 cmp w1, w0 - bne .L1121 -.L1120: - adrp x19, .LC70 - add x19, x19, :lo12:.LC70 + bne .L1159 +.L1158: + adrp x19, .LC72 + add x19, x19, :lo12:.LC72 adrp x23, .LANCHOR7 -.L1133: +.L1171: mov w0, 1 bl ftl_alloc_sblk mov w1, 0 and w21, w0, 65535 bl ftl_erase_sblk - add x14, x20, :lo12:.LANCHOR97 - ldr x1, [x20, #:lo12:.LANCHOR97] + add x14, x20, :lo12:.LANCHOR100 + ldr x1, [x20, #:lo12:.LANCHOR100] mov w0, w21 add x1, x1, 672 bl ftl_get_blk_list_in_sblk tst w0, 65535 - bne .L1122 + bne .L1160 mov w1, w21 mov x0, x19 bl printf @@ -6491,58 +6709,58 @@ pm_alloc_new_blk: ldrb w0, [x1, 2] orr w0, w0, -32 strb w0, [x1, 2] - b .L1133 -.L1122: + b .L1171 +.L1160: ldr x0, [x14] - adrp x1, .LANCHOR128 + adrp x1, .LANCHOR130 mov w2, 1 mov w19, 0 add x0, x0, 416 - str w2, [x1, #:lo12:.LANCHOR128] + str w2, [x1, #:lo12:.LANCHOR130] mov w1, 65535 strh wzr, [x0, 274] -.L1124: +.L1162: ldrh w2, [x0] cmp w2, w1 - beq .L1123 + beq .L1161 add w19, w19, 1 add x0, x0, 2 and w19, w19, 65535 cmp w19, 128 - bne .L1124 - adrp x1, .LANCHOR129 + bne .L1162 + adrp x1, .LANCHOR131 adrp x0, .LC0 mov w2, 194 - add x1, x1, :lo12:.LANCHOR129 + add x1, x1, :lo12:.LANCHOR131 add x0, x0, :lo12:.LC0 bl printf -.L1123: - ldr x0, [x20, #:lo12:.LANCHOR97] +.L1161: + ldr x0, [x20, #:lo12:.LANCHOR100] add x19, x0, x19, sxtw 1 ldrh w1, [x0, 688] strh w21, [x19, 416] add w1, w1, 1 strh w1, [x0, 688] -.L1121: - ldr x1, [x20, #:lo12:.LANCHOR97] +.L1159: + ldr x1, [x20, #:lo12:.LANCHOR100] ldrh w0, [x1, 690] add x0, x0, 336 ldrh w19, [x1, x0, lsl 1] mov w0, 65533 sub w1, w19, #1 cmp w0, w1, uxth - bcs .L1126 - adrp x1, .LANCHOR129 + bcs .L1164 + adrp x1, .LANCHOR131 adrp x0, .LC0 mov w2, 199 - add x1, x1, :lo12:.LANCHOR129 + add x1, x1, :lo12:.LANCHOR131 add x0, x0, :lo12:.LC0 bl printf -.L1126: - adrp x1, .LANCHOR99 - ldr x0, [x20, #:lo12:.LANCHOR97] +.L1164: + adrp x1, .LANCHOR102 + ldr x0, [x20, #:lo12:.LANCHOR100] mov w2, 21 - ldrh w1, [x1, #:lo12:.LANCHOR99] + ldrh w1, [x1, #:lo12:.LANCHOR102] sub w2, w2, w1 strh wzr, [x0, 696] strh w19, [x0, 692] @@ -6550,17 +6768,17 @@ pm_alloc_new_blk: strh w4, [x0, 694] adrp x0, .LANCHOR14 ldr w0, [x0, #:lo12:.LANCHOR14] - tbz x0, 12, .L1129 + tbz x0, 12, .L1167 mov w0, 1 and w4, w4, 65535 lsl w2, w0, w2 mov w3, w19 - adrp x0, .LC71 + adrp x0, .LC73 sub w2, w2, #1 mov w1, w19 - add x0, x0, :lo12:.LC71 + add x0, x0, :lo12:.LC73 bl printf -.L1129: +.L1167: mov w0, 0 ldr x23, [sp, 48] ldp x19, x20, [sp, 16] @@ -6574,73 +6792,87 @@ pm_alloc_new_blk: .type pm_select_ram_region, %function pm_select_ram_region: stp x29, x30, [sp, -32]! - adrp x0, .LANCHOR130 - add x0, x0, :lo12:.LANCHOR130 + adrp x0, .LANCHOR132 + add x0, x0, :lo12:.LANCHOR132 mov x1, 0 add x29, sp, 0 mov w2, 65535 str x19, [sp, 16] -.L1138: +.L1176: lsl x3, x1, 4 and w19, w1, 65535 ldrh w3, [x3, x0] cmp w3, w2 - beq .L1137 + beq .L1175 add x1, x1, 1 cmp x1, 32 - bne .L1138 + bne .L1176 add x0, x0, 2 mov w19, w1 mov x2, x0 mov w4, 32768 mov w1, 0 -.L1140: +.L1178: ldrh w3, [x2] - tbnz x3, 15, .L1139 + tbnz x3, 15, .L1177 cmp w3, w4 - bcs .L1139 + bcs .L1177 mov w4, w3 mov w19, w1 -.L1139: +.L1177: add w1, w1, 1 add x2, x2, 16 and w1, w1, 65535 cmp w1, 32 - bne .L1140 + bne .L1178 cmp w19, 32 - bne .L1137 - adrp x1, .LANCHOR131 + bne .L1175 + adrp x1, .LANCHOR133 mov w2, -1 - ldrb w3, [x1, #:lo12:.LANCHOR131] + ldrb w3, [x1, #:lo12:.LANCHOR133] mov w1, 0 -.L1142: +.L1180: ldrh w5, [x0] cmp w5, w2 - bcs .L1141 + bcs .L1179 ldrh w4, [x0, -2] cmp w4, w3 csel w2, w2, w5, eq csel w19, w19, w1, eq -.L1141: +.L1179: add w1, w1, 1 add x0, x0, 16 and w1, w1, 65535 cmp w1, 32 - bne .L1142 + bne .L1180 cmp w19, 32 - bne .L1137 - adrp x1, .LANCHOR132 + bne .L1175 + adrp x1, .LANCHOR134 adrp x0, .LC0 mov w2, 297 - add x1, x1, :lo12:.LANCHOR132 + add x1, x1, :lo12:.LANCHOR134 add x0, x0, :lo12:.LC0 bl printf -.L1137: +.L1175: mov w0, w19 ldr x19, [sp, 16] ldp x29, x30, [sp], 32 ret .size pm_select_ram_region, .-pm_select_ram_region + .section .text.idb_init,"ax",@progbits + .align 2 + .global idb_init + .type idb_init, %function +idb_init: + adrp x0, .LANCHOR135 + str xzr, [x0, #:lo12:.LANCHOR135] + adrp x0, .LANCHOR136 + str wzr, [x0, #:lo12:.LANCHOR136] + adrp x0, .LANCHOR137 + str xzr, [x0, #:lo12:.LANCHOR137] + mov w0, 0 + ret + .size idb_init, .-idb_init .section .text.ftl_memset,"ax",@progbits .align 2 .global ftl_memset @@ -6658,59 +6890,59 @@ flash_lsb_page_tbl_build: add x29, sp, 0 stp x19, x20, [sp, 16] adrp x19, .LANCHOR3 - cbnz w0, .L1149 + cbnz w0, .L1188 add x1, x19, :lo12:.LANCHOR3 mov x0, 0 -.L1150: +.L1189: strh w0, [x1, x0, lsl 1] add x0, x0, 1 cmp x0, 256 - bne .L1150 -.L1156: - adrp x20, .LANCHOR133 - add x20, x20, :lo12:.LANCHOR133 + bne .L1189 +.L1195: + adrp x20, .LANCHOR138 + add x20, x20, :lo12:.LANCHOR138 mov w2, 1024 mov w1, 255 mov x0, x20 add x19, x19, :lo12:.LANCHOR3 bl ftl_memset mov x0, 0 -.L1151: +.L1190: ldrh w1, [x0, x19] add x0, x0, 2 cmp x0, 512 strh w1, [x20, w1, sxtw 1] - bne .L1151 + bne .L1190 ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 32 ret -.L1149: +.L1188: cmp w0, 1 - bne .L1152 + bne .L1191 add x3, x19, :lo12:.LANCHOR3 mov x1, 0 -.L1155: +.L1194: and w0, w1, 65535 cmp x1, 3 - bls .L1153 + bls .L1192 ubfiz w2, w0, 1, 15 and w0, w0, 1 add w0, w0, 2 sub w0, w2, w0 and w0, w0, 65535 -.L1153: +.L1192: strh w0, [x3, x1, lsl 1] add x1, x1, 1 cmp x1, 256 - bne .L1155 - b .L1156 -.L1152: + bne .L1194 + b .L1195 +.L1191: cmp w0, 2 - bne .L1157 + bne .L1196 add x3, x19, :lo12:.LANCHOR3 mov w1, 65535 mov x0, 0 -.L1159: +.L1198: cmp x0, 2 and w2, w0, 65535 csel w2, w2, w1, cc @@ -6719,31 +6951,31 @@ flash_lsb_page_tbl_build: add x0, x0, 1 and w1, w1, 65535 cmp x0, 256 - bne .L1159 - b .L1156 -.L1157: + bne .L1198 + b .L1195 +.L1196: cmp w0, 3 - bne .L1160 + bne .L1199 add x3, x19, :lo12:.LANCHOR3 mov x1, 0 -.L1163: +.L1202: and w0, w1, 65535 cmp x1, 5 - bls .L1161 + bls .L1200 ubfiz w2, w0, 1, 15 and w0, w0, 1 add w0, w0, 4 sub w0, w2, w0 and w0, w0, 65535 -.L1161: +.L1200: strh w0, [x3, x1, lsl 1] add x1, x1, 1 cmp x1, 256 - bne .L1163 - b .L1156 -.L1160: + bne .L1202 + b .L1195 +.L1199: cmp w0, 4 - bne .L1164 + bne .L1203 add x1, x19, :lo12:.LANCHOR3 mov w2, 1 add x1, x1, 16 @@ -6761,7 +6993,7 @@ flash_lsb_page_tbl_build: strh w2, [x1, -10] strh w0, [x1, -2] mov w0, 8 -.L1166: +.L1205: and w3, w0, 1 ubfiz w2, w0, 1, 15 add w3, w3, 6 @@ -6770,37 +7002,55 @@ flash_lsb_page_tbl_build: strh w2, [x1], 2 and w0, w0, 65535 cmp w0, 256 - bne .L1166 - b .L1156 -.L1164: + bne .L1205 + b .L1195 +.L1203: cmp w0, 5 - bne .L1167 + bne .L1206 add x1, x19, :lo12:.LANCHOR3 mov x0, 0 -.L1168: +.L1207: strh w0, [x1, x0, lsl 1] add x0, x0, 1 cmp x0, 16 - bne .L1168 + bne .L1207 add x1, x1, 32 -.L1169: +.L1208: strh w0, [x1], 2 add w0, w0, 2 and w0, w0, 65535 cmp w0, 496 - bne .L1169 - b .L1156 -.L1167: + bne .L1208 + b .L1195 +.L1206: cmp w0, 8 - bne .L1156 + bne .L1209 add x1, x19, :lo12:.LANCHOR3 mov x0, 0 -.L1170: +.L1210: strh w0, [x0, x1] add x0, x0, 2 cmp x0, 512 - bne .L1170 - b .L1156 + bne .L1210 + b .L1195 +.L1209: + cmp w0, 9 + bne .L1195 + add x0, x19, :lo12:.LANCHOR3 + mov w1, 1 + add x0, x0, 6 + strh wzr, [x19, #:lo12:.LANCHOR3] + strh w1, [x0, -4] + mov w1, 2 + strh w1, [x0, -2] + mov w1, 3 +.L1211: + strh w1, [x0], 2 + add w1, w1, 2 + and w1, w1, 65535 + cmp w1, 509 + bne .L1211 + b .L1195 .size flash_lsb_page_tbl_build, .-flash_lsb_page_tbl_build .section .text.flash_die_info_init,"ax",@progbits .align 2 @@ -6814,54 +7064,54 @@ flash_die_info_init: stp x19, x20, [sp, 16] stp x21, x22, [sp, 32] stp x23, x24, [sp, 48] - tbz x0, 12, .L1186 - adrp x1, .LANCHOR134 + tbz x0, 12, .L1228 + adrp x1, .LANCHOR139 adrp x0, .LC1 - add x1, x1, :lo12:.LANCHOR134 + add x1, x1, :lo12:.LANCHOR139 add x0, x0, :lo12:.LC1 bl printf -.L1186: - adrp x22, .LANCHOR34 - add x19, x22, :lo12:.LANCHOR34 +.L1228: + adrp x22, .LANCHOR30 + add x19, x22, :lo12:.LANCHOR30 adrp x23, .LANCHOR2 adrp x24, .LANCHOR18 adrp x21, .LANCHOR29 mov w2, 8 ldrh w0, [x19, 26] - adrp x20, .LANCHOR136 + adrp x20, .LANCHOR141 ldrb w1, [x19, 12] strh w0, [x23, #:lo12:.LANCHOR2] ldrh w0, [x19, 10] strb wzr, [x24, #:lo12:.LANCHOR18] sdiv w0, w0, w1 - adrp x1, .LANCHOR135 - strh w0, [x1, #:lo12:.LANCHOR135] + adrp x1, .LANCHOR140 + strh w0, [x1, #:lo12:.LANCHOR140] mov w1, 0 add x0, x21, :lo12:.LANCHOR29 bl ftl_memset - add x0, x20, :lo12:.LANCHOR136 + add x0, x20, :lo12:.LANCHOR141 mov w2, 32 mov w1, 0 bl ftl_memset mov x15, x21 mov x11, x20 - adrp x12, .LANCHOR35 + adrp x12, .LANCHOR31 adrp x14, .LANCHOR41 mov x7, x22 - add x12, x12, :lo12:.LANCHOR35 + add x12, x12, :lo12:.LANCHOR31 add x20, x14, :lo12:.LANCHOR41 add x21, x19, 1 mov x10, 0 -.L1188: +.L1230: ldrb w2, [x19] mov w0, 2 strb w0, [x10, x12] add x1, x20, x10, lsl 3 mov x0, x21 bl flash_mem_cmp8 - cbnz w0, .L1187 + cbnz w0, .L1229 ldrb w2, [x24, #:lo12:.LANCHOR18] - add x1, x11, :lo12:.LANCHOR136 + add x1, x11, :lo12:.LANCHOR141 add w0, w2, 1 strb w0, [x24, #:lo12:.LANCHOR18] and w0, w10, 255 @@ -6869,16 +7119,16 @@ flash_die_info_init: add x1, x15, :lo12:.LANCHOR29 strb w0, [x1, x2] bl zftl_flash_enter_slc_mode -.L1187: +.L1229: add x10, x10, 1 cmp x10, 4 - bne .L1188 - add x0, x7, :lo12:.LANCHOR34 + bne .L1230 + add x0, x7, :lo12:.LANCHOR30 ldrb w1, [x0, 8] cmp w1, 2 - beq .L1189 -.L1193: - add x7, x7, :lo12:.LANCHOR34 + beq .L1231 +.L1235: + add x7, x7, :lo12:.LANCHOR30 ldrb w0, [x24, #:lo12:.LANCHOR18] ldp x19, x20, [sp, 16] ldrb w1, [x7, 13] @@ -6888,18 +7138,18 @@ flash_die_info_init: ldrh w1, [x7, 14] ldp x29, x30, [sp], 64 mul w0, w0, w1 - adrp x1, .LANCHOR137 - strh w0, [x1, #:lo12:.LANCHOR137] + adrp x1, .LANCHOR142 + strh w0, [x1, #:lo12:.LANCHOR142] ret -.L1189: +.L1231: ldrh w1, [x23, #:lo12:.LANCHOR2] add x14, x14, :lo12:.LANCHOR41 ldrb w12, [x0, 13] add x10, x0, 1 - ldrb w20, [x7, #:lo12:.LANCHOR34] + ldrb w20, [x7, #:lo12:.LANCHOR30] add x19, x24, :lo12:.LANCHOR18 ldrb w21, [x0, 23] - add x11, x11, :lo12:.LANCHOR136 + add x11, x11, :lo12:.LANCHOR141 add x15, x15, :lo12:.LANCHOR29 mov x13, 0 mul w12, w12, w1 @@ -6907,12 +7157,12 @@ flash_die_info_init: and w1, w1, 65280 mul w12, w12, w1 lsl w22, w12, 1 -.L1192: +.L1234: mov w2, w20 add x1, x14, x13, lsl 3 mov x0, x10 bl flash_mem_cmp8 - cbnz w0, .L1190 + cbnz w0, .L1232 ldrb w1, [x19] cmp w21, 0 csel w2, w12, w22, eq @@ -6920,11 +7170,11 @@ flash_die_info_init: strb w0, [x19] str w2, [x11, x1, lsl 2] strb w13, [x15, x1] -.L1190: +.L1232: add x13, x13, 1 cmp x13, 4 - bne .L1192 - b .L1193 + bne .L1234 + b .L1235 .size flash_die_info_init, .-flash_die_info_init .section .text.lpa_hash_init,"ax",@progbits .align 2 @@ -6934,19 +7184,19 @@ lpa_hash_init: stp x29, x30, [sp, -16]! mov w2, 512 mov w1, 255 - adrp x0, .LANCHOR110 + adrp x0, .LANCHOR112 add x29, sp, 0 - add x0, x0, :lo12:.LANCHOR110 + add x0, x0, :lo12:.LANCHOR112 bl ftl_memset - adrp x0, .LANCHOR80 + adrp x0, .LANCHOR83 mov w1, 255 ldp x29, x30, [sp], 16 - ldrh w2, [x0, #:lo12:.LANCHOR80] - adrp x0, .LANCHOR73 - ldrb w0, [x0, #:lo12:.LANCHOR73] + ldrh w2, [x0, #:lo12:.LANCHOR83] + adrp x0, .LANCHOR76 + ldrb w0, [x0, #:lo12:.LANCHOR76] mul w2, w2, w0 - adrp x0, .LANCHOR112 - ldr x0, [x0, #:lo12:.LANCHOR112] + adrp x0, .LANCHOR114 + ldr x0, [x0, #:lo12:.LANCHOR114] lsl w2, w2, 2 b ftl_memset .size lpa_hash_init, .-lpa_hash_init @@ -6961,59 +7211,59 @@ lpa_rebuild_hash: ldr w0, [x0, #:lo12:.LANCHOR14] stp x19, x20, [sp, 16] stp x21, x22, [sp, 32] - tbz x0, 12, .L1206 - adrp x1, .LANCHOR138 - adrp x0, .LC72 + tbz x0, 12, .L1248 + adrp x1, .LANCHOR143 + adrp x0, .LC74 mov w3, 0 - mov w2, 222 - add x1, x1, :lo12:.LANCHOR138 - add x0, x0, :lo12:.LC72 + mov w2, 224 + add x1, x1, :lo12:.LANCHOR143 + add x0, x0, :lo12:.LC74 bl printf -.L1206: - adrp x20, .LANCHOR80 - adrp x22, .LANCHOR73 - adrp x19, .LANCHOR110 - add x19, x19, :lo12:.LANCHOR110 +.L1248: + adrp x20, .LANCHOR83 + adrp x22, .LANCHOR76 + adrp x19, .LANCHOR112 + add x19, x19, :lo12:.LANCHOR112 mov w2, 512 mov w1, 255 mov x0, x19 bl ftl_memset - ldrh w2, [x20, #:lo12:.LANCHOR80] - adrp x21, .LANCHOR112 - ldrb w0, [x22, #:lo12:.LANCHOR73] + ldrh w2, [x20, #:lo12:.LANCHOR83] + adrp x21, .LANCHOR114 + ldrb w0, [x22, #:lo12:.LANCHOR76] mov w1, 255 - add x20, x20, :lo12:.LANCHOR80 + add x20, x20, :lo12:.LANCHOR83 mul w2, w2, w0 - ldr x0, [x21, #:lo12:.LANCHOR112] + ldr x0, [x21, #:lo12:.LANCHOR114] lsl w2, w2, 2 bl ftl_memset - adrp x0, .LANCHOR111 - ldrb w3, [x22, #:lo12:.LANCHOR73] - ldr x5, [x21, #:lo12:.LANCHOR112] + adrp x0, .LANCHOR113 + ldrb w3, [x22, #:lo12:.LANCHOR76] + ldr x5, [x21, #:lo12:.LANCHOR114] mov w1, 0 - ldr x4, [x0, #:lo12:.LANCHOR111] -.L1207: + ldr x4, [x0, #:lo12:.LANCHOR113] +.L1249: ldrh w0, [x20] mul w0, w0, w3 cmp w1, w0, lsl 1 - blt .L1209 + blt .L1251 ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x29, x30, [sp], 48 ret -.L1209: +.L1251: uxtw x2, w1 ldr w0, [x4, x2, lsl 2] cmn w0, #1 - beq .L1208 + beq .L1250 and x0, x0, 255 ldrh w6, [x19, x0, lsl 1] strh w1, [x19, x0, lsl 1] strh w6, [x5, x2, lsl 1] -.L1208: +.L1250: add w1, w1, 1 and w1, w1, 65535 - b .L1207 + b .L1249 .size lpa_rebuild_hash, .-lpa_rebuild_hash .section .text.zftl_read_flash_info,"ax",@progbits .align 2 @@ -7027,10 +7277,10 @@ zftl_read_flash_info: str x19, [sp, 16] mov x19, x0 bl ftl_memset - adrp x1, .LANCHOR34 - add x1, x1, :lo12:.LANCHOR34 + adrp x1, .LANCHOR30 + add x1, x1, :lo12:.LANCHOR30 adrp x0, .LANCHOR2 - adrp x3, .LANCHOR58 + adrp x3, .LANCHOR59 strb wzr, [x19, 10] mov w4, 1 ldrb w2, [x1, 9] @@ -7042,8 +7292,8 @@ zftl_read_flash_info: adrp x0, .LANCHOR43 ldrb w0, [x0, #:lo12:.LANCHOR43] strb w0, [x19, 7] - add x0, x3, :lo12:.LANCHOR58 - ldrb w3, [x3, #:lo12:.LANCHOR58] + add x0, x3, :lo12:.LANCHOR59 + ldrb w3, [x3, #:lo12:.LANCHOR59] strb w3, [x19] ldrb w3, [x0, 1] strb w3, [x19, 1] @@ -7061,20 +7311,20 @@ zftl_read_flash_info: strb w0, [x19, 9] adrp x0, .LANCHOR18 ldrb w3, [x0, #:lo12:.LANCHOR18] -.L1218: +.L1260: cmp w3, w1, uxtb - bhi .L1219 + bhi .L1261 ldr x19, [sp, 16] ldp x29, x30, [sp], 32 ret -.L1219: +.L1261: ldrb w0, [x1, x2] add x1, x1, 1 ldrb w5, [x19, 10] lsl w0, w4, w0 orr w0, w0, w5 strb w0, [x19, 10] - b .L1218 + b .L1260 .size zftl_read_flash_info, .-zftl_read_flash_info .section .text.gc_static_wearleveling,"ax",@progbits .align 2 @@ -7084,18 +7334,18 @@ gc_static_wearleveling: stp x29, x30, [sp, -160]! add x29, sp, 0 stp x25, x26, [sp, 64] - adrp x25, .LANCHOR97 + adrp x25, .LANCHOR100 stp x19, x20, [sp, 16] - ldr x0, [x25, #:lo12:.LANCHOR97] + ldr x0, [x25, #:lo12:.LANCHOR100] stp x21, x22, [sp, 32] stp x23, x24, [sp, 48] stp x27, x28, [sp, 80] ldr w1, [x0, 32] mov w0, 10240 cmp w1, w0 - bls .L1222 + bls .L1264 bl ftl_tmp_into_update -.L1222: +.L1264: adrp x19, .LANCHOR10 ldr x0, [x19, #:lo12:.LANCHOR10] ldr w1, [x0, 568] @@ -7103,15 +7353,15 @@ gc_static_wearleveling: add w1, w1, 860160 add w1, w1, 3840 cmp w2, w1 - bhi .L1223 - ldr x3, [x25, #:lo12:.LANCHOR97] + bhi .L1265 + ldr x3, [x25, #:lo12:.LANCHOR100] ldr w1, [x0, 572] add w1, w1, 32 ldr w3, [x3, 36] cmp w3, w1 - bls .L1272 -.L1223: - ldr x1, [x25, #:lo12:.LANCHOR97] + bls .L1314 +.L1265: + ldr x1, [x25, #:lo12:.LANCHOR100] mov w20, 65535 adrp x8, .LANCHOR14 mov w21, w20 @@ -7130,10 +7380,10 @@ gc_static_wearleveling: str wzr, [x29, 136] stp wzr, wzr, [x29, 148] str wzr, [x29, 156] -.L1225: +.L1267: ldrh w0, [x10] cmp w0, w24 - bhi .L1234 + bhi .L1276 ldr x0, [x19, #:lo12:.LANCHOR10] mov w2, 128 mov w1, 255 @@ -7148,14 +7398,14 @@ gc_static_wearleveling: mov x1, x5 lsl x0, x5, 2 add x26, x2, x0 - tbz x3, 10, .L1235 + tbz x3, 10, .L1277 adrp x3, .LANCHOR9 ldrb w4, [x26, 2] ldr x6, [x3, #:lo12:.LANCHOR9] ldr w3, [x2, x0] ldrh w2, [x2, x0] - adrp x0, .LC74 - add x0, x0, :lo12:.LC74 + adrp x0, .LC76 + add x0, x0, :lo12:.LC76 ldrh w7, [x6, x5, lsl 1] ubfx x3, x3, 11, 8 ldrb w6, [x26, 3] @@ -7163,22 +7413,22 @@ gc_static_wearleveling: and w2, w2, 2047 ubfx x4, x4, 3, 2 bl printf -.L1235: +.L1277: ldrb w0, [x26, 2] - tbz x0, 3, .L1236 + tbz x0, 3, .L1278 ldrb w0, [x26, 2] and w1, w0, 192 cmp w1, 64 - bne .L1237 + bne .L1279 ldr x0, [x19, #:lo12:.LANCHOR10] mov w1, 0 mov w2, 1 ldrh w0, [x0, 586] bl gc_add_sblk - adrp x0, .LANCHOR62+318 + adrp x0, .LANCHOR63+318 mov w1, 1 - strh w1, [x0, #:lo12:.LANCHOR62+318] -.L1236: + strh w1, [x0, #:lo12:.LANCHOR63+318] +.L1278: ldr x0, [x19, #:lo12:.LANCHOR10] ldr w3, [x24, #:lo12:.LANCHOR14] ldr x2, [x23, #:lo12:.LANCHOR7] @@ -7186,14 +7436,14 @@ gc_static_wearleveling: mov x1, x5 lsl x0, x5, 2 add x26, x2, x0 - tbz x3, 10, .L1238 + tbz x3, 10, .L1280 adrp x3, .LANCHOR9 ldrb w4, [x26, 2] ldr x6, [x3, #:lo12:.LANCHOR9] ldr w3, [x2, x0] ldrh w2, [x2, x0] - adrp x0, .LC75 - add x0, x0, :lo12:.LC75 + adrp x0, .LC77 + add x0, x0, :lo12:.LC77 ldrh w7, [x6, x5, lsl 1] ubfx x3, x3, 11, 8 ldrb w6, [x26, 3] @@ -7201,24 +7451,24 @@ gc_static_wearleveling: and w2, w2, 2047 ubfx x4, x4, 3, 2 bl printf -.L1238: +.L1280: ldrb w0, [x26, 2] - tbz x0, 3, .L1239 + tbz x0, 3, .L1281 ldrb w0, [x26, 2] and w1, w0, 192 cmp w1, 64 - bne .L1240 + bne .L1282 ldr x0, [x19, #:lo12:.LANCHOR10] mov w1, 0 mov w2, 1 ldrh w0, [x0, 584] bl gc_add_sblk - adrp x0, .LANCHOR62+318 + adrp x0, .LANCHOR63+318 mov w1, 1 - strh w1, [x0, #:lo12:.LANCHOR62+318] -.L1239: + strh w1, [x0, #:lo12:.LANCHOR63+318] +.L1281: ldr w0, [x24, #:lo12:.LANCHOR14] - tbz x0, 10, .L1241 + tbz x0, 10, .L1283 ldr w6, [x29, 128] adrp x2, .LANCHOR9 ldr x1, [x23, #:lo12:.LANCHOR7] @@ -7227,9 +7477,9 @@ gc_static_wearleveling: add x5, x1, x0 ldr w3, [x1, x0] ldrh w2, [x1, x0] - adrp x0, .LC76 + adrp x0, .LC78 ldrh w7, [x7, x6, lsl 1] - add x0, x0, :lo12:.LC76 + add x0, x0, :lo12:.LC78 ldrb w6, [x5, 3] ubfx x3, x3, 11, 8 ldr w1, [x29, 128] @@ -7238,9 +7488,9 @@ gc_static_wearleveling: ubfx x5, x4, 5, 3 ubfx x4, x4, 3, 2 bl printf -.L1241: +.L1283: ldr w0, [x24, #:lo12:.LANCHOR14] - tbz x0, 10, .L1242 + tbz x0, 10, .L1284 ldr w6, [x29, 136] adrp x2, .LANCHOR9 ldr x1, [x23, #:lo12:.LANCHOR7] @@ -7249,9 +7499,9 @@ gc_static_wearleveling: add x5, x1, x0 ldr w3, [x1, x0] ldrh w2, [x1, x0] - adrp x0, .LC77 + adrp x0, .LC79 ldrh w7, [x7, x6, lsl 1] - add x0, x0, :lo12:.LC77 + add x0, x0, :lo12:.LC79 ldrb w6, [x5, 3] ubfx x3, x3, 11, 8 ldr w1, [x29, 136] @@ -7260,8 +7510,8 @@ gc_static_wearleveling: ubfx x5, x4, 5, 3 ubfx x4, x4, 3, 2 bl printf -.L1242: - ldr x0, [x25, #:lo12:.LANCHOR97] +.L1284: + ldr x0, [x25, #:lo12:.LANCHOR100] ldrh w1, [x29, 156] strh w1, [x0, 96] ldr w1, [x29, 148] @@ -7274,126 +7524,126 @@ gc_static_wearleveling: strh w3, [x0, 88] strh w4, [x0, 90] ldr w0, [x24, #:lo12:.LANCHOR14] - tbz x0, 10, .L1243 - adrp x0, .LC78 + tbz x0, 10, .L1285 + adrp x0, .LC80 and w4, w4, 65535 and w3, w3, 65535 mov w2, w28 mov w1, w27 - add x0, x0, :lo12:.LC78 + add x0, x0, :lo12:.LC80 bl printf -.L1243: +.L1285: ldr w0, [x24, #:lo12:.LANCHOR14] - tbz x0, 10, .L1244 - adrp x0, .LANCHOR139 + tbz x0, 10, .L1286 + adrp x0, .LANCHOR144 ldr w3, [x29, 156] mov w4, w22 mov w2, w21 - ldrh w6, [x0, #:lo12:.LANCHOR139] - adrp x0, .LANCHOR140 + ldrh w6, [x0, #:lo12:.LANCHOR144] + adrp x0, .LANCHOR145 mov w1, w20 - ldrh w5, [x0, #:lo12:.LANCHOR140] - adrp x0, .LC79 - add x0, x0, :lo12:.LC79 + ldrh w5, [x0, #:lo12:.LANCHOR145] + adrp x0, .LC81 + add x0, x0, :lo12:.LC81 bl printf -.L1244: +.L1286: sub w0, w22, w21 str w0, [x29, 148] - adrp x0, .LANCHOR139 + adrp x0, .LANCHOR144 ldr w1, [x29, 148] - ldrh w0, [x0, #:lo12:.LANCHOR139] + ldrh w0, [x0, #:lo12:.LANCHOR144] cmp w1, w0 - bgt .L1245 - adrp x1, .LANCHOR140 + bgt .L1287 + adrp x1, .LANCHOR145 ldr w0, [x29, 156] - ldrh w1, [x1, #:lo12:.LANCHOR140] + ldrh w1, [x1, #:lo12:.LANCHOR145] sub w0, w0, w20 cmp w0, w1 - ble .L1273 -.L1245: + ble .L1315 +.L1287: ldr x0, [x19, #:lo12:.LANCHOR10] - adrp x28, .LANCHOR62 - add x28, x28, :lo12:.LANCHOR62 + adrp x28, .LANCHOR63 + add x28, x28, :lo12:.LANCHOR63 mov w27, 0 mov w22, 0 ldrh w26, [x0, 580] - ldr x0, [x25, #:lo12:.LANCHOR97] + ldr x0, [x25, #:lo12:.LANCHOR100] ldrh w0, [x0, 134] str w0, [x29, 152] adrp x0, .LANCHOR6 add x0, x0, :lo12:.LANCHOR6 str x0, [x29, 136] - adrp x0, .LANCHOR140 - add x0, x0, :lo12:.LANCHOR140 + adrp x0, .LANCHOR145 + add x0, x0, :lo12:.LANCHOR145 str x0, [x29, 128] -.L1247: +.L1289: ldr x0, [x29, 136] ldr w1, [x29, 152] ldrh w0, [x0] cmp w1, w0 - bcc .L1257 -.L1256: + bcc .L1299 +.L1298: ldr x0, [x19, #:lo12:.LANCHOR10] str w26, [x0, 580] -.L1246: - cbz w21, .L1259 - ldr x2, [x25, #:lo12:.LANCHOR97] +.L1288: + cbz w21, .L1301 + ldr x2, [x25, #:lo12:.LANCHOR100] adrp x0, .LANCHOR6 ldrh w5, [x0, #:lo12:.LANCHOR6] ldr x0, [x23, #:lo12:.LANCHOR7] ldrh w1, [x2, 134] add x0, x0, x1, uxth 2 -.L1260: +.L1302: cmp w1, w5 - bcc .L1262 + bcc .L1304 ldrh w0, [x2, 72] add w0, w21, w0 strh w0, [x2, 72] ldrh w0, [x2, 98] cmp w21, w0 - bcs .L1259 + bcs .L1301 sub w21, w0, w21 strh w21, [x2, 98] -.L1259: - cbz w20, .L1265 - ldr x2, [x25, #:lo12:.LANCHOR97] +.L1301: + cbz w20, .L1307 + ldr x2, [x25, #:lo12:.LANCHOR100] adrp x0, .LANCHOR6 ldrh w6, [x0, #:lo12:.LANCHOR6] ldr x0, [x23, #:lo12:.LANCHOR7] ldrh w1, [x2, 134] add x0, x0, x1, uxth 2 -.L1266: +.L1308: cmp w1, w6 - bcc .L1268 + bcc .L1310 ldrh w0, [x2, 74] add w0, w20, w0 strh w0, [x2, 74] ldrh w0, [x2, 96] cmp w20, w0 - bcs .L1265 + bcs .L1307 sub w20, w0, w20 strh w20, [x2, 96] -.L1265: +.L1307: mov w1, 5 mov w0, 0 bl zftl_get_gc_node and w1, w0, 65535 mov w2, 65535 cmp w1, w2 - beq .L1224 + beq .L1266 adrp x2, .LANCHOR9 ubfiz x1, x1, 1, 16 ldr x2, [x2, #:lo12:.LANCHOR9] ldrh w2, [x2, x1] - adrp x1, .LANCHOR80 - ldrh w1, [x1, #:lo12:.LANCHOR80] + adrp x1, .LANCHOR83 + ldrh w1, [x1, #:lo12:.LANCHOR83] cmp w2, w1 - bhi .L1224 + bhi .L1266 add w22, w22, 1 mov w2, 1 mov w1, 0 bl gc_add_sblk -.L1224: +.L1266: add w0, w22, w27 ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] @@ -7402,7 +7652,7 @@ gc_static_wearleveling: ldp x27, x28, [sp, 80] ldp x29, x30, [sp], 160 ret -.L1234: +.L1276: uxtw x7, w24 ldr x6, [x23, #:lo12:.LANCHOR7] lsl x2, x7, 2 @@ -7410,40 +7660,40 @@ gc_static_wearleveling: ldrb w0, [x11, 2] and w1, w0, 224 cmp w1, 224 - beq .L1226 + beq .L1268 ubfx x4, x0, 3, 2 - tbz x4, 0, .L1227 + tbz x4, 0, .L1269 ldr w0, [x6, x2] ldrh w1, [x6, x2] ubfx x0, x0, 11, 8 and w1, w1, 2047 -.L1228: +.L1270: ldr w3, [x29, 148] add w27, w27, 1 and w27, w27, 65535 cmp w20, w1 add w3, w3, w1 str w3, [x29, 148] - bls .L1271 + bls .L1313 ldr x3, [x19, #:lo12:.LANCHOR10] mov w20, w1 strh w24, [x3, 586] -.L1271: +.L1313: ldr w3, [x29, 156] cmp w3, w1 - bcs .L1231 + bcs .L1273 str w24, [x29, 128] str w1, [x29, 156] -.L1231: +.L1273: mov w3, 65535 cmp w0, w3 - bne .L1230 -.L1232: + bne .L1272 +.L1274: cmp w0, 9 ccmp w1, 9, 0, hi - bhi .L1226 + bhi .L1268 ldr w0, [x8] - tbz x0, 8, .L1226 + tbz x0, 8, .L1268 adrp x0, .LANCHOR9 ldr w3, [x6, x2] ldrh w2, [x6, x2] @@ -7455,82 +7705,82 @@ gc_static_wearleveling: and w2, w2, 2047 stp x8, x10, [x29, 112] ldrh w7, [x0, x7, lsl 1] - adrp x0, .LC73 + adrp x0, .LC75 ubfx x5, x5, 5, 3 - add x0, x0, :lo12:.LC73 + add x0, x0, :lo12:.LC75 bl printf ldp x8, x10, [x29, 112] -.L1226: +.L1268: add w24, w24, 1 and w24, w24, 65535 - b .L1225 -.L1227: + b .L1267 +.L1269: tst w0, 24 - bne .L1229 + bne .L1271 ldrh w1, [x6, x2] mov w0, 65535 and w1, w1, 2047 - b .L1228 -.L1229: + b .L1270 +.L1271: ldr w0, [x6, x2] mov w1, 65535 ubfx x0, x0, 11, 8 -.L1230: +.L1272: ldr w3, [x29, 152] add w28, w28, 1 and w28, w28, 65535 cmp w21, w0 add w3, w3, w0 str w3, [x29, 152] - bls .L1233 + bls .L1275 ldr x3, [x19, #:lo12:.LANCHOR10] mov w21, w0 strh w24, [x3, 584] -.L1233: +.L1275: cmp w22, w0 - bcs .L1232 + bcs .L1274 mov w22, w0 str w24, [x29, 136] - b .L1232 -.L1237: + b .L1274 +.L1279: tst w0, 224 - bne .L1236 + bne .L1278 ldr x1, [x19, #:lo12:.LANCHOR10] mov w0, 65535 ldrh w2, [x1, 590] cmp w2, w0 - bne .L1236 + bne .L1278 ldrh w0, [x1, 586] ldrh w1, [x1, 588] cmp w1, w0 - beq .L1236 + beq .L1278 bl zftl_remove_free_node ldr x0, [x19, #:lo12:.LANCHOR10] ldrh w1, [x0, 586] strh w1, [x0, 590] mov w1, -1 strh w1, [x0, 586] - b .L1236 -.L1240: + b .L1278 +.L1282: tst w0, 224 - bne .L1239 + bne .L1281 ldr x1, [x19, #:lo12:.LANCHOR10] mov w0, 65535 ldrh w2, [x1, 588] cmp w2, w0 - bne .L1239 + bne .L1281 ldrh w0, [x1, 584] ldrh w1, [x1, 590] cmp w1, w0 - beq .L1239 + beq .L1281 bl zftl_remove_free_node ldr x0, [x19, #:lo12:.LANCHOR10] ldrh w1, [x0, 584] strh w1, [x0, 588] mov w1, -1 strh w1, [x0, 584] - b .L1239 -.L1257: + b .L1281 +.L1299: add w7, w26, 1 ldr x4, [x23, #:lo12:.LANCHOR7] and w26, w7, 65535 @@ -7541,31 +7791,31 @@ gc_static_wearleveling: add x0, x4, x3 ldrb w0, [x0, 2] tst w0, 192 - beq .L1249 + beq .L1291 and w2, w0, 224 cmp w2, 224 - beq .L1249 + beq .L1291 ubfx x0, x0, 3, 2 and w1, w0, 1 - tbz x0, 0, .L1250 + tbz x0, 0, .L1292 cmp w2, 160 -.L1337: - bne .L1252 - adrp x0, .LANCHOR139 +.L1379: + bne .L1294 + adrp x0, .LANCHOR144 ldr w2, [x29, 148] - ldrh w0, [x0, #:lo12:.LANCHOR139] + ldrh w0, [x0, #:lo12:.LANCHOR144] cmp w2, w0 - ble .L1253 + ble .L1295 ldr w0, [x4, x3] ubfx x0, x0, 11, 8 cmp w0, w21 - bls .L1254 - cbz w1, .L1253 + bls .L1296 + cbz w1, .L1295 ldrh w0, [x4, x3] and w0, w0, 2047 cmp w0, w20 - bgt .L1253 -.L1254: + bgt .L1295 +.L1296: stp x4, x8, [x29, 104] mov w2, 1 str x3, [x29, 120] @@ -7578,7 +7828,7 @@ gc_static_wearleveling: add w22, w22, 1 ldp x4, x8, [x29, 104] ldr x3, [x29, 120] - tbz x0, 10, .L1253 + tbz x0, 10, .L1295 adrp x0, .LANCHOR9 ldr w6, [x4, x3] ldrh w5, [x4, x3] @@ -7588,46 +7838,46 @@ gc_static_wearleveling: ldrh w4, [x28, 56] and w5, w5, 2047 add x3, x0, x3 - adrp x0, .LC80 - add x0, x0, :lo12:.LC80 + adrp x0, .LC82 + add x0, x0, :lo12:.LC82 ldrb w2, [x3, 2] ldrh w3, [x1, x8, lsl 1] mov w1, w26 ubfx x2, x2, 5, 3 -.L1338: +.L1380: bl printf -.L1253: +.L1295: cmp w22, 4 ccmp w27, 4, 2, ls - bhi .L1256 -.L1249: + bhi .L1298 +.L1291: ldr w0, [x29, 152] add w0, w0, 1 and w0, w0, 65535 str w0, [x29, 152] - b .L1247 -.L1250: + b .L1289 +.L1292: cmp w0, 2 - b .L1337 -.L1252: + b .L1379 +.L1294: ldr x2, [x29, 128] ldr w0, [x29, 156] sub w0, w0, w20 ldrh w2, [x2] cmp w0, w2 - ble .L1253 + ble .L1295 ldrh w0, [x4, x3] add w2, w20, 8 and w0, w0, 2047 cmp w0, w2 - ble .L1255 - cbz w1, .L1253 + ble .L1297 + cbz w1, .L1295 ldr w0, [x4, x3] add w1, w21, 4 ubfx x0, x0, 11, 8 cmp w0, w1 - bgt .L1253 -.L1255: + bgt .L1295 +.L1297: stp x4, x8, [x29, 104] mov w2, 1 str x3, [x29, 120] @@ -7640,7 +7890,7 @@ gc_static_wearleveling: add w27, w27, 1 ldp x4, x8, [x29, 104] ldr x3, [x29, 120] - tbz x0, 10, .L1253 + tbz x0, 10, .L1295 adrp x0, .LANCHOR9 ldr w6, [x4, x3] ldrh w5, [x4, x3] @@ -7650,54 +7900,54 @@ gc_static_wearleveling: and w5, w5, 2047 ldrh w4, [x28, 56] add x3, x0, x3 - adrp x0, .LC81 - add x0, x0, :lo12:.LC81 + adrp x0, .LC83 + add x0, x0, :lo12:.LC83 ldrb w2, [x3, 2] ldrh w3, [x1, x8, lsl 1] mov w1, w26 ubfx x2, x2, 5, 3 - b .L1338 -.L1273: + b .L1380 +.L1315: mov w27, 0 mov w22, 0 - b .L1246 -.L1262: + b .L1288 +.L1304: ldr w3, [x0] ubfx x4, x3, 11, 8 cmp w21, w4 - bhi .L1261 + bhi .L1303 ldrb w6, [x0, 2] tst w6, 24 - beq .L1261 + beq .L1303 sub w4, w4, w21 bfi w3, w4, 11, 8 str w3, [x0] -.L1261: +.L1303: add w1, w1, 1 add x0, x0, 4 and w1, w1, 65535 - b .L1260 -.L1268: + b .L1302 +.L1310: ldrh w3, [x0] and w4, w3, 2047 cmp w4, w20 - blt .L1267 + blt .L1309 ldrb w5, [x0, 2] and w5, w5, 24 cmp w5, 16 - beq .L1267 + beq .L1309 sub w4, w4, w20 bfi w3, w4, 0, 11 strh w3, [x0] -.L1267: +.L1309: add w1, w1, 1 add x0, x0, 4 and w1, w1, 65535 - b .L1266 -.L1272: + b .L1308 +.L1314: mov w27, 0 mov w22, 0 - b .L1224 + b .L1266 .size gc_static_wearleveling, .-gc_static_wearleveling .section .text.zftl_sblk_list_init,"ax",@progbits .align 2 @@ -7713,80 +7963,80 @@ zftl_sblk_list_init: adrp x28, .LANCHOR4 stp x19, x20, [sp, 16] ldrh w2, [x27, #:lo12:.LANCHOR6] - adrp x20, .LANCHOR87 + adrp x20, .LANCHOR90 stp x21, x22, [sp, 32] - adrp x19, .LANCHOR83 + adrp x19, .LANCHOR86 stp x23, x24, [sp, 48] - adrp x22, .LANCHOR94 + adrp x22, .LANCHOR97 stp x25, x26, [sp, 64] - adrp x25, .LANCHOR97 + adrp x25, .LANCHOR100 mul w2, w2, w0 ldr x0, [x28, #:lo12:.LANCHOR4] - adrp x24, .LANCHOR90 - adrp x23, .LANCHOR92 - adrp x21, .LANCHOR85 + adrp x24, .LANCHOR93 + adrp x23, .LANCHOR95 + adrp x21, .LANCHOR88 bl ftl_memset str x28, [x29, 168] - adrp x0, .LANCHOR96 - adrp x2, .LANCHOR73 - adrp x3, .LANCHOR72 + adrp x0, .LANCHOR99 + adrp x2, .LANCHOR76 + adrp x3, .LANCHOR75 mov w1, 16 - strh w1, [x0, #:lo12:.LANCHOR96] - adrp x10, .LANCHOR91 - ldrb w0, [x2, #:lo12:.LANCHOR73] - adrp x8, .LANCHOR93 - ldrh w1, [x3, #:lo12:.LANCHOR72] - adrp x7, .LANCHOR95 - adrp x6, .LANCHOR76 + strh w1, [x0, #:lo12:.LANCHOR99] + adrp x10, .LANCHOR94 + ldrb w0, [x2, #:lo12:.LANCHOR76] + adrp x8, .LANCHOR96 + ldrh w1, [x3, #:lo12:.LANCHOR75] + adrp x7, .LANCHOR98 + adrp x6, .LANCHOR79 adrp x5, .LANCHOR12 - adrp x4, .LANCHOR75 - str xzr, [x10, #:lo12:.LANCHOR91] - str xzr, [x8, #:lo12:.LANCHOR93] + adrp x4, .LANCHOR78 + str xzr, [x10, #:lo12:.LANCHOR94] + str xzr, [x8, #:lo12:.LANCHOR96] adrp x28, .LANCHOR7 mul w1, w0, w1 mov w0, 32768 - str xzr, [x7, #:lo12:.LANCHOR95] - str xzr, [x6, #:lo12:.LANCHOR76] + str xzr, [x7, #:lo12:.LANCHOR98] + str xzr, [x6, #:lo12:.LANCHOR79] str xzr, [x5, #:lo12:.LANCHOR12] sdiv w0, w0, w1 - str xzr, [x4, #:lo12:.LANCHOR75] - strh wzr, [x24, #:lo12:.LANCHOR90] - strh wzr, [x23, #:lo12:.LANCHOR92] - strh wzr, [x22, #:lo12:.LANCHOR94] + str xzr, [x4, #:lo12:.LANCHOR78] + strh wzr, [x24, #:lo12:.LANCHOR93] + strh wzr, [x23, #:lo12:.LANCHOR95] + strh wzr, [x22, #:lo12:.LANCHOR97] sxth w0, w0 str w0, [x29, 188] - ldr x0, [x25, #:lo12:.LANCHOR97] - strh wzr, [x21, #:lo12:.LANCHOR85] - strh wzr, [x20, #:lo12:.LANCHOR87] - strh wzr, [x19, #:lo12:.LANCHOR83] + ldr x0, [x25, #:lo12:.LANCHOR100] + strh wzr, [x21, #:lo12:.LANCHOR88] + strh wzr, [x20, #:lo12:.LANCHOR90] + strh wzr, [x19, #:lo12:.LANCHOR86] strh wzr, [x0, 146] ldrsh w26, [x0, 134] add x0, x27, :lo12:.LANCHOR6 - adrp x27, .LC82 - add x27, x27, :lo12:.LC82 + adrp x27, .LC84 + add x27, x27, :lo12:.LC84 stp x3, x2, [x29, 104] stp x4, x5, [x29, 120] stp x6, x7, [x29, 136] stp x8, x10, [x29, 152] str x0, [x29, 176] -.L1340: +.L1382: ldr x0, [x29, 176] ldrh w0, [x0] cmp w26, w0 - blt .L1356 - ldr x0, [x25, #:lo12:.LANCHOR97] - ldrh w1, [x24, #:lo12:.LANCHOR90] + blt .L1398 + ldr x0, [x25, #:lo12:.LANCHOR100] + ldrh w1, [x24, #:lo12:.LANCHOR93] ldp x25, x26, [sp, 64] strh w1, [x0, 114] - ldrh w1, [x23, #:lo12:.LANCHOR92] + ldrh w1, [x23, #:lo12:.LANCHOR95] strh w1, [x0, 118] - ldrh w1, [x22, #:lo12:.LANCHOR94] + ldrh w1, [x22, #:lo12:.LANCHOR97] strh w1, [x0, 116] - ldrh w1, [x21, #:lo12:.LANCHOR85] + ldrh w1, [x21, #:lo12:.LANCHOR88] strh w1, [x0, 122] - ldrh w1, [x20, #:lo12:.LANCHOR87] + ldrh w1, [x20, #:lo12:.LANCHOR90] strh w1, [x0, 120] - ldrh w1, [x19, #:lo12:.LANCHOR83] + ldrh w1, [x19, #:lo12:.LANCHOR86] strh w1, [x0, 124] ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] @@ -7794,28 +8044,28 @@ zftl_sblk_list_init: ldp x27, x28, [sp, 80] ldp x29, x30, [sp], 192 ret -.L1356: +.L1398: ldr x4, [x28, #:lo12:.LANCHOR7] sxtw x2, w26 add x4, x4, x2, lsl 2 ldrb w6, [x4, 3] - cbz w6, .L1357 + cbz w6, .L1399 ldr x0, [x29, 112] mov w1, 0 - ldr x7, [x25, #:lo12:.LANCHOR97] - ldrb w8, [x0, #:lo12:.LANCHOR73] + ldr x7, [x25, #:lo12:.LANCHOR100] + ldrb w8, [x0, #:lo12:.LANCHOR76] ldr x0, [x29, 104] - ldrh w10, [x0, #:lo12:.LANCHOR72] + ldrh w10, [x0, #:lo12:.LANCHOR75] mov w0, 0 -.L1342: +.L1384: cmp w1, w8 - blt .L1345 - cbz w0, .L1346 + blt .L1387 + cbz w0, .L1388 mov w1, 32768 sdiv w0, w1, w0 add w0, w0, 1 sxth w0, w0 -.L1341: +.L1383: ldr x3, [x29, 168] mov w1, 6 smull x1, w26, w1 @@ -7830,44 +8080,44 @@ zftl_sblk_list_init: and w0, w1, 224 cmp w0, 32 ccmp w0, w5, 4, ne - beq .L1347 + beq .L1389 adrp x5, .LANCHOR10 ldr x5, [x5, #:lo12:.LANCHOR10] ldrh w6, [x5, 16] cmp w26, w6 - beq .L1347 + beq .L1389 ldrh w6, [x5, 48] cmp w26, w6 - beq .L1347 + beq .L1389 ldrh w5, [x5, 80] cmp w26, w5 - beq .L1347 + beq .L1389 cmp w0, 64 - bne .L1348 + bne .L1390 ldr x0, [x29, 128] - add x2, x21, :lo12:.LANCHOR85 + add x2, x21, :lo12:.LANCHOR88 mov w1, w26 add x0, x0, :lo12:.LANCHOR12 -.L1360: +.L1402: bl _insert_data_list -.L1347: +.L1389: add w3, w26, 1 sxth w26, w3 - b .L1340 -.L1345: + b .L1382 +.L1387: asr w5, w6, w1 - tbnz x5, 0, .L1343 + tbnz x5, 0, .L1385 add w0, w10, w0 sxth w0, w0 -.L1344: +.L1386: add w1, w1, 1 - b .L1342 -.L1343: + b .L1384 +.L1385: ldrh w5, [x7, 146] add w5, w5, 1 strh w5, [x7, 146] - b .L1344 -.L1346: + b .L1386 +.L1388: ldrb w1, [x4, 2] mov w5, -1 orr w1, w1, -32 @@ -7875,75 +8125,75 @@ zftl_sblk_list_init: adrp x1, .LANCHOR9 ldr x1, [x1, #:lo12:.LANCHOR9] strh w5, [x1, x2, lsl 1] - b .L1341 -.L1357: + b .L1383 +.L1399: ldr w0, [x29, 188] - b .L1341 -.L1348: + b .L1383 +.L1390: cmp w0, 96 - bne .L1349 + bne .L1391 ldr x0, [x29, 136] - add x2, x19, :lo12:.LANCHOR83 + add x2, x19, :lo12:.LANCHOR86 mov w1, w26 - add x0, x0, :lo12:.LANCHOR76 - b .L1360 -.L1349: + add x0, x0, :lo12:.LANCHOR79 + b .L1402 +.L1391: cmp w0, 160 - bne .L1350 + bne .L1392 ldr x0, [x29, 120] - add x2, x20, :lo12:.LANCHOR87 + add x2, x20, :lo12:.LANCHOR90 mov w1, w26 - add x0, x0, :lo12:.LANCHOR75 - b .L1360 -.L1350: - cbnz w0, .L1347 + add x0, x0, :lo12:.LANCHOR78 + b .L1402 +.L1392: + cbnz w0, .L1389 adrp x0, .LANCHOR9 ldr x0, [x0, #:lo12:.LANCHOR9] ldrh w2, [x0, x2, lsl 1] - cbz w2, .L1351 + cbz w2, .L1393 str x4, [x29, 96] mov w1, w26 mov x0, x27 bl printf ldr x4, [x29, 96] ldrb w0, [x4, 2] - tbz x0, 4, .L1352 + tbz x0, 4, .L1394 mov w1, 5 -.L1359: +.L1401: bfi w0, w1, 5, 3 strb w0, [x4, 2] mov w2, 0 mov w1, 1 mov w0, w26 bl gc_add_sblk - b .L1347 -.L1352: + b .L1389 +.L1394: mov w1, 2 - b .L1359 -.L1351: + b .L1401 +.L1393: ands w1, w1, 24 - bne .L1354 + bne .L1396 ldr x0, [x29, 160] - add x2, x24, :lo12:.LANCHOR90 + add x2, x24, :lo12:.LANCHOR93 mov w1, w26 - add x0, x0, :lo12:.LANCHOR91 -.L1361: + add x0, x0, :lo12:.LANCHOR94 +.L1403: bl _insert_free_list - b .L1347 -.L1354: + b .L1389 +.L1396: cmp w1, 16 - bne .L1355 + bne .L1397 ldr x0, [x29, 152] - add x2, x23, :lo12:.LANCHOR92 + add x2, x23, :lo12:.LANCHOR95 mov w1, w26 - add x0, x0, :lo12:.LANCHOR93 - b .L1361 -.L1355: + add x0, x0, :lo12:.LANCHOR96 + b .L1403 +.L1397: ldr x0, [x29, 144] - add x2, x22, :lo12:.LANCHOR94 + add x2, x22, :lo12:.LANCHOR97 mov w1, w26 - add x0, x0, :lo12:.LANCHOR95 - b .L1361 + add x0, x0, :lo12:.LANCHOR98 + b .L1403 .size zftl_sblk_list_init, .-zftl_sblk_list_init .section .text.ftl_open_sblk_init,"ax",@progbits .align 2 @@ -7953,19 +8203,19 @@ ftl_open_sblk_init: stp x29, x30, [sp, -80]! add x29, sp, 0 stp x19, x20, [sp, 16] - adrp x20, .LANCHOR73 + adrp x20, .LANCHOR76 stp x21, x22, [sp, 32] mov x19, x0 stp x23, x24, [sp, 48] - adrp x21, .LC70 - adrp x23, .LANCHOR80 + adrp x21, .LC72 + adrp x23, .LANCHOR83 mov w22, w1 - add x23, x23, :lo12:.LANCHOR80 - add x20, x20, :lo12:.LANCHOR73 - add x21, x21, :lo12:.LC70 + add x23, x23, :lo12:.LANCHOR83 + add x20, x20, :lo12:.LANCHOR76 + add x21, x21, :lo12:.LC72 stp x25, x26, [sp, 64] -.L1363: -.L1366: +.L1405: +.L1408: mov w0, w22 bl ftl_alloc_sblk mov w1, 0 @@ -7985,18 +8235,18 @@ ftl_open_sblk_init: strh w0, [x19, 6] strh wzr, [x19, 10] strb w22, [x19, 4] - beq .L1367 + beq .L1409 ldrb w0, [x20] mul w0, w1, w0 and w0, w0, 65535 -.L1364: +.L1406: ldrb w2, [x20] adrp x26, .LANCHOR9 strh w0, [x19, 12] ubfiz x25, x24, 1, 16 mul w2, w2, w1 - adrp x1, .LANCHOR111 - ldr x3, [x1, #:lo12:.LANCHOR111] + adrp x1, .LANCHOR113 + ldr x3, [x1, #:lo12:.LANCHOR113] mov w1, 255 lsl w2, w2, 2 add x0, x3, x0, uxth 2 @@ -8005,7 +8255,7 @@ ftl_open_sblk_init: ldrh w1, [x19, 6] strh w1, [x0, x25] ldrb w0, [x19, 9] - cbnz w0, .L1362 + cbnz w0, .L1404 mov w1, w24 mov x0, x21 bl printf @@ -8014,11 +8264,11 @@ ftl_open_sblk_init: strh w1, [x0, x25] mov w0, 7 strb w0, [x19, 4] - b .L1366 -.L1367: + b .L1408 +.L1409: mov w0, 0 - b .L1364 -.L1362: + b .L1406 +.L1404: ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x23, x24, [sp, 48] @@ -8034,34 +8284,34 @@ pm_free_sblk: stp x29, x30, [sp, -368]! add x29, sp, 0 stp x19, x20, [sp, 16] - adrp x20, .LANCHOR141 + adrp x20, .LANCHOR146 stp x21, x22, [sp, 32] - ldrh w0, [x20, #:lo12:.LANCHOR141] + ldrh w0, [x20, #:lo12:.LANCHOR146] stp x23, x24, [sp, 48] stp x25, x26, [sp, 64] cmp w0, 128 stp x27, x28, [sp, 80] - bls .L1370 - adrp x1, .LANCHOR142 + bls .L1412 + adrp x1, .LANCHOR147 adrp x0, .LC0 mov w2, 78 - add x1, x1, :lo12:.LANCHOR142 + add x1, x1, :lo12:.LANCHOR147 add x0, x0, :lo12:.LC0 bl printf -.L1370: +.L1412: add x28, x29, 112 mov w2, 256 mov w1, 0 mov x0, x28 bl ftl_memset - adrp x23, .LANCHOR98 - adrp x5, .LANCHOR97 - adrp x0, .LANCHOR99 + adrp x23, .LANCHOR101 + adrp x5, .LANCHOR100 + adrp x0, .LANCHOR102 mov w2, 21 - ldrb w12, [x23, #:lo12:.LANCHOR98] - ldr x7, [x5, #:lo12:.LANCHOR97] - ldrh w11, [x0, #:lo12:.LANCHOR99] - ldrh w13, [x20, #:lo12:.LANCHOR141] + ldrb w12, [x23, #:lo12:.LANCHOR101] + ldr x7, [x5, #:lo12:.LANCHOR100] + ldrh w11, [x0, #:lo12:.LANCHOR102] + ldrh w13, [x20, #:lo12:.LANCHOR146] add x4, x7, 704 sub w0, w2, w11 mov w2, 1 @@ -8070,26 +8320,26 @@ pm_free_sblk: sub w2, w2, #1 add x1, x1, 176 add x1, x7, x1, lsl 2 -.L1371: +.L1413: cmp x4, x1 - bne .L1375 - adrp x24, .LANCHOR73 - adrp x25, .LANCHOR80 + bne .L1417 + adrp x24, .LANCHOR76 + adrp x25, .LANCHOR83 adrp x26, .LANCHOR14 - adrp x27, .LC83 - ldrb w22, [x24, #:lo12:.LANCHOR73] - add x20, x20, :lo12:.LANCHOR141 - ldrh w0, [x25, #:lo12:.LANCHOR80] + adrp x27, .LC85 + ldrb w22, [x24, #:lo12:.LANCHOR76] + add x20, x20, :lo12:.LANCHOR146 + ldrh w0, [x25, #:lo12:.LANCHOR83] add x26, x26, :lo12:.LANCHOR14 - add x27, x27, :lo12:.LC83 + add x27, x27, :lo12:.LC85 mov w19, 0 str wzr, [x29, 108] mul w22, w22, w0 and w22, w22, 65535 -.L1376: +.L1418: ldrh w0, [x20] cmp w0, w19 - bhi .L1382 + bhi .L1424 ldr w0, [x29, 108] ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] @@ -8098,7 +8348,7 @@ pm_free_sblk: ldp x27, x28, [sp, 80] ldp x29, x30, [sp], 368 ret -.L1375: +.L1417: ldr w0, [x4] add x8, x7, 416 mov x3, 0 @@ -8106,47 +8356,47 @@ pm_free_sblk: and w0, w0, w2 udiv w0, w0, w12 and w0, w0, 65535 -.L1372: +.L1414: cmp w13, w3, uxth - bhi .L1374 + bhi .L1416 add x4, x4, 4 - b .L1371 -.L1374: + b .L1413 +.L1416: ldrh w10, [x8] cmp w10, w0 - bne .L1373 + bne .L1415 ldrh w10, [x28, x3, lsl 1] add w10, w10, 1 strh w10, [x28, x3, lsl 1] -.L1373: +.L1415: add x3, x3, 1 add x8, x8, 2 - b .L1372 -.L1382: - ldr x1, [x5, #:lo12:.LANCHOR97] + b .L1414 +.L1424: + ldr x1, [x5, #:lo12:.LANCHOR100] sxtw x21, w19 add x0, x21, 208 - ldrb w2, [x23, #:lo12:.LANCHOR98] + ldrb w2, [x23, #:lo12:.LANCHOR101] ldrh w3, [x1, x0, lsl 1] ldrh w0, [x1, 692] sdiv w0, w0, w2 cmp w0, w3 - bne .L1377 - ldrb w0, [x24, #:lo12:.LANCHOR73] - ldrh w2, [x25, #:lo12:.LANCHOR80] + bne .L1419 + ldrb w0, [x24, #:lo12:.LANCHOR76] + ldrh w2, [x25, #:lo12:.LANCHOR83] mul w0, w0, w2 strh w0, [x28, x21, lsl 1] -.L1377: +.L1419: ldrh w0, [x28, x21, lsl 1] cmp w22, w0 - bls .L1378 - cbnz w0, .L1383 -.L1380: + bls .L1420 + cbnz w0, .L1425 +.L1422: mov w0, 65535 cmp w3, w0 - beq .L1379 + beq .L1421 ldr w0, [x26] - tbz x0, 12, .L1381 + tbz x0, 12, .L1423 ldrh w4, [x1, 688] mov w2, 0 str x5, [x29, 96] @@ -8154,47 +8404,31 @@ pm_free_sblk: mov x0, x27 bl printf ldr x5, [x29, 96] -.L1381: - ldr x0, [x5, #:lo12:.LANCHOR97] +.L1423: + ldr x0, [x5, #:lo12:.LANCHOR100] add x21, x21, 208 str x5, [x29, 96] ldrh w0, [x0, x21, lsl 1] bl ftl_free_sblk ldr x5, [x29, 96] mov w1, -1 - ldr x0, [x5, #:lo12:.LANCHOR97] + ldr x0, [x5, #:lo12:.LANCHOR100] strh w1, [x0, x21, lsl 1] ldrh w1, [x0, 688] sub w1, w1, #1 strh w1, [x0, 688] - b .L1379 -.L1378: - cbz w0, .L1380 -.L1379: + b .L1421 +.L1420: + cbz w0, .L1422 +.L1421: add w19, w19, 1 and w19, w19, 65535 - b .L1376 -.L1383: + b .L1418 +.L1425: mov w22, w0 str w19, [x29, 108] - b .L1379 + b .L1421 .size pm_free_sblk, .-pm_free_sblk - .section .text.idb_init,"ax",@progbits - .align 2 - .global idb_init - .type idb_init, %function -idb_init: - stp x29, x30, [sp, -16]! - mov w2, 262144 - mov w1, 0 - adrp x0, idb_buf - add x29, sp, 0 - add x0, x0, :lo12:idb_buf - bl ftl_memset - mov w0, 0 - ldp x29, x30, [sp], 16 - ret - .size idb_init, .-idb_init .section .text.ftl_memcpy,"ax",@progbits .align 2 .global ftl_memcpy @@ -8213,14 +8447,14 @@ flash_info_data_init: add x29, sp, 0 ldr w0, [x0, #:lo12:.LANCHOR14] str x19, [sp, 16] - tbz x0, 12, .L1392 - adrp x2, .LANCHOR143 - adrp x0, .LC84 - add x2, x2, :lo12:.LANCHOR143 - mov w1, 100 - add x0, x0, :lo12:.LC84 + tbz x0, 12, .L1432 + adrp x2, .LANCHOR148 + adrp x0, .LC86 + add x2, x2, :lo12:.LANCHOR148 + mov w1, 105 + add x0, x0, :lo12:.LC86 bl printf -.L1392: +.L1432: adrp x19, .LANCHOR26 mov w2, 2048 mov w1, 0 @@ -8242,9 +8476,9 @@ flash_info_data_init: ldr x0, [x19, #:lo12:.LANCHOR26] mov w2, 32 ldr x19, [sp, 16] - adrp x1, .LANCHOR34 + adrp x1, .LANCHOR30 ldp x29, x30, [sp], 32 - add x1, x1, :lo12:.LANCHOR34 + add x1, x1, :lo12:.LANCHOR30 add x0, x0, 48 b ftl_memcpy .size flash_info_data_init, .-flash_info_data_init @@ -8254,15 +8488,15 @@ flash_info_data_init: .type ftl_memcpy32, %function ftl_memcpy32: mov x3, 0 -.L1398: +.L1438: cmp w2, w3 - bhi .L1399 + bhi .L1439 ret -.L1399: +.L1439: ldr w4, [x1, x3, lsl 2] str w4, [x0, x3, lsl 2] add x3, x3, 1 - b .L1398 + b .L1438 .size ftl_memcpy32, .-ftl_memcpy32 .section .text.ftl_memcmp,"ax",@progbits .align 2 @@ -8303,14 +8537,14 @@ nandc_init: mov x19, x0 ldr w0, [x21, #:lo12:.LANCHOR14] str wzr, [x29, 56] - tbz x0, 12, .L1404 - adrp x1, .LANCHOR144 - adrp x0, .LC85 + tbz x0, 12, .L1444 + adrp x1, .LANCHOR149 + adrp x0, .LC87 mov x2, x19 - add x1, x1, :lo12:.LANCHOR144 - add x0, x0, :lo12:.LC85 + add x1, x1, :lo12:.LANCHOR149 + add x0, x0, :lo12:.LC87 bl printf -.L1404: +.L1444: adrp x20, .LANCHOR27 mov w0, 6 ldr w2, [x19, 352] @@ -8321,22 +8555,22 @@ nandc_init: mov x22, x0 str x19, [x0, #:lo12:.LANCHOR13] cmp w2, w1 - bne .L1405 + bne .L1445 mov w0, 8 strb w0, [x20, #:lo12:.LANCHOR27] -.L1405: +.L1445: ldr w1, [x19, 128] mov w0, 12336 movk w0, 0x5639, lsl 16 cmp w1, w0 - bne .L1406 + bne .L1446 mov w0, 9 strb w0, [x20, #:lo12:.LANCHOR27] -.L1406: +.L1446: ldrb w0, [x20, #:lo12:.LANCHOR27] cmp w0, 9 adrp x0, .LANCHOR44 - bne .L1407 + bne .L1447 mov w1, 1 strb w1, [x0, #:lo12:.LANCHOR44] ldr w0, [x29, 56] @@ -8361,17 +8595,17 @@ nandc_init: mov w0, 39 str w0, [x19, 84] ldr w0, [x21, #:lo12:.LANCHOR14] - tbz x0, 12, .L1409 + tbz x0, 12, .L1449 ldr w1, [x19] ldr w2, [x19, 8] ldr w3, [x19, 80] ldr w4, [x19, 84] ldr w5, [x19, 88] -.L1422: - adrp x0, .LC86 - add x0, x0, :lo12:.LC86 +.L1462: + adrp x0, .LC88 + add x0, x0, :lo12:.LC88 bl printf -.L1409: +.L1449: adrp x0, .LANCHOR45 mov w1, 1 strb w1, [x0, #:lo12:.LANCHOR45] @@ -8380,17 +8614,17 @@ nandc_init: adrp x0, .LANCHOR43 strb wzr, [x0, #:lo12:.LANCHOR43] ldr w0, [x21, #:lo12:.LANCHOR14] - tbz x0, 12, .L1403 + tbz x0, 12, .L1443 ldrb w1, [x20, #:lo12:.LANCHOR27] - adrp x0, .LC87 - add x0, x0, :lo12:.LC87 + adrp x0, .LC89 + add x0, x0, :lo12:.LC89 bl printf -.L1403: +.L1443: ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x29, x30, [sp], 64 ret -.L1407: +.L1447: strb wzr, [x0, #:lo12:.LANCHOR44] mov w1, 1 ldr w0, [x29, 56] @@ -8418,14 +8652,14 @@ nandc_init: adrp x1, .LANCHOR46 str x0, [x1, #:lo12:.LANCHOR46] ldr w0, [x21, #:lo12:.LANCHOR14] - tbz x0, 12, .L1409 + tbz x0, 12, .L1449 ldr x0, [x22, #:lo12:.LANCHOR13] ldr w1, [x0] ldr w2, [x0, 344] ldr w3, [x0, 304] ldr w4, [x0, 308] ldr w5, [x0, 312] - b .L1422 + b .L1462 .size nandc_init, .-nandc_init .section .text.buf_init,"ax",@progbits .align 2 @@ -8433,16 +8667,16 @@ nandc_init: .type buf_init, %function buf_init: stp x29, x30, [sp, -48]! - adrp x0, .LANCHOR49 + adrp x0, .LANCHOR50 add x29, sp, 0 stp x19, x20, [sp, 16] - add x19, x0, :lo12:.LANCHOR49 + add x19, x0, :lo12:.LANCHOR50 stp x21, x22, [sp, 32] mov x20, x0 - adrp x22, .LANCHOR121 - add x22, x22, :lo12:.LANCHOR121 + adrp x22, .LANCHOR123 + add x22, x22, :lo12:.LANCHOR123 mov w21, 0 -.L1424: +.L1464: and w0, w21, 255 strb w0, [x19, 1] add w1, w0, 1 @@ -8460,15 +8694,15 @@ buf_init: bl ftl_malloc str x0, [x19, -40] cmp w21, 32 - bne .L1424 - add x0, x20, :lo12:.LANCHOR49 + bne .L1464 + add x0, x20, :lo12:.LANCHOR50 mov w1, -1 strb w1, [x0, 1984] - adrp x0, .LANCHOR50 - strb wzr, [x0, #:lo12:.LANCHOR50] adrp x0, .LANCHOR51 + strb wzr, [x0, #:lo12:.LANCHOR51] + adrp x0, .LANCHOR52 ldp x19, x20, [sp, 16] - strb w21, [x0, #:lo12:.LANCHOR51] + strb w21, [x0, #:lo12:.LANCHOR52] ldp x21, x22, [sp, 32] ldp x29, x30, [sp], 48 ret @@ -8479,91 +8713,91 @@ buf_init: .type gc_init, %function gc_init: stp x29, x30, [sp, -32]! - adrp x0, .LANCHOR71 + adrp x0, .LANCHOR74 mov w2, 328 mov w1, 0 add x29, sp, 0 - strb wzr, [x0, #:lo12:.LANCHOR71] - adrp x0, .LANCHOR145 + strb wzr, [x0, #:lo12:.LANCHOR74] + adrp x0, .LANCHOR150 stp x19, x20, [sp, 16] - adrp x20, .LANCHOR62 - strb wzr, [x0, #:lo12:.LANCHOR145] - adrp x0, .LANCHOR146 - add x19, x20, :lo12:.LANCHOR62 - str wzr, [x0, #:lo12:.LANCHOR146] - adrp x0, .LANCHOR82 - strh wzr, [x0, #:lo12:.LANCHOR82] + adrp x20, .LANCHOR63 + strb wzr, [x0, #:lo12:.LANCHOR150] + adrp x0, .LANCHOR151 + add x19, x20, :lo12:.LANCHOR63 + str wzr, [x0, #:lo12:.LANCHOR151] + adrp x0, .LANCHOR85 + strh wzr, [x0, #:lo12:.LANCHOR85] mov x0, x19 bl ftl_memset str xzr, [x19, 8] mov w0, -1 - strh w0, [x20, #:lo12:.LANCHOR62] - adrp x0, .LANCHOR80 - adrp x4, .LANCHOR89 - adrp x20, .LANCHOR72 - ldrh w1, [x0, #:lo12:.LANCHOR80] + strh w0, [x20, #:lo12:.LANCHOR63] + adrp x0, .LANCHOR83 + adrp x4, .LANCHOR92 + adrp x20, .LANCHOR75 + ldrh w1, [x0, #:lo12:.LANCHOR83] lsr w2, w1, 1 lsr w0, w1, 2 strh w2, [x19, 38] - adrp x2, .LANCHOR81 + adrp x2, .LANCHOR84 strh w0, [x19, 36] - adrp x19, .LANCHOR73 + adrp x19, .LANCHOR76 + strh wzr, [x2, #:lo12:.LANCHOR84] + adrp x2, .LANCHOR80 + ldrb w3, [x19, #:lo12:.LANCHOR76] + strh wzr, [x2, #:lo12:.LANCHOR80] + adrp x2, .LANCHOR81 strh wzr, [x2, #:lo12:.LANCHOR81] - adrp x2, .LANCHOR77 - ldrb w3, [x19, #:lo12:.LANCHOR73] - strh wzr, [x2, #:lo12:.LANCHOR77] - adrp x2, .LANCHOR78 - strh wzr, [x2, #:lo12:.LANCHOR78] mul w2, w1, w3 and w2, w2, 65535 sub w5, w2, #32 - strh w5, [x4, #:lo12:.LANCHOR89] - adrp x4, .LANCHOR86 - strh w2, [x4, #:lo12:.LANCHOR86] - adrp x2, .LANCHOR79 - strh w1, [x2, #:lo12:.LANCHOR79] - adrp x1, .LANCHOR61 - strh w0, [x1, #:lo12:.LANCHOR61] - ldrh w0, [x20, #:lo12:.LANCHOR72] + strh w5, [x4, #:lo12:.LANCHOR92] + adrp x4, .LANCHOR89 + strh w2, [x4, #:lo12:.LANCHOR89] + adrp x2, .LANCHOR82 + strh w1, [x2, #:lo12:.LANCHOR82] + adrp x1, .LANCHOR62 + strh w0, [x1, #:lo12:.LANCHOR62] + ldrh w0, [x20, #:lo12:.LANCHOR75] mul w0, w0, w3 lsl w0, w0, 2 bl ftl_malloc - adrp x1, .LANCHOR147 - str x0, [x1, #:lo12:.LANCHOR147] - ldrb w1, [x19, #:lo12:.LANCHOR73] - ldrh w0, [x20, #:lo12:.LANCHOR72] + adrp x1, .LANCHOR152 + str x0, [x1, #:lo12:.LANCHOR152] + ldrb w1, [x19, #:lo12:.LANCHOR76] + ldrh w0, [x20, #:lo12:.LANCHOR75] mul w0, w0, w1 lsl w0, w0, 2 bl ftl_malloc - adrp x1, .LANCHOR148 - str x0, [x1, #:lo12:.LANCHOR148] - ldrh w1, [x20, #:lo12:.LANCHOR72] - ldrb w0, [x19, #:lo12:.LANCHOR73] + adrp x1, .LANCHOR153 + str x0, [x1, #:lo12:.LANCHOR153] + ldrh w1, [x20, #:lo12:.LANCHOR75] + ldrb w0, [x19, #:lo12:.LANCHOR76] mul w0, w1, w0 bl ftl_malloc - adrp x1, .LANCHOR69 - str x0, [x1, #:lo12:.LANCHOR69] - ldrb w1, [x19, #:lo12:.LANCHOR73] - ldrh w0, [x20, #:lo12:.LANCHOR72] + adrp x1, .LANCHOR72 + str x0, [x1, #:lo12:.LANCHOR72] + ldrb w1, [x19, #:lo12:.LANCHOR76] + ldrh w0, [x20, #:lo12:.LANCHOR75] mul w0, w0, w1 lsl w0, w0, 2 bl ftl_malloc - adrp x1, .LANCHOR65 - str x0, [x1, #:lo12:.LANCHOR65] - ldrb w1, [x19, #:lo12:.LANCHOR73] - ldrh w0, [x20, #:lo12:.LANCHOR72] + adrp x1, .LANCHOR66 + str x0, [x1, #:lo12:.LANCHOR66] + ldrb w1, [x19, #:lo12:.LANCHOR76] + ldrh w0, [x20, #:lo12:.LANCHOR75] mul w0, w0, w1 lsl w0, w0, 2 bl ftl_malloc - adrp x1, .LANCHOR149 + adrp x1, .LANCHOR154 ldp x19, x20, [sp, 16] - str x0, [x1, #:lo12:.LANCHOR149] - adrp x0, .LANCHOR84 - adrp x1, .LANCHOR74 + str x0, [x1, #:lo12:.LANCHOR154] + adrp x0, .LANCHOR87 + adrp x1, .LANCHOR77 ldp x29, x30, [sp], 32 - ldrh w0, [x0, #:lo12:.LANCHOR84] + ldrh w0, [x0, #:lo12:.LANCHOR87] lsr w0, w0, 2 - strh w0, [x1, #:lo12:.LANCHOR74] + strh w0, [x1, #:lo12:.LANCHOR77] ret .size gc_init, .-gc_init .section .text.ftl_free,"ax",@progbits @@ -8582,18 +8816,18 @@ js_hash: mov w0, 42982 mov x3, 0 movk w0, 0x47c6, lsl 16 -.L1431: +.L1471: cmp w1, w3 - bhi .L1432 + bhi .L1472 ret -.L1432: +.L1472: lsr w2, w0, 2 ldrb w5, [x4, x3] add w2, w2, w0, lsl 5 add x3, x3, 1 add w2, w2, w5 eor w0, w0, w2 - b .L1431 + b .L1471 .size js_hash, .-js_hash .section .text.timer_get_time,"ax",@progbits .align 2 @@ -8630,8 +8864,8 @@ ftl_get_density: .global ftl_get_capacity .type ftl_get_capacity, %function ftl_get_capacity: - adrp x0, .LANCHOR58 - ldr w0, [x0, #:lo12:.LANCHOR58] + adrp x0, .LANCHOR59 + ldr w0, [x0, #:lo12:.LANCHOR59] ret .size ftl_get_capacity, .-ftl_get_capacity .section .text.rknand_print_hex,"ax",@progbits @@ -8642,592 +8876,634 @@ rknand_print_hex: stp x29, x30, [sp, -96]! add x29, sp, 0 stp x21, x22, [sp, 32] - adrp x21, .LC89 + adrp x21, .LC91 stp x23, x24, [sp, 48] mov x22, x1 stp x25, x26, [sp, 64] - adrp x23, .LC88 + adrp x23, .LC90 mov x26, x0 mov w24, w2 uxtw x25, w3 - add x23, x23, :lo12:.LC88 - add x21, x21, :lo12:.LC89 + add x23, x23, :lo12:.LC90 + add x21, x21, :lo12:.LC91 stp x19, x20, [sp, 16] str x27, [sp, 80] mov x19, 0 mov w20, 0 - adrp x27, .LC90 -.L1439: + adrp x27, .LC92 +.L1479: cmp x25, x19 - bne .L1445 + bne .L1485 ldp x19, x20, [sp, 16] - adrp x1, .LC90 + adrp x1, .LC92 ldp x21, x22, [sp, 32] - add x1, x1, :lo12:.LC90 + add x1, x1, :lo12:.LC92 ldp x23, x24, [sp, 48] - adrp x0, .LC91 + adrp x0, .LC93 ldp x25, x26, [sp, 64] - add x0, x0, :lo12:.LC91 + add x0, x0, :lo12:.LC93 ldr x27, [sp, 80] ldp x29, x30, [sp], 96 b printf -.L1445: - cbnz w20, .L1440 +.L1485: + cbnz w20, .L1480 mov w2, w19 mov x1, x26 mov x0, x23 bl printf -.L1440: +.L1480: cmp w24, 4 - bne .L1441 + bne .L1481 ldr w1, [x22, x19, lsl 2] -.L1447: +.L1487: mov x0, x21 add w20, w20, 1 bl printf cmp w20, 15 - bls .L1444 + bls .L1484 mov w20, 0 - add x1, x27, :lo12:.LC90 - adrp x0, .LC91 - add x0, x0, :lo12:.LC91 + add x1, x27, :lo12:.LC92 + adrp x0, .LC93 + add x0, x0, :lo12:.LC93 bl printf -.L1444: +.L1484: add x19, x19, 1 - b .L1439 -.L1441: + b .L1479 +.L1481: cmp w24, 2 - bne .L1443 + bne .L1483 ldrsh w1, [x22, x19, lsl 1] - b .L1447 -.L1443: + b .L1487 +.L1483: ldrb w1, [x22, x19] - b .L1447 + b .L1487 .size rknand_print_hex, .-rknand_print_hex .section .text.hynix_get_read_retry_default,"ax",@progbits .align 2 .global hynix_get_read_retry_default .type hynix_get_read_retry_default, %function hynix_get_read_retry_default: - stp x29, x30, [sp, -144]! - mov w2, -83 - mov w1, -82 - add x29, sp, 0 - stp x27, x28, [sp, 80] - stp x21, x22, [sp, 32] - str w0, [x29, 140] + stp x29, x30, [sp, -96]! + mov w8, w0 adrp x0, .LANCHOR26 - stp x19, x20, [sp, 16] - ldr x28, [x0, #:lo12:.LANCHOR26] - stp x23, x24, [sp, 48] - add x0, x28, 112 - str x0, [x29, 112] - ldrb w0, [x29, 140] - add x22, x28, 128 - stp x25, x26, [sp, 64] - strb w0, [x28, 112] + mov w2, -83 + add x29, sp, 0 + ldr x7, [x0, #:lo12:.LANCHOR26] mov w0, -84 - ldr w3, [x29, 140] - strb w0, [x28, 128] + stp x19, x20, [sp, 16] + mov w1, -82 + stp x21, x22, [sp, 32] + add x6, x7, 128 + stp x23, x24, [sp, 48] + add x12, x7, 112 + stp x25, x26, [sp, 64] + cmp w8, 2 + str x27, [sp, 80] + strb w0, [x7, 128] mov w0, -81 - strb w2, [x28, 129] - cmp w3, 2 - strb w1, [x28, 130] - strb w0, [x28, 131] - bne .L1449 + strb w8, [x7, 112] + strb w2, [x7, 129] + strb w1, [x7, 130] + strb w0, [x7, 131] + bne .L1489 mov w0, -89 - strb w0, [x28, 128] - adrp x0, .LANCHOR150+17 + strb w0, [x12, 16] + adrp x0, .LANCHOR155+17 mov w1, -9 - strb w1, [x0, #:lo12:.LANCHOR150+17] -.L1504: - mov w0, 7 - b .L1539 -.L1449: - ldr w3, [x29, 140] - cmp w3, 3 - bne .L1451 - mov x7, 0 -.L1452: - sub w0, w7, #80 - strb w0, [x22, x7] - add x7, x7, 1 - cmp x7, 8 - bne .L1452 - stp w7, w7, [x29, 132] -.L1450: - ldr w0, [x29, 140] - sub w0, w0, #1 + strb w1, [x0, #:lo12:.LANCHOR155+17] +.L1553: + mov w23, 7 + b .L1596 +.L1489: + cmp w8, 3 + bne .L1491 + mov x10, 0 +.L1492: + sub w0, w10, #80 + strb w0, [x6, x10] + add x10, x10, 1 + cmp x10, 8 + bne .L1492 + mov w23, w10 +.L1490: + sub w0, w8, #1 cmp w0, 1 - bhi .L1457 - adrp x6, .LANCHOR18 + bhi .L1498 + adrp x7, .LANCHOR18 adrp x8, .LANCHOR29 - add x24, x6, :lo12:.LANCHOR18 - add x25, x8, :lo12:.LANCHOR29 - mov w20, 0 - mov w26, 55 -.L1458: - ldrb w0, [x24] - cmp w0, w20 - bhi .L1464 -.L1465: - ldr x0, [x29, 112] - ldrb w1, [x29, 136] - strb w1, [x0, 1] - ldrb w1, [x29, 132] - strb w1, [x0, 2] + add x7, x7, :lo12:.LANCHOR18 + add x8, x8, :lo12:.LANCHOR29 + mov w5, 0 + mov w11, 55 +.L1499: + ldrb w0, [x7] + cmp w0, w5 + bhi .L1505 +.L1506: + strb w10, [x12, 1] + strb w23, [x12, 2] 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 + ldr x27, [sp, 80] + ldp x29, x30, [sp], 96 ret -.L1451: - ldr w3, [x29, 140] - cmp w3, 4 - bne .L1453 +.L1491: + cmp w8, 4 + bne .L1493 mov w3, -52 - strb w3, [x28, 128] + strb w3, [x7, 128] mov w3, -65 - strb w3, [x28, 129] + strb w3, [x7, 129] mov w3, -86 - strb w3, [x28, 130] + strb w3, [x7, 130] mov w3, -85 - strb w0, [x28, 135] - strb w3, [x28, 131] - mov w0, 8 + mov w23, 8 + strb w3, [x7, 131] + mov w10, w23 mov w3, -51 - strb w2, [x28, 133] - strb w3, [x28, 132] - strb w1, [x28, 134] - str w0, [x29, 132] -.L1540: - str w0, [x29, 136] - b .L1450 -.L1453: - ldr w0, [x29, 140] - cmp w0, 5 - bne .L1454 + strb w2, [x7, 133] + strb w3, [x7, 132] + strb w1, [x7, 134] + strb w0, [x7, 135] + b .L1490 +.L1493: + cmp w8, 5 + bne .L1494 mov w0, 56 - strb w0, [x28, 128] + strb w0, [x7, 128] mov w0, 57 - strb w0, [x28, 129] + strb w0, [x7, 129] mov w0, 58 - strb w0, [x28, 130] + mov w23, 8 + strb w0, [x7, 130] mov w0, 59 - strb w0, [x28, 131] - mov w0, 8 -.L1539: - str w0, [x29, 132] - mov w0, 4 - b .L1540 -.L1454: - ldr w0, [x29, 140] - cmp w0, 6 - bne .L1455 + strb w0, [x7, 131] +.L1596: + mov w10, 4 + b .L1490 +.L1494: + cmp w8, 6 + bne .L1495 mov w0, 14 - strb w0, [x28, 128] + strb w0, [x7, 128] mov w0, 15 - strb w0, [x28, 129] + strb w0, [x7, 129] mov w0, 16 - strb w0, [x28, 130] + mov w23, 12 + strb w0, [x7, 130] mov w0, 17 - strb w0, [x28, 131] - mov w0, 12 - b .L1539 -.L1455: - ldr w0, [x29, 140] - cmp w0, 7 - bne .L1504 + strb w0, [x7, 131] + b .L1596 +.L1495: + cmp w8, 7 + bne .L1496 mov x0, 0 -.L1456: +.L1497: sub w1, w0, #80 - strb w1, [x22, x0] + strb w1, [x6, x0] add x0, x0, 1 cmp x0, 8 - bne .L1456 + bne .L1497 mov w0, -44 - strb w0, [x28, 136] + mov w23, 12 + strb w0, [x7, 136] + mov w10, 10 mov w0, -43 - strb w0, [x28, 137] - mov w0, 12 - str w0, [x29, 132] + strb w0, [x7, 137] + b .L1490 +.L1496: + cmp w8, 8 + bne .L1553 + mov w0, 6 + strb w0, [x7, 128] + mov w0, 7 + strb w0, [x7, 129] + mov w0, 9 + strb w8, [x7, 130] + strb w0, [x7, 131] + mov w23, 50 mov w0, 10 - b .L1540 -.L1464: - ldrb w0, [x25, w20, sxtw] + mov w10, 5 + strb w0, [x7, 132] + b .L1490 +.L1505: + ldrb w0, [x8, w5, sxtw] mov x1, 32 mov w2, 160 - mov x21, 0 + mov x3, 0 umaddl x2, w2, w0, x1 - ldr x1, [x29, 112] - ubfiz x0, x0, 8, 8 - add x19, x1, x2 adrp x1, .LANCHOR13 + ubfiz x0, x0, 8, 8 ldr x4, [x1, #:lo12:.LANCHOR13] - add x23, x4, x0 -.L1459: - str w26, [x23, 2056] - ldrb w0, [x22, x21] - str w0, [x23, 2052] + add x2, x12, x2 + add x4, x4, x0 +.L1500: + str w11, [x4, 2056] + ldrb w0, [x6, x3] + str w0, [x4, 2052] mov w0, 80 bl timer_delay_ns - ldr w0, [x23, 2048] - strb w0, [x19, x21] - add x21, x21, 1 - ldr w0, [x29, 136] - cmp w0, w21, uxtb - bhi .L1459 - adrp x3, .LANCHOR150 - add x3, x3, :lo12:.LANCHOR150 + ldr w0, [x4, 2048] + strb w0, [x2, x3] + add x3, x3, 1 + cmp w10, w3, uxtb + bhi .L1500 + adrp x3, .LANCHOR155 + add x3, x3, :lo12:.LANCHOR155 mov x0, 0 -.L1462: - add x15, x19, x0 - add x14, x3, x0 +.L1503: + add x14, x2, x0 + add x13, x3, x0 mov x1, 1 -.L1461: +.L1502: lsl x4, x1, 2 - lsl x16, x1, 3 - ldrb w17, [x19, x0] + lsl x15, x1, 3 + ldrb w16, [x2, x0] add x1, x1, 1 cmp x1, 7 - ldrb w4, [x14, x4] - add w4, w4, w17 - strb w4, [x15, x16] - bne .L1461 + ldrb w4, [x13, x4] + add w4, w4, w16 + strb w4, [x14, x15] + bne .L1502 add x0, x0, 1 cmp x0, 4 - bne .L1462 - add w5, w20, 1 - strb wzr, [x19, 16] - strb wzr, [x19, 24] - and w20, w5, 255 - strb wzr, [x19, 32] - strb wzr, [x19, 40] - strb wzr, [x19, 48] - strb wzr, [x19, 41] - strb wzr, [x19, 49] - b .L1458 -.L1457: - ldr w0, [x29, 140] - sub w0, w0, #3 - cmp w0, 4 - bhi .L1465 - ldp w0, w1, [x29, 132] - adrp x19, .LANCHOR18 - add x19, x19, :lo12:.LANCHOR18 - sub w13, w1, #1 - mul w15, w0, w1 + bne .L1503 + add w5, w5, 1 + strb wzr, [x2, 16] + strb wzr, [x2, 24] + and w5, w5, 255 + strb wzr, [x2, 32] + strb wzr, [x2, 40] + strb wzr, [x2, 48] + strb wzr, [x2, 41] + strb wzr, [x2, 49] + b .L1499 +.L1498: + sub w0, w8, #3 + cmp w0, 5 + bhi .L1506 + mul w15, w23, w10 + sub w13, w10, #1 and x13, x13, 255 - asr w0, w15, 2 - stp w0, wzr, [x29, 124] - lsl w0, w15, 4 - str w0, [x29, 120] - ldr w0, [x29, 124] - lsl w22, w0, 1 - sbfiz x21, x0, 2, 32 - ldr w0, [x29, 140] - sub w20, w0, #5 - add x0, x13, 1 - str x0, [x29, 96] -.L1466: + adrp x19, .LANCHOR18 + sub w20, w8, #5 + add x19, x19, :lo12:.LANCHOR18 + asr w14, w15, 1 + add x13, x13, 1 + lsl w15, w15, 4 + lsl w22, w14, 1 + sbfiz x21, x14, 1, 32 + mov w11, 0 +.L1507: ldrb w0, [x19] - ldr w1, [x29, 128] - cmp w0, w1 - bls .L1465 - ldr w1, [x29, 128] + cmp w0, w11 + bls .L1506 adrp x0, .LANCHOR29 add x0, x0, :lo12:.LANCHOR29 - ldrb w23, [x0, w1, sxtw] - mov w0, w23 + ldrb w24, [x0, w11, sxtw] + mov w0, w24 bl zftl_flash_exit_slc_mode - mov x0, 32 - mov w5, 160 - umaddl x5, w5, w23, x0 - ldr x0, [x29, 112] - ubfiz x23, x23, 8, 8 - add x0, x0, x5 - str x0, [x29, 104] adrp x0, .LANCHOR13 + mov x5, 32 + mov w1, 160 + mov w6, 255 ldr x4, [x0, #:lo12:.LANCHOR13] - add x27, x4, x23 - mov w23, 255 - str w23, [x27, 2056] + nop // between mem op and mult-accumulate + umaddl x1, w1, w24, x5 + ubfiz x24, x24, 8, 8 + add x4, x4, x24 + add x5, x12, x1 + str w6, [x4, 2056] bl nandc_wait_flash_ready - mov w0, 54 - str w0, [x27, 2056] - ldr w0, [x29, 140] - cmp w0, 4 - bne .L1467 - mov w0, 64 - str w23, [x27, 2052] - str w0, [x27, 2048] - mov w0, 204 -.L1541: - str w0, [x27, 2052] - mov w0, 77 - b .L1542 -.L1467: - cmp w20, 1 - bhi .L1469 - ldrb w0, [x28, 128] - str w0, [x27, 2052] - mov w0, 82 -.L1542: - str w0, [x27, 2048] - mov w0, 22 - str w0, [x27, 2056] + cmp w8, 8 + bne .L1508 + mov w0, 120 + str w0, [x4, 2056] + str wzr, [x4, 2052] mov w0, 23 - str w0, [x27, 2056] + str wzr, [x4, 2052] + mov w1, 25 + str wzr, [x4, 2052] + add x5, x7, 144 + str w0, [x4, 2056] mov w0, 4 - str w0, [x27, 2056] - mov w0, 25 - str w0, [x27, 2056] - str wzr, [x27, 2056] - str wzr, [x27, 2052] - ldr w0, [x29, 140] - str wzr, [x27, 2052] - cmp w0, 6 - bne .L1470 - mov w0, 31 - str w0, [x27, 2052] -.L1471: - mov w23, 2 - str w23, [x27, 2052] - str wzr, [x27, 2052] + str w0, [x4, 2056] + str w1, [x4, 2056] + mov w1, 218 + str w1, [x4, 2056] + mov w1, 21 + str wzr, [x4, 2056] + str wzr, [x4, 2052] + str wzr, [x4, 2052] + str w1, [x4, 2052] +.L1599: + str w0, [x4, 2052] mov w0, 48 - str w0, [x27, 2056] + str wzr, [x4, 2052] + str w0, [x4, 2056] bl nandc_wait_flash_ready cmp w20, 1 - bls .L1505 - ldr w0, [x29, 140] - cmp w0, 7 + ccmp w8, 8, 4, hi + beq .L1554 + cmp w8, 7 mov w0, 32 - csel w23, w23, w0, ne -.L1472: - adrp x3, .LANCHOR151 - mov x1, 0 - ldr x0, [x3, #:lo12:.LANCHOR151] -.L1473: - ldr w2, [x27, 2048] - strb w2, [x0, x1] - add x1, x1, 1 - cmp w23, w1, uxtb - bhi .L1473 - ldr w1, [x29, 140] - cmp w1, 7 - bne .L1474 + mov w1, 2 + csel w1, w1, w0, ne +.L1515: + adrp x6, .LANCHOR156 + mov x2, 0 + ldr x0, [x6, #:lo12:.LANCHOR156] +.L1516: + ldr w3, [x4, 2048] + strb w3, [x0, x2] + add x2, x2, 1 + cmp w1, w2, uxtb + bhi .L1516 + cmp w8, 8 + bne .L1517 mov w1, 0 -.L1476: +.L1519: ldrb w2, [x0] - cmp w2, 12 - beq .L1475 + cmp w2, 50 + beq .L1518 ldrb w2, [x0, 1] - cmp w2, 10 - beq .L1475 + cmp w2, 5 + beq .L1518 add w1, w1, 1 add x0, x0, 4 and w1, w1, 255 cmp w1, 8 - bne .L1476 -.L1477: - adrp x0, .LC92 + bne .L1519 +.L1520: + adrp x0, .LC94 mov w1, 0 - add x0, x0, :lo12:.LC92 + add x0, x0, :lo12:.LC94 bl printf -.L1479: - b .L1479 -.L1469: +.L1522: + b .L1522 +.L1508: + mov w0, 54 + str w0, [x4, 2056] + cmp w8, 4 + bne .L1510 + mov w0, 64 + str w6, [x4, 2052] + str w0, [x4, 2048] + mov w0, 204 +.L1597: + str w0, [x4, 2052] + mov w0, 77 + b .L1598 +.L1510: + cmp w20, 1 + bhi .L1512 + ldrb w0, [x7, 128] + str w0, [x4, 2052] + mov w0, 82 +.L1598: + str w0, [x4, 2048] +.L1511: + mov w0, 22 + str w0, [x4, 2056] + mov w0, 23 + str w0, [x4, 2056] + mov w0, 4 + str w0, [x4, 2056] + mov w0, 25 + str w0, [x4, 2056] + str wzr, [x4, 2056] + cmp w8, 6 + str wzr, [x4, 2052] + str wzr, [x4, 2052] + bne .L1513 + mov w0, 31 + str w0, [x4, 2052] +.L1514: + mov w0, 2 + b .L1599 +.L1512: + cmp w8, 7 + bne .L1511 mov w0, 174 - str w0, [x27, 2052] - str wzr, [x27, 2048] + str w0, [x4, 2052] + str wzr, [x4, 2048] mov w0, 176 - b .L1541 -.L1470: - str wzr, [x27, 2052] - b .L1471 -.L1505: - mov w23, 16 - b .L1472 -.L1475: + b .L1597 +.L1513: + str wzr, [x4, 2052] + b .L1514 +.L1554: + mov w1, 16 + b .L1515 +.L1518: cmp w1, 6 - bhi .L1477 -.L1478: - ldr x2, [x3, #:lo12:.LANCHOR151] + bhi .L1520 +.L1521: + ldr x3, [x6, #:lo12:.LANCHOR156] mov x0, 0 -.L1483: - ldr w1, [x29, 120] - cmp w1, w0 - bgt .L1484 - ldr x1, [x3, #:lo12:.LANCHOR151] - mov w16, 8 - add x3, x1, x21 -.L1486: +.L1531: + cmp w15, w0 + bgt .L1532 + ldr x1, [x6, #:lo12:.LANCHOR156] + mov w6, 8 + add x2, x1, x21 +.L1534: mov x0, 0 -.L1485: - ldr w17, [x3, x0, lsl 2] - ldr w4, [x29, 124] - mvn w17, w17 - str w17, [x3, x0, lsl 2] +.L1533: + ldrh w16, [x2, x0, lsl 1] + mvn w16, w16 + strh w16, [x2, x0, lsl 1] add x0, x0, 1 - cmp w4, w0 - bgt .L1485 - add x3, x3, x22, uxtw 2 - subs w16, w16, #1 - bne .L1486 - mov x17, x1 - mov w23, 0 + cmp w14, w0 + bgt .L1533 + add x2, x2, x22, uxtw 1 + subs w6, w6, #1 + bne .L1534 + mov x6, x1 + mov w16, 0 mov w26, 1 -.L1487: - mov w3, 0 +.L1535: mov w0, 0 -.L1491: - mov x25, x17 - lsl w16, w26, w0 + mov w2, 0 +.L1539: + mov x30, x6 + lsl w25, w26, w2 mov w24, 16 - mov w30, 0 -.L1489: - ldr w4, [x25] - add x25, x25, x21 - bics wzr, w16, w4 - cinc w30, w30, eq + mov w17, 0 +.L1537: + ldrh w27, [x30] + add x30, x30, x21 + bics wzr, w25, w27 + cinc w17, w17, eq subs w24, w24, #1 - bne .L1489 - cmp w30, 9 - orr w16, w3, w16 - add w0, w0, 1 - csel w3, w16, w3, cs - cmp w0, 32 - bne .L1491 - ldr w0, [x29, 124] - add w23, w23, 1 - str w3, [x17], 4 - cmp w0, w23 - bgt .L1487 + bne .L1537 + cmp w17, 8 + bls .L1538 + orr w0, w0, w25 + and w0, w0, 65535 +.L1538: + add w2, w2, 1 + cmp w2, 16 + bne .L1539 + strh w0, [x6], 2 + add w16, w16, 1 + cmp w14, w16 + bgt .L1535 mov x0, 0 - mov w3, 0 -.L1494: - ldr w16, [x1, x0] + mov w2, 0 +.L1542: + ldr w6, [x1, x0] add x0, x0, 4 - cmp w16, 0 - cinc w3, w3, eq + cmp w6, 0 + cinc w2, w2, eq cmp x0, 32 - bne .L1494 - cmp w3, 7 - ble .L1495 + bne .L1542 + cmp w2, 7 + ble .L1543 mov w3, 1024 mov w2, 1 - adrp x0, .LC93 - add x0, x0, :lo12:.LC93 + adrp x0, .LC95 + add x0, x0, :lo12:.LC95 bl rknand_print_hex - adrp x0, .LC92 + adrp x0, .LC94 mov w1, 0 - add x0, x0, :lo12:.LC92 + add x0, x0, :lo12:.LC94 bl printf -.L1496: - b .L1496 -.L1474: - ldr w1, [x29, 140] +.L1544: + b .L1544 +.L1517: + cmp w8, 7 + bne .L1523 + mov w1, 0 +.L1525: + ldrb w2, [x0] + cmp w2, 12 + beq .L1524 + ldrb w2, [x0, 1] + cmp w2, 10 + beq .L1524 + add w1, w1, 1 + add x0, x0, 4 + and w1, w1, 255 + cmp w1, 8 + bne .L1525 +.L1526: + adrp x0, .LC94 + mov w1, 0 + add x0, x0, :lo12:.LC94 + bl printf +.L1527: + b .L1527 +.L1524: cmp w1, 6 - bne .L1478 + bls .L1521 + b .L1526 +.L1523: + cmp w8, 6 + bne .L1521 mov x1, 0 -.L1480: +.L1528: ldrb w2, [x0, x1] cmp w2, 12 - beq .L1478 + beq .L1521 add x2, x0, x1 ldrb w2, [x2, 8] cmp w2, 4 - beq .L1478 + beq .L1521 add x1, x1, 1 cmp x1, 8 - bne .L1480 - adrp x0, .LC92 + bne .L1528 + adrp x0, .LC94 mov w1, 0 - add x0, x0, :lo12:.LC92 + add x0, x0, :lo12:.LC94 bl printf -.L1482: - b .L1482 -.L1484: - ldr w1, [x27, 2048] - strb w1, [x2, x0] +.L1530: + b .L1530 +.L1532: + ldr w1, [x4, 2048] + strb w1, [x3, x0] add x0, x0, 1 - b .L1483 -.L1495: - ldr w0, [x29, 140] - cmp w0, 6 - beq .L1507 - cmp w0, 7 - mov x1, 10 + b .L1531 +.L1543: + cmp w8, 6 + beq .L1556 + cmp w8, 7 + beq .L1557 + cmp w8, 8 + mov x1, 5 mov x0, 8 csel x0, x0, x1, ne -.L1497: - ldr x5, [x29, 104] - mov w3, 0 -.L1498: - mov x1, 0 -.L1499: - ldrb w16, [x2, x1] - ldr w4, [x29, 136] - strb w16, [x5, x1] - add x1, x1, 1 - cmp w4, w1, uxtb - bhi .L1499 - ldr x1, [x29, 96] - add w3, w3, 1 - add x5, x5, x0 - add x2, x2, x1 - ldr w1, [x29, 132] - cmp w1, w3 - bgt .L1498 - mov w23, 255 - str w23, [x27, 2056] +.L1545: + mov x1, x5 + mov w5, 0 +.L1546: + mov x2, 0 +.L1547: + ldrb w6, [x3, x2] + strb w6, [x1, x2] + add x2, x2, 1 + cmp w10, w2, uxtb + bhi .L1547 + add w5, w5, 1 + add x3, x3, x13 + add x1, x1, x0 + cmp w23, w5 + bgt .L1546 + mov w5, 255 + str w5, [x4, 2056] bl nandc_wait_flash_ready cmp w20, 1 - bhi .L1501 + bhi .L1549 mov w0, 54 - str w0, [x27, 2056] - ldrb w0, [x28, 128] - str w0, [x27, 2052] - str wzr, [x27, 2048] + str w0, [x4, 2056] + ldrb w0, [x7, 128] + str w0, [x4, 2052] + str wzr, [x4, 2048] mov w0, 22 - str w0, [x27, 2056] + str w0, [x4, 2056] mov w0, 48 - str wzr, [x27, 2056] - str wzr, [x27, 2052] - str wzr, [x27, 2052] - str w23, [x27, 2052] - str w23, [x27, 2052] - str w23, [x27, 2052] -.L1543: - str w0, [x27, 2056] + str wzr, [x4, 2056] + str wzr, [x4, 2052] + str wzr, [x4, 2052] + str w5, [x4, 2052] + str w5, [x4, 2052] + str w5, [x4, 2052] +.L1600: + str w0, [x4, 2056] bl nandc_wait_flash_ready - ldr w0, [x29, 128] - add w11, w0, 1 - and w0, w11, 255 - str w0, [x29, 128] - b .L1466 -.L1507: + add w11, w11, 1 + and w11, w11, 255 + b .L1507 +.L1556: mov x0, 4 - b .L1497 -.L1501: + b .L1545 +.L1557: + mov x0, 10 + b .L1545 +.L1549: + cmp w8, 8 + bne .L1551 + mov w0, 190 + b .L1600 +.L1551: mov w0, 56 - b .L1543 + b .L1600 .size hynix_get_read_retry_default, .-hynix_get_read_retry_default .section .text.flash_get_read_retry_tbl,"ax",@progbits .align 2 .global flash_get_read_retry_tbl .type flash_get_read_retry_tbl, %function flash_get_read_retry_tbl: - adrp x0, .LANCHOR34+19 - ldrb w0, [x0, #:lo12:.LANCHOR34+19] + adrp x0, .LANCHOR30+19 + ldrb w0, [x0, #:lo12:.LANCHOR30+19] sub w1, w0, #1 and w1, w1, 255 - cmp w1, 6 - bhi .L1544 + cmp w1, 7 + bhi .L1601 b hynix_get_read_retry_default -.L1544: +.L1601: ret .size flash_get_read_retry_tbl, .-flash_get_read_retry_tbl .section .text.nandc_xfer_done,"ax",@progbits @@ -9236,7 +9512,7 @@ flash_get_read_retry_tbl: .type nandc_xfer_done, %function nandc_xfer_done: stp x29, x30, [sp, -80]! - adrp x0, .LANCHOR152 + adrp x0, .LANCHOR157 adrp x1, .LANCHOR27 add x29, sp, 0 stp x19, x20, [sp, 16] @@ -9245,28 +9521,28 @@ nandc_xfer_done: stp x21, x22, [sp, 32] stp x23, x24, [sp, 48] cmp w1, 9 - strb wzr, [x0, #:lo12:.LANCHOR152] - bne .L1547 + strb wzr, [x0, #:lo12:.LANCHOR157] + bne .L1604 ldr x20, [x19, #:lo12:.LANCHOR13] mov x24, x0 mov w21, 0 ldr w0, [x20, 16] str w0, [x29, 64] ldr w0, [x20, 48] - tbnz x0, 1, .L1548 - adrp x22, .LC97 - adrp x23, .LC96 - add x22, x22, :lo12:.LC97 - add x23, x23, :lo12:.LC96 -.L1549: + tbnz x0, 1, .L1605 + adrp x22, .LC99 + adrp x23, .LC98 + add x22, x22, :lo12:.LC99 + add x23, x23, :lo12:.LC98 +.L1606: ldr w0, [x29, 64] - tbnz x0, 20, .L1552 + tbnz x0, 20, .L1609 ldr x0, [x19, #:lo12:.LANCHOR13] add w21, w21, 1 tst x21, 16777215 ldr w0, [x0, 16] str w0, [x29, 64] - bne .L1549 + bne .L1606 ldr w2, [x29, 64] mov w1, w21 ldr w3, [x20, 64] @@ -9278,39 +9554,39 @@ nandc_xfer_done: mov w2, 4 mov x0, x23 bl rknand_print_hex - b .L1549 -.L1548: - adrp x22, .LC95 - adrp x23, .LC96 - add x22, x22, :lo12:.LC95 - add x23, x23, :lo12:.LC96 -.L1550: + b .L1606 +.L1605: + adrp x22, .LC97 + adrp x23, .LC98 + add x22, x22, :lo12:.LC97 + add x23, x23, :lo12:.LC98 +.L1607: ldr w1, [x20, 64] ldr w0, [x29, 64] ubfx x1, x1, 16, 6 ubfx x0, x0, 22, 6 cmp w1, w0 - bge .L1552 + bge .L1609 ldr x0, [x19, #:lo12:.LANCHOR13] ldr w0, [x0] str w0, [x29, 72] ldr w0, [x29, 72] - tbz x0, 13, .L1551 + tbz x0, 13, .L1608 ldr w0, [x29, 72] - tbz x0, 17, .L1551 + tbz x0, 17, .L1608 ldr w1, [x29, 72] - adrp x0, .LC94 - add x0, x0, :lo12:.LC94 + adrp x0, .LC96 + add x0, x0, :lo12:.LC96 ubfx x1, x1, 17, 1 -.L1584: +.L1641: bl printf - b .L1552 -.L1551: + b .L1609 +.L1608: ldr w0, [x29, 64] add w21, w21, 1 ubfx x0, x0, 22, 6 cmp w21, w0, lsl 12 - bne .L1550 + bne .L1607 ldr w2, [x20, 64] mov w1, w21 ldr w3, [x29, 64] @@ -9324,10 +9600,10 @@ nandc_xfer_done: mov w2, 4 bl rknand_print_hex ldr w0, [x29, 72] - tbz x0, 13, .L1550 + tbz x0, 13, .L1607 mov w0, 1 - strb w0, [x24, #:lo12:.LANCHOR152] -.L1552: + strb w0, [x24, #:lo12:.LANCHOR157] +.L1609: adrp x0, .LANCHOR46+32 ldp x19, x20, [sp, 16] str wzr, [x0, #:lo12:.LANCHOR46+32] @@ -9335,26 +9611,26 @@ nandc_xfer_done: ldp x23, x24, [sp, 48] ldp x29, x30, [sp], 80 ret -.L1547: +.L1604: ldr x20, [x19, #:lo12:.LANCHOR13] mov w21, 0 ldr w0, [x20, 8] str w0, [x29, 64] ldr w0, [x20, 16] - tbnz x0, 1, .L1558 - adrp x22, .LC97 - adrp x23, .LC96 - add x22, x22, :lo12:.LC97 - add x23, x23, :lo12:.LC96 -.L1559: + tbnz x0, 1, .L1615 + adrp x22, .LC99 + adrp x23, .LC98 + add x22, x22, :lo12:.LC99 + add x23, x23, :lo12:.LC98 +.L1616: ldr w0, [x29, 64] - tbnz x0, 20, .L1552 + tbnz x0, 20, .L1609 ldr x0, [x19, #:lo12:.LANCHOR13] add w21, w21, 1 tst x21, 16777215 ldr w0, [x0, 8] str w0, [x29, 64] - bne .L1559 + bne .L1616 ldr w2, [x29, 64] mov w1, w21 ldr w3, [x20, 28] @@ -9366,34 +9642,34 @@ nandc_xfer_done: mov w2, 4 mov x0, x23 bl rknand_print_hex - b .L1559 -.L1558: - adrp x22, .LC95 - adrp x23, .LC96 - add x22, x22, :lo12:.LC95 - add x23, x23, :lo12:.LC96 -.L1560: + b .L1616 +.L1615: + adrp x22, .LC97 + adrp x23, .LC98 + add x22, x22, :lo12:.LC97 + add x23, x23, :lo12:.LC98 +.L1617: ldr w1, [x20, 28] ldr w0, [x29, 64] ubfx x1, x1, 16, 5 ubfx x0, x0, 22, 6 cmp w1, w0 - bge .L1552 + bge .L1609 ldr x0, [x19, #:lo12:.LANCHOR13] ldr w0, [x0] str w0, [x29, 72] ldr w0, [x29, 72] - tbz x0, 13, .L1561 + tbz x0, 13, .L1618 ldr w0, [x29, 72] - tbz x0, 17, .L1561 - adrp x0, .LC98 + tbz x0, 17, .L1618 + adrp x0, .LC100 ldr w1, [x29, 72] - add x0, x0, :lo12:.LC98 - b .L1584 -.L1561: + add x0, x0, :lo12:.LC100 + b .L1641 +.L1618: add w21, w21, 1 tst x21, 16777215 - bne .L1560 + bne .L1617 ldr w2, [x20, 28] mov w1, w21 ldr w3, [x29, 64] @@ -9406,7 +9682,7 @@ nandc_xfer_done: mov w2, 4 mov x0, x23 bl rknand_print_hex - b .L1560 + b .L1617 .size nandc_xfer_done, .-nandc_xfer_done .section .text.nandc_xfer,"ax",@progbits .align 2 @@ -9427,20 +9703,20 @@ nandc_xfer: mov x21, x4 bl nandc_xfer_start bl nandc_xfer_done - cbnz w22, .L1604 + cbnz w22, .L1661 adrp x0, .LANCHOR27 ldrb w0, [x0, #:lo12:.LANCHOR27] cmp w0, 9 - bne .L1587 + bne .L1644 adrp x22, .LANCHOR13 lsr w19, w19, 2 mov w3, 1 mov w2, 0 ldr x5, [x22, #:lo12:.LANCHOR13] mov w0, 0 -.L1588: +.L1645: cmp w2, w19 - bcc .L1592 + bcc .L1649 ldr w19, [x5] cmp w3, 0 mov w1, 512 @@ -9449,35 +9725,35 @@ nandc_xfer: movk w1, 0x2, lsl 16 and w1, w19, w1 cmp w1, 139264 - bne .L1594 + bne .L1651 mov w1, w19 - adrp x0, .LC99 - add x0, x0, :lo12:.LC99 + adrp x0, .LC101 + add x0, x0, :lo12:.LC101 bl printf ldr x0, [x22, #:lo12:.LANCHOR13] orr w19, w19, 131072 str w19, [x0] mov w0, -1 -.L1594: - tbz x19, 13, .L1595 - adrp x1, .LANCHOR152 - ldrb w1, [x1, #:lo12:.LANCHOR152] - cbz w1, .L1595 +.L1651: + tbz x19, 13, .L1652 + adrp x1, .LANCHOR157 + ldrb w1, [x1, #:lo12:.LANCHOR157] + cbz w1, .L1652 mov w1, w19 - adrp x0, .LC100 - add x0, x0, :lo12:.LC100 + adrp x0, .LC102 + add x0, x0, :lo12:.LC102 bl printf ldr x0, [x22, #:lo12:.LANCHOR13] mov w1, 1 str w1, [x0, 16] -.L1623: +.L1680: mov w0, -1 -.L1586: +.L1643: ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x29, x30, [sp], 64 ret -.L1592: +.L1649: uxtw x1, w2 add x1, x1, 84 ldr w1, [x5, x1, lsl 2] @@ -9488,30 +9764,30 @@ nandc_xfer: and w1, w4, w1, lsr 10 and w3, w3, w1 ldr w1, [x29, 56] - tbnz x1, 2, .L1606 + tbnz x1, 2, .L1663 ldr w1, [x29, 56] - tbnz x1, 18, .L1606 + tbnz x1, 18, .L1663 ldr w4, [x29, 56] ldr w1, [x29, 56] ubfx x4, x4, 3, 7 ubfx x1, x1, 19, 7 cmp w4, w1 ldr w1, [x29, 56] - ble .L1590 + ble .L1647 ubfx x1, x1, 3, 7 -.L1591: +.L1648: cmp w0, w1 csel w0, w0, w1, cs -.L1589: +.L1646: add w2, w2, 1 - b .L1588 -.L1590: + b .L1645 +.L1647: ubfx x1, x1, 19, 7 - b .L1591 -.L1606: + b .L1648 +.L1663: mov w0, -1 - b .L1589 -.L1587: + b .L1646 +.L1644: adrp x0, .LANCHOR43 lsr w4, w19, 1 mov w3, 64 @@ -9523,34 +9799,34 @@ nandc_xfer: mov w0, 128 csel w3, w3, w0, cc mov w0, 0 -.L1597: +.L1654: add w5, w3, w0 cmp w2, w4 - bcc .L1598 + bcc .L1655 adrp x22, .LANCHOR13 lsr w19, w19, 2 mov w3, 0 mov w0, 0 ldr x4, [x22, #:lo12:.LANCHOR13] -.L1599: +.L1656: cmp w3, w19 - bcc .L1603 + bcc .L1660 str wzr, [x4, 16] mov w1, 8192 movk w1, 0x2, lsl 16 ldr w19, [x4] and w1, w19, w1 cmp w1, 139264 - bne .L1595 + bne .L1652 mov w1, w19 - adrp x0, .LC101 - add x0, x0, :lo12:.LC101 + adrp x0, .LC103 + add x0, x0, :lo12:.LC103 bl printf ldr x0, [x22, #:lo12:.LANCHOR13] orr w19, w19, 131072 str w19, [x0] - b .L1623 -.L1598: + b .L1680 +.L1655: ldr x7, [x6, #:lo12:.LANCHOR46] and x0, x0, 4294967292 ldr w0, [x7, x0] @@ -9567,16 +9843,16 @@ nandc_xfer: add w1, w1, 4 strb w0, [x21, x7] mov w0, w5 - b .L1597 -.L1603: + b .L1654 +.L1660: uxtw x1, w3 add x1, x1, 8 ldr w1, [x4, x1, lsl 2] str w1, [x29, 56] ldr w1, [x29, 56] - tbnz x1, 2, .L1609 + tbnz x1, 2, .L1666 ldr w1, [x29, 56] - tbnz x1, 15, .L1609 + tbnz x1, 15, .L1666 ldr w2, [x29, 56] ubfx x6, x2, 3, 5 ldr w2, [x29, 56] @@ -9589,42 +9865,42 @@ nandc_xfer: orr w1, w5, w1, lsl 5 cmp w2, w1 ldr w1, [x29, 56] - bls .L1601 + bls .L1658 ubfx x2, x1, 3, 5 ldr w1, [x29, 56] ubfx x1, x1, 27, 1 -.L1622: +.L1679: orr w1, w2, w1, lsl 5 cmp w0, w1 csel w0, w0, w1, cs -.L1600: +.L1657: add w3, w3, 1 - b .L1599 -.L1601: + b .L1656 +.L1658: ubfx x2, x1, 16, 5 ldr w1, [x29, 56] ubfx x1, x1, 29, 1 - b .L1622 -.L1609: + b .L1679 +.L1666: mov w0, -1 - b .L1600 -.L1595: + b .L1657 +.L1652: cmn w0, #1 - beq .L1586 + beq .L1643 ldr w1, [x21] cmn w1, #1 - bne .L1586 + bne .L1643 ldr w1, [x21, 4] cmn w1, #1 - bne .L1586 + bne .L1643 ldr w1, [x20] cmn w1, #1 mov w1, 512 csel w0, w0, w1, ne - b .L1586 -.L1604: + b .L1643 +.L1661: mov w0, 0 - b .L1586 + b .L1643 .size nandc_xfer, .-nandc_xfer .section .text.flash_read_page,"ax",@progbits .align 2 @@ -9648,22 +9924,22 @@ flash_read_page: mov x26, x3 and w20, w1, 2097151 ubfx x23, x22, 24, 2 - tbz x0, 4, .L1625 + tbz x0, 4, .L1682 mov w3, w1 - adrp x0, .LC102 + adrp x0, .LC104 mov w2, w23 mov w1, w21 - add x0, x0, :lo12:.LC102 + add x0, x0, :lo12:.LC104 bl printf -.L1625: +.L1682: bl nandc_wait_flash_ready mov w0, w21 bl nandc_cs - adrp x6, .LANCHOR16 - cbnz w23, .L1626 + adrp x7, .LANCHOR16 + cbnz w23, .L1683 mov w0, w21 bl zftl_flash_enter_slc_mode -.L1627: +.L1684: ubfiz x4, x21, 8, 8 lsr w0, w20, 8 add x4, x19, x4 @@ -9677,15 +9953,15 @@ flash_read_page: str w0, [x4, 2052] mov w0, 48 str w0, [x4, 2056] - ldr x0, [x6, #:lo12:.LANCHOR16] + ldr x0, [x7, #:lo12:.LANCHOR16] ldrb w0, [x0, 12] cmp w0, 3 - bne .L1629 - cbz w23, .L1629 + bne .L1686 + cbz w23, .L1686 add w20, w20, w20, lsl 1 sub w0, w20, #1 add w0, w0, w23 -.L1638: +.L1695: bl nandc_set_seed bl nandc_wait_flash_ready mov w0, 5 @@ -9701,7 +9977,7 @@ flash_read_page: mov w0, w21 bl nandc_xfer mov w2, w0 - bl nandc_de_cs.constprop.29 + bl nandc_de_cs.constprop.28 mov w0, w2 ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] @@ -9709,23 +9985,23 @@ flash_read_page: ldp x25, x26, [sp, 64] ldp x29, x30, [sp], 80 ret -.L1626: - ldr x0, [x6, #:lo12:.LANCHOR16] +.L1683: + ldr x0, [x7, #:lo12:.LANCHOR16] ldrb w0, [x0, 12] cmp w0, 3 - bne .L1628 + bne .L1685 sxtw x0, w21 add x0, x0, 8 add x0, x19, x0, lsl 8 str w23, [x0, 8] - b .L1627 -.L1628: + b .L1684 +.L1685: mov w0, w21 bl zftl_flash_exit_slc_mode - b .L1627 -.L1629: + b .L1684 +.L1686: mov w0, w20 - b .L1638 + b .L1695 .size flash_read_page, .-flash_read_page .section .text.micron_read_retrial,"ax",@progbits .align 2 @@ -9755,20 +10031,20 @@ micron_read_retrial: ldr x0, [x0, #:lo12:.LANCHOR13] asr w20, w20, 2 str x0, [x29, 120] - adrp x0, .LANCHOR154 - add x0, x0, :lo12:.LANCHOR154 + adrp x0, .LANCHOR159 + add x0, x0, :lo12:.LANCHOR159 str x0, [x29, 104] ldr x0, [x29, 120] add x23, x0, x19, lsl 8 adrp x0, .LANCHOR14 add x0, x0, :lo12:.LANCHOR14 str x0, [x29, 96] -.L1640: +.L1697: ldr x0, [x29, 104] ldrb w0, [x0] cmp w21, w0 - bcc .L1645 -.L1644: + bcc .L1702 +.L1701: ldr x0, [x29, 120] add x19, x0, x19, lsl 8 mov w0, 239 @@ -9782,22 +10058,23 @@ micron_read_retrial: cmp w28, w20 str wzr, [x19, 2048] str wzr, [x19, 2048] - bcc .L1646 + bcc .L1703 cmn w28, #1 mov w0, 256 csel w28, w28, w0, eq -.L1646: +.L1703: cmp w28, 256 ccmn w28, #1, 4, ne - bne .L1639 - adrp x0, .LC104 + bne .L1704 + adrp x0, .LC106 mov w4, w28 mov w3, w21 mov w2, w22 mov w1, w21 - add x0, x0, :lo12:.LC104 + add x0, x0, :lo12:.LC106 bl printf -.L1639: +.L1704: + bl nandc_wait_flash_ready mov w0, w28 ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] @@ -9806,7 +10083,7 @@ micron_read_retrial: ldp x27, x28, [sp, 80] ldp x29, x30, [sp], 128 ret -.L1645: +.L1702: mov w0, 239 str w0, [x23, 2056] mov w0, 137 @@ -9827,33 +10104,33 @@ micron_read_retrial: mov w7, w0 ldr x0, [x29, 96] ldr w0, [x0] - tbz x0, 12, .L1641 + tbz x0, 12, .L1698 mov w4, w7 str w7, [x29, 112] mov w3, w28 mov w2, w22 mov w1, w21 - adrp x0, .LC103 - add x0, x0, :lo12:.LC103 + adrp x0, .LC105 + add x0, x0, :lo12:.LC105 bl printf ldr w7, [x29, 112] -.L1641: +.L1698: cmn w7, #1 - beq .L1642 - adrp x0, .LANCHOR151 + beq .L1699 + adrp x0, .LANCHOR156 cmn w28, #1 csel w28, w28, w7, ne cmp w7, w20 - ldr x25, [x0, #:lo12:.LANCHOR151] - adrp x0, .LANCHOR153 - ldr x26, [x0, #:lo12:.LANCHOR153] - bcc .L1648 -.L1642: + ldr x25, [x0, #:lo12:.LANCHOR156] + adrp x0, .LANCHOR158 + ldr x26, [x0, #:lo12:.LANCHOR158] + bcc .L1705 +.L1699: mov w21, w27 - b .L1640 -.L1648: + b .L1697 +.L1705: mov w28, w7 - b .L1644 + b .L1701 .size micron_read_retrial, .-micron_read_retrial .section .text.toshiba_3d_read_retrial,"ax",@progbits .align 2 @@ -9894,17 +10171,17 @@ toshiba_3d_read_retrial: csel w0, w1, w0, ne str w0, [x29, 136] add x0, x22, :lo12:.LANCHOR23 - cbnz w4, .L1663 + cbnz w4, .L1720 str x0, [x29, 120] sxtw x0, w24 add x0, x0, 8 add x0, x25, x0, lsl 8 str x0, [x29, 112] -.L1670: +.L1727: ldr x0, [x29, 120] ldrb w0, [x0] cmp w0, 36 - bne .L1664 + bne .L1721 mov w1, w20 mov x0, x21 mov w2, 0 @@ -9912,7 +10189,7 @@ toshiba_3d_read_retrial: ldr x1, [x29, 112] mov w0, 93 str w0, [x1, 8] -.L1665: +.L1722: mov w4, w28 mov x3, x27 mov x2, x26 @@ -9922,60 +10199,60 @@ toshiba_3d_read_retrial: mov w4, w0 adrp x0, .LANCHOR14 ldr w0, [x0, #:lo12:.LANCHOR14] - tbz x0, 4, .L1666 + tbz x0, 4, .L1723 mov w3, w4 str w4, [x29, 108] mov w2, w23 mov w1, w20 - adrp x0, .LC105 - add x0, x0, :lo12:.LC105 + adrp x0, .LC107 + add x0, x0, :lo12:.LC107 bl printf ldr w4, [x29, 108] -.L1666: +.L1723: cmn w4, #1 - beq .L1667 - adrp x0, .LANCHOR151 + beq .L1724 + adrp x0, .LANCHOR156 cmn w19, #1 csel w19, w19, w4, ne - ldr x26, [x0, #:lo12:.LANCHOR151] - adrp x0, .LANCHOR153 - ldr x27, [x0, #:lo12:.LANCHOR153] + ldr x26, [x0, #:lo12:.LANCHOR156] + adrp x0, .LANCHOR158 + ldr x27, [x0, #:lo12:.LANCHOR158] adrp x0, .LANCHOR43 ldrb w0, [x0, #:lo12:.LANCHOR43] add w0, w0, w0, lsl 1 cmp w4, w0, lsr 2 - bcc .L1685 -.L1667: + bcc .L1742 +.L1724: ldr w0, [x29, 136] add w20, w20, 1 cmp w0, w20 - bne .L1670 -.L1669: + bne .L1727 +.L1726: ldrb w0, [x22, #:lo12:.LANCHOR23] cmp w0, 36 - bne .L1671 + bne .L1728 mov w2, 0 -.L1708: +.L1765: mov w1, 0 mov x0, x21 bl toshiba_tlc_set_rr_para - b .L1672 -.L1664: + b .L1729 +.L1721: mov w1, w20 mov x0, x21 bl toshiba_3d_set_slc_rr_para - b .L1665 -.L1685: + b .L1722 +.L1742: mov w19, w4 - b .L1669 -.L1671: + b .L1726 +.L1728: mov w1, 0 mov x0, x21 bl toshiba_3d_set_slc_rr_para -.L1672: +.L1729: ldrb w0, [x22, #:lo12:.LANCHOR23] cmp w0, 36 - bne .L1681 + bne .L1738 ldr x0, [x29, 128] add x25, x25, x0, lsl 8 mov w0, 85 @@ -9984,27 +10261,27 @@ toshiba_3d_read_retrial: str wzr, [x25, 2052] str wzr, [x25, 2048] str w0, [x25, 2056] -.L1681: +.L1738: adrp x0, .LANCHOR43 ldrb w0, [x0, #:lo12:.LANCHOR43] add w0, w0, w0, lsl 1 cmp w19, w0, lsr 2 - bcc .L1682 + bcc .L1739 cmn w19, #1 mov w0, 256 csel w19, w19, w0, eq -.L1682: +.L1739: cmp w19, 256 ccmn w19, #1, 4, ne - bne .L1683 - adrp x0, .LC107 + bne .L1740 + adrp x0, .LC109 mov w4, w19 mov w3, w20 mov w2, w23 mov w1, w20 - add x0, x0, :lo12:.LC107 + add x0, x0, :lo12:.LC109 bl printf -.L1683: +.L1740: bl nandc_wait_flash_ready mov w0, w19 ldp x19, x20, [sp, 16] @@ -10014,23 +10291,23 @@ toshiba_3d_read_retrial: ldp x27, x28, [sp, 80] ldp x29, x30, [sp], 144 ret -.L1663: +.L1720: str x0, [x29, 112] sxtw x0, w24 add x0, x0, 8 add x0, x25, x0, lsl 8 str x0, [x29, 136] -.L1679: +.L1736: ldr x0, [x29, 112] ldrb w0, [x0] cmp w0, 36 - bne .L1673 + bne .L1730 mov x0, x21 mov w2, 1 mov w1, w20 bl toshiba_tlc_set_rr_para mov w0, 93 -.L1707: +.L1764: ldr x1, [x29, 136] mov w4, w28 mov x3, x27 @@ -10042,54 +10319,54 @@ toshiba_3d_read_retrial: mov w4, w0 adrp x0, .LANCHOR14 ldr w0, [x0, #:lo12:.LANCHOR14] - tbz x0, 4, .L1675 + tbz x0, 4, .L1732 mov w3, w4 str w4, [x29, 108] mov w2, w23 mov w1, w20 - adrp x0, .LC106 - add x0, x0, :lo12:.LC106 + adrp x0, .LC108 + add x0, x0, :lo12:.LC108 bl printf ldr w4, [x29, 108] -.L1675: +.L1732: cmn w4, #1 - beq .L1676 - adrp x0, .LANCHOR151 + beq .L1733 + adrp x0, .LANCHOR156 cmn w19, #1 csel w19, w19, w4, ne - ldr x26, [x0, #:lo12:.LANCHOR151] - adrp x0, .LANCHOR153 - ldr x27, [x0, #:lo12:.LANCHOR153] + ldr x26, [x0, #:lo12:.LANCHOR156] + adrp x0, .LANCHOR158 + ldr x27, [x0, #:lo12:.LANCHOR158] adrp x0, .LANCHOR43 ldrb w0, [x0, #:lo12:.LANCHOR43] add w0, w0, w0, lsl 1 cmp w4, w0, lsr 2 - bcc .L1686 -.L1676: + bcc .L1743 +.L1733: ldr w0, [x29, 120] add w20, w20, 1 cmp w0, w20 - bne .L1679 -.L1678: + bne .L1736 +.L1735: ldrb w0, [x22, #:lo12:.LANCHOR23] cmp w0, 36 - bne .L1680 + bne .L1737 mov w2, 1 - b .L1708 -.L1673: + b .L1765 +.L1730: mov x0, x21 mov w1, w20 bl toshiba_3d_set_tlc_rr_para mov w0, 38 - b .L1707 -.L1686: + b .L1764 +.L1743: mov w19, w4 - b .L1678 -.L1680: + b .L1735 +.L1737: mov w1, 0 mov x0, x21 bl toshiba_3d_set_tlc_rr_para - b .L1672 + b .L1729 .size toshiba_3d_read_retrial, .-toshiba_3d_read_retrial .section .text.toshiba_read_retrial,"ax",@progbits .align 2 @@ -10121,35 +10398,35 @@ toshiba_read_retrial: sub w0, w0, #67 and w0, w0, 255 cmp w0, 1 - bls .L1727 + bls .L1784 adrp x0, .LANCHOR20 ldrb w0, [x0, #:lo12:.LANCHOR20] - cbz w0, .L1728 + cbz w0, .L1785 mov w23, 1 mov w0, 1 bl nandc_set_if_mode -.L1711: +.L1768: and x0, x19, 255 mov w1, 92 add x0, x22, x0, lsl 8 str w1, [x0, 2056] mov w1, 197 str w1, [x0, 2056] -.L1710: +.L1767: sxtw x0, w19 mov w20, 1 add x0, x0, 8 mov w24, -1 add x0, x22, x0, lsl 8 str x0, [x29, 96] -.L1712: - adrp x0, .LANCHOR154 - ldrb w0, [x0, #:lo12:.LANCHOR154] +.L1769: + adrp x0, .LANCHOR159 + ldrb w0, [x0, #:lo12:.LANCHOR159] add w0, w0, 1 cmp w20, w0 - bcc .L1721 + bcc .L1778 mov w28, w24 -.L1720: +.L1777: ldr x0, [x29, 120] mov w1, 0 ldrb w0, [x0, #:lo12:.LANCHOR23] @@ -10157,9 +10434,9 @@ toshiba_read_retrial: and w0, w0, 255 cmp w0, 1 mov x0, x21 - bhi .L1722 + bhi .L1779 bl sandisk_set_rr_para -.L1723: +.L1780: sxtw x19, w19 mov w0, 255 add x19, x19, 8 @@ -10169,27 +10446,27 @@ toshiba_read_retrial: ldrb w0, [x0, #:lo12:.LANCHOR43] add w0, w0, w0, lsl 1 cmp w28, w0, lsr 2 - bcc .L1724 + bcc .L1781 cmn w28, #1 mov w0, 256 csel w28, w28, w0, eq -.L1724: +.L1781: cmp w28, 256 ccmn w28, #1, 4, ne - bne .L1725 - adrp x0, .LC107 + bne .L1782 + adrp x0, .LC109 mov w4, w28 mov w3, w20 mov w2, w25 mov w1, w20 - add x0, x0, :lo12:.LC107 + add x0, x0, :lo12:.LC109 bl printf -.L1725: +.L1782: bl nandc_wait_flash_ready - cbz w23, .L1709 + cbz w23, .L1766 mov w0, 4 bl nandc_set_if_mode -.L1709: +.L1766: mov w0, w28 ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] @@ -10198,13 +10475,13 @@ toshiba_read_retrial: ldp x27, x28, [sp, 80] ldp x29, x30, [sp], 128 ret -.L1728: +.L1785: mov w23, 0 - b .L1711 -.L1727: + b .L1768 +.L1784: mov w23, 0 - b .L1710 -.L1721: + b .L1767 +.L1778: ldr x0, [x29, 120] mov w1, w20 ldrb w0, [x0, #:lo12:.LANCHOR23] @@ -10212,22 +10489,22 @@ toshiba_read_retrial: and w0, w0, 255 cmp w0, 1 mov x0, x21 - bhi .L1713 + bhi .L1770 bl sandisk_set_rr_para -.L1714: +.L1771: ldr x0, [x29, 120] ldrb w0, [x0, #:lo12:.LANCHOR23] cmp w0, 34 - bne .L1715 - adrp x0, .LANCHOR154 - ldrb w0, [x0, #:lo12:.LANCHOR154] + bne .L1772 + adrp x0, .LANCHOR159 + ldrb w0, [x0, #:lo12:.LANCHOR159] sub w0, w0, #3 cmp w20, w0 - bne .L1715 + bne .L1772 ldr x1, [x29, 96] mov w0, 179 str w0, [x1, 8] -.L1715: +.L1772: ldr x0, [x29, 104] mov w1, 38 ldr w4, [x29, 116] @@ -10242,27 +10519,27 @@ toshiba_read_retrial: bl flash_read_page mov w28, w0 cmn w0, #1 - beq .L1718 + beq .L1775 cmn w24, #1 csel w24, w24, w0, ne - adrp x0, .LANCHOR151 - ldr x26, [x0, #:lo12:.LANCHOR151] - adrp x0, .LANCHOR153 - ldr x27, [x0, #:lo12:.LANCHOR153] + adrp x0, .LANCHOR156 + ldr x26, [x0, #:lo12:.LANCHOR156] + adrp x0, .LANCHOR158 + ldr x27, [x0, #:lo12:.LANCHOR158] adrp x0, .LANCHOR43 ldrb w0, [x0, #:lo12:.LANCHOR43] add w0, w0, w0, lsl 1 cmp w28, w0, lsr 2 - bcc .L1720 -.L1718: + bcc .L1777 +.L1775: add w20, w20, 1 - b .L1712 -.L1713: + b .L1769 +.L1770: bl toshiba_set_rr_para - b .L1714 -.L1722: + b .L1771 +.L1779: bl toshiba_set_rr_para - b .L1723 + b .L1780 .size toshiba_read_retrial, .-toshiba_read_retrial .section .text.hynix_read_retrial,"ax",@progbits .align 2 @@ -10293,34 +10570,35 @@ hynix_read_retrial: adrp x6, .LANCHOR43 add x6, x6, :lo12:.LANCHOR43 mov w5, 0 - adrp x7, .LANCHOR151 - adrp x8, .LANCHOR153 -.L1742: + adrp x7, .LANCHOR156 + adrp x8, .LANCHOR158 +.L1799: cmp w5, w24 - bcc .L1747 -.L1746: + bcc .L1804 +.L1803: adrp x0, .LANCHOR43 add x23, x28, x23 ldrb w0, [x0, #:lo12:.LANCHOR43] strb w20, [x23, 8] add w0, w0, w0, lsl 1 cmp w19, w0, lsr 2 - bcc .L1748 + bcc .L1805 cmn w19, #1 mov w0, 256 csel w19, w19, w0, eq -.L1748: +.L1805: cmp w19, 256 ccmn w19, #1, 4, ne - bne .L1741 - adrp x0, .LC108 + bne .L1806 + adrp x0, .LC110 mov w4, w19 mov w3, w5 mov w2, w22 mov w1, w5 - add x0, x0, :lo12:.LC108 + add x0, x0, :lo12:.LC110 bl printf -.L1741: +.L1806: + bl nandc_wait_flash_ready mov w0, w19 ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] @@ -10329,7 +10607,7 @@ hynix_read_retrial: ldp x27, x28, [sp, 80] ldp x29, x30, [sp], 128 ret -.L1747: +.L1804: add w20, w20, 1 stp x6, x8, [x29, 96] and w20, w20, 255 @@ -10350,21 +10628,21 @@ hynix_read_retrial: cmn w0, #1 ldp x6, x8, [x29, 96] ldr x7, [x29, 112] - beq .L1744 + beq .L1801 ldrb w1, [x6] cmn w19, #1 csel w19, w19, w0, ne - ldr x25, [x7, #:lo12:.LANCHOR151] - ldr x26, [x8, #:lo12:.LANCHOR153] + ldr x25, [x7, #:lo12:.LANCHOR156] + ldr x26, [x8, #:lo12:.LANCHOR158] add w1, w1, w1, lsl 1 cmp w0, w1, lsr 2 - bcc .L1750 -.L1744: + bcc .L1807 +.L1801: add w5, w5, 1 - b .L1742 -.L1750: + b .L1799 +.L1807: mov w19, w0 - b .L1746 + b .L1803 .size hynix_read_retrial, .-hynix_read_retrial .section .text.flash_ddr_tuning_read,"ax",@progbits .align 2 @@ -10392,15 +10670,15 @@ flash_ddr_tuning_read: mov w28, 0 str x0, [x29, 120] mov w26, 0 - adrp x0, .LC109 + adrp x0, .LC111 mov w27, 0 - add x0, x0, :lo12:.LC109 + add x0, x0, :lo12:.LC111 mov w19, 1024 mov w21, -1 mov w7, 6 str wzr, [x29, 140] str x0, [x29, 112] -.L1766: +.L1823: mov w0, w7 str w7, [x29, 128] bl nandc_set_ddr_para @@ -10414,7 +10692,7 @@ flash_ddr_tuning_read: ldr x0, [x29, 120] ldr w7, [x29, 128] ldr w0, [x0] - tbz x0, 4, .L1761 + tbz x0, 4, .L1818 ldr x0, [x29, 112] mov w3, w4 mov w1, w7 @@ -10424,47 +10702,47 @@ flash_ddr_tuning_read: bl printf ldr w4, [x29, 108] ldr w7, [x29, 128] -.L1761: +.L1818: add w0, w19, 1 cmp w4, w0 - bhi .L1762 - adrp x0, .LANCHOR151 - ldr x23, [x0, #:lo12:.LANCHOR151] - adrp x0, .LANCHOR153 - ldr x24, [x0, #:lo12:.LANCHOR153] + bhi .L1819 + adrp x0, .LANCHOR156 + ldr x23, [x0, #:lo12:.LANCHOR156] + adrp x0, .LANCHOR158 + ldr x24, [x0, #:lo12:.LANCHOR158] ldrb w0, [x25] cmp w4, w0, lsr 2 - bcs .L1772 + bcs .L1829 add w27, w27, 1 cmp w27, 7 - bls .L1772 + bls .L1829 sub w28, w7, w27 mov w19, w4 mov w21, 0 -.L1764: +.L1821: ldr w0, [x29, 140] cmp w27, w26 csel w28, w28, w0, cs -.L1765: - cbz w28, .L1767 +.L1822: + cbz w28, .L1824 adrp x0, .LANCHOR43 mov w1, 3 ldrb w0, [x0, #:lo12:.LANCHOR43] udiv w0, w0, w1 cmp w0, w19 - bls .L1767 + bls .L1824 mov w1, w28 - adrp x0, .LC110 - add x0, x0, :lo12:.LC110 + adrp x0, .LC112 + add x0, x0, :lo12:.LC112 bl printf mov w0, w28 -.L1783: +.L1840: bl nandc_set_ddr_para - cbz w21, .L1760 + cbz w21, .L1817 mov w2, w22 mov w1, w20 - adrp x0, .LC111 - add x0, x0, :lo12:.LC111 + adrp x0, .LC113 + add x0, x0, :lo12:.LC113 bl printf mov w0, w20 bl flash_reset @@ -10472,8 +10750,8 @@ flash_ddr_tuning_read: bl flash_set_interface_mode mov w0, 1 bl nandc_set_if_mode - adrp x0, .LANCHOR35 - add x0, x0, :lo12:.LANCHOR35 + adrp x0, .LANCHOR31 + add x0, x0, :lo12:.LANCHOR31 mov w1, 2 strb w1, [x0, w20, sxtw] mov w0, w20 @@ -10488,22 +10766,22 @@ flash_ddr_tuning_read: mov w3, w0 mov w2, w22 mov w1, w20 - adrp x0, .LC112 - add x0, x0, :lo12:.LC112 + adrp x0, .LC114 + add x0, x0, :lo12:.LC114 bl printf adrp x0, .LANCHOR43 ldrb w0, [x0, #:lo12:.LANCHOR43] cmp w19, w0 - bhi .L1774 - adrp x1, .LANCHOR155 - ldr w0, [x1, #:lo12:.LANCHOR155] + bhi .L1831 + adrp x1, .LANCHOR160 + ldr w0, [x1, #:lo12:.LANCHOR160] add w0, w0, 1 - str w0, [x1, #:lo12:.LANCHOR155] + str w0, [x1, #:lo12:.LANCHOR160] cmp w0, 100 - bls .L1770 + bls .L1827 adrp x0, .LANCHOR20 strb wzr, [x0, #:lo12:.LANCHOR20] -.L1760: +.L1817: mov w0, w19 ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] @@ -10512,180 +10790,177 @@ flash_ddr_tuning_read: ldp x27, x28, [sp, 80] ldp x29, x30, [sp], 144 ret -.L1762: +.L1819: cmp w27, w26 - bls .L1773 + bls .L1830 sub w0, w28, w27 str w0, [x29, 140] cmp w27, 7 - bhi .L1765 + bhi .L1822 mov w26, w27 -.L1773: +.L1830: mov w27, 0 - b .L1763 -.L1772: + b .L1820 +.L1829: mov w28, w7 mov w19, w4 mov w21, 0 -.L1763: +.L1820: add w7, w7, 2 cmp w7, 50 - bne .L1766 - b .L1764 -.L1767: + bne .L1823 + b .L1821 +.L1824: ldrb w0, [x29, 132] - b .L1783 -.L1774: + b .L1840 +.L1831: mov w19, w21 -.L1770: +.L1827: adrp x20, .LANCHOR42 ldrb w0, [x20, #:lo12:.LANCHOR42] bl flash_set_interface_mode ldrb w0, [x20, #:lo12:.LANCHOR42] bl nandc_set_if_mode - b .L1760 + b .L1817 .size flash_ddr_tuning_read, .-flash_ddr_tuning_read .section .text.flash_read_page_en,"ax",@progbits .align 2 .global flash_read_page_en .type flash_read_page_en, %function flash_read_page_en: - stp x29, x30, [sp, -96]! + stp x29, x30, [sp, -80]! add x29, sp, 0 - stp x21, x22, [sp, 32] - and w21, w0, 255 + stp x19, x20, [sp, 16] + and w20, w0, 255 adrp x0, .LANCHOR18 stp x23, x24, [sp, 48] - stp x25, x26, [sp, 64] - mov x22, x2 - stp x19, x20, [sp, 16] + stp x21, x22, [sp, 32] mov w19, w1 - str x27, [sp, 80] - mov x23, x3 + str x25, [sp, 64] + mov x22, x2 ldrb w1, [x0, #:lo12:.LANCHOR18] + mov x23, x3 mov w24, w4 - ubfx x26, x19, 24, 2 mov x25, x0 - cmp w1, w21 - bhi .L1785 - adrp x1, .LANCHOR156 + cmp w1, w20 + bhi .L1842 + adrp x1, .LANCHOR161 adrp x0, .LC0 - mov w2, 382 - add x1, x1, :lo12:.LANCHOR156 + mov w2, 398 + add x1, x1, :lo12:.LANCHOR161 add x0, x0, :lo12:.LC0 bl printf -.L1785: +.L1842: adrp x0, .LANCHOR29 add x0, x0, :lo12:.LANCHOR29 - ldrb w20, [x0, w21, sxtw] + ldrb w21, [x0, w20, sxtw] ldrb w0, [x25, #:lo12:.LANCHOR18] - cmp w0, w21 - bcs .L1786 + cmp w0, w20 + bcs .L1843 adrp x0, .LANCHOR14 ldr w0, [x0, #:lo12:.LANCHOR14] - tbz x0, 6, .L1786 - adrp x0, .LC113 + tbnz x0, 6, .L1844 +.L1868: + mov w0, -1 +.L1841: + 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 +.L1844: mov w3, w19 - mov w2, w21 - mov w1, w20 - add x0, x0, :lo12:.LC113 + mov w2, w20 + mov w1, w21 + adrp x0, .LC115 + add x0, x0, :lo12:.LC115 bl printf -.L1786: - cbnz w26, .L1787 + b .L1868 +.L1843: + tst x19, 50331648 + bne .L1846 adrp x0, .LANCHOR0 adrp x1, .LANCHOR1 ldrb w0, [x0, #:lo12:.LANCHOR0] - cbz w0, .L1788 + cbz w0, .L1847 ldrb w0, [x1, #:lo12:.LANCHOR1] - cbz w0, .L1787 -.L1788: + cbz w0, .L1846 +.L1847: adrp x0, .LANCHOR2 ldrb w1, [x1, #:lo12:.LANCHOR1] ldrh w2, [x0, #:lo12:.LANCHOR2] udiv w0, w19, w2 mul w0, w0, w2 sub w19, w19, w0 - cbz w1, .L1789 + cbz w1, .L1848 add w19, w0, w19, lsl 1 -.L1787: +.L1846: mov w4, w24 mov x3, x23 mov x2, x22 mov w1, w19 - mov w0, w20 + mov w0, w21 bl flash_read_page - mov w21, w0 cmn w0, #1 - bne .L1784 - adrp x25, .LANCHOR45 - mov x26, x25 - ldrb w27, [x25, #:lo12:.LANCHOR45] - cbnz w27, .L1791 -.L1794: - adrp x0, .LANCHOR157 - ldr x5, [x0, #:lo12:.LANCHOR157] - cbnz x5, .L1792 -.L1793: - ldrb w4, [x26, #:lo12:.LANCHOR45] + bne .L1841 + adrp x20, .LANCHOR45 + ldrb w25, [x20, #:lo12:.LANCHOR45] + cbnz w25, .L1849 +.L1852: + adrp x0, .LANCHOR162 + ldr x5, [x0, #:lo12:.LANCHOR162] + cbnz x5, .L1850 +.L1851: + ldrb w4, [x20, #:lo12:.LANCHOR45] mov w3, -1 mov w2, w19 mov w1, 0 - adrp x0, .LC114 - add x0, x0, :lo12:.LC114 + adrp x0, .LC116 + add x0, x0, :lo12:.LC116 bl printf adrp x0, .LANCHOR20 ldrb w0, [x0, #:lo12:.LANCHOR20] - cbz w0, .L1784 + cbz w0, .L1868 mov w4, w24 mov x3, x23 mov x2, x22 mov w1, w19 - mov w0, w20 - ldr x27, [sp, 80] + mov w0, w21 + ldr x25, [sp, 64] ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x23, x24, [sp, 48] - ldp x25, x26, [sp, 64] - ldp x29, x30, [sp], 96 + ldp x29, x30, [sp], 80 b flash_ddr_tuning_read -.L1789: +.L1848: adrp x1, .LANCHOR3 add x1, x1, :lo12:.LANCHOR3 ldrh w19, [x1, w19, uxtw 1] add w19, w19, w0 - b .L1787 -.L1791: - strb wzr, [x25, #:lo12:.LANCHOR45] + b .L1846 +.L1849: + strb wzr, [x20, #:lo12:.LANCHOR45] mov w4, w24 mov x3, x23 mov x2, x22 mov w1, w19 - mov w0, w20 - bl flash_read_page - strb w27, [x25, #:lo12:.LANCHOR45] - cmn w0, #1 - beq .L1794 -.L1812: - mov w21, w0 -.L1784: mov w0, w21 - 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 -.L1792: + bl flash_read_page + strb w25, [x20, #:lo12:.LANCHOR45] + cmn w0, #1 + beq .L1852 + b .L1841 +.L1850: mov w4, w24 mov x3, x23 mov x2, x22 mov w1, w19 - mov w0, w20 + mov w0, w21 blr x5 cmn w0, #1 - beq .L1793 - b .L1812 + beq .L1851 + b .L1841 .size flash_read_page_en, .-flash_read_page_en .section .text.flash_get_last_written_page,"ax",@progbits .align 2 @@ -10696,15 +10971,15 @@ flash_get_last_written_page: add x29, sp, 0 stp x23, x24, [sp, 48] and w23, w0, 255 - adrp x0, .LANCHOR135 + adrp x0, .LANCHOR140 stp x19, x20, [sp, 16] stp x25, x26, [sp, 64] mov x24, x2 - ldrh w19, [x0, #:lo12:.LANCHOR135] - adrp x0, .LANCHOR34+26 + ldrh w19, [x0, #:lo12:.LANCHOR140] + adrp x0, .LANCHOR30+26 stp x21, x22, [sp, 32] and w21, w1, 65535 - ldrh w26, [x0, #:lo12:.LANCHOR34+26] + ldrh w26, [x0, #:lo12:.LANCHOR30+26] sub w19, w19, #1 sxth w19, w19 stp x27, x28, [sp, 80] @@ -10715,23 +10990,23 @@ flash_get_last_written_page: add w1, w19, w26 bl flash_read_page_en cmp w0, 512 - bne .L1814 + bne .L1870 mov w27, 0 mov w28, 2 -.L1815: +.L1871: cmp w27, w19 - ble .L1818 -.L1814: + ble .L1874 +.L1870: adrp x0, .LANCHOR14 ldr w0, [x0, #:lo12:.LANCHOR14] - tbz x0, 12, .L1819 + tbz x0, 12, .L1875 ldr w3, [x22] - adrp x0, .LC115 + adrp x0, .LC117 mov w2, w19 mov w1, w21 - add x0, x0, :lo12:.LC115 + add x0, x0, :lo12:.LC117 bl printf -.L1819: +.L1875: mov w0, w19 ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] @@ -10740,7 +11015,7 @@ flash_get_last_written_page: ldp x27, x28, [sp, 80] ldp x29, x30, [sp], 96 ret -.L1818: +.L1874: add w20, w27, w19 mov w4, w25 mov x3, x22 @@ -10750,25 +11025,25 @@ flash_get_last_written_page: add w1, w26, w20, sxth bl flash_read_page_en cmp w0, 512 - bne .L1816 + bne .L1872 sub w19, w20, #1 sxth w19, w19 - b .L1815 -.L1816: + b .L1871 +.L1872: add w20, w20, 1 sxth w27, w20 - b .L1815 + b .L1871 .size flash_get_last_written_page, .-flash_get_last_written_page .section .text.flash_get_last_written_page_ext,"ax",@progbits .align 2 .global flash_get_last_written_page_ext .type flash_get_last_written_page_ext, %function flash_get_last_written_page_ext: - adrp x4, .LANCHOR99 + adrp x4, .LANCHOR102 mov w6, 21 and w0, w0, 65535 mov w5, 1 - ldrh w4, [x4, #:lo12:.LANCHOR99] + ldrh w4, [x4, #:lo12:.LANCHOR102] sub w6, w6, w4 mov w4, w3 mov x3, x2 @@ -10779,165 +11054,6 @@ flash_get_last_written_page_ext: asr w0, w0, w6 b flash_get_last_written_page .size flash_get_last_written_page_ext, .-flash_get_last_written_page_ext - .section .text.flash_info_blk_init,"ax",@progbits - .align 2 - .global flash_info_blk_init - .type flash_info_blk_init, %function -flash_info_blk_init: - stp x29, x30, [sp, -96]! - adrp x0, .LANCHOR14 - add x29, sp, 0 - ldr w0, [x0, #:lo12:.LANCHOR14] - stp x19, x20, [sp, 16] - adrp x20, .LANCHOR26 - stp x21, x22, [sp, 32] - stp x23, x24, [sp, 48] - stp x25, x26, [sp, 64] - str x27, [sp, 80] - tbz x0, 12, .L1826 - ldr x4, [x20, #:lo12:.LANCHOR26] - adrp x2, .LANCHOR158 - adrp x0, .LC116 - mov w3, 2048 - add x2, x2, :lo12:.LANCHOR158 - mov w1, 49 - add x0, x0, :lo12:.LC116 - bl printf -.L1826: - adrp x21, .LANCHOR159 - adrp x23, .LANCHOR2 - mov w24, 21321 - add x26, x23, :lo12:.LANCHOR2 - mov x22, x21 - mov w19, 4 - movk w24, 0x5359, lsl 16 -.L1829: - ldrh w1, [x26] - mov w4, 4 - ldr x3, [x21, #:lo12:.LANCHOR159] - mov w0, 0 - ldr x2, [x20, #:lo12:.LANCHOR26] - add x27, x21, :lo12:.LANCHOR159 - add x25, x20, :lo12:.LANCHOR26 - mul w1, w1, w19 - bl flash_read_page_en - cmn w0, #1 - beq .L1827 - ldr x2, [x20, #:lo12:.LANCHOR26] - ldr w0, [x2] - cmp w0, w24 - beq .L1828 -.L1827: - add w19, w19, 1 - cmp w19, 16 - bne .L1829 -.L1853: - mov w0, -1 -.L1825: - ldp x19, x20, [sp, 16] - ldp x21, x22, [sp, 32] - ldp x23, x24, [sp, 48] - ldp x25, x26, [sp, 64] - ldr x27, [sp, 80] - ldp x29, x30, [sp], 96 - ret -.L1837: - ldr x0, [x25] - ldr w1, [x0] - cmp w1, w24 - bne .L1838 - ldr w19, [x0, 4] -.L1831: - add x24, x21, :lo12:.LANCHOR160 - ldrh w0, [x23, #:lo12:.LANCHOR2] - ldr x3, [x22, #:lo12:.LANCHOR159] - mov w4, 4 - ldr x2, [x20, #:lo12:.LANCHOR26] - ldrb w1, [x24, 1] - mul w1, w1, w0 - mov w0, 0 - bl flash_read_page_en - cmn w0, #1 - beq .L1832 - ldr x0, [x20, #:lo12:.LANCHOR26] - mov w1, 21321 - movk w1, 0x5359, lsl 16 - ldr w2, [x0] - cmp w2, w1 - bne .L1832 - ldr w1, [x0, 4] - cmp w19, w1 - bcs .L1832 - ldrb w1, [x0, 37] - ldrb w0, [x0, 36] - strb w1, [x21, #:lo12:.LANCHOR160] - strb w0, [x24, 1] -.L1832: - ldrb w1, [x21, #:lo12:.LANCHOR160] - add x24, x21, :lo12:.LANCHOR160 - ldr x3, [x22, #:lo12:.LANCHOR159] - mov w4, 4 - ldr x2, [x20, #:lo12:.LANCHOR26] - mov w0, 0 - bl flash_get_last_written_page - sxth w19, w0 - add w0, w0, 1 - ldrb w21, [x21, #:lo12:.LANCHOR160] - strh w0, [x24, 2] - ldrh w0, [x23, #:lo12:.LANCHOR2] - mov w23, 21321 - movk w23, 0x5359, lsl 16 - madd w21, w21, w0, w19 -.L1833: - tbz w19, #31, .L1835 - cmn w19, #1 - bne .L1836 - ldr x0, [x20, #:lo12:.LANCHOR26] - ldr w1, [x0] - adrp x0, .LC117 - add x0, x0, :lo12:.LC117 - bl printf - b .L1853 -.L1835: - ldr x3, [x22, #:lo12:.LANCHOR159] - mov w4, 4 - ldr x2, [x20, #:lo12:.LANCHOR26] - mov w1, w21 - mov w0, 0 - bl flash_read_page_en - cmn w0, #1 - beq .L1834 - ldr x0, [x20, #:lo12:.LANCHOR26] - ldr w0, [x0] - cmp w0, w23 - bne .L1834 -.L1836: - mov w0, 0 - b .L1825 -.L1834: - sub w19, w19, #1 - sub w21, w21, #1 - sxth w19, w19 - b .L1833 -.L1828: - adrp x21, .LANCHOR160 - add x1, x21, :lo12:.LANCHOR160 - ldrb w3, [x2, 37] - mov w4, 4 - ldrb w0, [x2, 36] - strb w3, [x1, 1] - ldrh w1, [x26] - ldr x3, [x27] - strb w0, [x21, #:lo12:.LANCHOR160] - mul w1, w1, w0 - mov w0, 0 - bl flash_read_page_en - cmn w0, #1 - bne .L1837 -.L1838: - mov w19, 0 - b .L1831 - .size flash_info_blk_init, .-flash_info_blk_init .section .text.flash_ddr_para_scan,"ax",@progbits .align 2 .global flash_ddr_para_scan @@ -10956,34 +11072,34 @@ flash_ddr_para_scan: mov w23, w1 str x25, [sp, 64] strb w21, [x19, #:lo12:.LANCHOR20] - adrp x24, .LANCHOR162 + adrp x24, .LANCHOR164 bl flash_set_interface_mode - adrp x25, .LANCHOR161 + adrp x25, .LANCHOR163 ldrb w0, [x20, #:lo12:.LANCHOR42] bl nandc_set_if_mode - ldr x3, [x25, #:lo12:.LANCHOR161] + ldr x3, [x25, #:lo12:.LANCHOR163] mov w4, 4 - ldr x2, [x24, #:lo12:.LANCHOR162] + ldr x2, [x24, #:lo12:.LANCHOR164] mov w1, w23 mov w0, w22 bl flash_ddr_tuning_read - ldr x3, [x25, #:lo12:.LANCHOR161] + ldr x3, [x25, #:lo12:.LANCHOR163] mov w4, 4 - ldr x2, [x24, #:lo12:.LANCHOR162] + ldr x2, [x24, #:lo12:.LANCHOR164] mov w1, w23 mov w0, w22 bl flash_read_page cmn w0, #1 mov x0, x19 - bne .L1855 + bne .L1882 ldrb w1, [x20, #:lo12:.LANCHOR42] - tbz x1, 0, .L1855 + tbz x1, 0, .L1882 mov w0, 1 bl flash_set_interface_mode mov w0, w21 bl nandc_set_if_mode strb wzr, [x19, #:lo12:.LANCHOR20] -.L1856: +.L1883: mov w0, 0 ldr x25, [sp, 64] ldp x19, x20, [sp, 16] @@ -10991,10 +11107,10 @@ flash_ddr_para_scan: ldp x23, x24, [sp, 48] ldp x29, x30, [sp], 80 ret -.L1855: +.L1882: mov w1, 1 strb w1, [x0, #:lo12:.LANCHOR20] - b .L1856 + b .L1883 .size flash_ddr_para_scan, .-flash_ddr_para_scan .section .text.flash_complete_plane_page_read,"ax",@progbits .align 2 @@ -11014,14 +11130,14 @@ flash_complete_plane_page_read: ldrb w0, [x0, #:lo12:.LANCHOR18] mov x22, x2 cmp w0, w23 - bhi .L1862 - adrp x1, .LANCHOR163 + bhi .L1889 + adrp x1, .LANCHOR165 adrp x0, .LC0 - mov w2, 789 - add x1, x1, :lo12:.LANCHOR163 + mov w2, 886 + add x1, x1, :lo12:.LANCHOR165 add x0, x0, :lo12:.LC0 bl printf -.L1862: +.L1889: adrp x0, .LANCHOR29 add x0, x0, :lo12:.LANCHOR29 ldrb w6, [x0, w23, sxtw] @@ -11029,11 +11145,11 @@ flash_complete_plane_page_read: ldr x4, [x0, #:lo12:.LANCHOR13] mov w0, w6 bl nandc_cs - cbnz w20, .L1863 + cbnz w20, .L1890 mov w0, w19 bl slc_phy_page_address_calc mov w19, w0 -.L1863: +.L1890: adrp x0, .LANCHOR19+16 and x1, x6, 255 and w3, w19, 255 @@ -11042,53 +11158,53 @@ flash_complete_plane_page_read: adrp x5, .LANCHOR16 cmp w0, 1 lsr w0, w19, 16 - bne .L1864 + bne .L1891 add x1, x4, x1, lsl 8 mov w4, 6 -.L1875: +.L1902: str w4, [x1, 2056] str wzr, [x1, 2052] str wzr, [x1, 2052] str w3, [x1, 2052] str w2, [x1, 2052] str w0, [x1, 2052] -.L1873: +.L1900: mov w0, 224 str w0, [x1, 2056] ldr x0, [x5, #:lo12:.LANCHOR16] ldrb w0, [x0, 12] cmp w0, 3 - bne .L1867 - cbz w20, .L1867 + bne .L1894 + cbz w20, .L1894 add w19, w19, w19, lsl 1 sub w20, w20, #1 add w0, w19, w20 -.L1874: +.L1901: bl nandc_set_seed - adrp x0, .LANCHOR34+9 + adrp x0, .LANCHOR30+9 mov x4, x22 mov x3, x21 mov w1, 0 - ldrb w2, [x0, #:lo12:.LANCHOR34+9] + ldrb w2, [x0, #:lo12:.LANCHOR30+9] mov w0, w6 bl nandc_xfer mov w2, w0 - bl nandc_de_cs.constprop.29 + bl nandc_de_cs.constprop.28 ldr x23, [sp, 48] mov w0, w2 ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x29, x30, [sp], 64 ret -.L1864: +.L1891: ldr x7, [x5, #:lo12:.LANCHOR16] add x1, x4, x1, lsl 8 ldrb w7, [x7, 12] cmp w7, 3 - bne .L1866 + bne .L1893 mov w4, 5 - b .L1875 -.L1866: + b .L1902 +.L1893: str wzr, [x1, 2056] str wzr, [x1, 2052] str wzr, [x1, 2052] @@ -11099,10 +11215,10 @@ flash_complete_plane_page_read: str w0, [x1, 2056] str wzr, [x1, 2052] str wzr, [x1, 2052] - b .L1873 -.L1867: + b .L1900 +.L1894: mov w0, w19 - b .L1874 + b .L1901 .size flash_complete_plane_page_read, .-flash_complete_plane_page_read .section .text.flash_complete_page_read,"ax",@progbits .align 2 @@ -11125,14 +11241,14 @@ flash_complete_page_read: mov x25, x2 ubfx x21, x23, 24, 2 cmp w0, w20 - bhi .L1877 - adrp x1, .LANCHOR164 + bhi .L1904 + adrp x1, .LANCHOR166 adrp x0, .LC0 - mov w2, 911 - add x1, x1, :lo12:.LANCHOR164 + mov w2, 1008 + add x1, x1, :lo12:.LANCHOR166 add x0, x0, :lo12:.LC0 bl printf -.L1877: +.L1904: adrp x0, .LANCHOR29 add x0, x0, :lo12:.LANCHOR29 ldrb w22, [x0, w20, sxtw] @@ -11140,11 +11256,11 @@ flash_complete_page_read: ldr x4, [x0, #:lo12:.LANCHOR13] mov w0, w22 bl nandc_cs - cbnz w21, .L1878 + cbnz w21, .L1905 mov w0, w19 bl slc_phy_page_address_calc mov w19, w0 -.L1878: +.L1905: ubfiz x0, x22, 8, 8 mov w1, 5 add x0, x4, x0 @@ -11163,14 +11279,14 @@ flash_complete_page_read: ldr x0, [x0, #:lo12:.LANCHOR16] ldrb w0, [x0, 12] cmp w0, 3 - bne .L1879 - cbz w21, .L1879 + bne .L1906 + cbz w21, .L1906 sub w0, w21, #1 add w1, w19, w19, lsl 1 add w0, w0, w1 -.L1906: - adrp x20, .LANCHOR34 - add x28, x20, :lo12:.LANCHOR34 +.L1933: + adrp x20, .LANCHOR30 + add x28, x20, :lo12:.LANCHOR30 bl nandc_set_seed mov x4, x25 mov x3, x24 @@ -11179,10 +11295,10 @@ flash_complete_page_read: mov w0, w22 bl nandc_xfer cmn w0, #1 - bne .L1881 + bne .L1908 adrp x26, .LANCHOR45 ldrb w27, [x26, #:lo12:.LANCHOR45] - cbz w27, .L1882 + cbz w27, .L1909 ldrb w4, [x28, 9] mov x3, x25 strb wzr, [x26, #:lo12:.LANCHOR45] @@ -11191,24 +11307,24 @@ flash_complete_page_read: mov w0, w22 bl flash_read_page strb w27, [x26, #:lo12:.LANCHOR45] - cbnz w21, .L1883 -.L1888: + cbnz w21, .L1910 +.L1915: adrp x1, .LANCHOR0 ldrb w1, [x1, #:lo12:.LANCHOR0] - cbz w1, .L1883 + cbz w1, .L1910 adrp x1, .LANCHOR43 ldrb w1, [x1, #:lo12:.LANCHOR43] add w1, w1, w1, lsl 1 cmp w0, w1, lsr 2 - blt .L1883 - add x20, x20, :lo12:.LANCHOR34 + blt .L1910 + add x20, x20, :lo12:.LANCHOR30 ldrb w1, [x20, 19] sub w1, w1, #4 and w1, w1, 255 - cmp w1, 3 + cmp w1, 4 mov w1, 256 csel w0, w0, w1, hi -.L1876: +.L1903: ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x23, x24, [sp, 48] @@ -11216,17 +11332,17 @@ flash_complete_page_read: ldp x27, x28, [sp, 80] ldp x29, x30, [sp], 96 ret -.L1879: +.L1906: mov w0, w19 - b .L1906 -.L1883: + b .L1933 +.L1910: cmn w0, #1 - bne .L1876 -.L1889: - adrp x0, .LANCHOR157 - ldr x5, [x0, #:lo12:.LANCHOR157] - cbnz x5, .L1885 -.L1887: + bne .L1903 +.L1916: + adrp x0, .LANCHOR162 + ldr x5, [x0, #:lo12:.LANCHOR162] + cbnz x5, .L1912 +.L1914: adrp x0, .LANCHOR45 mov w3, -1 mov w2, w23 @@ -11237,11 +11353,11 @@ flash_complete_page_read: bl printf adrp x0, .LANCHOR20 ldrb w0, [x0, #:lo12:.LANCHOR20] - cbnz w0, .L1886 + cbnz w0, .L1913 mov w0, -1 - b .L1876 -.L1885: - add x0, x20, :lo12:.LANCHOR34 + b .L1903 +.L1912: + add x0, x20, :lo12:.LANCHOR30 mov x3, x25 mov x2, x24 orr w1, w19, w21, lsl 24 @@ -11249,10 +11365,10 @@ flash_complete_page_read: mov w0, w22 blr x5 cmn w0, #1 - beq .L1887 - b .L1876 -.L1886: - add x20, x20, :lo12:.LANCHOR34 + beq .L1914 + b .L1903 +.L1913: + add x20, x20, :lo12:.LANCHOR30 orr w1, w19, w21, lsl 24 mov x3, x25 mov x2, x24 @@ -11265,120 +11381,121 @@ flash_complete_page_read: ldp x27, x28, [sp, 80] ldp x29, x30, [sp], 96 b flash_ddr_tuning_read -.L1881: - cbz w21, .L1888 - b .L1876 -.L1882: - cbnz w21, .L1889 - b .L1888 +.L1908: + cbz w21, .L1915 + b .L1903 +.L1909: + cbnz w21, .L1916 + b .L1915 .size flash_complete_page_read, .-flash_complete_page_read .section .text.queue_wait_first_req_completed,"ax",@progbits .align 2 .type queue_wait_first_req_completed, %function queue_wait_first_req_completed: stp x29, x30, [sp, -96]! - adrp x0, .LANCHOR53 + adrp x0, .LANCHOR54 add x29, sp, 0 stp x19, x20, [sp, 16] - ldrb w0, [x0, #:lo12:.LANCHOR53] + ldrb w0, [x0, #:lo12:.LANCHOR54] stp x21, x22, [sp, 32] stp x23, x24, [sp, 48] cmp w0, 255 stp x25, x26, [sp, 64] str x27, [sp, 80] - bne .L1908 -.L1937: + bne .L1935 +.L1964: mov w21, 0 - b .L1907 -.L1908: - adrp x19, .LANCHOR49 + b .L1934 +.L1935: + adrp x19, .LANCHOR50 sxtw x20, w0 - add x1, x19, :lo12:.LANCHOR49 + add x1, x19, :lo12:.LANCHOR50 add x1, x1, x20, lsl 6 ldrb w2, [x1, 58] ldr w24, [x1, 40] sub w3, w2, #1 - cmp w3, 9 - bhi .L1937 - adrp x1, .L1911 - add x1, x1, :lo12:.L1911 + cmp w3, 10 + bhi .L1964 + adrp x1, .L1938 + add x1, x1, :lo12:.L1938 ldrh w1, [x1,w3,uxtw #1] - adr x3, .Lrtx1911 + adr x3, .Lrtx1938 add x1, x3, w1, sxth #2 br x1 -.Lrtx1911: +.Lrtx1938: .section .rodata.queue_wait_first_req_completed,"a",@progbits .align 0 .align 2 -.L1911: - .2byte (.L1910 - .Lrtx1911) / 4 - .2byte (.L1912 - .Lrtx1911) / 4 - .2byte (.L1913 - .Lrtx1911) / 4 - .2byte (.L1913 - .Lrtx1911) / 4 - .2byte (.L1913 - .Lrtx1911) / 4 - .2byte (.L1914 - .Lrtx1911) / 4 - .2byte (.L1915 - .Lrtx1911) / 4 - .2byte (.L1916 - .Lrtx1911) / 4 - .2byte (.L1913 - .Lrtx1911) / 4 - .2byte (.L1916 - .Lrtx1911) / 4 +.L1938: + .2byte (.L1937 - .Lrtx1938) / 4 + .2byte (.L1939 - .Lrtx1938) / 4 + .2byte (.L1940 - .Lrtx1938) / 4 + .2byte (.L1940 - .Lrtx1938) / 4 + .2byte (.L1940 - .Lrtx1938) / 4 + .2byte (.L1940 - .Lrtx1938) / 4 + .2byte (.L1941 - .Lrtx1938) / 4 + .2byte (.L1942 - .Lrtx1938) / 4 + .2byte (.L1943 - .Lrtx1938) / 4 + .2byte (.L1940 - .Lrtx1938) / 4 + .2byte (.L1943 - .Lrtx1938) / 4 .section .text.queue_wait_first_req_completed -.L1910: +.L1937: mov w1, 64 mov w0, w24 bl flash_wait_device_ready - tbz x0, 6, .L1937 - add x0, x19, :lo12:.LANCHOR49 + tbz x0, 6, .L1964 + add x0, x19, :lo12:.LANCHOR50 add x0, x0, x20, lsl 6 ldp x1, x2, [x0, 8] - cbz x2, .L1918 + cbz x2, .L1945 ldrb w3, [x0, 56] - adrp x0, .LANCHOR121 - ldrb w0, [x0, #:lo12:.LANCHOR121] + adrp x0, .LANCHOR123 + ldrb w0, [x0, #:lo12:.LANCHOR123] cmp w3, w0 csel x1, x1, x2, ne -.L1918: - add x19, x19, :lo12:.LANCHOR49 +.L1945: + add x19, x19, :lo12:.LANCHOR50 mov w0, w24 add x20, x19, x20, lsl 6 ldr x2, [x20, 24] bl flash_complete_page_read str w0, [x20, 52] - mov w0, 12 + mov w0, 13 strb w0, [x20, 58] ldrb w0, [x20, 2] orr w0, w0, 8 strb w0, [x20, 2] - b .L1937 -.L1912: + b .L1964 +.L1939: mov w1, 64 mov w0, w24 bl flash_wait_device_ready - tbz x0, 6, .L1937 - add x0, x19, :lo12:.LANCHOR49 + tbz x0, 6, .L1964 + add x0, x19, :lo12:.LANCHOR50 lsl x2, x20, 6 add x1, x0, x2 ldrb w21, [x0, x2] add x0, x0, x21, lsl 6 ldr x24, [x0, 8] ldp x26, x0, [x1, 8] - cbz x0, .L1919 + cbz x0, .L1946 ldrb w2, [x1, 56] - adrp x1, .LANCHOR121 - ldrb w1, [x1, #:lo12:.LANCHOR121] + adrp x1, .LANCHOR123 + ldrb w1, [x1, #:lo12:.LANCHOR123] cmp w2, w1 csel x26, x26, x0, ne -.L1919: - add x0, x19, :lo12:.LANCHOR49 +.L1946: + add x0, x19, :lo12:.LANCHOR50 add x0, x0, x21, lsl 6 ldr x1, [x0, 16] - cbz x1, .L1920 + cbz x1, .L1947 ldrb w2, [x0, 56] - adrp x0, .LANCHOR121 - ldrb w0, [x0, #:lo12:.LANCHOR121] + adrp x0, .LANCHOR123 + ldrb w0, [x0, #:lo12:.LANCHOR123] cmp w2, w0 csel x24, x24, x1, ne -.L1920: - add x22, x19, :lo12:.LANCHOR49 +.L1947: + add x22, x19, :lo12:.LANCHOR50 mov x1, x26 add x27, x22, x20, lsl 6 add x22, x22, x21, lsl 6 @@ -11392,19 +11509,19 @@ queue_wait_first_req_completed: bl flash_complete_plane_page_read mov w25, w0 cmn w23, #1 - beq .L1921 + beq .L1948 ldr w0, [x27, 36] cmn w0, #1 - beq .L1922 + beq .L1949 ldr x1, [x27, 24] ldr w1, [x1, 4] cmp w0, w1 - beq .L1922 -.L1921: - add x22, x19, :lo12:.LANCHOR49 - adrp x2, .LANCHOR121 + beq .L1949 +.L1948: + add x22, x19, :lo12:.LANCHOR50 + adrp x2, .LANCHOR123 add x22, x22, x20, lsl 6 - ldrb w4, [x2, #:lo12:.LANCHOR121] + ldrb w4, [x2, #:lo12:.LANCHOR123] mov x2, x26 ldr x3, [x22, 24] ldr w1, [x22, 40] @@ -11414,38 +11531,38 @@ queue_wait_first_req_completed: mov w23, w0 ldr w2, [x22, 36] cmn w2, #1 - beq .L1923 + beq .L1950 ldr x0, [x22, 24] ldr w4, [x0, 4] cmp w2, w4 - beq .L1923 + beq .L1950 adrp x1, .LANCHOR14 ldr w1, [x1, #:lo12:.LANCHOR14] - tbz x1, 6, .L1923 + tbz x1, 6, .L1950 ldr w3, [x0] adrp x0, .LC119 ldr w1, [x22, 40] add x0, x0, :lo12:.LC119 bl printf -.L1923: - add x0, x19, :lo12:.LANCHOR49 +.L1950: + add x0, x19, :lo12:.LANCHOR50 add x0, x0, x20, lsl 6 ldr w1, [x0, 36] cmn w1, #1 - beq .L1922 + beq .L1949 ldr x0, [x0, 24] ldr w0, [x0, 4] cmp w1, w0 - beq .L1922 - adrp x1, .LANCHOR165 + beq .L1949 + adrp x1, .LANCHOR167 adrp x0, .LC0 - mov w2, 338 - add x1, x1, :lo12:.LANCHOR165 + mov w2, 360 + add x1, x1, :lo12:.LANCHOR167 add x0, x0, :lo12:.LC0 bl printf -.L1922: - add x0, x19, :lo12:.LANCHOR49 - mov w1, 12 +.L1949: + add x0, x19, :lo12:.LANCHOR50 + mov w1, 13 add x20, x0, x20, lsl 6 cmn w25, #1 strb w1, [x20, 58] @@ -11453,20 +11570,20 @@ queue_wait_first_req_completed: str w23, [x20, 52] orr w1, w1, 8 strb w1, [x20, 2] - beq .L1924 + beq .L1951 add x0, x0, x21, lsl 6 ldr w1, [x0, 36] cmn w1, #1 - beq .L1926 + beq .L1953 ldr x0, [x0, 24] ldr w0, [x0, 4] cmp w1, w0 - beq .L1926 -.L1924: - add x20, x19, :lo12:.LANCHOR49 - adrp x2, .LANCHOR121 + beq .L1953 +.L1951: + add x20, x19, :lo12:.LANCHOR50 + adrp x2, .LANCHOR123 add x20, x20, x21, lsl 6 - ldrb w4, [x2, #:lo12:.LANCHOR121] + ldrb w4, [x2, #:lo12:.LANCHOR123] mov x2, x24 ldr x3, [x20, 24] ldr w1, [x20, 40] @@ -11475,127 +11592,127 @@ queue_wait_first_req_completed: bl flash_read_page_en ldr w2, [x20, 36] cmn w2, #1 - beq .L1928 + beq .L1955 ldr x0, [x20, 24] ldr w4, [x0, 4] cmp w2, w4 - beq .L1928 + beq .L1955 adrp x1, .LANCHOR14 ldr w1, [x1, #:lo12:.LANCHOR14] - tbz x1, 6, .L1928 + tbz x1, 6, .L1955 ldr w3, [x0] adrp x0, .LC119 ldr w1, [x20, 40] add x0, x0, :lo12:.LC119 bl printf -.L1928: - add x0, x19, :lo12:.LANCHOR49 +.L1955: + add x0, x19, :lo12:.LANCHOR50 add x0, x0, x21, lsl 6 ldr w1, [x0, 36] cmn w1, #1 - beq .L1926 + beq .L1953 ldr x0, [x0, 24] ldr w0, [x0, 4] cmp w1, w0 - beq .L1926 - adrp x1, .LANCHOR165 + beq .L1953 + adrp x1, .LANCHOR167 adrp x0, .LC0 - mov w2, 353 - add x1, x1, :lo12:.LANCHOR165 + mov w2, 375 + add x1, x1, :lo12:.LANCHOR167 add x0, x0, :lo12:.LC0 bl printf -.L1926: - add x19, x19, :lo12:.LANCHOR49 - mov w0, 12 +.L1953: + add x19, x19, :lo12:.LANCHOR50 + mov w0, 13 add x21, x19, x21, lsl 6 strb w0, [x21, 58] ldrb w0, [x21, 2] str w23, [x21, 52] orr w0, w0, 8 strb w0, [x21, 2] - b .L1937 -.L1913: + b .L1964 +.L1940: mov w1, 64 mov w0, w24 bl flash_wait_device_ready mov w21, w0 - tbz x21, 6, .L1937 - add x19, x19, :lo12:.LANCHOR49 + tbz x21, 6, .L1964 + add x19, x19, :lo12:.LANCHOR50 mov w0, 5 add x20, x19, x20, lsl 6 tst w21, w0 - beq .L1936 + beq .L1963 ldrb w1, [x20, 1] - mov w0, 11 + mov w0, 12 ldr w3, [x20, 40] - mov w4, 11 + mov w4, 12 strb w0, [x20, 58] mov w2, w21 adrp x0, .LC120 add x0, x0, :lo12:.LC120 bl printf -.L1997: +.L2024: mov w0, -1 str w0, [x20, 52] - b .L1907 -.L1916: - cmp w2, 10 - add x21, x19, :lo12:.LANCHOR49 + b .L1934 +.L1943: + cmp w2, 11 + add x21, x19, :lo12:.LANCHOR50 ubfiz x0, x0, 6, 8 mov w1, 3 - mov w2, 9 + mov w2, 10 add x0, x21, x0 csel w2, w2, w1, eq ubfx x3, x24, 21, 3 mov x22, x21 -.L1931: +.L1958: ldrb w1, [x0] cmp w1, 255 - bne .L1935 + bne .L1962 mov w21, -1 - b .L1907 -.L1935: + b .L1934 +.L1962: sxtw x23, w1 ubfiz x0, x1, 6, 8 add x1, x22, x23, lsl 6 add x0, x22, x0 ldrb w4, [x1, 58] cmp w4, w2 - bne .L1931 + bne .L1958 ldr w1, [x1, 40] ubfx x1, x1, 21, 3 cmp w3, w1 - bne .L1931 + bne .L1958 mov w0, w24 mov w1, 64 bl flash_wait_device_ready mov w24, w0 and w21, w0, 64 - tbz x24, 6, .L1933 + tbz x24, 6, .L1960 add x22, x22, x20, lsl 6 ands w21, w0, 15 - beq .L1934 + beq .L1961 ldrb w1, [x22, 1] mov w2, w0 ldr w3, [x22, 40] - mov w4, 11 + mov w4, 12 adrp x0, .LC121 add x0, x0, :lo12:.LC121 mov w21, w24 bl printf - mov w0, 11 + mov w0, 12 strb w0, [x22, 58] mov w0, -1 str w0, [x22, 52] -.L1933: - add x1, x19, :lo12:.LANCHOR49 +.L1960: + add x1, x19, :lo12:.LANCHOR50 add x20, x1, x20, lsl 6 add x1, x1, x23, lsl 6 ldrb w0, [x20, 58] strb w0, [x1, 58] ldr w0, [x20, 52] str w0, [x1, 52] -.L1907: +.L1934: mov w0, w21 ldr x27, [sp, 80] ldp x19, x20, [sp, 16] @@ -11604,40 +11721,40 @@ queue_wait_first_req_completed: ldp x25, x26, [sp, 64] ldp x29, x30, [sp], 96 ret -.L1934: - mov w0, 12 +.L1961: + mov w0, 13 str wzr, [x22, 52] strb w0, [x22, 58] - b .L1933 -.L1914: + b .L1960 +.L1941: mov w1, 32 mov w0, w24 bl flash_wait_device_ready mov w21, w0 - tbz x21, 5, .L1937 - add x19, x19, :lo12:.LANCHOR49 + tbz x21, 5, .L1964 + add x19, x19, :lo12:.LANCHOR50 tst x21, 15 add x20, x19, x20, lsl 6 - beq .L1936 - mov w0, 11 - strb w0, [x20, 58] - b .L1997 -.L1936: + beq .L1963 mov w0, 12 + strb w0, [x20, 58] + b .L2024 +.L1963: + mov w0, 13 str wzr, [x20, 52] strb w0, [x20, 58] - b .L1937 -.L1915: + b .L1964 +.L1942: mov w1, 64 mov w0, w24 bl flash_wait_device_ready - tbz x0, 6, .L1937 - add x19, x19, :lo12:.LANCHOR49 + tbz x0, 6, .L1964 + add x19, x19, :lo12:.LANCHOR50 add x19, x19, x20, lsl 6 str w0, [x19, 52] - mov w0, 6 + mov w0, 7 strb w0, [x19, 58] - b .L1937 + b .L1964 .size queue_wait_first_req_completed, .-queue_wait_first_req_completed .section .text.sblk_wait_write_queue_completed,"ax",@progbits .align 2 @@ -11647,19 +11764,19 @@ sblk_wait_write_queue_completed: stp x29, x30, [sp, -32]! add x29, sp, 0 str x19, [sp, 16] - adrp x19, .LANCHOR53 - add x19, x19, :lo12:.LANCHOR53 -.L1999: + adrp x19, .LANCHOR54 + add x19, x19, :lo12:.LANCHOR54 +.L2026: ldrb w0, [x19] cmp w0, 255 - bne .L2000 + bne .L2027 ldr x19, [sp, 16] ldp x29, x30, [sp], 32 ret -.L2000: +.L2027: bl queue_wait_first_req_completed bl queue_remove_completed_req - b .L1999 + b .L2026 .size sblk_wait_write_queue_completed, .-sblk_wait_write_queue_completed .section .text.ftl_read_page,"ax",@progbits .align 2 @@ -11722,24 +11839,24 @@ sblk_read_page: stp x21, x22, [sp, 32] and w22, w1, 255 stp x19, x20, [sp, 16] - adrp x21, .LANCHOR49 + adrp x21, .LANCHOR50 stp x23, x24, [sp, 48] mov x19, x0 stp x25, x26, [sp, 64] mov x23, x0 - adrp x26, .LANCHOR166 + adrp x26, .LANCHOR168 mov w20, w22 - add x26, x26, :lo12:.LANCHOR166 - add x21, x21, :lo12:.LANCHOR49 + add x26, x26, :lo12:.LANCHOR168 + add x21, x21, :lo12:.LANCHOR50 stp x27, x28, [sp, 80] - adrp x27, .LANCHOR105 -.L2007: - cbnz w20, .L2017 -.L2030: - adrp x19, .LANCHOR49 - add x19, x19, :lo12:.LANCHOR49 -.L2018: - cbnz w22, .L2020 + adrp x27, .LANCHOR107 +.L2034: + cbnz w20, .L2044 +.L2057: + adrp x19, .LANCHOR50 + add x19, x19, :lo12:.LANCHOR50 +.L2045: + cbnz w22, .L2047 ldp x19, x20, [sp, 16] mov w0, 0 ldp x21, x22, [sp, 32] @@ -11748,55 +11865,55 @@ sblk_read_page: ldp x27, x28, [sp, 80] ldp x29, x30, [sp], 128 ret -.L2017: +.L2044: ldrb w24, [x19] ldr w25, [x19, 40] -.L2008: +.L2035: mov w1, 0 mov w0, w25 bl queue_lun_state - cbnz w0, .L2009 + cbnz w0, .L2036 cmp w20, 1 - beq .L2014 + beq .L2041 ldrb w0, [x26] - cbnz w0, .L2011 -.L2014: + cbnz w0, .L2038 +.L2041: mov x0, x19 bl queue_read_cmd - b .L2012 -.L2009: + b .L2039 +.L2036: bl queue_wait_first_req_completed bl queue_remove_completed_req - b .L2008 -.L2011: + b .L2035 +.L2038: ldrb w0, [x19] ubfx x4, x25, 21, 3 cmp w0, 255 - bne .L2013 + bne .L2040 str w4, [x29, 124] - mov w2, 624 - adrp x1, .LANCHOR167 + mov w2, 652 + adrp x1, .LANCHOR169 adrp x0, .LC0 - add x1, x1, :lo12:.LANCHOR167 + add x1, x1, :lo12:.LANCHOR169 add x0, x0, :lo12:.LC0 bl printf ldr w4, [x29, 124] -.L2013: +.L2040: ldrb w28, [x19] sbfiz x2, x28, 6, 32 add x3, x21, x2 ldr w1, [x3, 40] ubfx x0, x1, 21, 3 cmp w4, w0 - bne .L2014 - ldrh w0, [x27, #:lo12:.LANCHOR105] + bne .L2041 + ldrh w0, [x27, #:lo12:.LANCHOR107] add w25, w0, w25 cmp w1, w25 - bne .L2014 + bne .L2041 ldr w0, [x19, 40] - adrp x25, .LANCHOR53 + adrp x25, .LANCHOR54 ldrb w24, [x21, x2] - add x25, x25, :lo12:.LANCHOR53 + add x25, x25, :lo12:.LANCHOR54 stp x3, x2, [x29, 104] sub w20, w20, #1 bl flash_start_plane_read @@ -11818,26 +11935,26 @@ sblk_read_page: add x1, x21, x1 strb w4, [x21, x2] bl buf_add_tail -.L2012: +.L2039: subs w20, w20, #1 - beq .L2030 + beq .L2057 ubfiz x19, x24, 6, 8 add x19, x21, x19 - b .L2007 -.L2020: + b .L2034 +.L2047: ldrb w0, [x23, 58] - cmp w0, 12 - bne .L2019 + cmp w0, 13 + bne .L2046 ldrb w0, [x23] sub w22, w22, #1 cmp w0, 255 - beq .L2019 + beq .L2046 ubfiz x23, x0, 6, 8 add x23, x19, x23 -.L2019: +.L2046: bl queue_wait_first_req_completed bl queue_remove_completed_req - b .L2018 + b .L2045 .size sblk_read_page, .-sblk_read_page .section .text.flash_prog_page,"ax",@progbits .align 2 @@ -11848,86 +11965,84 @@ flash_prog_page: add x29, sp, 0 stp x19, x20, [sp, 16] and w20, w0, 255 - stp x21, x22, [sp, 32] adrp x0, .LANCHOR13 - adrp x22, .LANCHOR14 - stp x25, x26, [sp, 64] - ldr x25, [x0, #:lo12:.LANCHOR13] - mov w21, w1 - ldr w0, [x22, #:lo12:.LANCHOR14] - and x19, x20, 255 stp x23, x24, [sp, 48] - add x23, x19, 8 - stp x27, x28, [sp, 80] + stp x21, x22, [sp, 32] + and x19, x20, 255 + ldr x24, [x0, #:lo12:.LANCHOR13] + adrp x0, .LANCHOR14 + stp x25, x26, [sp, 64] + mov w21, w1 + ldr w0, [x0, #:lo12:.LANCHOR14] + add x22, x19, 8 + str x27, [sp, 80] mov x26, x2 + add x22, x24, x22, lsl 8 + and w23, w1, 2097151 + ubfx x25, x21, 24, 2 mov x27, x3 - add x23, x25, x23, lsl 8 - and w24, w1, 2097151 - ubfx x28, x21, 24, 2 - tbz x0, 4, .L2033 + tbz x0, 4, .L2060 adrp x0, .LC122 mov w3, w4 - mov w2, w28 + mov w2, w25 add x0, x0, :lo12:.LC122 bl printf -.L2033: +.L2060: bl nandc_wait_flash_ready mov w0, w20 bl hynix_reconfig_rr_para mov w0, w20 bl nandc_cs mov w0, w20 - cbnz w28, .L2034 + cbnz w25, .L2061 bl zftl_flash_enter_slc_mode -.L2035: - add x19, x25, x19, lsl 8 +.L2062: + add x19, x24, x19, lsl 8 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, w24, 8 + lsr w0, w23, 8 str w0, [x19, 2052] - lsr w0, w24, 16 + lsr w0, w23, 16 str w0, [x19, 2052] - mov w0, w24 + mov w0, w23 bl nandc_set_seed - adrp x0, .LANCHOR34+9 + adrp x0, .LANCHOR30+9 mov x3, x27 mov x2, x26 - ldrb w1, [x0, #:lo12:.LANCHOR34+9] + ldrb w1, [x0, #:lo12:.LANCHOR30+9] mov w0, 1 bl nandc_xfer_start bl nandc_xfer_done mov w0, 16 str w0, [x19, 2056] bl nandc_wait_flash_ready - mov x0, x23 + mov x0, x22 bl flash_read_status mov w2, w0 - bl nandc_de_cs.constprop.29 + bl nandc_de_cs.constprop.28 and w19, w2, 4 - tbz x2, 2, .L2032 - ldr w0, [x22, #:lo12:.LANCHOR14] - tbz x0, 12, .L2032 + tbz x2, 2, .L2059 adrp x0, .LC123 mov w2, w19 mov w1, w21 add x0, x0, :lo12:.LC123 bl printf -.L2032: +.L2059: 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 x27, x28, [sp, 80] ldp x29, x30, [sp], 96 ret -.L2034: +.L2061: bl zftl_flash_exit_slc_mode - b .L2035 + b .L2062 .size flash_prog_page, .-flash_prog_page .section .text.flash_test_blk,"ax",@progbits .align 2 @@ -11938,16 +12053,16 @@ flash_test_blk: mov w2, 32 add x29, sp, 0 stp x21, x22, [sp, 32] - adrp x22, .LANCHOR151 + adrp x22, .LANCHOR156 stp x19, x20, [sp, 16] and w20, w0, 255 - ldr x0, [x22, #:lo12:.LANCHOR151] - adrp x21, .LANCHOR153 + ldr x0, [x22, #:lo12:.LANCHOR156] + adrp x21, .LANCHOR158 and w19, w1, 65535 str x23, [sp, 48] mov w1, 165 bl ftl_memset - ldr x0, [x21, #:lo12:.LANCHOR153] + ldr x0, [x21, #:lo12:.LANCHOR158] mov w2, 8 mov w1, 90 bl ftl_memset @@ -11958,10 +12073,10 @@ flash_test_blk: mov w1, w19 bl flash_erase_block cmn w0, #1 - bne .L2048 -.L2050: + bne .L2072 +.L2074: mov w21, -1 -.L2049: +.L2073: mov w1, w19 mov w0, w20 bl flash_erase_block @@ -11971,38 +12086,38 @@ flash_test_blk: ldp x21, x22, [sp, 32] ldp x29, x30, [sp], 64 ret -.L2048: - adrp x23, .LANCHOR34 - add x23, x23, :lo12:.LANCHOR34 - ldr x3, [x21, #:lo12:.LANCHOR153] +.L2072: + adrp x23, .LANCHOR30 + add x23, x23, :lo12:.LANCHOR30 + ldr x3, [x21, #:lo12:.LANCHOR158] mov w1, w19 - ldr x2, [x22, #:lo12:.LANCHOR151] + ldr x2, [x22, #:lo12:.LANCHOR156] mov w0, w20 ldrb w4, [x23, 9] bl flash_prog_page cmn w0, #1 - beq .L2050 + beq .L2074 ldrb w4, [x23, 9] mov w1, w19 - ldr x3, [x21, #:lo12:.LANCHOR153] + ldr x3, [x21, #:lo12:.LANCHOR158] mov w0, w20 - ldr x2, [x22, #:lo12:.LANCHOR151] + ldr x2, [x22, #:lo12:.LANCHOR156] bl flash_read_page cmn w0, #1 - beq .L2050 - ldr x0, [x22, #:lo12:.LANCHOR151] + beq .L2074 + ldr x0, [x22, #:lo12:.LANCHOR156] ldr w1, [x0] mov w0, 42405 movk w0, 0xa5a5, lsl 16 cmp w1, w0 - bne .L2050 - ldr x0, [x21, #:lo12:.LANCHOR153] + bne .L2074 + ldr x0, [x21, #:lo12:.LANCHOR158] ldr w1, [x0] mov w0, 23130 movk w0, 0x5a5a, lsl 16 cmp w1, w0 csetm w21, ne - b .L2049 + b .L2073 .size flash_test_blk, .-flash_test_blk .section .text.id_block_prog_msb_ff_data,"ax",@progbits .align 2 @@ -12013,50 +12128,50 @@ id_block_prog_msb_ff_data: add x29, sp, 0 stp x21, x22, [sp, 32] and w22, w0, 255 - adrp x0, .LANCHOR168 + adrp x0, .LANCHOR49 stp x19, x20, [sp, 16] stp x23, x24, [sp, 48] - ldrb w0, [x0, #:lo12:.LANCHOR168] + ldrb w0, [x0, #:lo12:.LANCHOR49] str x25, [sp, 64] - cbnz w0, .L2058 - adrp x20, .LANCHOR34 - add x20, x20, :lo12:.LANCHOR34 + cbnz w0, .L2082 + adrp x20, .LANCHOR30 + add x20, x20, :lo12:.LANCHOR30 ldrb w0, [x20, 19] sub w0, w0, #5 and w3, w0, 255 cmp w3, 63 - bhi .L2058 + bhi .L2082 and w19, w2, 65535 mov x2, 16391 movk x2, 0x4000, lsl 16 movk x2, 0x8000, lsl 48 lsr x0, x2, x3 - tbz x0, 0, .L2058 - adrp x21, .LANCHOR133 + tbz x0, 0, .L2082 + adrp x21, .LANCHOR138 mov w23, w1 - add x21, x21, :lo12:.LANCHOR133 + add x21, x21, :lo12:.LANCHOR138 mov w25, 65535 - adrp x24, .LANCHOR151 -.L2060: + adrp x24, .LANCHOR156 +.L2084: ldrh w0, [x20, 10] cmp w0, w19 - bhi .L2061 -.L2058: + bhi .L2085 +.L2082: 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 -.L2061: +.L2085: ldrh w0, [x21, w19, sxtw 1] cmp w0, w25 - bne .L2058 - ldr x0, [x24, #:lo12:.LANCHOR151] + bne .L2082 + ldr x0, [x24, #:lo12:.LANCHOR156] mov w2, 16384 mov w1, 255 bl ftl_memset - ldr x3, [x24, #:lo12:.LANCHOR151] + ldr x3, [x24, #:lo12:.LANCHOR156] add w1, w19, w23 ldrb w4, [x20, 9] add w19, w19, 1 @@ -12064,497 +12179,707 @@ id_block_prog_msb_ff_data: mov w0, w22 and w19, w19, 65535 bl flash_prog_page - b .L2060 + b .L2084 .size id_block_prog_msb_ff_data, .-id_block_prog_msb_ff_data + .section .text.flash_dual_page_prog,"ax",@progbits + .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] + and w22, w0, 255 + adrp x0, .LANCHOR13 + stp x23, x24, [sp, 48] + stp x19, x20, [sp, 16] + and x19, x22, 255 + ldr x23, [x0, #:lo12:.LANCHOR13] + add x0, x19, 8 + stp x27, x28, [sp, 80] + mov x27, x2 + stp x25, x26, [sp, 64] + mov w21, w1 + add x0, x23, x0, lsl 8 + str x0, [x29, 104] + adrp x0, .LANCHOR14 + str x0, [x29, 96] + mov x28, x3 + mov x25, x4 + ldr w2, [x0, #:lo12:.LANCHOR14] + mov x26, x5 + and w20, w1, 2097151 + ubfx x24, x21, 24, 2 + tbz x2, 4, .L2088 + adrp x0, .LC122 + mov w3, w6 + mov w2, w24 + add x0, x0, :lo12:.LC122 + bl printf +.L2088: + bl nandc_wait_flash_ready + mov w0, w22 + bl nandc_cs + mov w0, w22 + cbnz w24, .L2089 + bl zftl_flash_enter_slc_mode +.L2090: + add x19, x23, x19, lsl 8 + mov w24, 128 + and w0, w21, 255 + adrp x22, .LANCHOR30 + add x22, x22, :lo12:.LANCHOR30 + mov w23, 16 + str w24, [x19, 2056] + str wzr, [x19, 2052] + str wzr, [x19, 2052] + str w0, [x19, 2052] + lsr w0, w20, 8 + str w0, [x19, 2052] + lsr w0, w20, 16 + str w0, [x19, 2052] + mov w0, w20 + bl nandc_set_seed + ldrb w1, [x22, 9] + mov x3, x28 + mov x2, x27 + mov w0, 1 + bl nandc_xfer_start + bl nandc_xfer_done + str w23, [x19, 2056] + bl nandc_wait_flash_ready + str w24, [x19, 2056] + str wzr, [x19, 2052] + add w0, w20, 1 + str wzr, [x19, 2052] + and w1, w0, 255 + str w1, [x19, 2052] + lsr w1, w0, 8 + str w1, [x19, 2052] + lsr w1, w0, 16 + str w1, [x19, 2052] + bl nandc_set_seed + ldrb w1, [x22, 9] + mov x3, x26 + mov x2, x25 + mov w0, 1 + bl nandc_xfer_start + bl nandc_xfer_done + str w23, [x19, 2056] + bl nandc_wait_flash_ready + ldr x0, [x29, 104] + bl flash_read_status + mov w2, w0 + bl nandc_de_cs.constprop.28 + and w19, w2, 4 + tbz x2, 2, .L2087 + ldr x0, [x29, 96] + ldr w0, [x0, #:lo12:.LANCHOR14] + tbz x0, 12, .L2087 + adrp x0, .LC123 + mov w2, w19 + mov w1, w21 + add x0, x0, :lo12:.LC123 + bl printf +.L2087: + 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 +.L2089: + bl zftl_flash_exit_slc_mode + b .L2090 + .size flash_dual_page_prog, .-flash_dual_page_prog + .section .text.fw_flash_page_prog.constprop.25,"ax",@progbits + .align 2 + .type fw_flash_page_prog.constprop.25, %function +fw_flash_page_prog.constprop.25: + stp x29, x30, [sp, -64]! + adrp x4, .LANCHOR30 + add x4, x4, :lo12:.LANCHOR30 + add x29, sp, 0 + stp x19, x20, [sp, 16] + mov x20, x1 + stp x21, x22, [sp, 32] + mov x21, x2 + str x23, [sp, 48] + ldrb w19, [x4, 9] + udiv w19, w0, w19 + adrp x0, .LANCHOR43 + ldrb w23, [x0, #:lo12:.LANCHOR43] + adrp x0, .LANCHOR17 + ldrb w0, [x0, #:lo12:.LANCHOR17] + bl nandc_bch_sel + ldrb w0, [x4, 7] + cmp w0, 9 + bne .L2103 + adrp x22, .LANCHOR156 + mov w2, 16384 + mov w1, 255 + ldr x0, [x22, #:lo12:.LANCHOR156] + bl ftl_memset + ldr x5, [x22, #:lo12:.LANCHOR156] + mov w6, 4 + mov x3, x21 + mov x2, x20 + mov x4, x5 + mov w1, w19 + mov w0, 0 + bl flash_dual_page_prog +.L2106: + mov w3, w0 + mov w0, w23 + bl nandc_bch_sel + ldr x23, [sp, 48] + mov w0, w3 + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x29, x30, [sp], 64 + ret +.L2103: + mov w4, 4 + mov x3, x21 + mov x2, x20 + mov w1, w19 + mov w0, 0 + bl flash_prog_page + b .L2106 + .size fw_flash_page_prog.constprop.25, .-fw_flash_page_prog.constprop.25 .section .text.idb_write_data,"ax",@progbits .align 2 .global idb_write_data .type idb_write_data, %function idb_write_data: - stp x29, x30, [sp, -256]! + stp x29, x30, [sp, -272]! add w0, w1, w3 - mov w4, w1 cmp w0, 63 add x29, sp, 0 stp x19, x20, [sp, 16] + mov w19, w1 stp x21, x22, [sp, 32] + adrp x22, .LANCHOR135 + stp x27, x28, [sp, 80] stp x23, x24, [sp, 48] stp x25, x26, [sp, 64] - stp x27, x28, [sp, 80] - bls .L2064 + ldr x28, [x22, #:lo12:.LANCHOR135] + bls .L2108 cmp w1, 575 - bhi .L2065 - adrp x0, .LANCHOR169 - mov x1, x2 - mov w2, 1 - cmp w4, 64 - str w2, [x0, #:lo12:.LANCHOR169] - adrp x0, idb_buf - bhi .L2066 - mov w2, 64 - sub w4, w2, w4 - sub w2, w3, w4 - ubfiz x4, x4, 9, 25 - lsl w2, w2, 9 - add x1, x1, x4 - add x0, x0, :lo12:idb_buf -.L2142: - bl ftl_memcpy -.L2121: + bhi .L2109 + mov x21, x2 + mov w20, w3 + cbnz x28, .L2110 + mov w0, 262144 + bl ftl_malloc + str x0, [x22, #:lo12:.LANCHOR135] + cbnz x0, .L2111 +.L2116: + mov w0, -1 +.L2107: ldp x19, x20, [sp, 16] - mov w0, 0 ldp x21, x22, [sp, 32] ldp x23, x24, [sp, 48] ldp x25, x26, [sp, 64] ldp x27, x28, [sp, 80] - ldp x29, x30, [sp], 256 + ldp x29, x30, [sp], 272 ret -.L2066: - mov w2, 576 - sub w2, w2, w4 - cmp w3, w2 - sub w4, w4, #64 - csel w2, w3, w2, ls - ubfiz x4, x4, 9, 25 - add x0, x0, :lo12:idb_buf - lsl w2, w2, 9 - add x0, x0, x4 - b .L2142 -.L2064: - cmp w1, 575 - bls .L2121 -.L2065: - adrp x0, .LANCHOR169 - ldr w0, [x0, #:lo12:.LANCHOR169] - cbz w0, .L2121 - adrp x0, idb_buf - mov w1, 35899 - movk w1, 0xfcdc, lsl 16 - ldr w2, [x0, #:lo12:idb_buf] - cmp w2, w1 - bne .L2069 - adrp x3, .LANCHOR34 - add x1, x3, :lo12:.LANCHOR34 - str x3, [x29, 176] - add x6, x0, :lo12:idb_buf - adrp x3, idb_buf+262140 - add x3, x3, :lo12:idb_buf+262140 - ldrh w2, [x1, 10] - ldrb w4, [x1, 12] - ldrb w20, [x1, 9] - lsl w2, w2, 2 - ldrh w19, [x1, 26] +.L2111: + mov w2, 262144 mov w1, 0 - sdiv w27, w2, w4 - mov w2, 512 - mov w4, 4097 - cmp w27, 512 - csel w27, w27, w2, lt + bl ftl_memset +.L2110: + adrp x23, .LANCHOR137 + ldr x0, [x23, #:lo12:.LANCHOR137] + cbz x0, .L2113 +.L2117: + adrp x1, .LANCHOR136 + mov w2, 1 + ldr x0, [x22, #:lo12:.LANCHOR135] + cmp w19, 64 + str w2, [x1, #:lo12:.LANCHOR136] + bhi .L2213 + mov w1, 64 + sub w19, w1, w19 + sub w2, w20, w19 + ubfiz x19, x19, 9, 25 + lsl w2, w2, 9 + add x1, x21, x19 +.L2219: + bl ftl_memcpy +.L2218: + mov w0, 0 + b .L2107 +.L2113: + mov w0, 262144 + bl ftl_malloc + str x0, [x23, #:lo12:.LANCHOR137] + cbnz x0, .L2117 + b .L2116 +.L2213: + mov w2, 576 + sub w2, w2, w19 + cmp w20, w2 + sub w19, w19, #64 + csel w2, w20, w2, ls + ubfiz x19, x19, 9, 25 + lsl w2, w2, 9 + mov x1, x21 + add x0, x0, x19 + b .L2219 +.L2108: + cmp w1, 575 + bls .L2218 +.L2109: + adrp x0, .LANCHOR136 + ldr w0, [x0, #:lo12:.LANCHOR136] + cbz w0, .L2218 + adrp x1, .LANCHOR30 + add x0, x1, :lo12:.LANCHOR30 + str x1, [x29, 152] + adrp x8, .LANCHOR49 + ldrb w20, [x0, 9] + ldrh w19, [x0, 26] + adrp x0, .LANCHOR0 + mov x7, x0 + ldrb w2, [x0, #:lo12:.LANCHOR0] + str w2, [x29, 160] + uxtw x0, w2 + cbz w0, .L2166 + ldrb w0, [x8, #:lo12:.LANCHOR49] + cmp w0, 0 + cset w0, eq + str w0, [x29, 164] +.L2119: + mov w0, 0 + bl zftl_flash_exit_slc_mode + ldrb w0, [x8, #:lo12:.LANCHOR49] + strb w0, [x7, #:lo12:.LANCHOR0] + mov w0, 35899 + ldr w1, [x28] + movk w0, 0xfcdc, lsl 16 + cmp w1, w0 + bne .L2121 + ldr x0, [x29, 152] mov w2, 65535 -.L2073: - ldr w5, [x3] - cbnz w5, .L2071 - ldr w5, [x6, w1, uxtw 2] - add w1, w1, 1 - str w5, [x3], -4 - cmp w1, w4 + mov w3, 4097 + add x1, x0, :lo12:.LANCHOR30 + ldrh w0, [x1, 10] + ldrb w1, [x1, 12] + lsl w0, w0, 2 + sdiv w25, w0, w1 + mov w0, 512 + cmp w25, 512 + csel w25, w25, w0, lt + mov x0, 262140 + add x1, x28, x0 + mov w0, 0 +.L2125: + ldr w4, [x1] + cbnz w4, .L2123 + ldr w4, [x28, w0, uxtw 2] + add w0, w0, 1 + str w4, [x1], -4 + cmp w0, w3 sub w2, w2, #1 - csel w1, w1, wzr, cc + csel w0, w0, wzr, cc cmp w2, 4096 - bne .L2073 -.L2071: - add x0, x0, :lo12:idb_buf + bne .L2125 +.L2123: + ldr w1, [x28, w2, uxtw 2] mul w19, w19, w20 - mov w3, w27 - ldr w1, [x0, w2, uxtw 2] + mov w3, w25 adrp x0, .LC124 add x0, x0, :lo12:.LC124 bl printf - stp wzr, wzr, [x29, 168] + stp wzr, wzr, [x29, 192] and w0, w19, 65535 - str w0, [x29, 132] - adrp x0, gp_flash_check_buf - add x0, x0, :lo12:gp_flash_check_buf - str x0, [x29, 184] -.L2107: - adrp x0, gp_flash_check_buf - add x20, x0, :lo12:gp_flash_check_buf + str w0, [x29, 140] + adrp x0, .LANCHOR45 + add x0, x0, :lo12:.LANCHOR45 + str x0, [x29, 200] +.L2162: + adrp x20, .LANCHOR137 mov w1, 0 mov w2, 512 - mov x0, x20 + ldr x0, [x20, #:lo12:.LANCHOR137] bl ftl_memset adrp x0, .LANCHOR26 - ldr w1, [x29, 172] + ldr w1, [x29, 196] ldr x0, [x0, #:lo12:.LANCHOR26] add x0, x0, x1, uxtw ldrb w0, [x0, 32] cmp w0, 255 - beq .L2074 - ldr w1, [x29, 132] - adrp x19, .LANCHOR45 + beq .L2126 + ldr w1, [x29, 140] mul w26, w0, w1 - ldr x0, [x29, 176] - add x25, x0, :lo12:.LANCHOR34 - ldrb w0, [x19, #:lo12:.LANCHOR45] - str w0, [x29, 128] - strb wzr, [x19, #:lo12:.LANCHOR45] + ldr w0, [x29, 164] + cbz w0, .L2127 mov w0, 0 - ldrb w21, [x25, 9] - ldrh w23, [x25, 26] + bl zftl_flash_exit_slc_mode + adrp x0, .LANCHOR0 + strb wzr, [x0, #:lo12:.LANCHOR0] + adrp x0, .LANCHOR49 + strb wzr, [x0, #:lo12:.LANCHOR49] +.L2127: + ldr x0, [x29, 152] + add x24, x0, :lo12:.LANCHOR30 + ldr x0, [x29, 200] + ldrb w21, [x24, 9] + ldrb w0, [x0] + str w0, [x29, 136] + ldr x0, [x29, 200] udiv w1, w26, w21 - mul w23, w21, w23 - and w22, w23, 65535 + ldrh w22, [x24, 26] + strb wzr, [x0] + mov w0, 0 bl flash_erase_block - udiv w23, w26, w22 - msub w23, w23, w22, w26 - sub w24, w26, w23 - cmp w26, w24 - bne .L2111 + mul w22, w21, w22 + ldrh w0, [x24, 10] + and w19, w22, 65535 + ldrb w1, [x24, 12] + lsl w0, w0, 2 + udiv w22, w26, w19 + sdiv w0, w0, w1 + msub w22, w22, w19, w26 + str w0, [x29, 184] + sub w23, w26, w22 + cmp w26, w23 + bne .L2169 adrp x0, .LANCHOR27 ldrb w0, [x0, #:lo12:.LANCHOR27] cmp w0, 9 - bne .L2111 + bne .L2169 + ldr x27, [x20, #:lo12:.LANCHOR137] mov w2, 1024 mov w1, 0 - mov x0, x20 + mov x0, x27 bl ftl_memset - adrp x1, gp_flash_check_buf mov w0, 18766 movk w0, 0x464e, lsl 16 - ldrb w2, [x25, 12] - str w0, [x1, #:lo12:gp_flash_check_buf] - cmp w21, 8 - ldrb w0, [x25, 29] - mov w1, 12 - strb w0, [x20, 16] + str w0, [x27] + mov w0, 12 + str w0, [x27, 4] + adrp x0, .LANCHOR49 + strb wzr, [x27, 16] + str wzr, [x27, 12] + ldrb w0, [x0, #:lo12:.LANCHOR49] + cbz w0, .L2129 + ldrb w0, [x24, 29] + strb w0, [x27, 16] +.L2129: mov w0, 4 - strb w0, [x20, 17] - ldrh w0, [x25, 10] - str w1, [x20, 4] - strb wzr, [x20, 20] - str wzr, [x20, 12] - sdiv w0, w0, w2 - mov w2, 16 - strh w0, [x20, 18] + strb w0, [x27, 17] + adrp x0, .LANCHOR30 + add x0, x0, :lo12:.LANCHOR30 + cmp w21, 8 + strb wzr, [x27, 20] + strh wzr, [x27, 22] + ldrh w1, [x0, 10] + ldrb w0, [x0, 12] + sdiv w0, w1, w0 + mov w1, 16 + strh w0, [x27, 18] mov w0, 70 - csel w0, w0, w2, hi - ldr x2, [x29, 184] - strb w0, [x2, 21] - adrp x0, gp_flash_check_buf+12 - strh wzr, [x2, 22] - add x0, x0, :lo12:gp_flash_check_buf+12 + csel w0, w0, w1, hi + strb w0, [x27, 21] + mov w1, 12 + add x0, x27, 12 bl js_hash - ldr x1, [x29, 184] - mov x6, x1 - str w0, [x1, 8] - sub w0, w27, #4 - str w0, [x29, 164] -.L2075: - adrp x22, idb_buf - adrp x28, .LANCHOR168 - add x22, x22, :lo12:idb_buf - add x0, x28, :lo12:.LANCHOR168 - adrp x25, .LANCHOR3 - str x0, [x29, 152] - mov w20, 0 - add x0, x25, :lo12:.LANCHOR3 - str x0, [x29, 144] -.L2077: - cmp w27, w20 - bhi .L2088 - ldr x0, [x29, 176] - add x25, x19, :lo12:.LANCHOR45 - strb wzr, [x19, #:lo12:.LANCHOR45] - mov w21, 4 - add x0, x0, :lo12:.LANCHOR34 - mov w22, 0 - str wzr, [x29, 144] - ldrb w1, [x0, 9] - ldrh w28, [x0, 26] - uxtw x0, w1 - mul w28, w0, w28 - and w28, w28, 65535 - udiv w0, w26, w28 - msub w28, w0, w28, w26 - sub w0, w26, w28 - stp w0, w1, [x29, 136] - and w0, w28, 3 - str w0, [x29, 152] - ldr w0, [x29, 164] - str w0, [x29, 160] - adrp x0, gp_flash_check_buf - add x20, x0, :lo12:gp_flash_check_buf + str w0, [x27, 8] + sub w0, w25, #4 + str w0, [x29, 188] +.L2128: + adrp x0, .LANCHOR49 + mov x24, x28 + add x0, x0, :lo12:.LANCHOR49 + mov w19, 0 + str x0, [x29, 176] adrp x0, .LANCHOR3 add x0, x0, :lo12:.LANCHOR3 - str x0, [x29, 104] -.L2089: - ldr w0, [x29, 160] - cmp w22, w0 - bcc .L2103 + str x0, [x29, 168] +.L2131: + ldr w0, [x29, 184] + cmp w0, w19 + bhi .L2142 + ldr x0, [x29, 152] + mov w21, 4 + ldr x20, [x20, #:lo12:.LANCHOR137] + mov w22, 0 + add x0, x0, :lo12:.LANCHOR30 + str wzr, [x29, 176] + ldrb w1, [x0, 9] + ldrh w27, [x0, 26] + uxtw x0, w1 + mul w27, w0, w27 adrp x0, .LANCHOR45 - ldrb w1, [x29, 128] - adrp x3, idb_buf - add x3, x3, :lo12:idb_buf - strb w1, [x0, #:lo12:.LANCHOR45] - mov x1, 0 - ldr w0, [x29, 164] - lsl w0, w0, 7 -.L2104: - mov w19, w1 - cmp w1, w0 - bcc .L2105 - ldr w0, [x29, 168] - add w0, w0, 1 + and w27, w27, 65535 + strb wzr, [x0, #:lo12:.LANCHOR45] + udiv w0, w26, w27 + msub w27, w0, w27, w26 + sub w0, w26, w27 + stp w0, w1, [x29, 144] + and w0, w27, 3 + str w0, [x29, 184] + ldr w0, [x29, 188] str w0, [x29, 168] + adrp x0, .LANCHOR3 + add x0, x0, :lo12:.LANCHOR3 + str x0, [x29, 112] +.L2143: + ldr w0, [x29, 168] + cmp w22, w0 + bcc .L2157 + ldr x0, [x29, 200] + ldrb w1, [x29, 136] + strb w1, [x0] + ldr w0, [x29, 164] + cbz w0, .L2158 + mov w0, 0 + bl zftl_flash_exit_slc_mode + adrp x0, .LANCHOR0 + strb wzr, [x0, #:lo12:.LANCHOR0] + adrp x0, .LANCHOR49 + strb wzr, [x0, #:lo12:.LANCHOR49] +.L2158: + ldr w0, [x29, 188] + mov x2, 0 + lsl w1, w0, 7 + adrp x0, .LANCHOR137 + ldr x0, [x0, #:lo12:.LANCHOR137] +.L2159: + mov w19, w2 + cmp w2, w1 + bcc .L2160 + ldr w0, [x29, 192] + add w0, w0, 1 + str w0, [x29, 192] cmp w0, 5 - bls .L2074 - b .L2069 -.L2111: - mov x6, 0 - str w27, [x29, 164] - b .L2075 -.L2088: - ldr x2, [x29, 152] - add w5, w23, w20 - lsr w5, w5, 2 - add x0, x25, :lo12:.LANCHOR3 - add w1, w5, 1 + bls .L2126 + b .L2165 +.L2166: + str wzr, [x29, 164] + b .L2119 +.L2169: + mov x27, 0 + str w25, [x29, 188] + b .L2128 +.L2142: + ldr x2, [x29, 176] + add w4, w22, w19 + lsr w4, w4, 2 + adrp x0, .LANCHOR3 + add w1, w4, 1 + add x0, x0, :lo12:.LANCHOR3 ldrb w2, [x2] ldrh w0, [x0, w1, sxtw 1] - cbz w2, .L2079 + cbz w2, .L2133 adrp x0, .LANCHOR1 - ldrb w3, [x0, #:lo12:.LANCHOR1] + ldrb w5, [x0, #:lo12:.LANCHOR1] lsl w0, w1, 1 - cmp w3, 0 + cmp w5, 0 csel w0, w0, w1, ne -.L2079: +.L2133: adrp x1, .LANCHOR27 ldrb w1, [x1, #:lo12:.LANCHOR27] cmp w1, 9 - bne .L2081 -.L2140: - str w0, [x29, 192] + bne .L2135 +.L2216: + str w0, [x29, 208] mov w0, 61424 - str w0, [x29, 196] - ldr x0, [x29, 144] - ldrh w0, [x0, w5, sxtw 1] - cbnz w2, .L2083 - mov w5, w0 -.L2084: - mul w1, w21, w5 - adrp x2, .LANCHOR43 - adrp x0, .LANCHOR17 - cbnz x6, .L2085 - ldr x3, [x29, 176] - add w1, w1, w24 - ldrb w7, [x2, #:lo12:.LANCHOR43] - add x3, x3, :lo12:.LANCHOR34 - ldrb w0, [x0, #:lo12:.LANCHOR17] - str w5, [x29, 140] - str w7, [x29, 160] - ldrb w6, [x3, 9] - udiv w6, w1, w6 - bl nandc_bch_sel - mov w1, w6 - mov w4, 4 - add x3, x29, 192 - mov x2, x22 - mov w0, 0 - bl flash_prog_page - ldr w7, [x29, 160] - mov w0, w7 - bl nandc_bch_sel - ldrb w0, [x28, #:lo12:.LANCHOR168] - ldr w5, [x29, 140] - cbnz w0, .L2086 - udiv w1, w24, w21 - add w2, w5, 1 + str w0, [x29, 212] + ldr x0, [x29, 168] + ldrh w0, [x0, w4, sxtw 1] + cbnz w2, .L2137 + mov w4, w0 +.L2138: + mul w0, w21, w4 + cbnz x27, .L2139 + str w4, [x29, 148] + add x2, x29, 208 + mov x1, x24 + add w0, w0, w23 + bl fw_flash_page_prog.constprop.25 + adrp x0, .LANCHOR49 + ldr w4, [x29, 148] + ldrb w0, [x0, #:lo12:.LANCHOR49] + cbnz w0, .L2140 + udiv w1, w23, w21 + add w2, w4, 1 bl id_block_prog_msb_ff_data -.L2086: - add x22, x22, 2048 -.L2087: - add w20, w20, 4 - mov x6, 0 - and w20, w20, 65535 - b .L2077 -.L2081: +.L2140: + add x24, x24, 2048 +.L2141: + add w19, w19, 4 + mov x27, 0 + and w19, w19, 65535 + b .L2131 +.L2135: sub w0, w0, #1 lsl w0, w0, 2 - b .L2140 -.L2083: + b .L2216 +.L2137: adrp x0, .LANCHOR1 ldrb w1, [x0, #:lo12:.LANCHOR1] - lsl w0, w5, 1 + lsl w0, w4, 1 cmp w1, 0 - csel w5, w0, w5, ne - b .L2084 -.L2085: - ldr x3, [x29, 176] - add w1, w1, w24 - ldrb w7, [x2, #:lo12:.LANCHOR43] - add x3, x3, :lo12:.LANCHOR34 - ldrb w0, [x0, #:lo12:.LANCHOR17] - str w7, [x29, 160] - ldrb w5, [x3, 9] - udiv w5, w1, w5 - bl nandc_bch_sel - mov x2, x6 - mov w4, 4 - add x3, x29, 192 - mov w1, w5 - mov w0, 0 - bl flash_prog_page - ldr w7, [x29, 160] - mov w0, w7 - bl nandc_bch_sel - b .L2087 -.L2103: - add w19, w28, w22 - ldr w0, [x29, 152] - adrp x1, .LANCHOR168 + csel w4, w0, w4, ne + b .L2138 +.L2139: + add x2, x29, 208 + mov x1, x27 + add w0, w0, w23 + bl fw_flash_page_prog.constprop.25 + b .L2141 +.L2157: + add w19, w27, w22 + ldr w0, [x29, 184] + adrp x1, .LANCHOR49 sub w24, w21, w0 - ldr x0, [x29, 104] + ldr x0, [x29, 112] udiv w19, w19, w21 - ldrb w1, [x1, #:lo12:.LANCHOR168] + ldrb w1, [x1, #:lo12:.LANCHOR49] and w24, w24, 65535 and w19, w19, 65535 ldrh w0, [x0, w19, sxtw 1] - cbnz w1, .L2090 + cbnz w1, .L2144 mov w19, w0 -.L2091: +.L2145: adrp x0, .LANCHOR17 - ldr w1, [x29, 136] + ldr w1, [x29, 144] ldrb w23, [x0, #:lo12:.LANCHOR17] - ldr w0, [x29, 152] + ldr w0, [x29, 184] add w0, w0, w1 - ldr w1, [x29, 140] + ldr w1, [x29, 148] madd w19, w1, w19, w0 - ldr x0, [x29, 176] - add x0, x0, :lo12:.LANCHOR34 - ldrb w0, [x0, 9] + adrp x0, .LANCHOR30+9 + ldrb w0, [x0, #:lo12:.LANCHOR30+9] udiv w19, w19, w0 adrp x0, .LANCHOR43 ldrb w0, [x0, #:lo12:.LANCHOR43] - str w0, [x29, 124] + str w0, [x29, 132] mov w0, w23 bl nandc_bch_sel adrp x0, .LANCHOR20 add x0, x0, :lo12:.LANCHOR20 - str x0, [x29, 112] -.L2092: + str x0, [x29, 120] +.L2146: mov w4, w21 - add x3, x29, 192 + add x3, x29, 208 mov x2, x20 mov w1, w19 mov w0, 0 bl flash_read_page mov w5, w0 cmn w0, #1 - bne .L2093 - ldrb w6, [x25] - cbnz w6, .L2094 -.L2097: - adrp x0, .LANCHOR157 - ldr x6, [x0, #:lo12:.LANCHOR157] - cbnz x6, .L2095 -.L2096: - ldr x0, [x29, 112] + bne .L2147 + ldr x0, [x29, 200] + ldrb w6, [x0] + cbnz w6, .L2148 +.L2151: + adrp x0, .LANCHOR162 + ldr x6, [x0, #:lo12:.LANCHOR162] + cbnz x6, .L2149 +.L2150: + ldr x0, [x29, 120] ldrb w0, [x0] - cbz w0, .L2093 + cbz w0, .L2147 mov w4, w21 - add x3, x29, 192 + add x3, x29, 208 mov x2, x20 mov w1, w19 mov w0, 0 bl flash_ddr_tuning_read - b .L2141 -.L2090: + b .L2217 +.L2144: adrp x0, .LANCHOR1 ldrb w1, [x0, #:lo12:.LANCHOR1] lsl w0, w19, 1 cmp w1, 0 csel w19, w0, w19, ne - b .L2091 -.L2094: - str w6, [x29, 100] - mov w4, w21 - str w5, [x29, 120] - add x3, x29, 192 - strb wzr, [x25] - mov x2, x20 + b .L2145 +.L2148: + ldr x0, [x29, 200] mov w1, w19 + str w6, [x29, 108] + mov w4, w21 + str w5, [x29, 128] + add x3, x29, 208 + mov x2, x20 + strb wzr, [x0] mov w0, 0 bl flash_read_page cmn w0, #1 - ldr w6, [x29, 100] - strb w6, [x25] - ldr w5, [x29, 120] - beq .L2097 -.L2141: + ldr x1, [x29, 200] + ldr w6, [x29, 108] + ldr w5, [x29, 128] + strb w6, [x1] + beq .L2151 +.L2217: mov w5, w0 -.L2093: +.L2147: cmn w5, #1 cset w3, eq cmp w23, 16 cset w0, ne tst w3, w0 - beq .L2099 + beq .L2153 mov w0, 16 mov w23, 16 bl nandc_bch_sel - b .L2092 -.L2095: - str w5, [x29, 120] + b .L2146 +.L2149: + str w5, [x29, 128] mov w4, w21 - add x3, x29, 192 + add x3, x29, 208 mov x2, x20 mov w1, w19 mov w0, 0 blr x6 cmn w0, #1 - ldr w5, [x29, 120] - beq .L2096 - b .L2141 -.L2099: - ldr w0, [x29, 124] + ldr w5, [x29, 128] + beq .L2150 + b .L2217 +.L2153: + ldr w0, [x29, 132] bl nandc_bch_sel cmp w3, 0 - ldr w0, [x29, 144] + ldr w0, [x29, 176] csinv w0, w0, wzr, eq - str w0, [x29, 144] - ldr w0, [x29, 136] + str w0, [x29, 176] + ldr w0, [x29, 144] cmp w22, 0 ccmp w26, w0, 0, eq - bne .L2101 - ldr w0, [x29, 144] - cbnz w0, .L2101 + bne .L2155 + ldr w0, [x29, 176] + cbnz w0, .L2155 ldr w1, [x20] mov w0, 18766 movk w0, 0x464e, lsl 16 cmp w1, w0 - bne .L2101 - ldr w0, [x29, 160] + bne .L2155 + ldr w0, [x29, 168] ldrb w21, [x20, 17] add w0, w0, w24 - str w0, [x29, 160] -.L2102: + str w0, [x29, 168] +.L2156: add w22, w24, w22 and w22, w22, 65535 - b .L2089 -.L2101: + b .L2143 +.L2155: ubfiz x0, x24, 9, 16 - str wzr, [x29, 152] + str wzr, [x29, 184] add x20, x20, x0 - b .L2102 -.L2105: - ldr x4, [x29, 184] - lsl x2, x1, 2 - add x1, x1, 1 - ldr w4, [x2, x4] - ldr w2, [x3, x2] - cmp w4, w2 - beq .L2104 - ldr x0, [x29, 184] + b .L2156 +.L2160: + ldr w4, [x0, x2, lsl 2] + add x2, x2, 1 + add x3, x28, x2, lsl 2 + ldr w3, [x3, -4] + cmp w4, w3 + beq .L2159 mov w2, 512 mov w1, 0 bl ftl_memset @@ -12565,22 +12890,42 @@ idb_write_data: mov w1, w26 mov w0, 0 bl flash_erase_block -.L2074: - ldr w0, [x29, 172] +.L2126: + ldr w0, [x29, 196] add w0, w0, 1 - str w0, [x29, 172] + str w0, [x29, 196] cmp w0, 4 - bne .L2107 - ldr w0, [x29, 168] - cbnz w0, .L2069 + bne .L2162 +.L2165: + ldrb w1, [x29, 160] + adrp x0, .LANCHOR0 + strb w1, [x0, #:lo12:.LANCHOR0] + mov w1, 2 + adrp x0, .LANCHOR31 + strb w1, [x0, #:lo12:.LANCHOR31] + mov w0, 0 + bl zftl_flash_enter_slc_mode + ldr w0, [x29, 192] + cbnz w0, .L2121 adrp x0, .LC126 mov w1, 0 add x0, x0, :lo12:.LC126 bl printf -.L2069: - adrp x0, .LANCHOR169 - str wzr, [x0, #:lo12:.LANCHOR169] - b .L2121 +.L2121: + adrp x0, .LANCHOR136 + adrp x19, .LANCHOR135 + str wzr, [x0, #:lo12:.LANCHOR136] + ldr x0, [x19, #:lo12:.LANCHOR135] + cbz x0, .L2164 + bl free + str xzr, [x19, #:lo12:.LANCHOR135] +.L2164: + adrp x19, .LANCHOR137 + ldr x0, [x19, #:lo12:.LANCHOR137] + cbz x0, .L2218 + bl free + str xzr, [x19, #:lo12:.LANCHOR137] + b .L2218 .size idb_write_data, .-idb_write_data .section .text.flash_start_tlc_page_prog,"ax",@progbits .align 2 @@ -12603,14 +12948,14 @@ flash_start_tlc_page_prog: mov x23, x5 mov x24, x6 cmp w0, w19 - bhi .L2144 + bhi .L2221 adrp x1, .LANCHOR170 adrp x0, .LC0 - mov w2, 655 + mov w2, 726 add x1, x1, :lo12:.LANCHOR170 add x0, x0, :lo12:.LC0 bl printf -.L2144: +.L2221: adrp x0, .LANCHOR29 add x0, x0, :lo12:.LANCHOR29 ldrb w4, [x0, w19, sxtw] @@ -12618,12 +12963,12 @@ flash_start_tlc_page_prog: ldr x19, [x0, #:lo12:.LANCHOR13] mov w0, w4 bl nandc_cs - cbz w25, .L2145 + cbz w25, .L2222 sxtw x0, w4 add x0, x0, 8 add x0, x19, x0, lsl 8 str w25, [x0, 8] -.L2145: +.L2222: ubfiz x4, x4, 8, 8 mov w0, 128 add x19, x19, x4 @@ -12641,10 +12986,10 @@ flash_start_tlc_page_prog: sub w0, w20, #1 add w0, w0, w21 bl nandc_set_seed - adrp x0, .LANCHOR34+9 + adrp x0, .LANCHOR30+9 mov x3, x24 mov x2, x23 - ldrb w1, [x0, #:lo12:.LANCHOR34+9] + ldrb w1, [x0, #:lo12:.LANCHOR30+9] mov w0, 1 bl nandc_xfer_start bl nandc_xfer_done @@ -12654,7 +12999,7 @@ flash_start_tlc_page_prog: ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x29, x30, [sp], 80 - b nandc_de_cs.constprop.29 + b nandc_de_cs.constprop.28 .size flash_start_tlc_page_prog, .-flash_start_tlc_page_prog .section .text.queue_tlc_prog_cmd,"ax",@progbits .align 2 @@ -12705,8 +13050,8 @@ queue_tlc_prog_cmd: strb w0, [x1, 59] mov w0, -1 strb w0, [x1] - adrp x0, .LANCHOR53 - add x0, x0, :lo12:.LANCHOR53 + adrp x0, .LANCHOR54 + add x0, x0, :lo12:.LANCHOR54 ldp x19, x20, [sp, 16] ldr x21, [sp, 32] ldp x29, x30, [sp], 48 @@ -12723,21 +13068,21 @@ sblk_tlc_prog_one_page: mov x19, x0 ldr x0, [x0] ldr w20, [x0, 40] -.L2153: +.L2230: mov w1, 1 mov w0, w20 bl queue_lun_state - cbnz w0, .L2154 + cbnz w0, .L2231 mov x0, x19 bl queue_tlc_prog_cmd mov w0, 0 ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 32 ret -.L2154: +.L2231: bl queue_wait_first_req_completed bl queue_remove_completed_req - b .L2153 + b .L2230 .size sblk_tlc_prog_one_page, .-sblk_tlc_prog_one_page .section .text.sblk_xlc_prog_pages,"ax",@progbits .align 2 @@ -12754,13 +13099,13 @@ sblk_xlc_prog_pages: stp x23, x24, [sp, 48] mov w24, w2 ldr w20, [x0, 40] -.L2157: +.L2234: mov w1, 1 mov w0, w20 bl queue_lun_state - cbnz w0, .L2158 + cbnz w0, .L2235 cmp w24, 2 - bne .L2159 + bne .L2236 ldr x0, [x19] mov w2, 17 ldr x1, [x22] @@ -12837,25 +13182,243 @@ sblk_xlc_prog_pages: strb w0, [x1, 59] mov w0, -1 strb w0, [x1] - adrp x0, .LANCHOR53 - add x0, x0, :lo12:.LANCHOR53 + adrp x0, .LANCHOR54 + add x0, x0, :lo12:.LANCHOR54 bl buf_add_tail -.L2160: +.L2237: mov w0, 0 ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x23, x24, [sp, 48] ldp x29, x30, [sp], 64 ret -.L2158: +.L2235: bl queue_wait_first_req_completed bl queue_remove_completed_req - b .L2157 -.L2159: + b .L2234 +.L2236: mov x0, x19 bl queue_tlc_prog_cmd - b .L2160 + b .L2237 .size sblk_xlc_prog_pages, .-sblk_xlc_prog_pages + .section .text.sblk_3d_tlc_dump_prog,"ax",@progbits + .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]! + add x29, sp, 0 + stp x19, x20, [sp, 16] + mov x19, x0 + adrp x0, .LC127 + add x0, x0, :lo12:.LC127 + ldr w3, [x19, 40] + str x21, [sp, 32] + and w20, w3, 2097151 + mov w2, w3 + ubfx x21, x3, 21, 3 + mov w1, w20 + bl printf + ldr x5, [x19, 8] + mov w4, w20 + ldr x6, [x19, 24] + mov w3, w21 + mov w2, 26 + mov w1, 1 + mov w0, 0 + bl flash_start_tlc_page_prog + bl nandc_wait_flash_ready + ldr x5, [x19, 8] + mov w4, w20 + ldr x6, [x19, 24] + mov w3, w21 + mov w2, 26 + mov w1, 2 + mov w0, 0 + bl flash_start_tlc_page_prog + bl nandc_wait_flash_ready + ldr x5, [x19, 8] + mov w4, w20 + ldr x6, [x19, 24] + mov w3, w21 + mov w2, 16 + mov w1, 3 + mov w0, 0 + bl flash_start_tlc_page_prog + bl nandc_wait_flash_ready + ldr x21, [sp, 32] + ldr w0, [x19, 40] + mov w1, 64 + ldp x19, x20, [sp, 16] + ldp x29, x30, [sp], 48 + b flash_wait_device_ready + .size sblk_3d_tlc_dump_prog, .-sblk_3d_tlc_dump_prog + .section .text.flash_start_3d_mlc_page_prog,"ax",@progbits + .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]! + add x29, sp, 0 + stp x21, x22, [sp, 32] + and w21, w0, 255 + adrp x0, .LANCHOR18 + stp x19, x20, [sp, 16] + str x23, [sp, 48] + and w19, w1, 255 + ldrb w0, [x0, #:lo12:.LANCHOR18] + mov w20, w2 + mov x22, x3 + mov x23, x4 + cmp w0, w19 + bhi .L2242 + adrp x1, .LANCHOR171 + adrp x0, .LC0 + mov w2, 756 + add x1, x1, :lo12:.LANCHOR171 + add x0, x0, :lo12:.LC0 + bl printf +.L2242: + adrp x0, .LANCHOR29 + add x0, x0, :lo12:.LANCHOR29 + ldrb w4, [x0, w19, sxtw] + adrp x0, .LANCHOR13 + ldr x19, [x0, #:lo12:.LANCHOR13] + mov w0, w4 + bl nandc_cs + ubfiz x4, x4, 8, 8 + add x19, x19, x4 + mov w0, 128 + str w0, [x19, 2056] + and w0, w20, 255 + str wzr, [x19, 2052] + str wzr, [x19, 2052] + str w0, [x19, 2052] + lsr w0, w20, 8 + str w0, [x19, 2052] + lsr w0, w20, 16 + str w0, [x19, 2052] + mov w0, w20 + bl nandc_set_seed + adrp x0, .LANCHOR30+9 + mov x3, x23 + mov x2, x22 + ldrb w1, [x0, #:lo12:.LANCHOR30+9] + mov w0, 1 + bl nandc_xfer_start + bl nandc_xfer_done + ldr x23, [sp, 48] + str w21, [x19, 2056] + 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 + .section .text.sblk_3d_mlc_prog_pages,"ax",@progbits + .align 2 + .global sblk_3d_mlc_prog_pages + .type sblk_3d_mlc_prog_pages, %function +sblk_3d_mlc_prog_pages: + stp x29, x30, [sp, -48]! + add x29, sp, 0 + stp x19, x20, [sp, 16] + mov x20, x0 + ldr x0, [x0] + ldr w19, [x0, 40] + str x21, [sp, 32] +.L2245: + mov w1, 1 + mov w0, w19 + bl queue_lun_state + cbnz w0, .L2246 + ldr x0, [x20] + ldr w19, [x0, 40] + and w21, w19, 2097151 + ubfx x19, x19, 21, 3 + mov w0, w19 + bl zftl_flash_exit_slc_mode + ldr x0, [x20] + mov w2, w21 + mov w1, w19 + ldr x3, [x0, 8] + ldr x4, [x0, 24] + mov w0, 16 + bl flash_start_3d_mlc_page_prog + bl nandc_wait_flash_ready + ldr x0, [x20, 8] + add w2, w21, 1 + mov w1, w19 + ldr x3, [x0, 8] + ldr x4, [x0, 24] + mov w0, 16 + bl flash_start_3d_mlc_page_prog + bl nandc_de_cs.constprop.28 + ldr x1, [x20] + mov w0, 4 + strb w0, [x1, 58] + mov w0, 1 + strb w0, [x1, 59] + mov w0, -1 + strb w0, [x1] + adrp x0, .LANCHOR54 + add x0, x0, :lo12:.LANCHOR54 + bl buf_add_tail + ldr x21, [sp, 32] + mov w0, 0 + ldp x19, x20, [sp, 16] + ldp x29, x30, [sp], 48 + ret +.L2246: + bl queue_wait_first_req_completed + bl queue_remove_completed_req + b .L2245 + .size sblk_3d_mlc_prog_pages, .-sblk_3d_mlc_prog_pages + .section .text.sblk_mlc_dump_prog,"ax",@progbits + .align 2 + .global sblk_mlc_dump_prog + .type sblk_mlc_dump_prog, %function +sblk_mlc_dump_prog: + stp x29, x30, [sp, -48]! + add x29, sp, 0 + stp x19, x20, [sp, 16] + mov x19, x0 + ldr w20, [x0, 40] + str x21, [sp, 32] + and w21, w20, 2097151 + ubfx x20, x20, 21, 3 + mov w0, w20 + bl zftl_flash_exit_slc_mode + ldr w2, [x19, 40] + mov w1, w21 + adrp x0, .LC128 + add x0, x0, :lo12:.LC128 + add w3, w2, 1 + bl printf + ldr x3, [x19, 8] + mov w2, w21 + ldr x4, [x19, 24] + mov w1, w20 + mov w0, 16 + bl flash_start_3d_mlc_page_prog + bl nandc_wait_flash_ready + ldr x3, [x19, 8] + add w2, w21, 1 + ldr x4, [x19, 24] + mov w1, w20 + mov w0, 16 + bl flash_start_3d_mlc_page_prog + bl nandc_wait_flash_ready + ldr w0, [x19, 40] + mov w1, 64 + bl flash_wait_device_ready + mov w2, w0 + bl nandc_de_cs.constprop.28 + ldr x21, [sp, 32] + mov w0, w2 + ldp x19, x20, [sp, 16] + ldp x29, x30, [sp], 48 + ret + .size sblk_mlc_dump_prog, .-sblk_mlc_dump_prog .section .text.flash_start_page_prog,"ax",@progbits .align 2 .global flash_start_page_prog @@ -12877,40 +13440,40 @@ flash_start_page_prog: ubfx x27, x1, 21, 3 ubfx x22, x1, 24, 2 cmp w0, w27 - bhi .L2163 - adrp x1, .LANCHOR171 + bhi .L2251 + adrp x1, .LANCHOR172 adrp x0, .LC0 - mov w2, 706 - add x1, x1, :lo12:.LANCHOR171 + mov w2, 803 + add x1, x1, :lo12:.LANCHOR172 add x0, x0, :lo12:.LC0 bl printf -.L2163: +.L2251: adrp x0, .LANCHOR29 add x0, x0, :lo12:.LANCHOR29 ldrb w21, [x0, w27, sxtw] adrp x0, .LANCHOR13 ldr x19, [x0, #:lo12:.LANCHOR13] bl nandc_rdy_status - cbnz w0, .L2164 + cbnz w0, .L2252 ldrb w0, [x23, #:lo12:.LANCHOR18] cmp w0, 1 - bne .L2165 + bne .L2253 bl nandc_wait_flash_ready -.L2164: +.L2252: mov w0, w21 bl hynix_reconfig_rr_para mov w0, w21 bl nandc_cs - cbnz w22, .L2166 + cbnz w22, .L2254 mov w0, w20 bl slc_phy_page_address_calc mov w20, w0 adrp x0, .LANCHOR0 ldrb w0, [x0, #:lo12:.LANCHOR0] - cbz w0, .L2167 + cbz w0, .L2255 mov w0, w21 bl zftl_flash_enter_slc_mode -.L2167: +.L2255: ubfiz x21, x21, 8, 8 mov w0, 128 add x19, x19, x21 @@ -12925,10 +13488,10 @@ flash_start_page_prog: str w0, [x19, 2052] mov w0, w20 bl nandc_set_seed - adrp x0, .LANCHOR34+9 + adrp x0, .LANCHOR30+9 mov x3, x26 mov x2, x25 - ldrb w1, [x0, #:lo12:.LANCHOR34+9] + ldrb w1, [x0, #:lo12:.LANCHOR30+9] mov w0, 1 bl nandc_xfer_start bl nandc_xfer_done @@ -12939,17 +13502,17 @@ flash_start_page_prog: ldp x19, x20, [sp, 16] ldp x23, x24, [sp, 48] ldp x29, x30, [sp], 96 - b nandc_de_cs.constprop.29 -.L2165: + b nandc_de_cs.constprop.28 +.L2253: mov w2, 64 mov w1, w20 mov w0, w27 bl flash_wait_device_ready_raw - b .L2164 -.L2166: + b .L2252 +.L2254: mov w0, w21 bl zftl_flash_exit_slc_mode - b .L2167 + b .L2255 .size flash_start_page_prog, .-flash_start_page_prog .section .text.queue_prog_cmd,"ax",@progbits .align 2 @@ -12964,27 +13527,27 @@ queue_prog_cmd: mov x19, x0 mov w0, 16 bl flash_start_page_prog - adrp x0, .LANCHOR53 + adrp x0, .LANCHOR54 ldr w3, [x19, 40] - ldrb w1, [x0, #:lo12:.LANCHOR53] + ldrb w1, [x0, #:lo12:.LANCHOR54] cmp w1, 255 - beq .L2173 - adrp x2, .LANCHOR49 - add x2, x2, :lo12:.LANCHOR49 + beq .L2261 + adrp x2, .LANCHOR50 + add x2, x2, :lo12:.LANCHOR50 ubfx x3, x3, 21, 3 mov x6, x2 -.L2175: +.L2263: add x4, x2, x1, lsl 6 ldr w5, [x4, 40] ubfx x5, x5, 21, 3 cmp w3, w5 - bne .L2174 + bne .L2262 ldrb w5, [x4, 58] - cmp w5, 6 - bne .L2174 + cmp w5, 7 + bne .L2262 mov w1, 3 strb w1, [x4, 58] -.L2173: +.L2261: mov w1, 3 strb w1, [x19, 58] mov w1, 1 @@ -12992,16 +13555,16 @@ queue_prog_cmd: mov w1, -1 strb w1, [x19] mov x1, x19 - add x0, x0, :lo12:.LANCHOR53 + add x0, x0, :lo12:.LANCHOR54 ldr x19, [sp, 16] ldp x29, x30, [sp], 32 b buf_add_tail -.L2174: +.L2262: lsl x1, x1, 6 ldrb w1, [x6, x1] cmp w1, 255 - bne .L2175 - b .L2173 + bne .L2263 + b .L2261 .size queue_prog_cmd, .-queue_prog_cmd .section .text.sblk_prog_page,"ax",@progbits .align 2 @@ -13018,25 +13581,25 @@ sblk_prog_page: stp x23, x24, [sp, 48] stp x25, x26, [sp, 64] str x27, [sp, 80] - cbz w0, .L2182 + cbz w0, .L2270 adrp x0, .LANCHOR14 ldr w0, [x0, #:lo12:.LANCHOR14] - tbz x0, 8, .L2182 + tbz x0, 8, .L2270 ldr w1, [x19, 40] - adrp x0, .LC127 + adrp x0, .LC129 mov w2, w20 - add x0, x0, :lo12:.LC127 + add x0, x0, :lo12:.LC129 bl printf -.L2182: +.L2270: adrp x25, .LANCHOR38 - adrp x23, .LANCHOR49 + adrp x23, .LANCHOR50 add x25, x25, :lo12:.LANCHOR38 - add x23, x23, :lo12:.LANCHOR49 + add x23, x23, :lo12:.LANCHOR50 mov w21, 0 mov w24, 1 -.L2183: - cbnz w20, .L2194 -.L2207: +.L2271: + cbnz w20, .L2282 +.L2295: mov w0, 0 ldr x27, [sp, 80] ldp x19, x20, [sp, 16] @@ -13045,53 +13608,53 @@ sblk_prog_page: ldp x25, x26, [sp, 64] ldp x29, x30, [sp], 96 ret -.L2194: +.L2282: ldrb w26, [x19] ldr w22, [x19, 40] -.L2184: +.L2272: mov w1, 1 mov w0, w22 bl queue_lun_state - cbnz w0, .L2185 + cbnz w0, .L2273 cmp w20, 1 - beq .L2186 + beq .L2274 ldrb w0, [x25] - cbnz w0, .L2187 -.L2186: + cbnz w0, .L2275 +.L2274: mov x0, x19 bl queue_prog_cmd -.L2188: +.L2276: subs w20, w20, #1 - beq .L2207 + beq .L2295 ubfiz x19, x26, 6, 8 add x19, x23, x19 - b .L2183 -.L2185: + b .L2271 +.L2273: bl queue_wait_first_req_completed bl queue_remove_completed_req - b .L2184 -.L2187: + b .L2272 +.L2275: ldrb w0, [x19] ubfx x27, x22, 21, 3 cmp w0, 255 - bne .L2189 - adrp x1, .LANCHOR172 + bne .L2277 + adrp x1, .LANCHOR173 adrp x0, .LC0 - mov w2, 546 - add x1, x1, :lo12:.LANCHOR172 + mov w2, 574 + add x1, x1, :lo12:.LANCHOR173 add x0, x0, :lo12:.LC0 bl printf -.L2189: +.L2277: ldrb w0, [x19] add x0, x23, x0, lsl 6 ldr w5, [x0, 40] ubfx x0, x5, 21, 3 cmp w27, w0 - bne .L2190 - adrp x0, .LANCHOR99 - ldrh w2, [x0, #:lo12:.LANCHOR99] - adrp x0, .LANCHOR98 - ldrb w3, [x0, #:lo12:.LANCHOR98] + bne .L2278 + adrp x0, .LANCHOR102 + ldrh w2, [x0, #:lo12:.LANCHOR102] + adrp x0, .LANCHOR101 + ldrb w3, [x0, #:lo12:.LANCHOR101] mov w0, 21 sub w0, w0, w2 lsl w1, w24, w2 @@ -13110,9 +13673,9 @@ sblk_prog_page: cmp w4, w0 and w1, w1, w5 ccmp w22, w1, 0, ne - bne .L2190 + bne .L2278 cmp w21, w3 - beq .L2190 + beq .L2278 ldr w1, [x19, 40] mov w0, 17 ldr x2, [x19, 8] @@ -13120,20 +13683,20 @@ sblk_prog_page: ldr x3, [x19, 24] bl flash_start_page_prog strb w24, [x19, 59] - mov w0, 8 + mov w0, 9 strb w0, [x19, 58] mov w0, -1 strb w0, [x19] mov x1, x19 - adrp x0, .LANCHOR53 - add x0, x0, :lo12:.LANCHOR53 + adrp x0, .LANCHOR54 + add x0, x0, :lo12:.LANCHOR54 bl buf_add_tail - b .L2188 -.L2190: + b .L2276 +.L2278: mov x0, x19 mov w21, 0 bl queue_prog_cmd - b .L2188 + b .L2276 .size sblk_prog_page, .-sblk_prog_page .section .text.ftl_flush,"ax",@progbits .align 2 @@ -13141,22 +13704,22 @@ sblk_prog_page: .type ftl_flush, %function ftl_flush: stp x29, x30, [sp, -32]! - adrp x0, .LANCHOR119 + adrp x0, .LANCHOR121 add x29, sp, 0 - ldrb w1, [x0, #:lo12:.LANCHOR119] + ldrb w1, [x0, #:lo12:.LANCHOR121] stp x19, x20, [sp, 16] mov x19, x0 - adrp x20, .LANCHOR173 - cbz w1, .L2210 - ldrb w2, [x20, #:lo12:.LANCHOR173] - adrp x0, .LANCHOR49 - add x0, x0, :lo12:.LANCHOR49 + adrp x20, .LANCHOR174 + cbz w1, .L2298 + ldrb w2, [x20, #:lo12:.LANCHOR174] + adrp x0, .LANCHOR50 + add x0, x0, :lo12:.LANCHOR50 add x0, x0, x2, lsl 6 bl sblk_prog_page -.L2210: +.L2298: mov w0, -1 - strb wzr, [x19, #:lo12:.LANCHOR119] - strb w0, [x20, #:lo12:.LANCHOR173] + strb wzr, [x19, #:lo12:.LANCHOR121] + strb w0, [x20, #:lo12:.LANCHOR174] bl sblk_wait_write_queue_completed bl ftl_write_completed ldp x19, x20, [sp, 16] @@ -13169,146 +13732,167 @@ ftl_flush: .global flash_prog_page_en .type flash_prog_page_en, %function flash_prog_page_en: - stp x29, x30, [sp, -80]! + stp x29, x30, [sp, -128]! add x29, sp, 0 stp x23, x24, [sp, 48] - and w24, w0, 255 - adrp x0, .LANCHOR18 + and w23, w0, 255 + and w0, w5, 255 stp x19, x20, [sp, 16] + str w0, [x29, 124] + adrp x0, .LANCHOR18 stp x21, x22, [sp, 32] mov w20, w1 - stp x25, x26, [sp, 64] - mov x23, x2 + stp x27, x28, [sp, 80] + mov x22, x2 ldrb w0, [x0, #:lo12:.LANCHOR18] - mov x22, x3 - mov w25, w4 - and w21, w5, 255 + mov x21, x3 + stp x25, x26, [sp, 64] + mov w28, w4 ubfx x19, x20, 24, 2 - cmp w0, w24 - bhi .L2216 - adrp x1, .LANCHOR174 + cmp w0, w23 + bhi .L2304 + adrp x1, .LANCHOR175 adrp x0, .LC0 - mov w2, 478 - add x1, x1, :lo12:.LANCHOR174 + mov w2, 546 + add x1, x1, :lo12:.LANCHOR175 add x0, x0, :lo12:.LC0 bl printf -.L2216: +.L2304: adrp x0, .LANCHOR29 add x0, x0, :lo12:.LANCHOR29 - ldrb w26, [x0, w24, sxtw] - cbnz w19, .L2226 + ldrb w27, [x0, w23, sxtw] + cbnz w19, .L2315 adrp x0, .LANCHOR0 ldrb w1, [x0, #:lo12:.LANCHOR0] adrp x0, .LANCHOR1 - cbz w1, .L2218 + cbz w1, .L2306 ldrb w1, [x0, #:lo12:.LANCHOR1] - cbz w1, .L2226 -.L2218: + cbz w1, .L2315 +.L2306: adrp x1, .LANCHOR2 ldrb w0, [x0, #:lo12:.LANCHOR1] ldrh w1, [x1, #:lo12:.LANCHOR2] udiv w19, w20, w1 mul w19, w19, w1 sub w1, w20, w19 - cbz w0, .L2219 + cbz w0, .L2307 add w19, w19, w1, lsl 1 -.L2217: - adrp x0, .LANCHOR14 - ldr w0, [x0, #:lo12:.LANCHOR14] - tbz x0, 4, .L2220 - adrp x0, .LC128 +.L2305: + adrp x24, .LANCHOR14 + adrp x25, .LC130 + add x24, x24, :lo12:.LANCHOR14 + add x25, x25, :lo12:.LC130 + adrp x26, .LANCHOR163 +.L2311: + ldr w0, [x24] + tbz x0, 4, .L2308 + mov w3, w19 mov w2, w20 - mov w1, w26 - add x0, x0, :lo12:.LC128 + mov w1, w27 + mov x0, x25 bl printf -.L2220: +.L2308: + mov w4, w28 + mov x3, x21 + mov x2, x22 mov w1, w19 - mov w4, w25 - mov x3, x22 - mov x2, x23 - mov w0, w26 + mov w0, w27 bl flash_prog_page - mov w19, w0 - cbz w21, .L2221 - adrp x26, .LANCHOR161 - adrp x21, .LANCHOR162 - mov w4, w25 + mov w5, w0 + ldr w0, [x29, 124] + cbz w0, .L2309 + adrp x6, .LANCHOR164 + ldr x3, [x26, #:lo12:.LANCHOR163] + mov w4, w28 + str x6, [x29, 112] + ldr x2, [x6, #:lo12:.LANCHOR164] mov w1, w20 - ldr x3, [x26, #:lo12:.LANCHOR161] - mov w0, w24 - ldr x2, [x21, #:lo12:.LANCHOR162] + mov w0, w23 + str w5, [x29, 104] bl flash_read_page_en cmp w0, 512 + ldr x6, [x29, 112] + mov w4, w0 ccmn w0, #1, 4, ne - beq .L2222 - ldr x0, [x21, #:lo12:.LANCHOR162] - ldr w1, [x23] - ldr w0, [x0] - cmp w1, w0 - bne .L2222 - ldr x0, [x26, #:lo12:.LANCHOR161] + mov x7, x6 + beq .L2310 + ldr x0, [x6, #:lo12:.LANCHOR164] ldr w1, [x22] + ldr w5, [x29, 104] ldr w0, [x0] cmp w1, w0 - beq .L2221 -.L2222: + bne .L2310 + ldr x0, [x26, #:lo12:.LANCHOR163] + ldr w1, [x21] + ldr w0, [x0] + cmp w1, w0 + beq .L2309 +.L2310: + str w4, [x29, 112] mov w3, 4 - mov x1, x23 + str x7, [x29, 104] mov w2, w3 - adrp x0, .LC129 - add x0, x0, :lo12:.LC129 - bl rknand_print_hex - mov w3, 4 mov x1, x22 - mov w2, w3 - adrp x0, .LC130 - add x0, x0, :lo12:.LC130 - bl rknand_print_hex - ldr x1, [x26, #:lo12:.LANCHOR161] - mov w3, 4 adrp x0, .LC131 - mov w2, w3 add x0, x0, :lo12:.LC131 bl rknand_print_hex - ldr x1, [x21, #:lo12:.LANCHOR162] mov w3, 4 - adrp x0, .LC132 + mov x1, x21 mov w2, w3 + adrp x0, .LC132 add x0, x0, :lo12:.LC132 bl rknand_print_hex -.L2223: - mov w1, w20 + adrp x0, .LANCHOR163 + mov w3, 4 + mov w2, w3 + ldr x1, [x0, #:lo12:.LANCHOR163] adrp x0, .LC133 add x0, x0, :lo12:.LC133 + bl rknand_print_hex + ldr x7, [x29, 104] + mov w3, 4 + adrp x0, .LC134 + mov w2, w3 + add x0, x0, :lo12:.LC134 + ldr x1, [x7, #:lo12:.LANCHOR164] + bl rknand_print_hex + ldr w4, [x29, 112] + cmp w4, 512 + beq .L2311 +.L2313: + mov w1, w20 + adrp x0, .LC135 + add x0, x0, :lo12:.LC135 bl printf - mov w2, 506 - adrp x1, .LANCHOR174 + mov w2, 577 + adrp x1, .LANCHOR175 adrp x0, .LC0 - add x1, x1, :lo12:.LANCHOR174 + add x1, x1, :lo12:.LANCHOR175 add x0, x0, :lo12:.LC0 bl printf mov w0, -1 - b .L2224 -.L2219: - adrp x0, .LANCHOR3 - add x0, x0, :lo12:.LANCHOR3 - ldrh w0, [x0, w1, uxtw 1] - add w19, w0, w19 - b .L2217 -.L2226: - mov w19, w20 - b .L2217 -.L2221: - mov w0, w19 - cmn w19, #1 - beq .L2223 -.L2224: +.L2312: ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x23, x24, [sp, 48] ldp x25, x26, [sp, 64] - ldp x29, x30, [sp], 80 + ldp x27, x28, [sp, 80] + ldp x29, x30, [sp], 128 ret +.L2307: + adrp x0, .LANCHOR3 + add x0, x0, :lo12:.LANCHOR3 + ldrh w0, [x0, w1, uxtw 1] + add w19, w0, w19 + b .L2305 +.L2315: + mov w19, w20 + b .L2305 +.L2309: + mov w0, w5 + cmn w5, #1 + bne .L2312 + b .L2313 .size flash_prog_page_en, .-flash_prog_page_en .section .text.ftl_test_block,"ax",@progbits .align 2 @@ -13320,113 +13904,113 @@ ftl_test_block: stp x23, x24, [sp, 48] adrp x24, ftl_tmp_buffer stp x25, x26, [sp, 64] - adrp x25, .LANCHOR175 + adrp x25, .LANCHOR176 stp x21, x22, [sp, 32] - adrp x26, .LANCHOR106 + adrp x26, .LANCHOR108 and w21, w0, 65535 - add x0, x26, :lo12:.LANCHOR106 + add x0, x26, :lo12:.LANCHOR108 stp x19, x20, [sp, 16] mov w23, 0 stp x27, x28, [sp, 80] mov w20, 0 - adrp x27, .LANCHOR98 + adrp x27, .LANCHOR101 str x0, [x29, 112] str wzr, [x24, #:lo12:ftl_tmp_buffer] - add x0, x27, :lo12:.LANCHOR98 - str wzr, [x25, #:lo12:.LANCHOR175] + add x0, x27, :lo12:.LANCHOR101 + str wzr, [x25, #:lo12:.LANCHOR176] str x0, [x29, 96] -.L2238: +.L2332: ldr x0, [x29, 112] ldrb w0, [x0] cmp w0, w20 - bls .L2248 - add x0, x27, :lo12:.LANCHOR98 + bls .L2342 + add x0, x27, :lo12:.LANCHOR101 mov w22, 0 str x0, [x29, 120] adrp x0, .LANCHOR14 add x0, x0, :lo12:.LANCHOR14 str x0, [x29, 104] - b .L2249 -.L2247: + b .L2343 +.L2341: ldr x0, [x29, 104] ldr w0, [x0] - tbz x0, 12, .L2239 - adrp x0, .LC134 + tbz x0, 12, .L2333 + adrp x0, .LC136 mov w1, w21 - add x0, x0, :lo12:.LC134 + add x0, x0, :lo12:.LC136 bl printf -.L2239: +.L2333: ldr x0, [x29, 96] ldrb w19, [x0] madd w19, w21, w19, w22 and w19, w19, 65535 - cbnz w20, .L2240 + cbnz w20, .L2334 adrp x0, .LANCHOR26 ldr x0, [x0, #:lo12:.LANCHOR26] ldrb w0, [x0, 47] cmp w0, w19 - bcs .L2241 -.L2240: + bcs .L2335 +.L2334: and w28, w20, 255 mov w1, w19 mov w0, w28 bl flash_check_bad_block - cbnz w0, .L2241 - adrp x0, .LANCHOR105 + cbnz w0, .L2335 + adrp x0, .LANCHOR107 mov w1, w23 - ldrh w7, [x0, #:lo12:.LANCHOR105] + ldrh w7, [x0, #:lo12:.LANCHOR107] mov w0, w28 mul w26, w7, w19 mov w2, w26 bl flash_erase_block_en - cbz w0, .L2242 - adrp x0, .LANCHOR68 - ldrb w0, [x0, #:lo12:.LANCHOR68] + cbz w0, .L2336 + adrp x0, .LANCHOR69 + ldrb w0, [x0, #:lo12:.LANCHOR69] cmp w0, 2 - bne .L2264 + bne .L2358 adrp x0, .LANCHOR0 ldrb w0, [x0, #:lo12:.LANCHOR0] - cbz w0, .L2264 + cbz w0, .L2358 mov w2, w26 mov w1, 1 mov w0, w28 bl flash_erase_block_en - cbnz w0, .L2264 -.L2246: - adrp x0, .LANCHOR68 + cbnz w0, .L2358 +.L2340: + adrp x0, .LANCHOR69 mov w23, 1 - ldrb w0, [x0, #:lo12:.LANCHOR68] + ldrb w0, [x0, #:lo12:.LANCHOR69] add w26, w26, w0, lsl 24 -.L2245: - adrp x0, .LANCHOR121 +.L2339: + adrp x0, .LANCHOR123 mov w5, 1 - add x3, x25, :lo12:.LANCHOR175 + add x3, x25, :lo12:.LANCHOR176 add x2, x24, :lo12:ftl_tmp_buffer - ldrb w4, [x0, #:lo12:.LANCHOR121] + ldrb w4, [x0, #:lo12:.LANCHOR123] mov w1, w26 mov w0, w28 bl flash_prog_page_en - cbz w0, .L2241 -.L2264: + cbz w0, .L2335 +.L2358: mov w1, w19 mov w0, w28 bl flash_mask_bad_block -.L2241: +.L2335: add w22, w22, 1 and w22, w22, 65535 -.L2249: +.L2343: ldr x0, [x29, 120] ldrb w0, [x0] cmp w0, w22 - bhi .L2247 + bhi .L2341 add w20, w20, 1 and w20, w20, 65535 - b .L2238 -.L2242: - cbz w23, .L2245 - b .L2246 -.L2248: - cbz w23, .L2250 + b .L2332 +.L2336: + cbz w23, .L2339 + b .L2340 +.L2342: + cbz w23, .L2344 adrp x0, .LANCHOR7 mov w1, 2 ldr x0, [x0, #:lo12:.LANCHOR7] @@ -13434,7 +14018,7 @@ ftl_test_block: ldrb w0, [x21, 2] bfi w0, w1, 3, 2 strb w0, [x21, 2] -.L2250: +.L2344: ldp x19, x20, [sp, 16] mov w0, 0 ldp x21, x22, [sp, 32] @@ -13469,18 +14053,18 @@ ftl_prog_page: bl flash_prog_page_en mov w19, w0 cmn w0, #1 - bne .L2265 - mov w2, 2150 - adrp x1, .LANCHOR176 + bne .L2359 + mov w2, 2203 + adrp x1, .LANCHOR177 adrp x0, .LC0 - add x1, x1, :lo12:.LANCHOR176 + add x1, x1, :lo12:.LANCHOR177 add x0, x0, :lo12:.LC0 bl printf - adrp x0, .LC133 + adrp x0, .LC135 mov w1, w20 - add x0, x0, :lo12:.LC133 + add x0, x0, :lo12:.LC135 bl printf -.L2265: +.L2359: mov w0, w19 ldr x23, [sp, 48] ldp x19, x20, [sp, 16] @@ -13497,68 +14081,68 @@ ftl_info_flush: mov w1, 0 add x29, sp, 0 stp x21, x22, [sp, 32] - adrp x21, .LANCHOR121 + adrp x21, .LANCHOR123 stp x23, x24, [sp, 48] - adrp x22, .LANCHOR178 + adrp x22, .LANCHOR179 stp x25, x26, [sp, 64] - adrp x23, .LANCHOR105 + adrp x23, .LANCHOR107 stp x27, x28, [sp, 80] mov x26, x23 - ldrb w2, [x21, #:lo12:.LANCHOR121] - add x25, x22, :lo12:.LANCHOR178 - add x28, x23, :lo12:.LANCHOR105 + ldrb w2, [x21, #:lo12:.LANCHOR123] + add x25, x22, :lo12:.LANCHOR179 + add x28, x23, :lo12:.LANCHOR107 mov w24, 0 stp x19, x20, [sp, 16] mov w27, w0 - adrp x20, .LANCHOR177 + adrp x20, .LANCHOR178 lsl w2, w2, 1 - add x0, x20, :lo12:.LANCHOR177 + add x0, x20, :lo12:.LANCHOR178 bl ftl_memset -.L2269: - add x0, x22, :lo12:.LANCHOR178 - ldrb w6, [x22, #:lo12:.LANCHOR178] - ldrh w19, [x23, #:lo12:.LANCHOR105] +.L2363: + add x0, x22, :lo12:.LANCHOR179 + ldrb w6, [x22, #:lo12:.LANCHOR179] + ldrh w19, [x23, #:lo12:.LANCHOR107] ldrh w4, [x0, 2] - adrp x0, .LANCHOR97 - ldr x0, [x0, #:lo12:.LANCHOR97] + adrp x0, .LANCHOR100 + ldr x0, [x0, #:lo12:.LANCHOR100] ldr w3, [x0, 4] add w3, w3, 1 str w3, [x0, 4] - add x0, x20, :lo12:.LANCHOR177 - str w27, [x20, #:lo12:.LANCHOR177] + add x0, x20, :lo12:.LANCHOR178 + str w27, [x20, #:lo12:.LANCHOR178] str w3, [x0, 4] adrp x0, .LANCHOR14 ldr w0, [x0, #:lo12:.LANCHOR14] - tbz x0, 12, .L2270 + tbz x0, 12, .L2364 mov w2, w4 mov w1, w6 str w4, [x29, 96] - adrp x0, .LC135 + adrp x0, .LC137 str w6, [x29, 104] - add x0, x0, :lo12:.LC135 + add x0, x0, :lo12:.LC137 bl printf ldr w4, [x29, 96] ldr w6, [x29, 104] -.L2270: - adrp x1, .LANCHOR80 +.L2364: + adrp x1, .LANCHOR83 ldrh w0, [x25, 2] - ldrh w1, [x1, #:lo12:.LANCHOR80] + ldrh w1, [x1, #:lo12:.LANCHOR83] cmp w1, w0 - bhi .L2271 - adrp x19, .LANCHOR179 + bhi .L2365 + adrp x19, .LANCHOR180 adrp x3, .LC0 - add x19, x19, :lo12:.LANCHOR179 + add x19, x19, :lo12:.LANCHOR180 add x3, x3, :lo12:.LC0 -.L2278: +.L2372: ldrb w0, [x25, 1] adrp x4, .LANCHOR26 add w0, w0, 1 and w0, w0, 255 strb w0, [x25, 1] cmp w0, 7 - bls .L2272 + bls .L2366 mov x0, 0 -.L2277: +.L2371: ldr x2, [x4, #:lo12:.LANCHOR26] add w1, w0, 8 and w24, w0, 65535 @@ -13567,32 +14151,32 @@ ftl_info_flush: add w1, w2, 127 and w1, w1, 255 cmp w1, 125 - bhi .L2273 + bhi .L2367 mov x0, x3 stp x4, x3, [x29, 96] mov w2, 742 mov x1, x19 bl printf ldp x4, x3, [x29, 96] -.L2276: +.L2370: strb w24, [x25, 1] mov w24, 1 -.L2272: +.L2366: ldr x0, [x4, #:lo12:.LANCHOR26] ldrb w1, [x25, 1] add x0, x0, x1 ldrb w0, [x0, 40] strb w0, [x25] cmp w0, 255 - beq .L2278 + beq .L2372 ldrh w19, [x28] mul w19, w19, w0 mov w0, 0 mov w1, w19 bl flash_erase_block - ldrb w4, [x21, #:lo12:.LANCHOR121] + ldrb w4, [x21, #:lo12:.LANCHOR123] mov w1, w19 - add x3, x20, :lo12:.LANCHOR177 + add x3, x20, :lo12:.LANCHOR178 adrp x2, ftl_info_data_buffer mov w0, 0 add x2, x2, :lo12:ftl_info_data_buffer @@ -13600,53 +14184,53 @@ ftl_info_flush: bl ftl_prog_page mov w0, 1 strh w0, [x25, 2] -.L2279: - ldrb w4, [x21, #:lo12:.LANCHOR121] +.L2373: + ldrb w4, [x21, #:lo12:.LANCHOR123] mov w1, w19 - add x3, x20, :lo12:.LANCHOR177 + add x3, x20, :lo12:.LANCHOR178 adrp x2, ftl_info_data_buffer mov w0, 0 add x2, x2, :lo12:ftl_info_data_buffer bl ftl_prog_page cmn w0, #1 ldrh w1, [x25, 2] - adrp x0, .LANCHOR180 + adrp x0, .LANCHOR181 add w1, w1, 1 strh w1, [x25, 2] - beq .L2280 - ldrb w1, [x0, #:lo12:.LANCHOR180] - cbz w1, .L2281 -.L2280: - strb wzr, [x0, #:lo12:.LANCHOR180] - b .L2269 -.L2273: + beq .L2374 + ldrb w1, [x0, #:lo12:.LANCHOR181] + cbz w1, .L2375 +.L2374: + strb wzr, [x0, #:lo12:.LANCHOR181] + b .L2363 +.L2367: cmp w2, 255 - bne .L2276 + bne .L2370 add x0, x0, 1 cmp x0, 8 - bne .L2277 + bne .L2371 mov w24, w0 - b .L2276 -.L2271: + b .L2370 +.L2365: madd w19, w19, w6, w4 - cbnz w0, .L2279 + cbnz w0, .L2373 mov w1, w19 bl flash_erase_block - b .L2279 -.L2281: - cbnz w24, .L2282 -.L2290: - adrp x0, .LANCHOR178 - ldrb w0, [x0, #:lo12:.LANCHOR178] + b .L2373 +.L2375: + cbnz w24, .L2376 +.L2384: + adrp x0, .LANCHOR179 + ldrb w0, [x0, #:lo12:.LANCHOR179] cmp w0, 255 - bne .L2284 - adrp x1, .LANCHOR179 + bne .L2378 + adrp x1, .LANCHOR180 adrp x0, .LC0 mov w2, 778 - add x1, x1, :lo12:.LANCHOR179 + add x1, x1, :lo12:.LANCHOR180 add x0, x0, :lo12:.LC0 bl printf -.L2284: +.L2378: ldp x19, x20, [sp, 16] mov w0, 0 ldp x21, x22, [sp, 32] @@ -13655,17 +14239,17 @@ ftl_info_flush: ldp x27, x28, [sp, 80] ldp x29, x30, [sp], 112 ret -.L2282: +.L2376: ldrb w19, [x25, 1] - adrp x20, .LANCHOR179 + adrp x20, .LANCHOR180 adrp x21, .LC0 - add x20, x20, :lo12:.LANCHOR179 + add x20, x20, :lo12:.LANCHOR180 add w19, w19, 1 add x21, x21, :lo12:.LC0 adrp x22, .LANCHOR26 -.L2285: +.L2379: cmp w19, 7 - bhi .L2290 + bhi .L2384 ldr x1, [x22, #:lo12:.LANCHOR26] add w0, w19, 8 add x0, x1, x0, sxtw @@ -13673,24 +14257,24 @@ ftl_info_flush: add w0, w23, 127 and w0, w0, 255 cmp w0, 125 - bhi .L2286 + bhi .L2380 mov w2, 771 mov x1, x20 mov x0, x21 bl printf -.L2287: - ldrh w1, [x26, #:lo12:.LANCHOR105] +.L2381: + ldrh w1, [x26, #:lo12:.LANCHOR107] mov w0, 0 mul w1, w1, w23 bl flash_erase_block - b .L2288 -.L2286: + b .L2382 +.L2380: cmp w23, 255 - bne .L2287 -.L2288: + bne .L2381 +.L2382: add w19, w19, 1 and w19, w19, 65535 - b .L2285 + b .L2379 .size ftl_info_flush, .-ftl_info_flush .section .text.ftl_info_blk_init,"ax",@progbits .align 2 @@ -13698,32 +14282,32 @@ ftl_info_flush: .type ftl_info_blk_init, %function ftl_info_blk_init: stp x29, x30, [sp, -128]! - adrp x0, .LANCHOR181 - adrp x1, .LANCHOR180 + adrp x0, .LANCHOR182 + adrp x1, .LANCHOR181 mov w2, 16384 add x29, sp, 0 - strb wzr, [x0, #:lo12:.LANCHOR181] + strb wzr, [x0, #:lo12:.LANCHOR182] mov w0, 1 - strb w0, [x1, #:lo12:.LANCHOR180] - adrp x1, .LANCHOR182 + strb w0, [x1, #:lo12:.LANCHOR181] + adrp x1, .LANCHOR183 stp x19, x20, [sp, 16] adrp x20, ftl_info_data_buffer - strb w0, [x1, #:lo12:.LANCHOR182] + strb w0, [x1, #:lo12:.LANCHOR183] adrp x1, .LANCHOR7 add x0, x20, :lo12:ftl_info_data_buffer stp x21, x22, [sp, 32] str x0, [x1, #:lo12:.LANCHOR7] adrp x1, .LANCHOR6 - adrp x22, .LANCHOR97 + adrp x22, .LANCHOR100 stp x25, x26, [sp, 64] ldrh w1, [x1, #:lo12:.LANCHOR6] - adrp x21, .LANCHOR178 + adrp x21, .LANCHOR179 stp x23, x24, [sp, 48] adrp x23, .LANCHOR26 stp x27, x28, [sp, 80] - adrp x26, .LANCHOR105 + adrp x26, .LANCHOR107 add x1, x0, x1, lsl 2 - str x1, [x22, #:lo12:.LANCHOR97] + str x1, [x22, #:lo12:.LANCHOR100] mov w1, 0 bl ftl_memset mov w1, 0 @@ -13731,19 +14315,19 @@ ftl_info_blk_init: adrp x0, ftl_ext_info_data_buffer add x0, x0, :lo12:ftl_ext_info_data_buffer bl ftl_memset - adrp x25, .LANCHOR121 + adrp x25, .LANCHOR123 ldr x1, [x23, #:lo12:.LANCHOR26] - add x0, x21, :lo12:.LANCHOR178 + add x0, x21, :lo12:.LANCHOR179 mov w27, 21574 - add x26, x26, :lo12:.LANCHOR105 - add x25, x25, :lo12:.LANCHOR121 + add x26, x26, :lo12:.LANCHOR107 + add x25, x25, :lo12:.LANCHOR123 mov x19, 7 strb wzr, [x0, 1] movk w27, 0x494c, lsl 16 ldrb w1, [x1, 40] - strb w1, [x21, #:lo12:.LANCHOR178] + strb w1, [x21, #:lo12:.LANCHOR179] strh wzr, [x0, 2] -.L2306: +.L2400: ldr x1, [x23, #:lo12:.LANCHOR26] add w0, w19, 8 sxth w24, w19 @@ -13751,31 +14335,31 @@ ftl_info_blk_init: add x0, x1, x0, sxtw ldrb w0, [x0, 32] cmp w0, 255 - bne .L2305 -.L2310: + bne .L2399 +.L2404: sub x19, x19, #1 cmn x19, #1 - bne .L2306 + bne .L2400 mov w24, 0 -.L2307: +.L2401: adrp x0, .LANCHOR14 ldr w0, [x0, #:lo12:.LANCHOR14] - tbz x0, 12, .L2311 - ldr x0, [x22, #:lo12:.LANCHOR97] + tbz x0, 12, .L2405 + ldr x0, [x22, #:lo12:.LANCHOR100] mov w2, 4800 mov w1, w19 ldr w3, [x0] - adrp x0, .LC137 - add x0, x0, :lo12:.LC137 + adrp x0, .LC139 + add x0, x0, :lo12:.LC139 bl printf -.L2311: +.L2405: cmn w19, #1 - bne .L2312 + bne .L2406 mov w1, 0 mov w2, 16384 add x0, x20, :lo12:ftl_info_data_buffer bl ftl_memset - ldr x0, [x22, #:lo12:.LANCHOR97] + ldr x0, [x22, #:lo12:.LANCHOR100] mov w1, 21574 movk w1, 0x494c, lsl 16 str w1, [x0] @@ -13783,7 +14367,7 @@ ftl_info_blk_init: movk w1, 0x6, lsl 16 str w1, [x0, 12] mov w0, w19 -.L2304: +.L2398: ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x23, x24, [sp, 48] @@ -13791,12 +14375,12 @@ ftl_info_blk_init: ldp x27, x28, [sp, 80] ldp x29, x30, [sp], 128 ret -.L2305: +.L2399: ldrh w6, [x26] add x8, x20, :lo12:ftl_info_data_buffer ldrb w4, [x25] - adrp x7, .LANCHOR177 - add x7, x7, :lo12:.LANCHOR177 + adrp x7, .LANCHOR178 + add x7, x7, :lo12:.LANCHOR178 mov x2, x8 mov x3, x7 stp x7, x8, [x29, 104] @@ -13809,7 +14393,7 @@ ftl_info_blk_init: cmn w0, #1 ldr w6, [x29, 124] ldp x7, x8, [x29, 104] - bne .L2308 + bne .L2402 ldrb w4, [x25] mov x3, x7 mov x2, x8 @@ -13817,58 +14401,58 @@ ftl_info_blk_init: mov w0, 0 bl ftl_read_page mov w5, w0 -.L2308: +.L2402: adrp x0, .LANCHOR14 ldr w0, [x0, #:lo12:.LANCHOR14] - tbz x0, 12, .L2309 - ldr x0, [x22, #:lo12:.LANCHOR97] + tbz x0, 12, .L2403 + ldr x0, [x22, #:lo12:.LANCHOR100] mov w2, w5 str w5, [x29, 124] mov w3, 672 mov w1, w28 ldr w4, [x0] - adrp x0, .LC136 - add x0, x0, :lo12:.LC136 + adrp x0, .LC138 + add x0, x0, :lo12:.LC138 bl printf ldr w5, [x29, 124] -.L2309: +.L2403: cmn w5, #1 - beq .L2310 - ldr x0, [x22, #:lo12:.LANCHOR97] + beq .L2404 + ldr x0, [x22, #:lo12:.LANCHOR100] ldr w0, [x0] cmp w0, w27 - bne .L2310 + bne .L2404 mov w19, w24 - b .L2307 -.L2312: + b .L2401 +.L2406: ldr x1, [x23, #:lo12:.LANCHOR26] add w0, w24, 8 add x20, x20, :lo12:ftl_info_data_buffer mov w4, 4 mov x2, x20 - adrp x26, .LANCHOR121 + adrp x26, .LANCHOR123 add x0, x1, x0, sxtw mov w27, 21574 - add x26, x26, :lo12:.LANCHOR121 + add x26, x26, :lo12:.LANCHOR123 movk w27, 0x494c, lsl 16 ldrb w1, [x0, 32] - add x0, x21, :lo12:.LANCHOR178 - strb w1, [x21, #:lo12:.LANCHOR178] + add x0, x21, :lo12:.LANCHOR179 + strb w1, [x21, #:lo12:.LANCHOR179] strb w24, [x0, 1] - adrp x24, .LANCHOR177 - add x24, x24, :lo12:.LANCHOR177 + adrp x24, .LANCHOR178 + add x24, x24, :lo12:.LANCHOR178 mov w0, 0 mov x3, x24 bl flash_get_last_written_page sxth w23, w0 add w0, w0, 1 and w19, w0, 65535 - adrp x0, .LANCHOR105 - ldrb w25, [x21, #:lo12:.LANCHOR178] - ldrh w0, [x0, #:lo12:.LANCHOR105] + adrp x0, .LANCHOR107 + ldrb w25, [x21, #:lo12:.LANCHOR179] + ldrh w0, [x0, #:lo12:.LANCHOR107] madd w25, w25, w0, w23 -.L2314: - tbnz w23, #31, .L2317 +.L2408: + tbnz w23, #31, .L2411 ldrb w4, [x26] mov x3, x24 mov x2, x20 @@ -13876,16 +14460,16 @@ ftl_info_blk_init: mov w0, 0 bl ftl_read_page cmn w0, #1 - beq .L2315 - ldr x0, [x22, #:lo12:.LANCHOR97] + beq .L2409 + ldr x0, [x22, #:lo12:.LANCHOR100] ldr w0, [x0] cmp w0, w27 - bne .L2315 -.L2317: - add x21, x21, :lo12:.LANCHOR178 + bne .L2409 +.L2411: + add x21, x21, :lo12:.LANCHOR179 strh w19, [x21, 2] bl ftl_tmp_into_update - ldr x1, [x22, #:lo12:.LANCHOR97] + ldr x1, [x22, #:lo12:.LANCHOR100] ldr w0, [x1, 64] add w0, w0, 1 str w0, [x1, 64] @@ -13894,12 +14478,12 @@ ftl_info_blk_init: mov w0, 0 bl ftl_info_flush mov w0, 0 - b .L2304 -.L2315: + b .L2398 +.L2409: sub w23, w23, #1 sub w25, w25, #1 sxth w23, w23 - b .L2314 + b .L2408 .size ftl_info_blk_init, .-ftl_info_blk_init .section .text.ftl_ext_info_flush,"ax",@progbits .align 2 @@ -13916,48 +14500,48 @@ ftl_ext_info_flush: ldr w1, [x0, 520] stp x25, x26, [sp, 64] stp x27, x28, [sp, 80] - cbz w1, .L2333 + cbz w1, .L2427 str wzr, [x0, 520] -.L2333: - adrp x20, .LANCHOR80 - adrp x22, .LANCHOR183 - adrp x21, .LANCHOR99 - add x20, x20, :lo12:.LANCHOR80 - add x22, x22, :lo12:.LANCHOR183 - add x21, x21, :lo12:.LANCHOR99 +.L2427: + adrp x20, .LANCHOR83 + adrp x22, .LANCHOR184 + adrp x21, .LANCHOR102 + add x20, x20, :lo12:.LANCHOR83 + add x22, x22, :lo12:.LANCHOR184 + add x21, x21, :lo12:.LANCHOR102 mov w0, 0 bl ftl_total_vpn_update -.L2334: - adrp x23, .LANCHOR97 +.L2428: + adrp x23, .LANCHOR100 mov x24, x23 -.L2337: - ldr x0, [x23, #:lo12:.LANCHOR97] +.L2431: + ldr x0, [x23, #:lo12:.LANCHOR100] ldr w1, [x0, 56] add w1, w1, 1 str w1, [x0, 56] ldrh w1, [x0, 140] ldrh w0, [x20] cmp w1, w0 - bcc .L2335 + bcc .L2429 bl ftl_ext_alloc_new_blk -.L2335: - ldr x0, [x24, #:lo12:.LANCHOR97] +.L2429: + ldr x0, [x24, #:lo12:.LANCHOR100] ldrh w1, [x0, 130] mov w0, 65535 cmp w1, w0 - bne .L2336 + bne .L2430 adrp x0, .LC0 - mov w2, 1746 + mov w2, 1798 mov x1, x22 add x0, x0, :lo12:.LC0 bl printf -.L2336: - ldr x1, [x24, #:lo12:.LANCHOR97] +.L2430: + ldr x1, [x24, #:lo12:.LANCHOR100] mov w19, 21 ldrh w0, [x21] - adrp x26, .LANCHOR121 - adrp x27, .LANCHOR177 - add x25, x27, :lo12:.LANCHOR177 + adrp x26, .LANCHOR123 + adrp x27, .LANCHOR178 + add x25, x27, :lo12:.LANCHOR178 sub w0, w19, w0 mov w19, 1 ldrh w2, [x1, 130] @@ -13965,43 +14549,43 @@ ftl_ext_info_flush: sub w19, w19, #1 and w19, w19, w2 asr w28, w2, w0 - adrp x0, .LANCHOR105 - ldrh w2, [x0, #:lo12:.LANCHOR105] + adrp x0, .LANCHOR107 + ldrh w2, [x0, #:lo12:.LANCHOR107] ldrh w0, [x1, 140] mov w1, 0 madd w19, w19, w2, w0 - ldrb w2, [x26, #:lo12:.LANCHOR121] + ldrb w2, [x26, #:lo12:.LANCHOR123] mov x0, x25 and w19, w19, 65535 lsl w2, w2, 1 bl ftl_memset - ldr x0, [x24, #:lo12:.LANCHOR97] + ldr x0, [x24, #:lo12:.LANCHOR100] mov w1, w19 - ldrb w4, [x26, #:lo12:.LANCHOR121] + ldrb w4, [x26, #:lo12:.LANCHOR123] mov x3, x25 - str wzr, [x27, #:lo12:.LANCHOR177] + str wzr, [x27, #:lo12:.LANCHOR178] adrp x2, ftl_ext_info_data_buffer add x2, x2, :lo12:ftl_ext_info_data_buffer ldr w0, [x0, 56] str w0, [x25, 4] mov w0, w28 bl ftl_prog_page - ldr x2, [x24, #:lo12:.LANCHOR97] + ldr x2, [x24, #:lo12:.LANCHOR100] ldrh w1, [x2, 140] add w1, w1, 1 and w1, w1, 65535 strh w1, [x2, 140] cmp w1, 1 - beq .L2337 + beq .L2431 cmn w0, #1 - adrp x0, .LANCHOR182 - beq .L2338 - ldrb w1, [x0, #:lo12:.LANCHOR182] - cbz w1, .L2339 -.L2338: - strb wzr, [x0, #:lo12:.LANCHOR182] - b .L2334 -.L2339: + adrp x0, .LANCHOR183 + beq .L2432 + ldrb w1, [x0, #:lo12:.LANCHOR183] + cbz w1, .L2433 +.L2432: + strb wzr, [x0, #:lo12:.LANCHOR183] + b .L2428 +.L2433: mov w0, 0 ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] @@ -14017,23 +14601,23 @@ ftl_ext_info_flush: .type ftl_ext_info_init, %function ftl_ext_info_init: stp x29, x30, [sp, -112]! - adrp x0, .LANCHOR115 + adrp x0, .LANCHOR117 mov w4, 4 add x29, sp, 0 stp x19, x20, [sp, 16] - adrp x20, .LANCHOR97 - strh wzr, [x0, #:lo12:.LANCHOR115] + adrp x20, .LANCHOR100 + strh wzr, [x0, #:lo12:.LANCHOR117] mov w19, 21 - ldr x0, [x20, #:lo12:.LANCHOR97] + ldr x0, [x20, #:lo12:.LANCHOR100] stp x21, x22, [sp, 32] stp x27, x28, [sp, 80] stp x23, x24, [sp, 48] - adrp x24, .LANCHOR177 + adrp x24, .LANCHOR178 ldrh w1, [x0, 130] - adrp x0, .LANCHOR99 + adrp x0, .LANCHOR102 stp x25, x26, [sp, 64] - add x3, x24, :lo12:.LANCHOR177 - ldrh w0, [x0, #:lo12:.LANCHOR99] + add x3, x24, :lo12:.LANCHOR178 + ldrh w0, [x0, #:lo12:.LANCHOR102] adrp x25, ftl_ext_info_data_buffer add x2, x25, :lo12:ftl_ext_info_data_buffer sub w0, w19, w0 @@ -14049,33 +14633,33 @@ ftl_ext_info_init: sxth w22, w0 adrp x0, .LANCHOR14 ldr w0, [x0, #:lo12:.LANCHOR14] - tbz x0, 12, .L2350 - ldr x0, [x20, #:lo12:.LANCHOR97] - adrp x1, .LANCHOR184 + tbz x0, 12, .L2444 + ldr x0, [x20, #:lo12:.LANCHOR100] + adrp x1, .LANCHOR185 and w4, w21, 65535 mov w3, w22 - mov w2, 1790 - add x1, x1, :lo12:.LANCHOR184 + mov w2, 1842 + add x1, x1, :lo12:.LANCHOR185 ldrh w5, [x0, 130] - adrp x0, .LC138 - add x0, x0, :lo12:.LC138 + adrp x0, .LC140 + add x0, x0, :lo12:.LC140 bl printf -.L2350: - adrp x26, .LANCHOR121 - adrp x28, .LANCHOR105 +.L2444: + adrp x26, .LANCHOR123 + adrp x28, .LANCHOR107 mov w5, 20038 - add x26, x26, :lo12:.LANCHOR121 - add x28, x28, :lo12:.LANCHOR105 + add x26, x26, :lo12:.LANCHOR123 + add x28, x28, :lo12:.LANCHOR107 mov w23, 0 movk w5, 0x4549, lsl 16 -.L2351: +.L2445: and w21, w22, 65535 sub w0, w21, w23 - tbnz x0, 15, .L2356 + tbnz x0, 15, .L2450 ldrh w0, [x28] sub w1, w22, w23 ldrb w4, [x26] - add x3, x24, :lo12:.LANCHOR177 + add x3, x24, :lo12:.LANCHOR178 str w5, [x29, 108] add x2, x25, :lo12:ftl_ext_info_data_buffer madd w1, w0, w19, w1 @@ -14084,22 +14668,22 @@ ftl_ext_info_init: cmp w0, 512 ccmn w0, #1, 4, ne ldr w5, [x29, 108] - beq .L2352 + beq .L2446 adrp x0, .LANCHOR10 ldr x0, [x0, #:lo12:.LANCHOR10] ldr w0, [x0] cmp w0, w5 - bne .L2352 -.L2356: + bne .L2446 +.L2450: bl zftl_sblk_list_init - ldr x0, [x20, #:lo12:.LANCHOR97] + ldr x0, [x20, #:lo12:.LANCHOR100] ldrh w1, [x0, 140] cmp w1, w22 - bgt .L2354 + bgt .L2448 add w21, w21, 1 strh w21, [x0, 140] bl ftl_ext_info_flush -.L2354: +.L2448: adrp x0, .LANCHOR10 mov w1, -1 ldp x19, x20, [sp, 16] @@ -14115,14 +14699,14 @@ ftl_ext_info_init: str wzr, [x0, 520] str wzr, [x0, 604] str wzr, [x0, 608] - adrp x0, .LANCHOR63 - strh w1, [x0, #:lo12:.LANCHOR63] + adrp x0, .LANCHOR64 + strh w1, [x0, #:lo12:.LANCHOR64] mov w0, 0 ldp x29, x30, [sp], 112 ret -.L2352: +.L2446: add w23, w23, 1 - b .L2351 + b .L2445 .size ftl_ext_info_init, .-ftl_ext_info_init .section .text.ftl_low_format_data_init,"ax",@progbits .align 2 @@ -14139,44 +14723,44 @@ ftl_low_format_data_init: str x21, [sp, 32] bl ftl_memset bl zftl_sblk_list_init - adrp x19, .LANCHOR97 + adrp x19, .LANCHOR100 mov w0, 1 bl ftl_alloc_sblk mov w1, 0 mov w21, w0 bl ftl_erase_sblk - ldr x1, [x19, #:lo12:.LANCHOR97] + ldr x1, [x19, #:lo12:.LANCHOR100] mov w0, w21 add x1, x1, 672 bl ftl_get_blk_list_in_sblk - ldr x0, [x19, #:lo12:.LANCHOR97] + ldr x0, [x19, #:lo12:.LANCHOR100] ldrh w20, [x0, 672] strh wzr, [x0, 690] mov w0, 65533 sub w1, w20, #1 cmp w0, w1, uxth - bcs .L2365 - adrp x1, .LANCHOR185 + bcs .L2459 + adrp x1, .LANCHOR186 adrp x0, .LC0 - mov w2, 1973 - add x1, x1, :lo12:.LANCHOR185 + mov w2, 2025 + add x1, x1, :lo12:.LANCHOR186 add x0, x0, :lo12:.LC0 bl printf -.L2365: - ldr x0, [x19, #:lo12:.LANCHOR97] +.L2459: + ldr x0, [x19, #:lo12:.LANCHOR100] mov w2, 256 mov w1, 255 add x0, x0, 416 strh wzr, [x0, 280] bl ftl_memset - ldr x0, [x19, #:lo12:.LANCHOR97] + ldr x0, [x19, #:lo12:.LANCHOR100] mov w2, 4096 mov w1, 0 add x0, x0, 704 bl ftl_memset - adrp x1, .LANCHOR99 - ldr x0, [x19, #:lo12:.LANCHOR97] - ldrh w2, [x1, #:lo12:.LANCHOR99] + adrp x1, .LANCHOR102 + ldr x0, [x19, #:lo12:.LANCHOR100] + ldrh w2, [x1, #:lo12:.LANCHOR102] mov w1, 21 sub w1, w1, w2 strh w21, [x0, 416] @@ -14186,8 +14770,8 @@ ftl_low_format_data_init: strh w1, [x0, 694] mov w1, 1 strh w1, [x0, 688] - adrp x1, .LANCHOR186 - ldrh w1, [x1, #:lo12:.LANCHOR186] + adrp x1, .LANCHOR187 + ldrh w1, [x1, #:lo12:.LANCHOR187] strh w1, [x0, 698] ldr x0, [x21, #:lo12:.LANCHOR10] mov w1, 20038 @@ -14197,7 +14781,7 @@ ftl_low_format_data_init: mov w20, w0 mov w1, 0 bl ftl_erase_phy_blk - ldr x0, [x19, #:lo12:.LANCHOR97] + ldr x0, [x19, #:lo12:.LANCHOR100] mov w1, 2 strh w20, [x0, 130] mov w20, -1 @@ -14213,7 +14797,7 @@ ftl_low_format_data_init: mov w1, 3 add x0, x0, 48 bl ftl_open_sblk_init - ldr x1, [x19, #:lo12:.LANCHOR97] + ldr x1, [x19, #:lo12:.LANCHOR100] ldr x0, [x21, #:lo12:.LANCHOR10] add x0, x0, 136 ldrh w2, [x1, 134] @@ -14254,13 +14838,13 @@ ftl_low_format_data_init: ftl_low_format: stp x29, x30, [sp, -80]! mov w1, 0 - adrp x0, .LC139 - add x0, x0, :lo12:.LC139 + adrp x0, .LC141 + add x0, x0, :lo12:.LC141 add x29, sp, 0 stp x19, x20, [sp, 16] - adrp x20, .LANCHOR187 + adrp x20, .LANCHOR188 stp x21, x22, [sp, 32] - add x20, x20, :lo12:.LANCHOR187 + add x20, x20, :lo12:.LANCHOR188 stp x25, x26, [sp, 64] adrp x22, .LANCHOR26 mov x25, x22 @@ -14268,30 +14852,30 @@ ftl_low_format: mov w19, 8 adrp x23, .LC0 bl printf -.L2370: +.L2464: ldr x0, [x22, #:lo12:.LANCHOR26] add x0, x0, x19, sxtw ldrb w21, [x0, 32] add w0, w21, 127 and w0, w0, 255 cmp w0, 125 - bhi .L2368 - mov w2, 2027 + bhi .L2462 + mov w2, 2079 mov x1, x20 add x0, x23, :lo12:.LC0 bl printf -.L2368: +.L2462: cmp w21, 255 - beq .L2369 - adrp x0, .LANCHOR105 - ldrh w1, [x0, #:lo12:.LANCHOR105] + beq .L2463 + adrp x0, .LANCHOR107 + ldrh w1, [x0, #:lo12:.LANCHOR107] mov w0, 0 mul w1, w1, w21 bl flash_erase_block -.L2369: +.L2463: add w19, w19, 1 cmp w19, 16 - bne .L2370 + bne .L2464 bl sblk_init adrp x22, .LANCHOR7 bl ftl_info_blk_init @@ -14305,29 +14889,29 @@ ftl_low_format: mov w3, 1 ldrh w2, [x19, #:lo12:.LANCHOR6] add x2, x0, x2, lsl 2 -.L2371: +.L2465: cmp x0, x2 - bne .L2372 - adrp x21, .LANCHOR97 + bne .L2466 + adrp x21, .LANCHOR100 mov w1, 21574 - adrp x24, .LANCHOR59 - add x24, x24, :lo12:.LANCHOR59 - ldr x0, [x21, #:lo12:.LANCHOR97] + adrp x24, .LANCHOR60 + add x24, x24, :lo12:.LANCHOR60 + ldr x0, [x21, #:lo12:.LANCHOR100] movk w1, 0x494c, lsl 16 mov w20, 0 mov w26, 1 strh wzr, [x0, 148] str w1, [x0] -.L2373: +.L2467: ldrh w0, [x19, #:lo12:.LANCHOR6] - adrp x23, .LANCHOR98 + adrp x23, .LANCHOR101 cmp w0, w20 - bhi .L2381 + bhi .L2476 ldr x0, [x25, #:lo12:.LANCHOR26] mov w4, 3 - ldrb w2, [x23, #:lo12:.LANCHOR98] + ldrb w2, [x23, #:lo12:.LANCHOR101] mov w10, 15 - ldr x6, [x21, #:lo12:.LANCHOR97] + ldr x6, [x21, #:lo12:.LANCHOR100] cmp w2, 1 ldr x1, [x22, #:lo12:.LANCHOR7] ldrb w0, [x0, 47] @@ -14341,7 +14925,7 @@ ftl_low_format: add x0, x0, 4 add w20, w5, 1 add x0, x1, x0 -.L2384: +.L2479: cmp w2, 4 add x1, x1, 4 csel w7, w10, w4, eq @@ -14350,10 +14934,10 @@ ftl_low_format: orr w7, w7, -32 strb w7, [x1, -2] cmp x1, x0 - bne .L2384 + bne .L2479 mul w5, w5, w8 mov w4, 16 - add w0, w3, w8 + add w0, w8, w3 sdiv w4, w4, w2 add w0, w5, w0, uxth strh w0, [x6, 148] @@ -14362,28 +14946,28 @@ ftl_low_format: add w4, w20, w4 and w4, w4, 65535 strh w4, [x6, 134] - tbz x0, 12, .L2385 - adrp x0, .LC140 + tbz x0, 12, .L2480 + adrp x0, .LC142 mov w3, w20 mov w2, 128 - mov w1, 2073 - add x0, x0, :lo12:.LC140 + mov w1, 2126 + add x0, x0, :lo12:.LC142 bl printf -.L2385: - ldr x0, [x21, #:lo12:.LANCHOR97] +.L2480: + ldr x0, [x21, #:lo12:.LANCHOR100] mov w2, 128 mov w1, 255 add x0, x0, 160 bl ftl_memset - adrp x0, .LANCHOR106 - ldrb w13, [x23, #:lo12:.LANCHOR98] - ldr x2, [x21, #:lo12:.LANCHOR97] + adrp x0, .LANCHOR108 + ldrb w13, [x23, #:lo12:.LANCHOR101] + ldr x2, [x21, #:lo12:.LANCHOR100] mov w4, 21 - ldrb w15, [x0, #:lo12:.LANCHOR106] - adrp x0, .LANCHOR99 + ldrb w15, [x0, #:lo12:.LANCHOR108] + adrp x0, .LANCHOR102 and w16, w13, 65535 ldr x14, [x22, #:lo12:.LANCHOR7] - ldrh w0, [x0, #:lo12:.LANCHOR99] + ldrh w0, [x0, #:lo12:.LANCHOR102] mov w3, 0 ldrh w12, [x2, 134] sub w0, w4, w0 @@ -14392,9 +14976,9 @@ ftl_low_format: lsl w4, w4, w0 and w1, w1, 65535 and w4, w4, 65535 -.L2386: +.L2481: cmp w20, w12 - bcc .L2392 + bcc .L2487 ldrh w0, [x19, #:lo12:.LANCHOR6] strh w3, [x2, 112] sub w0, w0, w12 @@ -14410,37 +14994,41 @@ ftl_low_format: ldp x25, x26, [sp, 64] ldp x29, x30, [sp], 80 ret -.L2372: +.L2466: ldrb w1, [x0, 2] add x0, x0, 4 and w1, w1, 31 bfi w1, w3, 3, 2 strb w1, [x0, -2] - b .L2371 -.L2381: + b .L2465 +.L2476: + adrp x0, .LANCHOR71 strh w20, [x24] + ldrb w0, [x0, #:lo12:.LANCHOR71] + cbnz w0, .L2468 mov w0, w20 bl ftl_test_block - ldrb w11, [x23, #:lo12:.LANCHOR98] - adrp x0, .LANCHOR106 +.L2468: + ldrb w11, [x23, #:lo12:.LANCHOR101] + adrp x0, .LANCHOR108 ldr x6, [x22, #:lo12:.LANCHOR7] mov w7, 0 - ldrb w14, [x0, #:lo12:.LANCHOR106] + ldrb w14, [x0, #:lo12:.LANCHOR108] mov w10, 0 - ldr x13, [x21, #:lo12:.LANCHOR97] + ldr x13, [x21, #:lo12:.LANCHOR100] mov w8, 0 mul w12, w20, w11 add x6, x6, x20, uxth 2 -.L2374: +.L2469: cmp w8, w14 - bcs .L2378 + bcs .L2473 add w15, w11, w7 - b .L2379 -.L2377: + b .L2474 +.L2472: add w1, w7, w12 mov w0, w8 bl flash_check_bad_block - cbz w0, .L2375 + cbz w0, .L2470 ldrb w1, [x6, 3] lsl w0, w26, w7 orr w0, w0, w1 @@ -14448,29 +15036,29 @@ ftl_low_format: ldrh w0, [x13, 148] add w0, w0, 1 strh w0, [x13, 148] -.L2376: +.L2471: add w7, w7, 1 -.L2379: +.L2474: cmp w7, w15 - bne .L2377 + bne .L2472 add w8, w8, 1 sub w12, w12, w11 and w8, w8, 65535 - b .L2374 -.L2375: + b .L2469 +.L2470: add w10, w10, 1 and w10, w10, 65535 - b .L2376 -.L2378: - cbnz w10, .L2380 + b .L2471 +.L2473: + cbnz w10, .L2475 ldrb w0, [x6, 2] orr w0, w0, -32 strb w0, [x6, 2] -.L2380: +.L2475: add w20, w20, 1 and w20, w20, 65535 - b .L2373 -.L2392: + b .L2467 +.L2487: add x10, x14, x20, uxth 2 mov w6, 0 mov w8, 0 @@ -14478,48 +15066,48 @@ ftl_low_format: ldrb w0, [x10, 2] orr w0, w0, -32 strb w0, [x10, 2] -.L2387: +.L2482: cmp w5, w15 - bcc .L2394 + bcc .L2489 add w20, w20, 1 - add w1, w16, w1 + add w1, w1, w16 and w20, w20, 65535 and w1, w1, 65535 - b .L2386 -.L2390: + b .L2481 +.L2485: ldrb w11, [x10, 3] add w17, w8, w7 asr w11, w11, w17 - tbnz x11, 0, .L2388 + tbnz x11, 0, .L2483 cmp w13, 1 - bls .L2393 + bls .L2488 and w0, w0, 1 add w0, w1, w0 and w0, w0, 65535 -.L2389: +.L2484: add x11, x2, x3, sxtw 1 add w3, w3, 1 and w3, w3, 65535 add w0, w0, w6 strh w0, [x11, 160] -.L2388: +.L2483: add x7, x7, 1 -.L2391: +.L2486: and w0, w7, 65535 cmp w0, w16 - bcc .L2390 + bcc .L2485 add w5, w5, 1 - add w6, w6, w4 + add w6, w4, w6 and w5, w5, 65535 add w8, w8, w13 and w6, w6, 65535 - b .L2387 -.L2393: + b .L2482 +.L2488: mov w0, w1 - b .L2389 -.L2394: + b .L2484 +.L2489: mov x7, 0 - b .L2391 + b .L2486 .size ftl_low_format, .-ftl_low_format .section .text.ftl_re_low_format,"ax",@progbits .align 2 @@ -14528,27 +15116,27 @@ ftl_low_format: ftl_re_low_format: stp x29, x30, [sp, -16]! mov w1, 1 - adrp x0, .LC141 - add x0, x0, :lo12:.LC141 + adrp x0, .LC143 + add x0, x0, :lo12:.LC143 add x29, sp, 0 bl printf bl sblk_init bl ftl_info_blk_init bl ftl_ext_info_init - adrp x0, .LANCHOR97 + adrp x0, .LANCHOR100 adrp x2, .LANCHOR6 mov w3, 0 mov w4, 0 - ldr x0, [x0, #:lo12:.LANCHOR97] + ldr x0, [x0, #:lo12:.LANCHOR100] mov w5, 0 ldrh w7, [x2, #:lo12:.LANCHOR6] adrp x2, .LANCHOR7 ldr x2, [x2, #:lo12:.LANCHOR7] ldrh w1, [x0, 134] add x2, x2, x1, uxth 2 -.L2405: +.L2500: cmp w1, w7 - bcc .L2409 + bcc .L2504 strh w5, [x0, 114] strh w4, [x0, 118] strh w3, [x0, 116] @@ -14559,29 +15147,29 @@ ftl_re_low_format: mov w0, 0 ldp x29, x30, [sp], 16 ret -.L2409: +.L2504: ldrb w6, [x2, 2] and w8, w6, 31 strb w8, [x2, 2] ands w6, w6, 24 - bne .L2406 + bne .L2501 add w5, w5, 1 and w5, w5, 65535 -.L2407: +.L2502: add w1, w1, 1 add x2, x2, 4 and w1, w1, 65535 - b .L2405 -.L2406: + b .L2500 +.L2501: cmp w6, 16 - bne .L2408 + bne .L2503 add w4, w4, 1 and w4, w4, 65535 - b .L2407 -.L2408: + b .L2502 +.L2503: add w3, w3, 1 and w3, w3, 65535 - b .L2407 + b .L2502 .size ftl_re_low_format, .-ftl_re_low_format .section .text.ftl_prog_ppa_page,"ax",@progbits .align 2 @@ -14603,50 +15191,50 @@ ftl_prog_ppa_page: ftl_write_last_log_page: ldrh w1, [x0, 6] cmp w1, 1 - bne .L2414 + bne .L2509 stp x29, x30, [sp, -48]! - adrp x1, .LANCHOR111 + adrp x1, .LANCHOR113 add x29, sp, 0 stp x19, x20, [sp, 16] mov x19, x0 stp x21, x22, [sp, 32] - ldr x20, [x1, #:lo12:.LANCHOR111] + ldr x20, [x1, #:lo12:.LANCHOR113] ldrh w22, [x0, 12] bl ftl_get_new_free_page mov w21, w0 cmn w0, #1 - beq .L2415 + beq .L2510 ldrh w0, [x19] add x20, x20, x22, uxth 2 bl ftl_vpn_decrement - adrp x0, .LANCHOR175 + adrp x0, .LANCHOR176 mov w1, 15555 - add x6, x0, :lo12:.LANCHOR175 + add x6, x0, :lo12:.LANCHOR176 movk w1, 0xf55f, lsl 16 - str w1, [x0, #:lo12:.LANCHOR175] - adrp x0, .LANCHOR80 - ldrh w1, [x0, #:lo12:.LANCHOR80] - adrp x0, .LANCHOR73 - ldrb w0, [x0, #:lo12:.LANCHOR73] + str w1, [x0, #:lo12:.LANCHOR176] + adrp x0, .LANCHOR83 + ldrh w1, [x0, #:lo12:.LANCHOR83] + adrp x0, .LANCHOR76 + ldrb w0, [x0, #:lo12:.LANCHOR76] mul w1, w1, w0 mov x0, x20 lsl w1, w1, 2 bl js_hash stp w0, wzr, [x6, 4] - adrp x0, .LANCHOR121 + adrp x0, .LANCHOR123 mov x2, x6 mov x1, x20 - ldrb w3, [x0, #:lo12:.LANCHOR121] + ldrb w3, [x0, #:lo12:.LANCHOR123] mov w0, w21 str wzr, [x6, 12] bl ftl_prog_ppa_page -.L2415: +.L2510: mov w0, 0 ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x29, x30, [sp], 48 ret -.L2414: +.L2509: mov w0, -1 ret .size ftl_write_last_log_page, .-ftl_write_last_log_page @@ -14655,377 +15243,502 @@ ftl_write_last_log_page: .global ftl_open_sblk_recovery .type ftl_open_sblk_recovery, %function ftl_open_sblk_recovery: - stp x29, x30, [sp, -144]! + stp x29, x30, [sp, -224]! add x29, sp, 0 stp x21, x22, [sp, 32] - adrp x22, .LANCHOR14 - stp x27, x28, [sp, 80] - mov x28, x0 - ldr w0, [x22, #:lo12:.LANCHOR14] + adrp x21, .LANCHOR14 + stp x19, x20, [sp, 16] + mov x19, x0 + ldr w0, [x21, #:lo12:.LANCHOR14] stp x25, x26, [sp, 64] mov x25, x1 - stp x19, x20, [sp, 16] stp x23, x24, [sp, 48] - tbz x0, 12, .L2421 - ldrh w1, [x28, 2] - adrp x0, .LC142 - add x0, x0, :lo12:.LC142 - bl printf -.L2421: - ldr w0, [x22, #:lo12:.LANCHOR14] - tbz x0, 12, .L2422 - ldrb w1, [x28, 5] - adrp x0, .LC143 - add x0, x0, :lo12:.LC143 - bl printf -.L2422: - ldr w0, [x22, #:lo12:.LANCHOR14] - tbz x0, 12, .L2423 - ldrh w1, [x28] + stp x27, x28, [sp, 80] + tbz x0, 12, .L2516 + ldrh w1, [x19, 2] adrp x0, .LC144 add x0, x0, :lo12:.LC144 bl printf -.L2423: - ldr w0, [x22, #:lo12:.LANCHOR14] - tbz x0, 12, .L2424 - ldrh w2, [x28, 18] +.L2516: + ldr w0, [x21, #:lo12:.LANCHOR14] + tbz x0, 12, .L2517 + ldrb w1, [x19, 5] adrp x0, .LC145 - ldrh w1, [x28, 16] add x0, x0, :lo12:.LC145 bl printf -.L2424: - ldrh w0, [x28, 10] - strh w0, [x28, 14] - adrp x0, .LANCHOR6 - ldrh w1, [x28] - ldrh w0, [x0, #:lo12:.LANCHOR6] - cmp w1, w0 - bcs .L2420 - mov w0, 1 - bl buf_alloc - ldrb w20, [x28, 5] - mov x19, x0 - ldrh w21, [x28, 2] - adrp x26, .LANCHOR121 - mov w27, 0 - add x0, x26, :lo12:.LANCHOR121 - adrp x23, .LANCHOR80 - str x0, [x29, 128] -.L2427: - ldrh w0, [x23, #:lo12:.LANCHOR80] - cmp w0, w21 - bhi .L2440 -.L2430: - ldrh w0, [x28, 10] - ldrh w1, [x28, 6] - ldrh w2, [x23, #:lo12:.LANCHOR80] - add w1, w1, w0 - ldrb w0, [x28, 9] - strh w21, [x28, 2] - strb w20, [x28, 5] - mul w0, w0, w2 - cmp w1, w0 - beq .L2441 - adrp x1, .LANCHOR188 - adrp x0, .LC0 - mov w2, 1472 - add x1, x1, :lo12:.LANCHOR188 - add x0, x0, :lo12:.LC0 - bl printf -.L2441: - adrp x21, .LANCHOR111 - ldrh w3, [x28, 10] - mov w0, 0 - mov w1, 0 - ldr x5, [x21, #:lo12:.LANCHOR111] -.L2442: - cmp w1, w3 - bcc .L2444 - ldrb w20, [x28, 9] - adrp x24, .LANCHOR9 - ldrh w1, [x23, #:lo12:.LANCHOR80] - madd w20, w20, w1, w0 - ldr w0, [x22, #:lo12:.LANCHOR14] - sub w20, w20, w3 - and w20, w20, 65535 - tbz x0, 12, .L2445 - ldrh w1, [x28] - ldr x2, [x24, #:lo12:.LANCHOR9] - ubfiz x0, x1, 1, 16 - ldrh w3, [x2, x0] +.L2517: + ldr w0, [x21, #:lo12:.LANCHOR14] + tbz x0, 12, .L2518 + ldrh w1, [x19] adrp x0, .LC146 - mov w2, w20 add x0, x0, :lo12:.LC146 bl printf -.L2445: - ldr x0, [x24, #:lo12:.LANCHOR9] - adrp x25, .LANCHOR121 - ldrh w1, [x28] - adrp x24, .LANCHOR73 - adrp x26, .LC147 - add x24, x24, :lo12:.LANCHOR73 - add x25, x25, :lo12:.LANCHOR121 - add x26, x26, :lo12:.LC147 - strh w20, [x0, x1, lsl 1] - mov w20, 0 - mov x0, x19 +.L2518: + ldr w0, [x21, #:lo12:.LANCHOR14] + tbz x0, 12, .L2519 + ldrh w2, [x19, 18] + adrp x0, .LC147 + ldrh w1, [x19, 16] + add x0, x0, :lo12:.LC147 + bl printf +.L2519: + ldrh w0, [x19, 10] + strh w0, [x19, 14] + adrp x0, .LANCHOR6 + ldrh w1, [x19] + ldrh w0, [x0, #:lo12:.LANCHOR6] + cmp w1, w0 + bcs .L2515 + mov w0, 1 + add x26, x29, 160 + bl buf_alloc + mov x20, x0 + mov w2, 64 + mov w1, 255 + mov x0, x26 + bl ftl_memset + ldrb w22, [x19, 5] + adrp x0, .LANCHOR123 + ldrh w23, [x19, 2] + add x0, x0, :lo12:.LANCHOR123 + mov w27, 2 + adrp x24, .LANCHOR83 + str x0, [x29, 128] + str wzr, [x29, 152] +.L2521: + ldrh w0, [x24, #:lo12:.LANCHOR83] + cmp w0, w23 + bhi .L2534 +.L2524: + ldrh w0, [x19, 10] + ldrh w1, [x19, 6] + ldrh w2, [x24, #:lo12:.LANCHOR83] + add w1, w1, w0 + ldrb w0, [x19, 9] + strh w23, [x19, 2] + strb w22, [x19, 5] + mul w0, w0, w2 + cmp w1, w0 + beq .L2535 + adrp x1, .LANCHOR189 + adrp x0, .LC0 + mov w2, 1480 + add x1, x1, :lo12:.LANCHOR189 + add x0, x0, :lo12:.LC0 + bl printf +.L2535: + adrp x2, .LANCHOR113 + ldrh w3, [x19, 10] + mov w0, 0 + mov w1, 0 + ldr x4, [x2, #:lo12:.LANCHOR113] + str x2, [x29, 136] +.L2536: + cmp w1, w3 + bcc .L2538 + ldrb w22, [x19, 9] + adrp x23, .LANCHOR9 + ldrh w1, [x24, #:lo12:.LANCHOR83] + madd w22, w22, w1, w0 + ldr w0, [x21, #:lo12:.LANCHOR14] + sub w22, w22, w3 + and w22, w22, 65535 + tbz x0, 12, .L2539 + ldrh w1, [x19] + ldr x2, [x23, #:lo12:.LANCHOR9] + ubfiz x0, x1, 1, 16 + ldrh w3, [x2, x0] + adrp x0, .LC148 + mov w2, w22 + add x0, x0, :lo12:.LC148 + bl printf +.L2539: + ldr x0, [x23, #:lo12:.LANCHOR9] + ldrh w1, [x19] + strh w22, [x0, x1, lsl 1] + ldr w0, [x21, #:lo12:.LANCHOR14] + tbz x0, 14, .L2540 + ldp w1, w2, [x29, 160] + adrp x0, .LC149 + ldp w3, w4, [x29, 168] + add x0, x0, :lo12:.LC149 + bl printf +.L2540: + adrp x25, .LANCHOR123 + ldr x0, [x20, 8] + mov w1, 0 + mov x23, 0 + ldrb w2, [x25, #:lo12:.LANCHOR123] + lsl w2, w2, 9 + bl ftl_memset + adrp x0, .LC151 + add x0, x0, :lo12:.LC151 + str x0, [x29, 120] + adrp x0, .LANCHOR76 + add x0, x0, :lo12:.LANCHOR76 + str x0, [x29, 112] +.L2541: + adrp x0, .LANCHOR76 + str w23, [x29, 148] + ldrb w0, [x0, #:lo12:.LANCHOR76] + mul w0, w0, w27 + cmp w23, w0 + bcc .L2554 + mov x0, x20 bl buf_free -.L2446: - ldrb w0, [x24] - cmp w20, w0, lsl 1 - bcc .L2449 - ldrh w1, [x28, 12] - ldrh w0, [x23, #:lo12:.LANCHOR80] - ldrb w2, [x28, 9] + ldrh w1, [x19, 12] + ldrh w0, [x24, #:lo12:.LANCHOR83] + ldrb w2, [x19, 9] madd w0, w0, w2, w1 mov x1, -4 add x0, x1, x0, sxtw 2 - ldr x1, [x21, #:lo12:.LANCHOR111] + ldr x1, [x29, 136] + ldr x1, [x1, #:lo12:.LANCHOR113] ldr w0, [x1, x0] cmn w0, #1 - beq .L2450 - adrp x1, .LANCHOR188 + beq .L2555 + adrp x1, .LANCHOR189 adrp x0, .LC0 - mov w2, 1502 - add x1, x1, :lo12:.LANCHOR188 + mov w2, 1554 + add x1, x1, :lo12:.LANCHOR189 add x0, x0, :lo12:.LC0 bl printf -.L2450: - ldrh w0, [x28, 6] +.L2555: + ldrh w0, [x19, 6] cmp w0, 1 - bne .L2420 + bne .L2515 + mov x0, x19 + bl ftl_write_last_log_page +.L2515: ldp x19, x20, [sp, 16] - mov x0, x28 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 - b ftl_write_last_log_page -.L2440: - ldrb w20, [x28, 5] - adrp x24, .LANCHOR105 - add x0, x24, :lo12:.LANCHOR105 + ldp x29, x30, [sp], 224 + ret +.L2534: + ldrb w22, [x19, 5] + adrp x0, .LANCHOR107 + add x0, x0, :lo12:.LANCHOR107 str x0, [x29, 136] -.L2428: - ldrb w0, [x28, 9] - cmp w0, w20 - bhi .L2439 - add w21, w21, 1 - strb wzr, [x28, 5] - and w21, w21, 65535 - b .L2427 -.L2439: - add x0, x28, x20, sxtw 1 +.L2522: + ldrb w0, [x19, 9] + cmp w0, w22 + bhi .L2533 + add w23, w23, 1 + strb wzr, [x19, 5] + and w23, w23, 65535 + b .L2521 +.L2533: + add x0, x19, x22, sxtw 1 mov w1, 65535 ldrh w0, [x0, 16] cmp w0, w1 - beq .L2429 + beq .L2523 ldr x1, [x29, 136] - ldrb w3, [x26, #:lo12:.LANCHOR121] - ldr x2, [x19, 24] - ldrh w5, [x1] - ldr x1, [x19, 8] - madd w0, w5, w0, w21 + ldr x2, [x20, 24] + ldrh w1, [x1] + madd w0, w1, w0, w23 + ldr x1, [x20, 8] + str w0, [x29, 148] + adrp x0, .LANCHOR123 + ldrb w3, [x0, #:lo12:.LANCHOR123] + ldr w0, [x29, 148] bl ftl_read_ppa_page - mov w24, w0 + mov w28, w0 cmp w0, 512 - beq .L2430 + beq .L2524 cmn w0, #1 - beq .L2431 - ldr x0, [x19, 24] + beq .L2525 + ldr x0, [x20, 24] ldr w1, [x0] cmn w1, #1 - bne .L2431 + bne .L2525 ldr w0, [x0, 4] cmn w0, #1 - bne .L2431 - ldr x0, [x19, 8] + bne .L2525 + ldr x0, [x20, 8] ldr w0, [x0] cmn w0, #1 - beq .L2430 -.L2431: - adrp x0, .LANCHOR181 + beq .L2524 +.L2525: + adrp x0, .LANCHOR182 mov w1, 1 - strb w1, [x0, #:lo12:.LANCHOR181] - ldrb w0, [x28, 9] - ldrh w1, [x28, 10] - madd w0, w0, w21, w20 + strb w1, [x0, #:lo12:.LANCHOR182] + ldrb w0, [x19, 9] + ldrh w1, [x19, 10] + madd w0, w0, w23, w22 cmp w1, w0 - beq .L2432 - adrp x1, .LANCHOR188 + beq .L2526 + adrp x1, .LANCHOR189 adrp x0, .LC0 - mov w2, 1395 - add x1, x1, :lo12:.LANCHOR188 + mov w2, 1399 + add x1, x1, :lo12:.LANCHOR189 add x0, x0, :lo12:.LC0 bl printf -.L2432: - ldrh w0, [x28, 10] - ldrh w1, [x28, 6] - ldrb w2, [x28, 9] +.L2526: + ldrh w0, [x19, 10] + ldrh w1, [x19, 6] + ldrb w2, [x19, 9] add w1, w1, w0 - ldrh w0, [x23, #:lo12:.LANCHOR80] + ldrh w0, [x24, #:lo12:.LANCHOR83] mul w0, w0, w2 cmp w1, w0 - beq .L2433 - adrp x1, .LANCHOR188 + beq .L2527 + adrp x1, .LANCHOR189 adrp x0, .LC0 - mov w2, 1396 - add x1, x1, :lo12:.LANCHOR188 + mov w2, 1400 + add x1, x1, :lo12:.LANCHOR189 add x0, x0, :lo12:.LC0 bl printf -.L2433: - cmn w24, #1 - beq .L2435 - ldr x0, [x19, 24] +.L2527: + cmn w28, #1 + beq .L2529 + ldr x0, [x20, 24] ldr w0, [x0, 4] cmn w0, #1 - beq .L2435 + beq .L2529 bl lpa_hash_get_ppa - cbz x25, .L2437 - ldr x3, [x19, 24] + cbz x25, .L2531 + ldr x3, [x20, 24] ldr w1, [x3, 8] cmp w0, w1 - beq .L2437 + beq .L2531 cmn w0, #1 - beq .L2437 - adrp x6, .LANCHOR99 - mov w5, 21 + beq .L2531 + adrp x4, .LANCHOR102 + mov w28, 21 mov w27, 1 - ldrh w7, [x6, #:lo12:.LANCHOR99] - sub w1, w5, w7 - lsr w2, w0, w7 - adrp x7, .LANCHOR98 + ldrh w5, [x4, #:lo12:.LANCHOR102] + sub w1, w28, w5 + lsr w2, w0, w5 + adrp x5, .LANCHOR101 lsl w1, w27, w1 sub w1, w1, #1 and w1, w1, w2 - ldrb w2, [x7, #:lo12:.LANCHOR98] + ldrb w2, [x5, #:lo12:.LANCHOR101] udiv w1, w1, w2 ldrh w2, [x25] cmp w2, w1, uxth - bne .L2437 + bne .L2531 ldr x1, [x29, 128] - adrp x8, .LANCHOR177 - ldr w10, [x3] - add x2, x8, :lo12:.LANCHOR177 - stp w5, w10, [x29, 112] - str x8, [x29, 120] + adrp x6, .LANCHOR178 + ldr w7, [x3] + add x2, x6, :lo12:.LANCHOR178 + str w7, [x29, 120] + str x6, [x29, 152] ldrb w3, [x1] - ldr x1, [x19, 8] - stp x7, x6, [x29, 96] + ldr x1, [x20, 8] + stp x5, x4, [x29, 104] bl ftl_read_ppa_page - ldr x8, [x29, 120] - ldr w10, [x29, 116] - ldr w0, [x8, #:lo12:.LANCHOR177] - cmp w10, w0 - bhi .L2437 - ldr x0, [x19, 24] + ldr x6, [x29, 152] + ldr w7, [x29, 120] + ldr w0, [x6, #:lo12:.LANCHOR178] + cmp w7, w0 + bhi .L2531 + ldr x0, [x20, 24] ldr w0, [x0, 8] cmn w0, #1 - beq .L2435 - ldp x7, x6, [x29, 96] - ldr w5, [x29, 112] - ldrh w1, [x6, #:lo12:.LANCHOR99] - sub w5, w5, w1 + beq .L2529 + ldp x5, x4, [x29, 104] + ldrh w1, [x4, #:lo12:.LANCHOR102] + sub w28, w28, w1 lsr w0, w0, w1 - lsl w27, w27, w5 + lsl w27, w27, w28 sub w27, w27, #1 and w27, w27, w0 - ldrb w0, [x7, #:lo12:.LANCHOR98] + ldrb w0, [x5, #:lo12:.LANCHOR101] udiv w0, w27, w0 bl ftl_vpn_decrement -.L2435: - ldrh w0, [x28, 6] - mov w27, 1 +.L2529: + ldrh w0, [x19, 6] + mov w27, 4 sub w0, w0, #1 - strh w0, [x28, 6] - ldrh w0, [x28, 10] + strh w0, [x19, 6] + ldrh w0, [x19, 10] add w0, w0, 1 - strh w0, [x28, 10] -.L2429: - add w20, w20, 1 - and w20, w20, 65535 - b .L2428 -.L2444: - ldrh w2, [x28, 12] + strh w0, [x19, 10] + mov w0, 1 + str w0, [x29, 152] +.L2523: + add w22, w22, 1 + and w22, w22, 65535 + b .L2522 +.L2538: + ldrh w2, [x19, 12] add w2, w2, w1 - ldr w2, [x5, x2, lsl 2] + ldr w2, [x4, x2, lsl 2] cmn w2, #1 - beq .L2443 - add w20, w0, 1 - and w0, w20, 65535 -.L2443: + beq .L2537 + add w22, w0, 1 + and w0, w22, 65535 +.L2537: add w1, w1, 1 - b .L2442 -.L2449: - cbz w27, .L2447 - ldrh w0, [x28, 6] + b .L2536 +.L2554: + ldr w0, [x26, x23, lsl 2] + adrp x28, .LANCHOR100 + cmn w0, #1 + bne .L2542 +.L2546: + ldr x1, [x28, #:lo12:.LANCHOR100] + mov w22, -1 + ldr x0, [x20, 24] + ldr w1, [x1, 8] + stp w1, w22, [x0] + stp w22, wzr, [x0, 8] + ldr x0, [x20, 8] + str wzr, [x0] +.L2543: + ldr w0, [x29, 152] + cbz w0, .L2548 + ldrh w0, [x19, 6] cmp w0, 1 - bls .L2447 - mov x0, x28 + bls .L2548 + add x0, x21, :lo12:.LANCHOR14 + mov x28, x0 + add x0, x25, :lo12:.LANCHOR123 + str x0, [x29, 128] +.L2595: + mov x0, x19 bl ftl_get_new_free_page mov w4, w0 - ldr w0, [x22, #:lo12:.LANCHOR14] - tbz x0, 12, .L2448 + ldr w0, [x28] + tbz x0, 14, .L2550 + ldr x0, [x20, 24] mov w1, w4 - str w4, [x29, 136] - mov x0, x26 + str w4, [x29, 104] + ldr w2, [x0, 4] + ldr x0, [x29, 120] bl printf - ldr w4, [x29, 136] -.L2448: - adrp x0, .LANCHOR97 - ldr x2, [x19, 24] - ldr x1, [x19, 8] - ldr x0, [x0, #:lo12:.LANCHOR97] - ldr w0, [x0, 8] - str w0, [x2] - str wzr, [x2, 12] - mov w0, -1 - stp w0, w0, [x2, 4] + ldr w4, [x29, 104] +.L2550: + ldr x0, [x29, 112] + ldr w2, [x29, 148] + ldrh w1, [x19, 6] + ldrb w0, [x0] + mul w0, w0, w27 + add w0, w0, 1 + sub w0, w0, w2 + cmp w1, w0 + bls .L2548 + ldr x0, [x29, 128] + ldr x1, [x20, 8] + ldr x2, [x20, 24] + ldrb w3, [x0] mov w0, w4 - str wzr, [x1] - ldrb w3, [x25] bl ftl_prog_ppa_page - ldrh w0, [x28] + mov w1, w0 + ldrh w0, [x19] + str w1, [x29, 104] bl ftl_vpn_decrement -.L2447: - add w20, w20, 1 - b .L2446 -.L2437: - ldr x3, [x19, 24] - adrp x0, .LANCHOR118 - ldr w0, [x0, #:lo12:.LANCHOR118] + ldr w1, [x29, 104] + cmn w22, #1 + ccmn w1, #1, 4, ne + beq .L2551 + ldr w0, [x21, #:lo12:.LANCHOR14] + tbz x0, 14, .L2552 + ldr x0, [x20, 24] + ldrh w1, [x19, 12] + ldrh w3, [x19, 10] + add w3, w3, w1 + ldp w1, w2, [x0, 4] + sub w3, w3, #1 + adrp x0, .LC152 + add x0, x0, :lo12:.LC152 + bl printf +.L2552: + ldr x0, [x20, 24] + ldrh w1, [x19, 12] + ldrh w2, [x19, 10] + add w2, w2, w1 + ldr w1, [x0, 8] + ldr w0, [x0, 4] + sub w2, w2, #1 + bl lpa_hash_update_ppa +.L2548: + add x23, x23, 1 + b .L2541 +.L2542: + ldrb w3, [x25, #:lo12:.LANCHOR123] + ldr x1, [x20, 8] + ldr x2, [x20, 24] + bl ftl_read_ppa_page + mov w22, w0 + ldr x0, [x20, 24] + ldr w0, [x0, 4] + bl lpa_hash_get_ppa + mov w4, w0 + ldr w0, [x21, #:lo12:.LANCHOR14] + tbz x0, 14, .L2544 + ldr x0, [x20, 24] + mov w1, w4 + ldr w2, [x26, x23, lsl 2] + str w4, [x29, 128] + ldr w3, [x0, 4] + adrp x0, .LC150 + add x0, x0, :lo12:.LC150 + bl printf + ldr w4, [x29, 128] +.L2544: + ldr x2, [x28, #:lo12:.LANCHOR100] + ldr w0, [x26, x23, lsl 2] + cmp w4, w0 + ldr x0, [x20, 24] + ldr w1, [x2, 8] + csinv w22, w22, wzr, eq + cmn w22, #1 + add w3, w1, 1 + str w3, [x2, 8] + str w1, [x0] + mov w1, 1 + str w4, [x0, 8] + str w1, [x0, 12] + bne .L2543 + b .L2546 +.L2551: + ldrh w0, [x19, 6] + cmp w0, 1 + bls .L2548 + cmn w22, #1 + bne .L2595 + b .L2548 +.L2531: + ldr x3, [x20, 24] + adrp x0, .LANCHOR120 + ldr w0, [x0, #:lo12:.LANCHOR120] ldr w1, [x3, 4] cmp w1, w0 - bcs .L2435 - ldrb w0, [x28, 9] - ldrh w1, [x23, #:lo12:.LANCHOR80] - ldrh w2, [x28, 10] + bcs .L2529 + ldrb w0, [x19, 9] + ldrh w1, [x24, #:lo12:.LANCHOR83] + ldrh w2, [x19, 10] mul w0, w0, w1 sub w0, w0, #1 cmp w2, w0 - bge .L2435 - adrp x0, .LANCHOR97 + bge .L2529 + adrp x0, .LANCHOR100 ldr w1, [x3] - ldr x0, [x0, #:lo12:.LANCHOR97] - ldr w5, [x0, 8] - cmp w1, w5 - bls .L2438 + ldr x0, [x0, #:lo12:.LANCHOR100] + ldr w4, [x0, 8] + cmp w1, w4 + bls .L2532 str w1, [x0, 8] -.L2438: - ldrh w0, [x28, 12] +.L2532: + ldrh w0, [x19, 12] add w2, w2, w0 ldp w0, w1, [x3, 4] bl lpa_hash_update_ppa - b .L2435 -.L2420: - ldp x19, x20, [sp, 16] - ldp x21, x22, [sp, 32] - ldp x23, x24, [sp, 48] - ldp x25, x26, [sp, 64] - ldp x27, x28, [sp, 80] - ldp x29, x30, [sp], 144 - ret + ldr w0, [x29, 164] + str w0, [x29, 160] + ldr w0, [x29, 168] + str w0, [x29, 164] + ldr w0, [x29, 172] + str w0, [x29, 168] + ldr w0, [x29, 148] + str w0, [x29, 172] + b .L2529 .size ftl_open_sblk_recovery, .-ftl_open_sblk_recovery .section .text.pm_write_page,"ax",@progbits .align 2 @@ -15037,94 +15750,94 @@ pm_write_page: stp x19, x20, [sp, 16] mov w19, w0 stp x21, x22, [sp, 32] - adrp x21, .LANCHOR80 + adrp x21, .LANCHOR83 stp x23, x24, [sp, 48] - adrp x22, .LANCHOR105 + adrp x22, .LANCHOR107 stp x25, x26, [sp, 64] - adrp x23, .LANCHOR97 + adrp x23, .LANCHOR100 mov x25, x1 - add x21, x21, :lo12:.LANCHOR80 + add x21, x21, :lo12:.LANCHOR83 mov x20, x23 - add x22, x22, :lo12:.LANCHOR105 + add x22, x22, :lo12:.LANCHOR107 mov w24, 65535 str x27, [sp, 80] -.L2500: - ldr x0, [x23, #:lo12:.LANCHOR97] +.L2618: + ldr x0, [x23, #:lo12:.LANCHOR100] ldr w1, [x0, 48] ldrh w2, [x0, 696] add w1, w1, 1 str w1, [x0, 48] ldrh w1, [x21] cmp w2, w1 - bcs .L2501 + bcs .L2619 ldrh w0, [x0, 692] cmp w0, w24 - bne .L2502 -.L2501: + bne .L2620 +.L2619: bl pm_alloc_new_blk mov w0, 0 bl ftl_info_flush -.L2502: - ldr x0, [x20, #:lo12:.LANCHOR97] +.L2620: + ldr x0, [x20, #:lo12:.LANCHOR100] ldrh w0, [x0, 692] cmp w0, w24 - bne .L2503 - adrp x1, .LANCHOR189 + bne .L2621 + adrp x1, .LANCHOR190 adrp x0, .LC0 mov w2, 230 - add x1, x1, :lo12:.LANCHOR189 + add x1, x1, :lo12:.LANCHOR190 add x0, x0, :lo12:.LC0 bl printf -.L2503: - ldr x0, [x20, #:lo12:.LANCHOR97] - adrp x27, .LANCHOR190 +.L2621: + ldr x0, [x20, #:lo12:.LANCHOR100] + adrp x27, .LANCHOR191 ldrh w1, [x22] mov w2, 64 ldrh w26, [x0, 692] ldrh w0, [x0, 696] madd w26, w26, w1, w0 - ldr x0, [x27, #:lo12:.LANCHOR190] + ldr x0, [x27, #:lo12:.LANCHOR191] mov w1, 0 bl ftl_memset - ldr x3, [x27, #:lo12:.LANCHOR190] + ldr x3, [x27, #:lo12:.LANCHOR191] mov x2, x25 - ldr x0, [x20, #:lo12:.LANCHOR97] + ldr x0, [x20, #:lo12:.LANCHOR100] str w19, [x3] ldr w1, [x0, 48] ldrb w0, [x0, 694] str w1, [x3, 4] - adrp x1, .LANCHOR121 - ldrb w4, [x1, #:lo12:.LANCHOR121] + adrp x1, .LANCHOR123 + ldrb w4, [x1, #:lo12:.LANCHOR123] mov w1, w26 bl ftl_prog_page - ldr x2, [x20, #:lo12:.LANCHOR97] + ldr x2, [x20, #:lo12:.LANCHOR100] ldrh w1, [x2, 696] add w1, w1, 1 and w1, w1, 65535 strh w1, [x2, 696] cmp w1, 1 - adrp x1, .LANCHOR191 - beq .L2504 - ldrb w3, [x1, #:lo12:.LANCHOR191] - cbz w3, .L2505 -.L2504: - strb wzr, [x1, #:lo12:.LANCHOR191] - b .L2500 -.L2505: + adrp x1, .LANCHOR192 + beq .L2622 + ldrb w3, [x1, #:lo12:.LANCHOR192] + cbz w3, .L2623 +.L2622: + strb wzr, [x1, #:lo12:.LANCHOR192] + b .L2618 +.L2623: cmn w0, #1 - bne .L2507 + bne .L2625 mov w1, w26 - adrp x0, .LC148 - add x0, x0, :lo12:.LC148 + adrp x0, .LC153 + add x0, x0, :lo12:.LC153 bl printf - b .L2500 -.L2507: + b .L2618 +.L2625: ldrh w0, [x2, 698] cmp w19, w0 - bcs .L2508 + bcs .L2626 add x19, x2, x19, uxtw 2 str w26, [x19, 704] -.L2508: +.L2626: mov w0, 0 ldr x27, [sp, 80] ldp x19, x20, [sp, 16] @@ -15134,6 +15847,282 @@ pm_write_page: ldp x29, x30, [sp], 96 ret .size pm_write_page, .-pm_write_page + .section .text.ftl_dump_write_open_sblk,"ax",@progbits + .align 2 + .global ftl_dump_write_open_sblk + .type ftl_dump_write_open_sblk, %function +ftl_dump_write_open_sblk: + sub sp, sp, #224 + stp x29, x30, [sp, 48] + add x29, sp, 48 + stp x19, x20, [sp, 64] + and w20, w0, 65535 + adrp x0, .LANCHOR6 + stp x21, x22, [sp, 80] + stp x23, x24, [sp, 96] + ldrh w0, [x0, #:lo12:.LANCHOR6] + stp x25, x26, [sp, 112] + stp x27, x28, [sp, 128] + cmp w0, w20 + bls .L2631 + adrp x25, .LANCHOR73 + str x25, [x29, 136] + ldrb w0, [x25, #:lo12:.LANCHOR73] + cbnz w0, .L2633 + adrp x0, .LANCHOR70 + ldrb w0, [x0, #:lo12:.LANCHOR70] + cbz w0, .L2631 +.L2633: + adrp x0, .LANCHOR7 + ubfiz x14, x20, 2, 16 + mov x15, x0 + ldr x1, [x0, #:lo12:.LANCHOR7] + add x1, x1, x14 + ldrb w1, [x1, 2] + and w1, w1, 224 + cmp w1, 160 + bne .L2653 + adrp x0, .LANCHOR69 + ldrb w10, [x0, #:lo12:.LANCHOR69] +.L2634: + add x22, x29, 176 + adrp x23, .LANCHOR83 + str w10, [x29, 128] + mov w0, w20 + mov w24, 0 + mov w25, 0 + strh w20, [x22, -32]! + mov w27, 0 + add x1, x22, 16 + bl ftl_get_blk_list_in_sblk + ldrh w1, [x23, #:lo12:.LANCHOR83] + and w0, w0, 255 + strb w0, [x29, 153] + strb wzr, [x29, 149] + strh wzr, [x29, 146] + mul w0, w0, w1 + strh wzr, [x29, 154] + strh w0, [x29, 150] + ldr x0, [x15, #:lo12:.LANCHOR7] + add x1, x0, x14 + ldr w5, [x0, x14] + ldrb w2, [x1, 2] + mov w1, w20 + ldrh w4, [x0, x14] + adrp x0, .LC154 + ubfx x5, x5, 11, 8 + add x0, x0, :lo12:.LC154 + ubfx x3, x2, 3, 2 + and w4, w4, 2047 + ubfx x2, x2, 5, 3 + bl printf + mov w0, 1 + bl buf_alloc + mov x19, x0 + ldr w10, [x29, 128] + adrp x12, .LANCHOR107 + add x14, x23, :lo12:.LANCHOR83 + add x12, x12, :lo12:.LANCHOR107 +.L2635: + ldrh w0, [x14] + cmp w0, w25 + bls .L2641 + lsl w11, w25, 1 + adrp x26, .LC155 + sub w11, w11, #1 + mov w27, 0 + add x26, x26, :lo12:.LC155 + b .L2645 +.L2653: + mov w10, 1 + b .L2634 +.L2643: + ldrh w13, [x22, x28] + mov w0, 65535 + cmp w13, w0 + bne .L2636 +.L2642: + add w24, w24, 1 + and w24, w24, 65535 +.L2637: + cmp w10, w24 + bcs .L2643 + add w27, w27, 1 + and w27, w27, 65535 +.L2645: + ldrb w0, [x29, 153] + cmp w0, w27 + bls .L2644 + sxtw x28, w27 + mov w24, 1 + add x28, x28, 8 + lsl x28, x28, 1 + b .L2637 +.L2636: + ldrh w21, [x12] + cmp w10, 3 + mul w21, w21, w13 + bne .L2638 + add w21, w25, w21 + orr w21, w21, w24, lsl 24 +.L2639: + str w21, [x19, 40] + mov w1, 1 + stp x12, x14, [x29, 96] + mov x0, x19 + stp w11, w10, [x29, 116] + str w13, [x29, 124] + bl sblk_read_page + ldr x1, [x19, 24] + mov w3, w21 + ldr x0, [x19, 8] + ldr w15, [x19, 52] + ldr w13, [x29, 124] + ldr w2, [x1, 12] + mov w4, w15 + str w2, [sp, 32] + str w15, [x29, 128] + ldr w2, [x1, 8] + str w2, [sp, 24] + ldr w2, [x1, 4] + str w2, [sp, 16] + mov w2, w25 + ldr w1, [x1] + str w1, [sp, 8] + ldr w1, [x0, 12] + str w1, [sp] + mov w1, w13 + ldp w5, w6, [x0] + ldr w7, [x0, 8] + mov x0, x26 + bl printf + ldr w15, [x29, 128] + ldp w11, w10, [x29, 116] + cmp w15, 512 + ldp x12, x14, [x29, 96] + bne .L2642 +.L2641: + mov w4, w24 + mov w3, w27 + mov w2, w25 + mov w1, w20 + adrp x24, .LANCHOR123 + adrp x0, .LC156 + add x0, x0, :lo12:.LC156 + bl printf + ldr x0, [x19, 8] + mov w1, 0 + ldrb w2, [x24, #:lo12:.LANCHOR123] + adrp x26, .LC157 + adrp x27, .LANCHOR69 + add x26, x26, :lo12:.LC157 + add x27, x27, :lo12:.LANCHOR69 + lsl w2, w2, 9 + bl ftl_memset + ldr x0, [x19, 24] + mov w1, 0 + ldrb w2, [x24, #:lo12:.LANCHOR123] + lsl w2, w2, 1 + bl ftl_memset +.L2646: + ldrh w0, [x23, #:lo12:.LANCHOR83] + cmp w0, w25 + bls .L2651 + ldr x0, [x29, 136] + lsl w28, w25, 1 + mov w21, 0 + add x0, x0, :lo12:.LANCHOR73 + str x0, [x29, 128] + b .L2652 +.L2638: + cmp w10, 2 + bne .L2640 + adrp x0, .LANCHOR69 + add w21, w21, w11 + add w21, w21, w24 + ldrb w3, [x0, #:lo12:.LANCHOR69] + orr w21, w21, w3, lsl 24 + b .L2639 +.L2640: + add w21, w25, w21 + b .L2639 +.L2644: + add w8, w25, 1 + and w25, w8, 65535 + b .L2635 +.L2650: + mov w2, w21 + mov w1, w25 + mov x0, x26 + bl printf + ldr x0, [x29, 128] + adrp x2, .LANCHOR107 + ldrb w1, [x0] + sxtw x0, w21 + cbz w1, .L2647 + add x0, x0, 8 + ldrh w1, [x2, #:lo12:.LANCHOR107] + ldrh w0, [x22, x0, lsl 1] + mul w0, w0, w1 + orr w0, w0, w25 + str w0, [x19, 40] + mov x0, x19 + bl sblk_3d_tlc_dump_prog +.L2648: + add w21, w21, 1 + and w21, w21, 65535 +.L2652: + ldrb w0, [x29, 153] + cmp w0, w21 + bhi .L2650 + add w8, w25, 1 + and w25, w8, 65535 + b .L2646 +.L2647: + ldrb w1, [x27] + add x0, x0, 8 + cmp w1, 2 + bne .L2649 + ldrh w0, [x22, x0, lsl 1] + ldrh w1, [x2, #:lo12:.LANCHOR107] + mul w0, w0, w1 + orr w0, w0, w28 + orr w0, w0, 33554432 + str w0, [x19, 40] + mov x0, x19 + bl sblk_mlc_dump_prog + b .L2648 +.L2649: + ldrh w1, [x22, x0, lsl 1] + mov w5, 0 + ldrh w0, [x2, #:lo12:.LANCHOR107] + ldrb w4, [x24, #:lo12:.LANCHOR123] + ldr x2, [x19, 8] + ldr x3, [x19, 24] + mul w1, w1, w0 + orr w1, w1, w25 + str w1, [x19, 40] + ubfx x0, x1, 21, 3 + and w1, w1, -14680065 + bl flash_prog_page_en + b .L2648 +.L2651: + mov x0, x19 + bl buf_free + adrp x0, .LC158 + mov w1, w20 + add x0, x0, :lo12:.LC158 + bl printf +.L2631: + ldp x19, x20, [sp, 64] + ldp x21, x22, [sp, 80] + ldp x23, x24, [sp, 96] + ldp x25, x26, [sp, 112] + ldp x27, x28, [sp, 128] + ldp x29, x30, [sp, 48] + add sp, sp, 224 + ret + .size ftl_dump_write_open_sblk, .-ftl_dump_write_open_sblk .section .text.flash_info_flush,"ax",@progbits .align 2 .global flash_info_flush @@ -15148,33 +16137,33 @@ flash_info_flush: stp x23, x24, [sp, 48] stp x25, x26, [sp, 64] stp x27, x28, [sp, 80] - tbz x0, 12, .L2514 - adrp x2, .LANCHOR192 - adrp x0, .LC84 - add x2, x2, :lo12:.LANCHOR192 - mov w1, 250 - add x0, x0, :lo12:.LC84 + tbz x0, 12, .L2662 + adrp x2, .LANCHOR193 + adrp x0, .LC86 + add x2, x2, :lo12:.LANCHOR193 + mov w1, 324 + add x0, x0, :lo12:.LC86 bl printf -.L2514: - adrp x23, .LANCHOR159 +.L2662: + adrp x23, .LANCHOR194 adrp x20, .LANCHOR26 mov w2, 64 mov w1, 0 - ldr x0, [x23, #:lo12:.LANCHOR159] - adrp x21, .LANCHOR160 + ldr x0, [x23, #:lo12:.LANCHOR194] + adrp x21, .LANCHOR195 adrp x22, .LANCHOR2 - adrp x24, .LC150 - adrp x25, .LANCHOR135 + adrp x24, .LC160 + adrp x25, .LANCHOR140 add x22, x22, :lo12:.LANCHOR2 - add x24, x24, :lo12:.LC150 - add x25, x25, :lo12:.LANCHOR135 + add x24, x24, :lo12:.LC160 + add x25, x25, :lo12:.LANCHOR140 bl ftl_memset - add x27, x21, :lo12:.LANCHOR160 + add x27, x21, :lo12:.LANCHOR195 ldr x1, [x20, #:lo12:.LANCHOR26] mov w3, 16 mov w2, 4 - adrp x0, .LC149 - add x0, x0, :lo12:.LC149 + adrp x0, .LC159 + add x0, x0, :lo12:.LC159 mov w26, 0 bl rknand_print_hex ldr x6, [x20, #:lo12:.LANCHOR26] @@ -15182,9 +16171,9 @@ flash_info_flush: ldr w1, [x6, 8] bl js_hash str w0, [x6, 12] -.L2515: - add x28, x21, :lo12:.LANCHOR160 - ldrb w4, [x21, #:lo12:.LANCHOR160] +.L2663: + add x28, x21, :lo12:.LANCHOR195 + ldrb w4, [x21, #:lo12:.LANCHOR195] ldrh w19, [x22] mov x0, x24 mov w1, w4 @@ -15197,7 +16186,7 @@ flash_info_flush: sub w0, w0, #1 cmp w1, w0 ldp w3, w4, [x29, 104] - blt .L2516 + blt .L2664 ldr x6, [x20, #:lo12:.LANCHOR26] ldrb w7, [x28, 1] strh wzr, [x28, 2] @@ -15205,32 +16194,32 @@ flash_info_flush: ldrh w1, [x6, 16] add w0, w0, 1 str w0, [x6, 4] - ldrb w0, [x21, #:lo12:.LANCHOR160] + ldrb w0, [x21, #:lo12:.LANCHOR195] add w1, w1, 1 strb w0, [x28, 1] mov x0, x6 - strb w7, [x21, #:lo12:.LANCHOR160] + strb w7, [x21, #:lo12:.LANCHOR195] strh w1, [x0, 16]! ldr w1, [x6, 8] bl js_hash ldrh w19, [x22] str w0, [x6, 12] mul w19, w19, w7 -.L2525: +.L2673: mov w1, w19 mov w0, 0 bl flash_erase_block - b .L2517 -.L2520: + b .L2665 +.L2668: mov w26, 1 - b .L2515 -.L2516: + b .L2663 +.L2664: madd w19, w19, w4, w3 - cbz w1, .L2525 -.L2517: + cbz w1, .L2673 +.L2665: ldr x2, [x20, #:lo12:.LANCHOR26] mov w1, w19 - ldr x3, [x23, #:lo12:.LANCHOR159] + ldr x3, [x23, #:lo12:.LANCHOR194] mov w5, 1 mov w4, 4 ldr w0, [x2, 4] @@ -15244,14 +16233,14 @@ flash_info_flush: ldrh w1, [x27, 2] add w1, w1, 1 strh w1, [x27, 2] - bne .L2518 + bne .L2666 mov w1, w19 - adrp x0, .LC151 - add x0, x0, :lo12:.LC151 + adrp x0, .LC161 + add x0, x0, :lo12:.LC161 bl printf - b .L2515 -.L2518: - cbz w26, .L2520 + b .L2663 +.L2666: + cbz w26, .L2668 ldp x19, x20, [sp, 16] mov w0, 0 ldp x21, x22, [sp, 32] @@ -15261,6 +16250,171 @@ flash_info_flush: ldp x29, x30, [sp], 112 ret .size flash_info_flush, .-flash_info_flush + .section .text.flash_info_blk_init,"ax",@progbits + .align 2 + .global flash_info_blk_init + .type flash_info_blk_init, %function +flash_info_blk_init: + stp x29, x30, [sp, -96]! + adrp x0, .LANCHOR14 + add x29, sp, 0 + ldr w0, [x0, #:lo12:.LANCHOR14] + stp x19, x20, [sp, 16] + adrp x20, .LANCHOR26 + stp x21, x22, [sp, 32] + stp x23, x24, [sp, 48] + stp x25, x26, [sp, 64] + str x27, [sp, 80] + tbz x0, 12, .L2675 + ldr x4, [x20, #:lo12:.LANCHOR26] + adrp x2, .LANCHOR196 + adrp x0, .LC162 + mov w3, 2048 + add x2, x2, :lo12:.LANCHOR196 + mov w1, 50 + add x0, x0, :lo12:.LC162 + bl printf +.L2675: + adrp x21, .LANCHOR194 + adrp x24, .LANCHOR2 + mov w22, 21321 + add x26, x24, :lo12:.LANCHOR2 + mov x23, x21 + mov w19, 4 + movk w22, 0x5359, lsl 16 +.L2678: + ldrh w1, [x26] + mov w4, 4 + ldr x3, [x21, #:lo12:.LANCHOR194] + mov w0, 0 + ldr x2, [x20, #:lo12:.LANCHOR26] + add x27, x21, :lo12:.LANCHOR194 + add x25, x20, :lo12:.LANCHOR26 + mul w1, w1, w19 + bl flash_read_page_en + cmn w0, #1 + beq .L2676 + ldr x2, [x20, #:lo12:.LANCHOR26] + ldr w0, [x2] + cmp w0, w22 + beq .L2677 +.L2676: + add w19, w19, 1 + cmp w19, 16 + bne .L2678 +.L2703: + mov w0, -1 +.L2674: + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] + ldp x25, x26, [sp, 64] + ldr x27, [sp, 80] + ldp x29, x30, [sp], 96 + ret +.L2686: + ldr x0, [x25] + ldr w1, [x0] + cmp w1, w22 + bne .L2687 + ldr w21, [x0, 4] +.L2680: + add x22, x19, :lo12:.LANCHOR195 + ldrh w0, [x24, #:lo12:.LANCHOR2] + ldr x3, [x23, #:lo12:.LANCHOR194] + mov w4, 4 + ldr x2, [x20, #:lo12:.LANCHOR26] + ldrb w1, [x22, 1] + mul w1, w1, w0 + mov w0, 0 + bl flash_read_page_en + cmn w0, #1 + beq .L2681 + ldr x0, [x20, #:lo12:.LANCHOR26] + mov w1, 21321 + movk w1, 0x5359, lsl 16 + ldr w2, [x0] + cmp w2, w1 + bne .L2681 + ldr w1, [x0, 4] + cmp w21, w1 + bcs .L2681 + ldrb w1, [x0, 37] + ldrb w0, [x0, 36] + strb w1, [x19, #:lo12:.LANCHOR195] + strb w0, [x22, 1] +.L2681: + ldrb w1, [x19, #:lo12:.LANCHOR195] + add x21, x19, :lo12:.LANCHOR195 + ldr x3, [x23, #:lo12:.LANCHOR194] + mov w4, 4 + ldr x2, [x20, #:lo12:.LANCHOR26] + mov w0, 0 + bl flash_get_last_written_page + and w25, w0, 65535 + add w1, w25, 1 + ldrb w22, [x19, #:lo12:.LANCHOR195] + strh w1, [x21, 2] + mov w21, 0 + ldrh w1, [x24, #:lo12:.LANCHOR2] + mov w24, 21321 + movk w24, 0x5359, lsl 16 + mul w22, w22, w1 + add w22, w22, w0, sxth +.L2682: + sub w0, w25, w21 + sxth w19, w0 + tbz w19, #31, .L2685 + cmn w19, #1 + bne .L2684 + ldr x0, [x20, #:lo12:.LANCHOR26] + ldr w1, [x0] + adrp x0, .LC163 + add x0, x0, :lo12:.LC163 + bl printf + b .L2703 +.L2685: + ldr x3, [x23, #:lo12:.LANCHOR194] + mov w4, 4 + ldr x2, [x20, #:lo12:.LANCHOR26] + sub w1, w22, w21 + mov w0, 0 + bl flash_read_page_en + cmn w0, #1 + beq .L2683 + ldr x0, [x20, #:lo12:.LANCHOR26] + ldr w0, [x0] + cmp w0, w24 + beq .L2684 +.L2683: + add w21, w21, 1 + b .L2682 +.L2684: + cmp w21, 1 + bls .L2688 + bl flash_info_flush +.L2688: + mov w0, 0 + b .L2674 +.L2677: + adrp x19, .LANCHOR195 + add x1, x19, :lo12:.LANCHOR195 + ldrb w3, [x2, 37] + mov w4, 4 + ldrb w0, [x2, 36] + strb w3, [x1, 1] + ldrh w1, [x26] + ldr x3, [x27] + strb w0, [x19, #:lo12:.LANCHOR195] + mul w1, w1, w0 + mov w0, 0 + bl flash_read_page_en + cmn w0, #1 + bne .L2686 +.L2687: + mov w21, 0 + b .L2680 + .size flash_info_blk_init, .-flash_info_blk_init .section .text.nand_flash_init,"ax",@progbits .align 2 .global nand_flash_init @@ -15268,35 +16422,35 @@ flash_info_flush: nand_flash_init: stp x29, x30, [sp, -80]! add x29, sp, 0 - stp x21, x22, [sp, 32] - adrp x21, .LANCHOR14 stp x19, x20, [sp, 16] + adrp x20, .LANCHOR14 mov x19, x0 - ldr w0, [x21, #:lo12:.LANCHOR14] + stp x21, x22, [sp, 32] + ldr w0, [x20, #:lo12:.LANCHOR14] stp x23, x24, [sp, 48] stp x25, x26, [sp, 64] - tbz x0, 12, .L2527 - adrp x2, .LANCHOR193 - adrp x0, .LC84 - add x2, x2, :lo12:.LANCHOR193 - mov w1, 2239 - add x0, x0, :lo12:.LC84 + tbz x0, 12, .L2705 + adrp x2, .LANCHOR197 + adrp x0, .LC86 + add x2, x2, :lo12:.LANCHOR197 + mov w1, 2459 + add x0, x0, :lo12:.LC86 bl printf -.L2527: - adrp x0, .LANCHOR155 +.L2705: + adrp x0, .LANCHOR160 adrp x23, .LANCHOR16 adrp x22, .LANCHOR41 add x24, x22, :lo12:.LANCHOR41 - str wzr, [x0, #:lo12:.LANCHOR155] + str wzr, [x0, #:lo12:.LANCHOR160] mov x0, x19 bl nandc_init - adrp x19, .LANCHOR34 - add x0, x19, :lo12:.LANCHOR34 + adrp x19, .LANCHOR30 + add x0, x19, :lo12:.LANCHOR30 mov x25, x24 str x0, [x23, #:lo12:.LANCHOR16] adrp x0, .LANCHOR18 mov w1, 1 - mov w20, 0 + mov w21, 0 mov w26, 44 strb w1, [x0, #:lo12:.LANCHOR18] mov w2, 8 @@ -15306,22 +16460,22 @@ nand_flash_init: bl ftl_memset mov w2, 32 mov w1, 0 - adrp x0, .LANCHOR136 - add x0, x0, :lo12:.LANCHOR136 + adrp x0, .LANCHOR141 + add x0, x0, :lo12:.LANCHOR141 bl ftl_memset -.L2533: +.L2711: mov x1, x24 - mov w0, w20 + mov w0, w21 bl flash_read_id - cbnz w20, .L2528 + cbnz w21, .L2706 ldrb w0, [x25] sub w0, w0, #1 and w0, w0, 255 cmp w0, 253 - bls .L2529 -.L2531: + bls .L2707 +.L2709: mov w19, -2 -.L2526: +.L2704: mov w0, w19 ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] @@ -15329,326 +16483,344 @@ nand_flash_init: ldp x25, x26, [sp, 64] ldp x29, x30, [sp], 80 ret -.L2529: +.L2707: ldrb w0, [x25, 1] cmp w0, 255 - beq .L2531 -.L2528: + beq .L2709 +.L2706: ldrb w0, [x24] cmp w0, 181 - bne .L2532 + bne .L2710 strb w26, [x24] -.L2532: - add w20, w20, 1 +.L2710: + add w21, w21, 1 add x24, x24, 8 - and w20, w20, 255 - cmp w20, 4 - bne .L2533 - adrp x0, .LANCHOR194 - add x8, x0, :lo12:.LANCHOR194 + and w21, w21, 255 + cmp w21, 4 + bne .L2711 + adrp x0, .LANCHOR198 + add x8, x0, :lo12:.LANCHOR198 add x8, x8, 1 mov x7, x0 add x12, x22, :lo12:.LANCHOR41 mov x10, 0 -.L2536: +.L2714: ldrb w2, [x8, -1] mov w11, w10 lsl x24, x10, 5 mov x1, x12 mov x0, x8 bl flash_mem_cmp8 - cbnz w0, .L2534 - add x0, x7, :lo12:.LANCHOR194 + cbnz w0, .L2712 + add x0, x7, :lo12:.LANCHOR198 ubfiz x11, x11, 5, 32 add x24, x0, x24 add x0, x0, x11 - adrp x1, .LANCHOR195 - add x4, x1, :lo12:.LANCHOR195 + adrp x1, .LANCHOR199 + add x4, x1, :lo12:.LANCHOR199 ldrb w3, [x0, 22] mov x0, 0 -.L2535: +.L2713: lsl x5, x0, 5 mov w2, w0 ldrb w5, [x5, x4] cmp w5, w3 - beq .L2537 + beq .L2715 add x0, x0, 1 cmp x0, 4 - bne .L2535 + bne .L2713 mov w2, w0 -.L2537: +.L2715: ubfiz x0, x2, 5, 32 - add x1, x1, :lo12:.LANCHOR195 + add x1, x1, :lo12:.LANCHOR199 add x1, x1, x0 mov w2, 32 adrp x0, .LANCHOR19 add x0, x0, :lo12:.LANCHOR19 bl ftl_memcpy - add x20, x19, :lo12:.LANCHOR34 + add x21, x19, :lo12:.LANCHOR30 mov x1, x24 adrp x24, .LANCHOR27 mov w2, 32 - mov x0, x20 + mov x0, x21 bl ftl_memcpy ldrb w0, [x24, #:lo12:.LANCHOR27] cmp w0, 8 - bhi .L2538 - ldrb w1, [x20, 20] + bhi .L2716 + ldrb w1, [x21, 20] cmp w1, 60 - bls .L2539 + bls .L2717 mov w1, 60 - strb w1, [x20, 20] -.L2539: + strb w1, [x21, 20] +.L2717: cmp w0, 8 - bne .L2538 + bne .L2716 ldrb w0, [x22, #:lo12:.LANCHOR41] mov w1, 137 cmp w0, 44 ccmp w0, w1, 4, ne - bne .L2538 - add x0, x19, :lo12:.LANCHOR34 + bne .L2716 + add x0, x19, :lo12:.LANCHOR30 ldrb w1, [x0, 28] cmp w1, 3 - bne .L2538 + bne .L2716 strb wzr, [x0, 28] -.L2538: - ldr w0, [x21, #:lo12:.LANCHOR14] - tbz x0, 12, .L2540 - adrp x2, .LANCHOR193 - adrp x0, .LC84 - add x2, x2, :lo12:.LANCHOR193 - mov w1, 2264 - add x0, x0, :lo12:.LC84 +.L2716: + ldr w0, [x20, #:lo12:.LANCHOR14] + tbz x0, 12, .L2718 + adrp x2, .LANCHOR197 + adrp x0, .LC86 + add x2, x2, :lo12:.LANCHOR197 + mov w1, 2484 + add x0, x0, :lo12:.LC86 bl printf -.L2540: +.L2718: mov w0, 16384 bl ftl_malloc - adrp x1, .LANCHOR162 + adrp x1, .LANCHOR164 adrp x22, .LANCHOR26 - add x20, x19, :lo12:.LANCHOR34 - str x0, [x1, #:lo12:.LANCHOR162] + add x21, x19, :lo12:.LANCHOR30 + str x0, [x1, #:lo12:.LANCHOR164] mov w0, 16384 bl ftl_malloc - adrp x1, .LANCHOR151 - str x0, [x1, #:lo12:.LANCHOR151] + adrp x1, .LANCHOR156 + str x0, [x1, #:lo12:.LANCHOR156] mov w0, 2048 bl ftl_malloc str x0, [x22, #:lo12:.LANCHOR26] mov w0, 64 bl ftl_malloc - adrp x1, .LANCHOR161 - str x0, [x1, #:lo12:.LANCHOR161] + adrp x1, .LANCHOR163 + str x0, [x1, #:lo12:.LANCHOR163] mov w0, 64 bl ftl_malloc - adrp x1, .LANCHOR153 - str x0, [x1, #:lo12:.LANCHOR153] + adrp x1, .LANCHOR158 + str x0, [x1, #:lo12:.LANCHOR158] mov w0, 64 bl ftl_malloc - adrp x1, .LANCHOR159 - str x0, [x1, #:lo12:.LANCHOR159] - adrp x0, .LANCHOR196 - strb wzr, [x0, #:lo12:.LANCHOR196] + adrp x1, .LANCHOR194 + str x0, [x1, #:lo12:.LANCHOR194] + adrp x0, .LANCHOR200 + strb wzr, [x0, #:lo12:.LANCHOR200] bl flash_die_info_init - ldrb w0, [x20, 18] + ldrb w0, [x21, 18] bl flash_lsb_page_tbl_build - ldrb w0, [x20, 20] - adrp x20, .LANCHOR157 + ldrb w0, [x21, 20] + adrp x21, .LANCHOR162 bl nandc_bch_sel - str xzr, [x20, #:lo12:.LANCHOR157] + str xzr, [x21, #:lo12:.LANCHOR162] ldr x1, [x23, #:lo12:.LANCHOR16] adrp x23, .LANCHOR42 ldrh w0, [x1, 16] + ldrb w1, [x1, 28] ubfx x2, x0, 8, 3 strb w2, [x23, #:lo12:.LANCHOR42] - adrp x2, .LANCHOR166 + adrp x2, .LANCHOR168 ubfx x3, x0, 3, 1 - strb w3, [x2, #:lo12:.LANCHOR166] + strb w3, [x2, #:lo12:.LANCHOR168] adrp x2, .LANCHOR38 ubfx x3, x0, 4, 1 strb w3, [x2, #:lo12:.LANCHOR38] - adrp x2, .LANCHOR70 + adrp x2, .LANCHOR73 ubfx x3, x0, 12, 1 - strb w3, [x2, #:lo12:.LANCHOR70] - adrp x2, .LANCHOR104 + strb w3, [x2, #:lo12:.LANCHOR73] + adrp x2, .LANCHOR70 ubfx x3, x0, 13, 1 - ubfx x0, x0, 14, 1 - strb w3, [x2, #:lo12:.LANCHOR104] + strb w3, [x2, #:lo12:.LANCHOR70] adrp x2, .LANCHOR1 - strb w0, [x2, #:lo12:.LANCHOR1] + ubfx x3, x0, 14, 1 + lsr w0, w0, 15 + strb w3, [x2, #:lo12:.LANCHOR1] + adrp x2, .LANCHOR71 + strb w0, [x2, #:lo12:.LANCHOR71] + adrp x0, .LANCHOR0 mov w2, 60 - ldrb w0, [x1, 28] - adrp x1, .LANCHOR0 - strb w0, [x1, #:lo12:.LANCHOR0] - adrp x1, .LANCHOR17 - strb w2, [x1, #:lo12:.LANCHOR17] + strb w1, [x0, #:lo12:.LANCHOR0] + adrp x0, .LANCHOR17 + strb w2, [x0, #:lo12:.LANCHOR17] ldrb w2, [x24, #:lo12:.LANCHOR27] cmp w2, 9 - bne .L2541 + bne .L2719 mov w2, 70 - strb w2, [x1, #:lo12:.LANCHOR17] -.L2541: - add x19, x19, :lo12:.LANCHOR34 - adrp x1, .LANCHOR168 + strb w2, [x0, #:lo12:.LANCHOR17] +.L2719: + adrp x0, .LANCHOR49 + strb w1, [x0, #:lo12:.LANCHOR49] + add x1, x19, :lo12:.LANCHOR30 + ldrb w1, [x1, 7] + cmp w1, 9 + bne .L2720 + strb wzr, [x0, #:lo12:.LANCHOR49] +.L2720: + add x19, x19, :lo12:.LANCHOR30 adrp x25, .LANCHOR23 - strb w0, [x1, #:lo12:.LANCHOR168] ldrh w1, [x19, 16] ldrb w0, [x19, 19] strb w0, [x25, #:lo12:.LANCHOR23] - tbz x1, 6, .L2542 + tbz x1, 6, .L2722 sub w1, w0, #17 and w1, w1, 255 cmp w1, 2 - bhi .L2543 - adrp x0, micron_read_retrial + ccmp w0, 21, 4, hi + bne .L2723 + adrp x1, micron_read_retrial + add x1, x1, :lo12:micron_read_retrial + str x1, [x21, #:lo12:.LANCHOR162] + cmp w0, 21 + adrp x0, .LANCHOR159 + beq .L2724 mov w1, 15 - add x0, x0, :lo12:micron_read_retrial - str x0, [x20, #:lo12:.LANCHOR157] -.L2593: - adrp x0, .LANCHOR154 - strb w1, [x0, #:lo12:.LANCHOR154] - b .L2542 -.L2534: +.L2771: + strb w1, [x0, #:lo12:.LANCHOR159] + b .L2722 +.L2712: add x10, x10, 1 add x8, x8, 32 - cmp x10, 36 - bne .L2536 - b .L2531 -.L2543: + cmp x10, 38 + bne .L2714 + b .L2709 +.L2724: + mov w1, 4 + b .L2771 +.L2723: sub w1, w0, #65 cmp w0, 33 and w1, w1, 255 ccmp w1, 1, 0, ne - bhi .L2544 + bhi .L2726 adrp x0, toshiba_read_retrial add x0, x0, :lo12:toshiba_read_retrial - str x0, [x20, #:lo12:.LANCHOR157] + str x0, [x21, #:lo12:.LANCHOR162] adrp x0, .LANCHOR25 mov w1, 4 strb w1, [x0, #:lo12:.LANCHOR25] -.L2592: +.L2773: mov w1, 7 - b .L2593 -.L2544: + adrp x0, .LANCHOR159 + b .L2771 +.L2726: sub w2, w0, #34 sub w1, w0, #67 and w2, w2, 255 and w1, w1, 255 cmp w2, 1 ccmp w1, 1, 0, hi - bhi .L2545 + bhi .L2727 adrp x2, toshiba_read_retrial add x2, x2, :lo12:toshiba_read_retrial - str x2, [x20, #:lo12:.LANCHOR157] + str x2, [x21, #:lo12:.LANCHOR162] cmp w0, 35 mov w2, 68 ccmp w0, w2, 4, ne - adrp x0, .LANCHOR154 - beq .L2546 + adrp x0, .LANCHOR159 + beq .L2728 mov w2, 7 -.L2591: - strb w2, [x0, #:lo12:.LANCHOR154] +.L2770: + strb w2, [x0, #:lo12:.LANCHOR159] cmp w1, 1 adrp x0, .LANCHOR25 - bhi .L2548 + bhi .L2730 mov w1, 4 -.L2594: +.L2772: strb w1, [x0, #:lo12:.LANCHOR25] -.L2542: - ldr w0, [x21, #:lo12:.LANCHOR14] - tbz x0, 12, .L2549 - adrp x2, .LANCHOR193 - adrp x0, .LC84 - add x2, x2, :lo12:.LANCHOR193 - mov w1, 2312 - add x0, x0, :lo12:.LC84 +.L2722: + ldr w0, [x20, #:lo12:.LANCHOR14] + tbz x0, 12, .L2731 + adrp x2, .LANCHOR197 + adrp x0, .LC86 + add x2, x2, :lo12:.LANCHOR197 + mov w1, 2537 + add x0, x0, :lo12:.LC86 bl printf -.L2549: +.L2731: adrp x24, .LANCHOR20 ldrb w0, [x23, #:lo12:.LANCHOR42] strb wzr, [x24, #:lo12:.LANCHOR20] - tbz x0, 0, .L2550 + tbz x0, 0, .L2732 mov w0, 4 bl nandc_set_if_mode mov w0, 1 bl flash_set_interface_mode mov w0, 1 -.L2595: +.L2774: bl nandc_set_if_mode bl flash_info_blk_init mov w19, w0 cmn w0, #1 - bne .L2552 - ldr w0, [x21, #:lo12:.LANCHOR14] - tbz x0, 12, .L2553 - adrp x2, .LANCHOR193 - adrp x0, .LC84 - add x2, x2, :lo12:.LANCHOR193 - mov w1, 2347 - add x0, x0, :lo12:.LC84 + bne .L2734 + ldr w0, [x20, #:lo12:.LANCHOR14] + tbz x0, 12, .L2735 + adrp x2, .LANCHOR197 + adrp x0, .LC86 + add x2, x2, :lo12:.LANCHOR197 + mov w1, 2568 + add x0, x0, :lo12:.LC86 bl printf -.L2553: +.L2735: ldr x0, [x22, #:lo12:.LANCHOR26] mov w1, 17 strb w1, [x0, 32] - b .L2526 -.L2546: + mov w0, 0 + bl zftl_flash_exit_slc_mode + b .L2704 +.L2728: mov w2, 17 - b .L2591 -.L2548: + b .L2770 +.L2730: mov w1, 5 - b .L2594 -.L2545: + b .L2772 +.L2727: sub w0, w0, #36 and w0, w0, 255 cmp w0, 1 - bhi .L2542 + bhi .L2722 adrp x0, toshiba_3d_read_retrial add x0, x0, :lo12:toshiba_3d_read_retrial - str x0, [x20, #:lo12:.LANCHOR157] - b .L2592 -.L2550: + str x0, [x21, #:lo12:.LANCHOR162] + b .L2773 +.L2732: mov w0, 4 - b .L2595 -.L2552: + b .L2774 +.L2734: ldrb w0, [x25, #:lo12:.LANCHOR23] sub w0, w0, #1 and w0, w0, 255 - cmp w0, 6 - bhi .L2554 + cmp w0, 7 + bhi .L2736 adrp x0, hynix_read_retrial add x0, x0, :lo12:hynix_read_retrial - str x0, [x20, #:lo12:.LANCHOR157] -.L2554: + str x0, [x21, #:lo12:.LANCHOR162] +.L2736: ldrb w0, [x23, #:lo12:.LANCHOR42] - tbz x0, 2, .L2556 + tbz x0, 2, .L2738 ldr x0, [x22, #:lo12:.LANCHOR26] ldrb w0, [x0, 19] - cbz w0, .L2556 - adrp x0, .LANCHOR160 - ldrb w1, [x0, #:lo12:.LANCHOR160] + cbz w0, .L2738 + adrp x0, .LANCHOR195 + ldrb w1, [x0, #:lo12:.LANCHOR195] adrp x0, .LANCHOR2 ldrh w0, [x0, #:lo12:.LANCHOR2] mul w1, w1, w0 mov w0, 0 bl flash_ddr_para_scan ldrb w0, [x24, #:lo12:.LANCHOR20] - cbnz w0, .L2556 + cbnz w0, .L2738 ldr x0, [x22, #:lo12:.LANCHOR26] strb wzr, [x0, 19] bl flash_info_flush -.L2556: - ldr w0, [x21, #:lo12:.LANCHOR14] - tbz x0, 12, .L2558 - adrp x2, .LANCHOR193 - adrp x0, .LC84 - add x2, x2, :lo12:.LANCHOR193 - mov w1, 2404 - add x0, x0, :lo12:.LC84 +.L2738: + ldr w0, [x20, #:lo12:.LANCHOR14] + tbz x0, 12, .L2740 + adrp x2, .LANCHOR197 + adrp x0, .LC86 + add x2, x2, :lo12:.LANCHOR197 + mov w1, 2634 + add x0, x0, :lo12:.LC86 bl printf -.L2558: +.L2740: bl nand_flash_print_info mov w19, 0 - b .L2526 + b .L2704 .size nand_flash_init, .-nand_flash_init .section .text.ftl_sysblk_dump,"ax",@progbits .align 2 @@ -15665,31 +16837,31 @@ ftl_sysblk_dump: stp x25, x26, [sp, 112] mov w0, 1 stp x27, x28, [sp, 128] - adrp x26, .LANCHOR80 + adrp x26, .LANCHOR83 stp x21, x22, [sp, 80] bl buf_alloc ldr x24, [x0, 8] - adrp x27, .LANCHOR105 - adrp x28, .LANCHOR121 + adrp x27, .LANCHOR107 + adrp x28, .LANCHOR123 mov x25, x0 - add x26, x26, :lo12:.LANCHOR80 - add x27, x27, :lo12:.LANCHOR105 - add x28, x28, :lo12:.LANCHOR121 + add x26, x26, :lo12:.LANCHOR83 + add x27, x27, :lo12:.LANCHOR107 + add x28, x28, :lo12:.LANCHOR123 mov w19, 0 -.L2597: +.L2776: ldrh w0, [x26] cmp w0, w19 - bhi .L2599 + bhi .L2778 mov x0, x25 bl buf_free - cbz w20, .L2600 - adrp x1, .LANCHOR197 + cbz w20, .L2779 + adrp x1, .LANCHOR201 adrp x0, .LC0 mov w2, 1338 - add x1, x1, :lo12:.LANCHOR197 + add x1, x1, :lo12:.LANCHOR201 add x0, x0, :lo12:.LC0 bl printf -.L2600: +.L2779: mov w0, w20 ldp x19, x20, [sp, 64] ldp x21, x22, [sp, 80] @@ -15699,7 +16871,7 @@ ftl_sysblk_dump: ldp x29, x30, [sp, 48] add sp, sp, 144 ret -.L2599: +.L2778: ldrh w21, [x27] ldrb w3, [x28] ldr x1, [x25, 8] @@ -15728,19 +16900,19 @@ ftl_sysblk_dump: mov w1, w23 ldp w5, w6, [x0] ldr w7, [x0, 8] - adrp x0, .LC152 - add x0, x0, :lo12:.LC152 + adrp x0, .LC155 + add x0, x0, :lo12:.LC155 bl printf mov w3, 32 mov w2, 4 add x1, x24, 704 - adrp x0, .LC153 - add x0, x0, :lo12:.LC153 + adrp x0, .LC164 + add x0, x0, :lo12:.LC164 bl rknand_print_hex cmp w22, 512 ccmn w22, #1, 4, ne csinc w20, w20, wzr, ne - b .L2597 + b .L2776 .size ftl_sysblk_dump, .-ftl_sysblk_dump .section .text.dump_ftl_info,"ax",@progbits .align 2 @@ -15748,35 +16920,35 @@ ftl_sysblk_dump: .type dump_ftl_info, %function dump_ftl_info: stp x29, x30, [sp, -48]! - adrp x0, .LANCHOR51 + adrp x0, .LANCHOR52 add x29, sp, 0 - ldrb w1, [x0, #:lo12:.LANCHOR51] - adrp x0, .LC154 + ldrb w1, [x0, #:lo12:.LANCHOR52] + adrp x0, .LC165 stp x19, x20, [sp, 16] - add x0, x0, :lo12:.LC154 + add x0, x0, :lo12:.LC165 stp x21, x22, [sp, 32] - adrp x22, .LANCHOR97 + adrp x22, .LANCHOR100 adrp x19, .LANCHOR10 - adrp x20, .LANCHOR80 + adrp x20, .LANCHOR83 bl printf adrp x21, .LANCHOR6 - adrp x0, .LANCHOR178 - add x1, x0, :lo12:.LANCHOR178 + adrp x0, .LANCHOR179 + add x1, x0, :lo12:.LANCHOR179 ldrh w3, [x1, 2] ldrb w2, [x1, 1] - ldrb w1, [x0, #:lo12:.LANCHOR178] - adrp x0, .LC155 - add x0, x0, :lo12:.LC155 + ldrb w1, [x0, #:lo12:.LANCHOR179] + adrp x0, .LC166 + add x0, x0, :lo12:.LC166 bl printf - ldr x0, [x22, #:lo12:.LANCHOR97] + ldr x0, [x22, #:lo12:.LANCHOR100] ldrh w2, [x0, 140] ldrh w1, [x0, 130] - adrp x0, .LC156 - add x0, x0, :lo12:.LC156 + adrp x0, .LC167 + add x0, x0, :lo12:.LC167 bl printf ldr x1, [x19, #:lo12:.LANCHOR10] - adrp x0, .LC157 - add x0, x0, :lo12:.LC157 + adrp x0, .LC168 + add x0, x0, :lo12:.LC168 ldrh w5, [x1, 26] ldrh w4, [x1, 22] ldrb w3, [x1, 21] @@ -15784,8 +16956,8 @@ dump_ftl_info: ldrh w1, [x1, 16] bl printf ldr x1, [x19, #:lo12:.LANCHOR10] - adrp x0, .LC158 - add x0, x0, :lo12:.LC158 + adrp x0, .LC169 + add x0, x0, :lo12:.LC169 ldrh w5, [x1, 58] ldrh w4, [x1, 54] ldrb w3, [x1, 53] @@ -15793,36 +16965,36 @@ dump_ftl_info: ldrh w1, [x1, 48] bl printf ldr x1, [x19, #:lo12:.LANCHOR10] - adrp x19, .LANCHOR73 - adrp x0, .LC159 - add x0, x0, :lo12:.LC159 + adrp x19, .LANCHOR76 + adrp x0, .LC170 + add x0, x0, :lo12:.LC170 ldrh w5, [x1, 90] ldrh w4, [x1, 86] ldrb w3, [x1, 85] ldrh w2, [x1, 82] ldrh w1, [x1, 80] bl printf - ldrb w0, [x19, #:lo12:.LANCHOR73] + ldrb w0, [x19, #:lo12:.LANCHOR76] mov w2, 4 - ldrh w3, [x20, #:lo12:.LANCHOR80] + ldrh w3, [x20, #:lo12:.LANCHOR83] mul w3, w3, w0 - adrp x0, .LANCHOR111 - ldr x1, [x0, #:lo12:.LANCHOR111] - adrp x0, .LC160 + adrp x0, .LANCHOR113 + ldr x1, [x0, #:lo12:.LANCHOR113] + adrp x0, .LC171 lsl w3, w3, 1 - add x0, x0, :lo12:.LC160 + add x0, x0, :lo12:.LC171 bl rknand_print_hex adrp x0, .LANCHOR9 ldrh w3, [x21, #:lo12:.LANCHOR6] mov w2, 2 ldr x1, [x0, #:lo12:.LANCHOR9] - adrp x0, .LC161 - add x0, x0, :lo12:.LC161 + adrp x0, .LC172 + add x0, x0, :lo12:.LC172 bl rknand_print_hex - ldr x1, [x22, #:lo12:.LANCHOR97] + ldr x1, [x22, #:lo12:.LANCHOR100] mov w2, 4 - adrp x0, .LC153 - add x0, x0, :lo12:.LC153 + adrp x0, .LC164 + add x0, x0, :lo12:.LC164 add x1, x1, 704 ldrh w3, [x1, -6] bl rknand_print_hex @@ -15830,28 +17002,28 @@ dump_ftl_info: ldrh w3, [x21, #:lo12:.LANCHOR6] mov w2, 4 ldr x1, [x0, #:lo12:.LANCHOR7] - adrp x0, .LC162 - add x0, x0, :lo12:.LC162 + adrp x0, .LC173 + add x0, x0, :lo12:.LC173 bl rknand_print_hex mov w3, 256 mov w2, 2 - adrp x1, .LANCHOR110 - adrp x0, .LC163 - add x1, x1, :lo12:.LANCHOR110 - add x0, x0, :lo12:.LC163 + adrp x1, .LANCHOR112 + adrp x0, .LC174 + add x1, x1, :lo12:.LANCHOR112 + add x0, x0, :lo12:.LC174 bl rknand_print_hex - ldrb w0, [x19, #:lo12:.LANCHOR73] + ldrb w0, [x19, #:lo12:.LANCHOR76] mov w2, 2 - ldrh w3, [x20, #:lo12:.LANCHOR80] + ldrh w3, [x20, #:lo12:.LANCHOR83] ldp x21, x22, [sp, 32] ldp x19, x20, [sp, 16] mul w3, w3, w0 - adrp x0, .LANCHOR112 + adrp x0, .LANCHOR114 ldp x29, x30, [sp], 48 lsl w3, w3, 1 - ldr x1, [x0, #:lo12:.LANCHOR112] - adrp x0, .LC164 - add x0, x0, :lo12:.LC164 + ldr x1, [x0, #:lo12:.LANCHOR114] + adrp x0, .LC175 + add x0, x0, :lo12:.LC175 b rknand_print_hex .size dump_ftl_info, .-dump_ftl_info .section .text.pm_ppa_update_check,"ax",@progbits @@ -15859,17 +17031,17 @@ dump_ftl_info: .global pm_ppa_update_check .type pm_ppa_update_check, %function pm_ppa_update_check: - adrp x3, .LANCHOR99 + adrp x3, .LANCHOR102 mov w4, 21 - ldrh w3, [x3, #:lo12:.LANCHOR99] + ldrh w3, [x3, #:lo12:.LANCHOR102] sub w5, w4, w3 mov w4, 1 lsr w3, w2, w3 lsl w4, w4, w5 sub w4, w4, #1 and w4, w4, w3 - adrp x3, .LANCHOR98 - ldrb w3, [x3, #:lo12:.LANCHOR98] + adrp x3, .LANCHOR101 + ldrb w3, [x3, #:lo12:.LANCHOR101] udiv w4, w4, w3 adrp x3, .LANCHOR7 ldr x3, [x3, #:lo12:.LANCHOR7] @@ -15878,20 +17050,20 @@ pm_ppa_update_check: ubfx x3, x3, 5, 3 cmp w3, 1 ccmp w3, 7, 4, ne - bne .L2611 + bne .L2790 stp x29, x30, [sp, -16]! mov w3, w2 mov w2, w1 mov x1, x0 add x29, sp, 0 - adrp x0, .LC165 - add x0, x0, :lo12:.LC165 + adrp x0, .LC176 + add x0, x0, :lo12:.LC176 bl printf bl dump_ftl_info mov w0, -1 ldp x29, x30, [sp], 16 ret -.L2611: +.L2790: mov w0, 0 ret .size pm_ppa_update_check, .-pm_ppa_update_check @@ -15907,113 +17079,113 @@ load_l2p_region: and w19, w0, 65535 stp x23, x24, [sp, 48] cmp w20, 31 - bls .L2617 - adrp x1, .LANCHOR198 + bls .L2796 + adrp x1, .LANCHOR202 adrp x0, .LC0 mov w2, 31 - add x1, x1, :lo12:.LANCHOR198 + add x1, x1, :lo12:.LANCHOR202 add x0, x0, :lo12:.LC0 bl printf -.L2617: - adrp x22, .LANCHOR97 - ldr x0, [x22, #:lo12:.LANCHOR97] +.L2796: + adrp x22, .LANCHOR100 + ldr x0, [x22, #:lo12:.LANCHOR100] ldrh w2, [x0, 698] cmp w2, w19 - bcs .L2618 + bcs .L2797 mov w1, w19 - adrp x0, .LC166 - add x0, x0, :lo12:.LC166 + adrp x0, .LC177 + add x0, x0, :lo12:.LC177 bl printf - adrp x0, .LANCHOR199 + adrp x0, .LANCHOR203 mov w1, 255 - ldrh w2, [x0, #:lo12:.LANCHOR199] + ldrh w2, [x0, #:lo12:.LANCHOR203] mov x0, 0 ldr x0, [x0, 8] bl ftl_memset - ldr x0, [x22, #:lo12:.LANCHOR97] + ldr x0, [x22, #:lo12:.LANCHOR100] ldrh w0, [x0, 698] cmp w0, w19 - bcs .L2620 + bcs .L2799 mov w2, 35 -.L2625: - adrp x1, .LANCHOR198 +.L2804: + adrp x1, .LANCHOR202 adrp x0, .LC0 - add x1, x1, :lo12:.LANCHOR198 + add x1, x1, :lo12:.LANCHOR202 add x0, x0, :lo12:.LC0 bl printf - b .L2620 -.L2618: + b .L2799 +.L2797: add x0, x0, x19, sxtw 2 sbfiz x20, x20, 4, 32 ldr w21, [x0, 704] - adrp x0, .LANCHOR130 - add x0, x0, :lo12:.LANCHOR130 + adrp x0, .LANCHOR132 + add x0, x0, :lo12:.LANCHOR132 add x23, x0, x20 strh w19, [x0, x20] strh wzr, [x23, 2] - cbnz w21, .L2621 + cbnz w21, .L2800 mov w2, 0 mov w1, w19 - adrp x0, .LC167 - add x0, x0, :lo12:.LC167 + adrp x0, .LC178 + add x0, x0, :lo12:.LC178 bl printf - adrp x0, .LANCHOR199 + adrp x0, .LANCHOR203 mov w1, 255 - ldrh w2, [x0, #:lo12:.LANCHOR199] + ldrh w2, [x0, #:lo12:.LANCHOR203] ldr x0, [x23, 8] bl ftl_memset -.L2620: +.L2799: mov w0, 0 ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x23, x24, [sp, 48] ldp x29, x30, [sp], 64 ret -.L2621: - adrp x20, .LANCHOR190 - adrp x24, .LANCHOR121 +.L2800: + adrp x20, .LANCHOR191 + adrp x24, .LANCHOR123 ldr x1, [x23, 8] mov w0, w21 - ldr x2, [x20, #:lo12:.LANCHOR190] - ldrb w3, [x24, #:lo12:.LANCHOR121] + ldr x2, [x20, #:lo12:.LANCHOR191] + ldrb w3, [x24, #:lo12:.LANCHOR123] bl ftl_read_ppa_page - ldr x1, [x20, #:lo12:.LANCHOR190] + ldr x1, [x20, #:lo12:.LANCHOR191] ldr w2, [x1] cmp w2, w19 - beq .L2622 + beq .L2801 mov w4, w21 mov w3, w0 mov w1, w19 - adrp x0, .LC168 - add x0, x0, :lo12:.LC168 + adrp x0, .LC179 + add x0, x0, :lo12:.LC179 bl printf - ldr x1, [x22, #:lo12:.LANCHOR97] + ldr x1, [x22, #:lo12:.LANCHOR100] mov w2, 4 - adrp x0, .LC169 - add x0, x0, :lo12:.LC169 + adrp x0, .LC180 + add x0, x0, :lo12:.LC180 add x1, x1, 704 ldrh w3, [x1, -6] bl rknand_print_hex ldr x1, [x23, 8] mov w2, 4 - ldrb w3, [x24, #:lo12:.LANCHOR121] - adrp x0, .LC170 - add x0, x0, :lo12:.LC170 + ldrb w3, [x24, #:lo12:.LANCHOR123] + adrp x0, .LC181 + add x0, x0, :lo12:.LC181 lsl w3, w3, 7 bl rknand_print_hex - ldr x1, [x20, #:lo12:.LANCHOR190] - adrp x0, .LC171 + ldr x1, [x20, #:lo12:.LANCHOR191] + adrp x0, .LC182 mov w3, 16 mov w2, 4 - add x0, x0, :lo12:.LC171 + add x0, x0, :lo12:.LC182 bl rknand_print_hex -.L2622: - ldr x0, [x20, #:lo12:.LANCHOR190] +.L2801: + ldr x0, [x20, #:lo12:.LANCHOR191] ldr w0, [x0] cmp w19, w0 - beq .L2620 + beq .L2799 mov w2, 59 - b .L2625 + b .L2804 .size load_l2p_region, .-load_l2p_region .section .text.pm_gc,"ax",@progbits .align 2 @@ -16023,73 +17195,73 @@ pm_gc: stp x29, x30, [sp, -80]! add x29, sp, 0 stp x19, x20, [sp, 16] - adrp x20, .LANCHOR97 - adrp x19, .LANCHOR141 + adrp x20, .LANCHOR100 + adrp x19, .LANCHOR146 stp x21, x22, [sp, 32] - ldr x0, [x20, #:lo12:.LANCHOR97] + ldr x0, [x20, #:lo12:.LANCHOR100] stp x23, x24, [sp, 48] ldrh w1, [x0, 688] - ldrh w0, [x19, #:lo12:.LANCHOR141] + ldrh w0, [x19, #:lo12:.LANCHOR146] str x25, [sp, 64] sub w0, w0, #1 cmp w1, w0 - blt .L2628 + blt .L2807 bl pm_free_sblk - ldr x2, [x20, #:lo12:.LANCHOR97] - ldrh w1, [x19, #:lo12:.LANCHOR141] + ldr x2, [x20, #:lo12:.LANCHOR100] + ldrh w1, [x19, #:lo12:.LANCHOR146] sub w1, w1, #1 ldrh w3, [x2, 688] cmp w3, w1 - blt .L2628 + blt .L2807 add x0, x2, x0, uxth 1 ldrh w21, [x0, 416] mov w0, 65535 cmp w21, w0 - bne .L2630 - adrp x1, .LANCHOR200 - add x1, x1, :lo12:.LANCHOR200 + bne .L2809 + adrp x1, .LANCHOR204 + add x1, x1, :lo12:.LANCHOR204 mov w2, 131 adrp x0, .LC0 add x0, x0, :lo12:.LC0 bl printf bl pm_free_sblk - ldr x1, [x20, #:lo12:.LANCHOR97] + ldr x1, [x20, #:lo12:.LANCHOR100] add x0, x1, x0, uxth 1 ldrh w21, [x0, 416] -.L2630: +.L2809: bl pm_select_ram_region and x24, x0, 65535 - adrp x1, .LANCHOR130 + adrp x1, .LANCHOR132 lsl x0, x24, 4 - add x2, x1, :lo12:.LANCHOR130 + add x2, x1, :lo12:.LANCHOR132 mov x22, x24 add x19, x2, x0 mov x23, x1 ldrh w0, [x2, x0] mov w2, 65535 cmp w0, w2 - beq .L2631 + beq .L2810 ldr x1, [x19, 8] - cbz x1, .L2631 + cbz x1, .L2810 ldrsh w2, [x19, 2] - tbz w2, #31, .L2631 + tbz w2, #31, .L2810 bl pm_write_page ldrh w0, [x19, 2] and w0, w0, 32767 strh w0, [x19, 2] -.L2631: - add x1, x23, :lo12:.LANCHOR130 - adrp x25, .LANCHOR99 +.L2810: + add x1, x23, :lo12:.LANCHOR132 + adrp x25, .LANCHOR102 add x24, x1, x24, lsl 4 - add x25, x25, :lo12:.LANCHOR99 + add x25, x25, :lo12:.LANCHOR102 mov w19, 0 -.L2632: - ldr x1, [x20, #:lo12:.LANCHOR97] +.L2811: + ldr x1, [x20, #:lo12:.LANCHOR100] ldrh w0, [x1, 698] cmp w0, w19 - bhi .L2634 + bhi .L2813 bl pm_free_sblk -.L2628: +.L2807: mov w0, 0 ldr x25, [sp, 64] ldp x19, x20, [sp, 16] @@ -16097,7 +17269,7 @@ pm_gc: ldp x23, x24, [sp, 48] ldp x29, x30, [sp], 80 ret -.L2634: +.L2813: add x1, x1, x19, sxtw 2 ldrh w3, [x25] mov w0, 21 @@ -16108,11 +17280,11 @@ pm_gc: sub w0, w0, #1 lsr w1, w1, w3 and w0, w0, w1 - adrp x1, .LANCHOR98 - ldrb w1, [x1, #:lo12:.LANCHOR98] + adrp x1, .LANCHOR101 + ldrb w1, [x1, #:lo12:.LANCHOR101] udiv w0, w0, w1 cmp w21, w0, uxth - bne .L2633 + bne .L2812 mov w1, w22 mov w0, w19 bl load_l2p_region @@ -16121,10 +17293,10 @@ pm_gc: bl pm_write_page mov w0, -1 strh w0, [x24] -.L2633: +.L2812: add w19, w19, 1 and w19, w19, 65535 - b .L2632 + b .L2811 .size pm_gc, .-pm_gc .section .text.pm_flush_id,"ax",@progbits .align 2 @@ -16133,8 +17305,8 @@ pm_gc: pm_flush_id: stp x29, x30, [sp, -32]! ubfiz x0, x0, 4, 16 - adrp x2, .LANCHOR130 - add x2, x2, :lo12:.LANCHOR130 + adrp x2, .LANCHOR132 + add x2, x2, :lo12:.LANCHOR132 add x29, sp, 0 str x19, [sp, 16] add x19, x2, x0 @@ -16144,12 +17316,12 @@ pm_flush_id: ldrh w0, [x19, 2] and w0, w0, 32767 strh w0, [x19, 2] - adrp x19, .LANCHOR128 - ldr w0, [x19, #:lo12:.LANCHOR128] - cbz w0, .L2640 + adrp x19, .LANCHOR130 + ldr w0, [x19, #:lo12:.LANCHOR130] + cbz w0, .L2819 bl pm_gc - str wzr, [x19, #:lo12:.LANCHOR128] -.L2640: + str wzr, [x19, #:lo12:.LANCHOR130] +.L2819: mov w0, 0 ldr x19, [sp, 16] ldp x29, x30, [sp], 32 @@ -16163,21 +17335,21 @@ pm_flush: stp x29, x30, [sp, -32]! add x29, sp, 0 stp x19, x20, [sp, 16] - adrp x19, .LANCHOR130 - add x19, x19, :lo12:.LANCHOR130 + adrp x19, .LANCHOR132 + add x19, x19, :lo12:.LANCHOR132 mov w20, 0 add x19, x19, 2 -.L2647: +.L2826: ldrsh w0, [x19] - tbz w0, #31, .L2646 + tbz w0, #31, .L2825 mov w0, w20 bl pm_flush_id -.L2646: +.L2825: add w20, w20, 1 add x19, x19, 16 and w20, w20, 65535 cmp w20, 32 - bne .L2647 + bne .L2826 mov w0, 0 ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 32 @@ -16226,83 +17398,90 @@ pm_init: add x29, sp, 0 stp x23, x24, [sp, 48] mov w24, w0 - adrp x0, .LANCHOR128 + adrp x0, .LANCHOR130 stp x19, x20, [sp, 16] stp x21, x22, [sp, 32] - adrp x20, .LANCHOR130 - str wzr, [x0, #:lo12:.LANCHOR128] - adrp x0, .LANCHOR191 + adrp x19, .LANCHOR132 + str wzr, [x0, #:lo12:.LANCHOR130] + adrp x0, .LANCHOR192 stp x25, x26, [sp, 64] - add x19, x20, :lo12:.LANCHOR130 - strb w1, [x0, #:lo12:.LANCHOR191] + add x21, x19, :lo12:.LANCHOR132 + strb w1, [x0, #:lo12:.LANCHOR192] mov w0, 64 stp x27, x28, [sp, 80] bl ftl_malloc - adrp x1, .LANCHOR190 - adrp x22, .LANCHOR121 - add x23, x19, 512 - mov x21, x1 - add x22, x22, :lo12:.LANCHOR121 - str x0, [x1, #:lo12:.LANCHOR190] + adrp x1, .LANCHOR191 + mov x20, x19 + add x23, x21, 512 + adrp x19, .LANCHOR123 + mov x22, x1 + add x19, x19, :lo12:.LANCHOR123 + str x0, [x1, #:lo12:.LANCHOR191] mov w25, -1 -.L2657: - strh w25, [x19] - strh wzr, [x19, 2] - cbz w24, .L2656 - ldrb w0, [x22] +.L2836: + strh w25, [x21] + strh wzr, [x21, 2] + cbz w24, .L2835 + ldrb w0, [x19] lsl w0, w0, 9 bl ftl_malloc - str x0, [x19, 8] -.L2656: - add x19, x19, 16 - cmp x19, x23 - bne .L2657 - add x0, x20, :lo12:.LANCHOR130 - adrp x19, .LANCHOR97 - ldr x24, [x21, #:lo12:.LANCHOR190] + str x0, [x21, 8] +.L2835: + add x21, x21, 16 + cmp x21, x23 + bne .L2836 + add x0, x20, :lo12:.LANCHOR132 + adrp x19, .LANCHOR100 + ldr x24, [x22, #:lo12:.LANCHOR191] mov w4, 4 ldr x25, [x0, 8] mov x3, x24 - ldr x0, [x19, #:lo12:.LANCHOR97] + ldr x0, [x19, #:lo12:.LANCHOR100] mov x2, x25 ldrh w1, [x0, 692] ldrb w0, [x0, 694] bl flash_get_last_written_page sxth w26, w0 - ldr x0, [x19, #:lo12:.LANCHOR97] + ldr x0, [x19, #:lo12:.LANCHOR100] mov w23, w26 ldrh w2, [x0, 696] cmp w2, w26 - bgt .L2658 + bgt .L2837 ldrh w1, [x0, 692] mov w3, w26 - adrp x0, .LC172 - add x0, x0, :lo12:.LC172 - adrp x27, .LANCHOR105 - adrp x28, .LANCHOR121 - add x27, x27, :lo12:.LANCHOR105 - add x28, x28, :lo12:.LANCHOR121 + adrp x0, .LC183 + add x0, x0, :lo12:.LC183 + adrp x27, .LANCHOR107 + adrp x28, .LANCHOR123 + add x27, x27, :lo12:.LANCHOR107 + add x28, x28, :lo12:.LANCHOR123 bl printf - ldr x0, [x19, #:lo12:.LANCHOR97] + ldr x0, [x19, #:lo12:.LANCHOR100] ldrsh w21, [x0, 696] -.L2659: +.L2838: cmp w21, w26 - ble .L2661 - adrp x0, .LANCHOR181 + ble .L2840 + adrp x0, .LANCHOR182 mov w1, 1 - add x20, x20, :lo12:.LANCHOR130 add w23, w23, 1 - strb w1, [x0, #:lo12:.LANCHOR181] - ldr x0, [x19, #:lo12:.LANCHOR97] + strb w1, [x0, #:lo12:.LANCHOR182] + ldr x0, [x19, #:lo12:.LANCHOR100] strh w23, [x0, 696] bl pm_free_sblk +.L2837: + add x20, x20, :lo12:.LANCHOR132 + mov w0, -1 + ldr x1, [x20, 8] + bl pm_write_page + ldr x1, [x20, 8] + mov w0, -1 + bl pm_write_page ldr x1, [x20, 8] mov w0, -1 bl pm_write_page ldr x1, [x20, 8] mov w0, -1 bl pm_write_page -.L2658: bl pm_free_sblk bl pm_gc mov w0, 0 @@ -16313,8 +17492,8 @@ pm_init: ldp x27, x28, [sp, 80] ldp x29, x30, [sp], 112 ret -.L2661: - ldr x0, [x19, #:lo12:.LANCHOR97] +.L2840: + ldr x0, [x19, #:lo12:.LANCHOR100] mov x3, x24 ldrh w1, [x27] mov x2, x25 @@ -16325,138 +17504,143 @@ pm_init: mov w1, w22 bl flash_read_page_en mov w4, w0 - ldr x0, [x19, #:lo12:.LANCHOR97] + ldr x0, [x19, #:lo12:.LANCHOR100] str w4, [x29, 108] mov w2, w22 ldr w1, [x0, 48] ldrh w3, [x0, 694] add w1, w1, 1 str w1, [x0, 48] - adrp x0, .LC173 - add x0, x0, :lo12:.LC173 + adrp x0, .LC184 + add x0, x0, :lo12:.LC184 ldr w1, [x24] bl printf ldr w4, [x29, 108] cmp w4, 512 ccmn w4, #1, 4, ne - beq .L2660 - ldr x1, [x19, #:lo12:.LANCHOR97] + beq .L2839 + ldr x1, [x19, #:lo12:.LANCHOR100] ldr w0, [x24] ldrh w2, [x1, 698] cmp w0, w2 - bcs .L2660 + bcs .L2839 add x0, x1, x0, uxtw 2 str w22, [x0, 704] -.L2660: +.L2839: add w21, w21, 1 sxth w21, w21 - b .L2659 + b .L2838 .size pm_init, .-pm_init .section .text.pm_log2phys,"ax",@progbits .align 2 .global pm_log2phys .type pm_log2phys, %function pm_log2phys: - stp x29, x30, [sp, -80]! + stp x29, x30, [sp, -96]! add x29, sp, 0 - stp x21, x22, [sp, 32] - mov x22, x1 - adrp x1, .LANCHOR121 - stp x19, x20, [sp, 16] stp x25, x26, [sp, 64] - ldrb w1, [x1, #:lo12:.LANCHOR121] + mov w25, w0 + adrp x0, .LANCHOR120 stp x23, x24, [sp, 48] - mov w23, w2 - lsl w21, w1, 7 - ubfiz w20, w1, 7, 9 - adrp x1, .LANCHOR118 - udiv w21, w0, w21 - ldr w2, [x1, #:lo12:.LANCHOR118] - cmp w0, w2 - and w25, w21, 65535 - msub w20, w25, w20, w0 - bcc .L2671 - mov w1, w0 - adrp x0, .LC174 - add x0, x0, :lo12:.LC174 + stp x19, x20, [sp, 16] + mov w24, w2 + stp x21, x22, [sp, 32] + mov x23, x1 + ldr w2, [x0, #:lo12:.LANCHOR120] + str x27, [sp, 80] + cmp w25, w2 + bcc .L2850 + mov w1, w25 + adrp x0, .LC185 + add x0, x0, :lo12:.LC185 bl printf mov w0, -1 -.L2670: + cbnz w24, .L2849 + str w0, [x23] +.L2849: 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 -.L2671: - adrp x24, .LANCHOR130 - add x0, x24, :lo12:.LANCHOR130 - and x20, x20, 65535 - add x0, x0, 8 +.L2850: + adrp x0, .LANCHOR123 + adrp x21, .LANCHOR132 mov x19, 0 -.L2677: + ldrb w20, [x0, #:lo12:.LANCHOR123] + add x0, x21, :lo12:.LANCHOR132 + add x0, x0, 8 + lsl w22, w20, 7 + udiv w22, w25, w22 + and w26, w22, 65535 +.L2856: ldr x1, [x0] - cbz x1, .L2673 + cbz x1, .L2852 ldrh w1, [x0, -8] - cmp w1, w25 - bne .L2673 -.L2674: - cbnz w23, .L2675 - add x0, x24, :lo12:.LANCHOR130 + cmp w1, w26 + bne .L2852 +.L2853: + ubfiz w20, w20, 7, 9 + msub w25, w26, w20, w25 + and x25, x25, 65535 + cbnz w24, .L2854 + add x0, x21, :lo12:.LANCHOR132 add x0, x0, x19, lsl 4 ldr x0, [x0, 8] - ldr w0, [x0, x20, lsl 2] - str w0, [x22] -.L2676: - add x24, x24, :lo12:.LANCHOR130 - add x19, x24, x19, lsl 4 + ldr w0, [x0, x25, lsl 2] + str w0, [x23] +.L2855: + add x21, x21, :lo12:.LANCHOR132 + add x19, x21, x19, lsl 4 ldrh w0, [x19, 2] mvn x1, x0 tst x1, 32767 - beq .L2679 + beq .L2859 add w0, w0, 1 strh w0, [x19, 2] -.L2679: +.L2859: mov w0, 0 - b .L2670 -.L2675: - add x0, x24, :lo12:.LANCHOR130 - ldr w2, [x22] + b .L2849 +.L2854: + add x0, x21, :lo12:.LANCHOR132 + ldr w2, [x23] add x0, x0, x19, lsl 4 ldr x1, [x0, 8] - str w2, [x1, x20, lsl 2] + str w2, [x1, x25, lsl 2] ldrh w1, [x0, 2] orr w1, w1, -32768 strh w1, [x0, 2] - adrp x0, .LANCHOR131 - strb w21, [x0, #:lo12:.LANCHOR131] - b .L2676 -.L2673: + adrp x0, .LANCHOR133 + strb w22, [x0, #:lo12:.LANCHOR133] + b .L2855 +.L2852: add w19, w19, 1 add x0, x0, 16 and x19, x19, 65535 cmp w19, 32 - bne .L2677 + bne .L2856 bl pm_select_ram_region and x19, x0, 65535 sbfiz x1, x19, 4, 32 - add x2, x24, :lo12:.LANCHOR130 + add x2, x21, :lo12:.LANCHOR132 add x3, x2, x1 - mov w26, w0 + mov w27, w0 ldrh w2, [x2, x1] mov w1, 65535 cmp w2, w1 - beq .L2678 + beq .L2857 ldrsh w1, [x3, 2] - tbz w1, #31, .L2678 + tbz w1, #31, .L2857 bl pm_flush_id -.L2678: - adrp x0, .LANCHOR201 - mov w1, w26 - strb w19, [x0, #:lo12:.LANCHOR201] - mov w0, w25 +.L2857: + adrp x0, .LANCHOR205 + mov w1, w27 + strb w19, [x0, #:lo12:.LANCHOR205] + mov w0, w26 bl load_l2p_region - b .L2674 + b .L2853 .size pm_log2phys, .-pm_log2phys .section .text.gc_recovery,"ax",@progbits .align 2 @@ -16464,17 +17648,17 @@ pm_log2phys: .type gc_recovery, %function gc_recovery: sub sp, sp, #240 - adrp x0, .LANCHOR71 + adrp x0, .LANCHOR74 stp x29, x30, [sp, 32] add x29, sp, 32 stp x21, x22, [sp, 64] adrp x21, .LANCHOR10 stp x19, x20, [sp, 48] ldr x20, [x21, #:lo12:.LANCHOR10] - strb wzr, [x0, #:lo12:.LANCHOR71] - adrp x0, .LANCHOR145 + strb wzr, [x0, #:lo12:.LANCHOR74] + adrp x0, .LANCHOR150 stp x23, x24, [sp, 80] - strb wzr, [x0, #:lo12:.LANCHOR145] + strb wzr, [x0, #:lo12:.LANCHOR150] stp x25, x26, [sp, 96] stp x27, x28, [sp, 112] bl gc_init @@ -16484,7 +17668,7 @@ gc_recovery: mov w0, 65535 cmp w1, w0 ldr x0, [x21, #:lo12:.LANCHOR10] - beq .L2686 + beq .L2866 mov w1, -1 strh w1, [x0, 130] mov w0, 1 @@ -16492,41 +17676,41 @@ gc_recovery: mov x26, x0 ldrb w0, [x20, 89] add x1, x20, 80 - adrp x3, .LANCHOR105 - adrp x2, .LANCHOR68 + adrp x3, .LANCHOR107 + adrp x2, .LANCHOR69 sub w0, w0, #1 str x3, [x29, 152] add x0, x1, x0, sxtw 1 - ldrh w1, [x3, #:lo12:.LANCHOR105] + ldrh w1, [x3, #:lo12:.LANCHOR107] str x2, [x29, 168] ldrh w0, [x0, 16] mul w1, w0, w1 - ldrb w0, [x2, #:lo12:.LANCHOR68] + ldrb w0, [x2, #:lo12:.LANCHOR69] str w1, [x29, 200] cmp w0, 3 - bne .L2687 - adrp x0, .LANCHOR80 - ldrh w0, [x0, #:lo12:.LANCHOR80] + bne .L2867 + adrp x0, .LANCHOR83 + ldrh w0, [x0, #:lo12:.LANCHOR83] sub w0, w0, #1 add w0, w0, w1 orr w0, w0, 50331648 -.L2731: +.L2911: str w0, [x26, 40] -.L2688: +.L2868: mov w1, 1 mov x0, x26 bl sblk_read_page ldr w0, [x26, 52] cmp w0, 512 ccmn w0, #1, 4, ne - beq .L2689 + beq .L2869 ldr x0, [x26, 24] ldr w1, [x0] mov w0, 15555 movk w0, 0xf55f, lsl 16 cmp w1, w0 - beq .L2690 -.L2689: + beq .L2870 +.L2869: mov x0, x26 bl buf_free ldr x1, [x26, 24] @@ -16539,13 +17723,13 @@ gc_recovery: str w2, [sp] ldp w3, w4, [x0] ldp w5, w6, [x0, 8] - adrp x0, .LC175 + adrp x0, .LC186 ldr w7, [x1] - add x0, x0, :lo12:.LC175 + add x0, x0, :lo12:.LC186 ldr w1, [x26, 40] ldr w2, [x26, 52] bl printf -.L2735: +.L2915: adrp x0, .LANCHOR9 ldrh w1, [x20, 80] mov w22, 0 @@ -16554,11 +17738,13 @@ gc_recovery: ldr x0, [x21, #:lo12:.LANCHOR10] ldrh w1, [x20, 80] strh w1, [x0, 130] -.L2691: +.L2871: + ldrh w0, [x20, 80] + bl ftl_dump_write_open_sblk ldrh w1, [x20, 80] mov w2, w22 - adrp x0, .LC177 - add x0, x0, :lo12:.LC177 + adrp x0, .LC188 + add x0, x0, :lo12:.LC188 bl printf mov w0, -1 strh w0, [x20, 80] @@ -16568,18 +17754,18 @@ gc_recovery: mov w1, 65535 ldrh w0, [x0, 130] cmp w0, w1 - beq .L2718 + beq .L2898 bl ftl_free_sblk -.L2718: - adrp x0, .LANCHOR97 - ldr x1, [x0, #:lo12:.LANCHOR97] +.L2898: + adrp x0, .LANCHOR100 + ldr x1, [x0, #:lo12:.LANCHOR100] mov w0, -1 strh w0, [x1, 126] ldr x1, [x21, #:lo12:.LANCHOR10] strh w0, [x1, 130] mov w0, 0 bl ftl_info_flush -.L2685: +.L2865: ldp x19, x20, [sp, 48] ldp x21, x22, [sp, 64] ldp x23, x24, [sp, 80] @@ -16588,64 +17774,64 @@ gc_recovery: ldp x29, x30, [sp, 32] add sp, sp, 240 ret -.L2687: +.L2867: cmp w0, 2 - bne .L2688 - adrp x0, .LANCHOR80 - ldrh w0, [x0, #:lo12:.LANCHOR80] + bne .L2868 + adrp x0, .LANCHOR83 + ldrh w0, [x0, #:lo12:.LANCHOR83] add w0, w1, w0, lsl 1 sub w0, w0, #1 orr w0, w0, 33554432 - b .L2731 -.L2690: - adrp x28, .LANCHOR72 - adrp x22, .LANCHOR73 - adrp x27, .LANCHOR147 + b .L2911 +.L2870: + adrp x28, .LANCHOR75 + adrp x22, .LANCHOR76 + adrp x27, .LANCHOR152 ldr x1, [x26, 8] - ldrb w0, [x22, #:lo12:.LANCHOR73] - adrp x24, .LANCHOR148 - ldrh w2, [x28, #:lo12:.LANCHOR72] + ldrb w0, [x22, #:lo12:.LANCHOR76] + adrp x24, .LANCHOR153 + ldrh w2, [x28, #:lo12:.LANCHOR75] mul w2, w2, w0 - ldr x0, [x27, #:lo12:.LANCHOR147] + ldr x0, [x27, #:lo12:.LANCHOR152] lsl w2, w2, 2 bl ftl_memcpy - ldrb w1, [x22, #:lo12:.LANCHOR73] - ldrh w0, [x28, #:lo12:.LANCHOR72] + ldrb w1, [x22, #:lo12:.LANCHOR76] + ldrh w0, [x28, #:lo12:.LANCHOR75] mul w0, w0, w1 ldr x1, [x26, 8] lsl w2, w0, 2 add x1, x1, x0, sxtw 2 - ldr x0, [x24, #:lo12:.LANCHOR148] + ldr x0, [x24, #:lo12:.LANCHOR153] bl ftl_memcpy str x28, [x29, 144] - adrp x0, .LANCHOR80 - ldrh w14, [x0, #:lo12:.LANCHOR80] + adrp x0, .LANCHOR83 + ldrh w14, [x0, #:lo12:.LANCHOR83] ldr x0, [x29, 168] - ldrb w0, [x0, #:lo12:.LANCHOR68] + ldrb w0, [x0, #:lo12:.LANCHOR69] cmp w0, 2 - beq .L2692 -.L2732: + beq .L2872 +.L2912: str w0, [x29, 184] - adrp x25, .LC176 + adrp x25, .LC187 ldr x0, [x29, 152] mov w23, 0 mov w22, 0 - add x0, x0, :lo12:.LANCHOR105 + add x0, x0, :lo12:.LANCHOR107 str x0, [x29, 128] - add x0, x25, :lo12:.LC176 + add x0, x25, :lo12:.LC187 str x0, [x29, 120] -.L2694: +.L2874: sub w0, w23, #1 str w0, [x29, 188] cmp w23, w14 - beq .L2703 + beq .L2883 mov x19, 0 - b .L2704 -.L2692: + b .L2884 +.L2872: lsl w14, w14, 1 mov w0, 1 - b .L2732 -.L2700: + b .L2912 +.L2880: ldr x1, [x29, 128] ldr x0, [x29, 160] ldrh w1, [x1] @@ -16655,29 +17841,29 @@ gc_recovery: str w0, [x29, 200] ldrb w1, [x1] cmp w1, 3 - bne .L2695 + bne .L2875 add w0, w23, w0 orr w0, w0, w25, lsl 24 -.L2733: +.L2913: str w0, [x26, 40] mov w1, 1 str w14, [x29, 112] mov x0, x26 bl sblk_read_page - ldr x0, [x27, #:lo12:.LANCHOR147] + ldr x0, [x27, #:lo12:.LANCHOR152] ldr w14, [x29, 112] ldr w3, [x0, x28] ldr x0, [x26, 24] ldr w6, [x0, 4] cmp w3, w6 - bne .L2698 - ldr x1, [x24, #:lo12:.LANCHOR148] + bne .L2878 + ldr x1, [x24, #:lo12:.LANCHOR153] ldr w2, [x1, x28] ldr w1, [x0, 8] cmp w2, w1 - beq .L2699 -.L2698: - ldr x1, [x24, #:lo12:.LANCHOR148] + beq .L2879 +.L2878: + ldr x1, [x24, #:lo12:.LANCHOR153] ldr w2, [x0, 12] str w2, [sp] str w14, [x29, 112] @@ -16688,51 +17874,51 @@ gc_recovery: ldr w2, [x26, 52] ldr x0, [x29, 120] bl printf - ldr x0, [x27, #:lo12:.LANCHOR147] + ldr x0, [x27, #:lo12:.LANCHOR152] ldr w14, [x29, 112] ldr w0, [x0, x28] cmn w0, #1 - beq .L2699 + beq .L2879 mov x0, x26 bl buf_free - b .L2735 -.L2695: + b .L2915 +.L2875: cmp w1, 2 - bne .L2697 + bne .L2877 ldr w1, [x29, 188] add w0, w0, w1 add w0, w0, w25 orr w0, w0, 33554432 - b .L2733 -.L2697: + b .L2913 +.L2877: add w0, w23, w0 - b .L2733 -.L2699: + b .L2913 +.L2879: add w22, w22, 1 add w25, w25, 1 add x28, x28, 4 -.L2702: +.L2882: ldr w0, [x29, 184] cmp w0, w25 - bcs .L2700 + bcs .L2880 add x19, x19, 1 -.L2704: +.L2884: ldr x0, [x29, 176] ldrb w0, [x0, 9] cmp w0, w19 - ble .L2701 + ble .L2881 add x0, x20, x19, lsl 1 str x0, [x29, 160] ldr x0, [x29, 168] sbfiz x28, x22, 2, 32 mov w25, 1 - add x0, x0, :lo12:.LANCHOR68 + add x0, x0, :lo12:.LANCHOR69 str x0, [x29, 136] - b .L2702 -.L2701: + b .L2882 +.L2881: add w23, w23, 1 - b .L2694 -.L2703: + b .L2874 +.L2883: mov x0, x26 bl buf_free ldr x3, [x29, 144] @@ -16742,30 +17928,30 @@ gc_recovery: ldrh w2, [x20, 80] mov w28, 0 ldr x1, [x25, #:lo12:.LANCHOR9] - ldrh w3, [x3, #:lo12:.LANCHOR72] + ldrh w3, [x3, #:lo12:.LANCHOR75] ldrb w0, [x0, 9] str x25, [x29, 144] str wzr, [x29, 188] mul w0, w0, w3 strh w0, [x1, x2, lsl 1] - adrp x0, .LANCHOR99 - add x0, x0, :lo12:.LANCHOR99 + adrp x0, .LANCHOR102 + add x0, x0, :lo12:.LANCHOR102 str x0, [x29, 112] -.L2705: +.L2885: sub w0, w28, #1 str w0, [x29, 136] cmp w23, w28 - beq .L2716 + beq .L2896 mov x26, 0 - b .L2717 -.L2713: + b .L2897 +.L2893: ldr w0, [x29, 188] - ldr x1, [x27, #:lo12:.LANCHOR147] + ldr x1, [x27, #:lo12:.LANCHOR152] sbfiz x0, x0, 2, 32 ldr w5, [x1, x0] cmn w5, #1 - beq .L2706 - ldr x1, [x24, #:lo12:.LANCHOR148] + beq .L2886 + ldr x1, [x24, #:lo12:.LANCHOR153] str w5, [x29, 108] ldr w0, [x1, x0] str w0, [x29, 160] @@ -16774,26 +17960,26 @@ gc_recovery: str w0, [x29, 204] cmn w0, #1 ldr w5, [x29, 108] - bne .L2707 + bne .L2887 mov w0, w5 str w5, [x29, 108] mov w2, 0 add x1, x29, 204 bl pm_log2phys ldr w5, [x29, 108] -.L2707: +.L2887: ldr x0, [x29, 128] ldr x1, [x29, 152] ldrh w0, [x0, 96] - ldrh w1, [x1, #:lo12:.LANCHOR105] + ldrh w1, [x1, #:lo12:.LANCHOR107] mul w0, w0, w1 ldr x1, [x29, 168] - ldrb w1, [x1, #:lo12:.LANCHOR68] + ldrb w1, [x1, #:lo12:.LANCHOR69] cmp w1, 3 - bne .L2708 + bne .L2888 add w0, w28, w0 orr w0, w0, w25, lsl 24 -.L2734: +.L2914: str w0, [x29, 200] mov w19, 21 ldr x0, [x29, 112] @@ -16811,14 +17997,14 @@ gc_recovery: ldr w0, [x29, 204] cmp w1, w0 and x19, x19, 65535 - bne .L2711 + bne .L2891 add x1, x29, 200 mov w0, w5 bl pm_log2phys add w22, w22, 1 mov w0, w19 bl ftl_vpn_decrement -.L2712: +.L2892: ldr w0, [x29, 188] add w0, w0, 1 str w0, [x29, 188] @@ -16827,82 +18013,82 @@ gc_recovery: add x0, x0, x19, lsl 2 ldrb w0, [x0, 2] tst w0, 224 - bne .L2706 + bne .L2886 ldr x0, [x29, 144] lsl x19, x19, 1 ldr x0, [x0, #:lo12:.LANCHOR9] ldrh w1, [x0, x19] - cbz w1, .L2706 + cbz w1, .L2886 strh wzr, [x0, x19] -.L2706: +.L2886: add w25, w25, 1 -.L2715: +.L2895: ldr w0, [x29, 184] cmp w0, w25 - bcs .L2713 + bcs .L2893 add x26, x26, 1 -.L2717: +.L2897: ldr x0, [x29, 176] ldrb w0, [x0, 9] cmp w0, w26 - ble .L2714 + ble .L2894 add x0, x20, x26, lsl 1 mov w25, 1 str x0, [x29, 128] - adrp x0, .LANCHOR98 - add x0, x0, :lo12:.LANCHOR98 + adrp x0, .LANCHOR101 + add x0, x0, :lo12:.LANCHOR101 str x0, [x29, 120] - b .L2715 -.L2708: + b .L2895 +.L2888: cmp w1, 2 - bne .L2710 + bne .L2890 ldr w1, [x29, 136] add w0, w0, w1 add w0, w0, w25 orr w0, w0, 33554432 - b .L2734 -.L2710: + b .L2914 +.L2890: add w0, w28, w0 - b .L2734 -.L2711: + b .L2914 +.L2891: ldr w1, [x29, 200] cmp w0, w1 cinc w22, w22, eq - b .L2712 -.L2714: + b .L2892 +.L2894: add w28, w28, 1 - b .L2705 -.L2716: + b .L2885 +.L2896: ldr x0, [x29, 144] ldrh w1, [x20, 80] ldr x0, [x0, #:lo12:.LANCHOR9] strh w22, [x0, x1, lsl 1] ldrh w0, [x20, 80] bl zftl_insert_data_list - b .L2691 -.L2686: + b .L2871 +.L2866: ldrh w0, [x0, 130] cmp w0, w1 - beq .L2685 - adrp x19, .LANCHOR97 - ldr x1, [x19, #:lo12:.LANCHOR97] + beq .L2865 + adrp x19, .LANCHOR100 + ldr x1, [x19, #:lo12:.LANCHOR100] ldrh w1, [x1, 126] cmp w1, w0 - bne .L2720 + bne .L2900 bl pm_flush ldr x0, [x21, #:lo12:.LANCHOR10] ldrh w0, [x0, 130] bl ftl_free_sblk - ldr x0, [x19, #:lo12:.LANCHOR97] + ldr x0, [x19, #:lo12:.LANCHOR100] mov w1, -1 strh w1, [x0, 126] mov w0, 0 bl ftl_info_flush -.L2720: +.L2900: ldr x0, [x21, #:lo12:.LANCHOR10] mov w1, -1 strh w1, [x0, 130] - b .L2685 + b .L2865 .size gc_recovery, .-gc_recovery .section .text.zftl_init,"ax",@progbits .align 2 @@ -16910,232 +18096,232 @@ gc_recovery: .type zftl_init, %function zftl_init: stp x29, x30, [sp, -112]! - adrp x1, .LANCHOR56 + adrp x1, .LANCHOR57 mov w0, -1 add x29, sp, 0 - strb w0, [x1, #:lo12:.LANCHOR56] - adrp x1, .LANCHOR57 + strb w0, [x1, #:lo12:.LANCHOR57] + adrp x1, .LANCHOR58 stp x21, x22, [sp, 32] - adrp x22, .LANCHOR80 - strb wzr, [x1, #:lo12:.LANCHOR57] - adrp x1, .LANCHOR124 + adrp x22, .LANCHOR83 + strb wzr, [x1, #:lo12:.LANCHOR58] + adrp x1, .LANCHOR126 stp x19, x20, [sp, 16] - adrp x21, .LANCHOR73 - strb w0, [x1, #:lo12:.LANCHOR124] - adrp x1, .LANCHOR125 + adrp x21, .LANCHOR76 + strb w0, [x1, #:lo12:.LANCHOR126] + adrp x1, .LANCHOR127 stp x23, x24, [sp, 48] - adrp x20, .LANCHOR199 - strb wzr, [x1, #:lo12:.LANCHOR125] - adrp x1, .LANCHOR173 + adrp x20, .LANCHOR203 + strb wzr, [x1, #:lo12:.LANCHOR127] + adrp x1, .LANCHOR174 stp x25, x26, [sp, 64] adrp x23, .LANCHOR6 - strb w0, [x1, #:lo12:.LANCHOR173] - adrp x0, .LANCHOR119 + strb w0, [x1, #:lo12:.LANCHOR174] + adrp x0, .LANCHOR121 mov w1, -1 stp x27, x28, [sp, 80] - strb wzr, [x0, #:lo12:.LANCHOR119] - adrp x0, .LANCHOR202 - str w1, [x0, #:lo12:.LANCHOR202] - adrp x1, .LC178 - adrp x0, .LC91 - add x1, x1, :lo12:.LC178 - add x0, x0, :lo12:.LC91 + strb wzr, [x0, #:lo12:.LANCHOR121] + adrp x0, .LANCHOR206 + str w1, [x0, #:lo12:.LANCHOR206] + adrp x1, .LC189 + adrp x0, .LC93 + add x1, x1, :lo12:.LC189 + add x0, x0, :lo12:.LC93 bl printf - adrp x1, .LANCHOR34 - add x1, x1, :lo12:.LANCHOR34 - adrp x0, .LANCHOR68 - adrp x2, .LANCHOR121 - adrp x3, .LANCHOR72 - adrp x4, .LANCHOR98 + adrp x1, .LANCHOR30 + add x1, x1, :lo12:.LANCHOR30 + adrp x0, .LANCHOR69 + adrp x2, .LANCHOR123 + adrp x3, .LANCHOR75 + adrp x4, .LANCHOR101 ldrb w5, [x1, 12] - strb w5, [x0, #:lo12:.LANCHOR68] + strb w5, [x0, #:lo12:.LANCHOR69] ldrb w0, [x1, 9] - strb w0, [x2, #:lo12:.LANCHOR121] + strb w0, [x2, #:lo12:.LANCHOR123] ldrh w2, [x1, 10] - strh w2, [x3, #:lo12:.LANCHOR72] + strh w2, [x3, #:lo12:.LANCHOR75] adrp x3, .LANCHOR18 ldrh w7, [x1, 14] ubfiz w10, w0, 9, 7 ldrb w6, [x3, #:lo12:.LANCHOR18] - adrp x3, .LANCHOR106 + adrp x3, .LANCHOR108 sdiv w8, w2, w5 strh w7, [x23, #:lo12:.LANCHOR6] - strb w6, [x3, #:lo12:.LANCHOR106] + strb w6, [x3, #:lo12:.LANCHOR108] ldrb w3, [x1, 13] adrp x1, .LANCHOR2 - strb w3, [x4, #:lo12:.LANCHOR98] + strb w3, [x4, #:lo12:.LANCHOR101] ldrh w4, [x1, #:lo12:.LANCHOR2] - adrp x1, .LANCHOR105 - strh w8, [x22, #:lo12:.LANCHOR80] + adrp x1, .LANCHOR107 + strh w8, [x22, #:lo12:.LANCHOR83] mul w6, w6, w3 - strh w4, [x1, #:lo12:.LANCHOR105] - strh w10, [x20, #:lo12:.LANCHOR199] + strh w4, [x1, #:lo12:.LANCHOR107] + strh w10, [x20, #:lo12:.LANCHOR203] mov w3, 1 and w6, w6, 255 mov w1, 0 - strb w6, [x21, #:lo12:.LANCHOR73] -.L2737: + strb w6, [x21, #:lo12:.LANCHOR76] +.L2917: cmp w4, w3 - bcs .L2738 + bcs .L2918 mul w2, w0, w2 - adrp x3, .LANCHOR99 + adrp x3, .LANCHOR102 sub w1, w1, #1 mov w4, 0 - strh w1, [x3, #:lo12:.LANCHOR99] + strh w1, [x3, #:lo12:.LANCHOR102] mov w1, 1 mul w3, w2, w7 lsr w11, w3, 21 -.L2739: +.L2919: cmp w11, w1 - bcs .L2740 + bcs .L2920 mov w1, 57344 sub w4, w4, #1 movk w1, 0x1c, lsl 16 mul w3, w3, w6 - adrp x28, .LANCHOR118 + adrp x28, .LANCHOR120 sub w11, w10, #1 mul w1, w6, w1 - adrp x24, .LANCHOR186 + adrp x24, .LANCHOR187 mul w8, w8, w6 - adrp x27, .LANCHOR204 + adrp x27, .LANCHOR208 mul w2, w2, w6 - adrp x26, .LANCHOR141 + adrp x26, .LANCHOR146 lsl w1, w1, w4 - adrp x4, .LANCHOR58 + adrp x4, .LANCHOR59 sub w2, w2, #1 - adrp x25, .LANCHOR84 - str w1, [x4, #:lo12:.LANCHOR58] - adrp x4, .LANCHOR203 - str w3, [x4, #:lo12:.LANCHOR203] + adrp x25, .LANCHOR87 + str w1, [x4, #:lo12:.LANCHOR59] + adrp x4, .LANCHOR207 + str w3, [x4, #:lo12:.LANCHOR207] add w3, w1, 24576 - str w3, [x27, #:lo12:.LANCHOR204] + str w3, [x27, #:lo12:.LANCHOR208] udiv w0, w3, w0 udiv w3, w3, w2 - adrp x2, .LANCHOR101 - str w0, [x28, #:lo12:.LANCHOR118] + adrp x2, .LANCHOR104 + str w0, [x28, #:lo12:.LANCHOR120] add w0, w11, w0, lsl 2 add w3, w3, 8 udiv w0, w0, w10 - strh w0, [x24, #:lo12:.LANCHOR186] + strh w0, [x24, #:lo12:.LANCHOR187] ubfiz w0, w0, 4, 16 sdiv w0, w0, w8 - adrp x8, .LANCHOR88 + adrp x8, .LANCHOR91 str x8, [x29, 104] - strh w3, [x8, #:lo12:.LANCHOR88] - strh w0, [x26, #:lo12:.LANCHOR141] + strh w3, [x8, #:lo12:.LANCHOR91] + strh w0, [x26, #:lo12:.LANCHOR146] add w0, w7, w7, lsl 1 asr w0, w0, 2 - strh w0, [x2, #:lo12:.LANCHOR101] + strh w0, [x2, #:lo12:.LANCHOR104] lsr w0, w7, 4 - strh w0, [x25, #:lo12:.LANCHOR84] + strh w0, [x25, #:lo12:.LANCHOR87] cmp w0, 79 - bhi .L2741 + bhi .L2921 mov w0, 80 - strh w0, [x25, #:lo12:.LANCHOR84] -.L2741: - adrp x7, .LANCHOR102 + strh w0, [x25, #:lo12:.LANCHOR87] +.L2921: + adrp x7, .LANCHOR105 mov w0, 2000 - adrp x3, .LANCHOR100 - adrp x6, .LANCHOR140 - strh w0, [x7, #:lo12:.LANCHOR102] + adrp x3, .LANCHOR103 + adrp x6, .LANCHOR145 + strh w0, [x7, #:lo12:.LANCHOR105] mov w0, 50 - adrp x2, .LANCHOR139 - strh w0, [x3, #:lo12:.LANCHOR100] + adrp x2, .LANCHOR144 + strh w0, [x3, #:lo12:.LANCHOR103] mov w0, 256 - strh w0, [x6, #:lo12:.LANCHOR140] + strh w0, [x6, #:lo12:.LANCHOR145] mov w0, 48 - strh w0, [x2, #:lo12:.LANCHOR139] + strh w0, [x2, #:lo12:.LANCHOR144] adrp x0, .LANCHOR8 mov w8, 32 cmp w5, 2 strh w8, [x0, #:lo12:.LANCHOR8] - beq .L2742 - adrp x5, .LANCHOR70 - ldrb w5, [x5, #:lo12:.LANCHOR70] - cbz w5, .L2743 -.L2742: + beq .L2922 + adrp x5, .LANCHOR73 + ldrb w5, [x5, #:lo12:.LANCHOR73] + cbz w5, .L2923 +.L2922: mov w5, 150 - strh w5, [x3, #:lo12:.LANCHOR100] + strh w5, [x3, #:lo12:.LANCHOR103] mov w3, 64 - strh w3, [x2, #:lo12:.LANCHOR139] + strh w3, [x2, #:lo12:.LANCHOR144] mov w2, 12 strh w2, [x0, #:lo12:.LANCHOR8] adrp x2, .LANCHOR0 ldrb w2, [x2, #:lo12:.LANCHOR0] - cbnz w2, .L2743 + cbnz w2, .L2923 mov w2, 4 strh w2, [x0, #:lo12:.LANCHOR8] mov w0, 600 - strh w0, [x7, #:lo12:.LANCHOR102] + strh w0, [x7, #:lo12:.LANCHOR105] mov w0, 128 - strh w0, [x6, #:lo12:.LANCHOR140] -.L2743: + strh w0, [x6, #:lo12:.LANCHOR145] +.L2923: adrp x19, .LANCHOR14 ldr w0, [x19, #:lo12:.LANCHOR14] - tbz x0, 12, .L2745 + tbz x0, 12, .L2925 str x4, [x29, 96] - adrp x0, .LC179 - add x0, x0, :lo12:.LC179 + adrp x0, .LC190 + add x0, x0, :lo12:.LC190 bl printf ldr x4, [x29, 96] -.L2745: +.L2925: ldr w0, [x19, #:lo12:.LANCHOR14] - tbz x0, 12, .L2746 - ldr w1, [x4, #:lo12:.LANCHOR203] - adrp x0, .LC180 - add x0, x0, :lo12:.LC180 + tbz x0, 12, .L2926 + ldr w1, [x4, #:lo12:.LANCHOR207] + adrp x0, .LC191 + add x0, x0, :lo12:.LC191 bl printf -.L2746: +.L2926: ldr w0, [x19, #:lo12:.LANCHOR14] - tbz x0, 12, .L2747 - ldr w1, [x28, #:lo12:.LANCHOR118] - adrp x0, .LC181 - add x0, x0, :lo12:.LC181 + tbz x0, 12, .L2927 + ldr w1, [x28, #:lo12:.LANCHOR120] + adrp x0, .LC192 + add x0, x0, :lo12:.LC192 bl printf -.L2747: +.L2927: ldr w0, [x19, #:lo12:.LANCHOR14] - tbz x0, 12, .L2748 - ldr w1, [x27, #:lo12:.LANCHOR204] - adrp x0, .LC182 - add x0, x0, :lo12:.LC182 + tbz x0, 12, .L2928 + ldr w1, [x27, #:lo12:.LANCHOR208] + adrp x0, .LC193 + add x0, x0, :lo12:.LC193 bl printf -.L2748: +.L2928: ldr w0, [x19, #:lo12:.LANCHOR14] - tbz x0, 12, .L2749 - ldrh w1, [x24, #:lo12:.LANCHOR186] - adrp x0, .LC183 - add x0, x0, :lo12:.LC183 + tbz x0, 12, .L2929 + ldrh w1, [x24, #:lo12:.LANCHOR187] + adrp x0, .LC194 + add x0, x0, :lo12:.LC194 bl printf -.L2749: +.L2929: ldr w0, [x19, #:lo12:.LANCHOR14] - tbz x0, 12, .L2750 - ldrh w1, [x20, #:lo12:.LANCHOR199] - adrp x0, .LC184 - add x0, x0, :lo12:.LC184 + tbz x0, 12, .L2930 + ldrh w1, [x20, #:lo12:.LANCHOR203] + adrp x0, .LC195 + add x0, x0, :lo12:.LC195 bl printf -.L2750: +.L2930: ldr w0, [x19, #:lo12:.LANCHOR14] - tbz x0, 12, .L2751 - ldrh w1, [x26, #:lo12:.LANCHOR141] - adrp x0, .LC185 - add x0, x0, :lo12:.LC185 + tbz x0, 12, .L2931 + ldrh w1, [x26, #:lo12:.LANCHOR146] + adrp x0, .LC196 + add x0, x0, :lo12:.LC196 bl printf -.L2751: +.L2931: ldr w0, [x19, #:lo12:.LANCHOR14] - tbz x0, 12, .L2752 - ldrh w1, [x25, #:lo12:.LANCHOR84] - adrp x0, .LC186 - add x0, x0, :lo12:.LC186 + tbz x0, 12, .L2932 + ldrh w1, [x25, #:lo12:.LANCHOR87] + adrp x0, .LC197 + add x0, x0, :lo12:.LC197 bl printf -.L2752: +.L2932: ldr w0, [x19, #:lo12:.LANCHOR14] - tbz x0, 12, .L2753 + tbz x0, 12, .L2933 ldr x0, [x29, 104] - ldrh w1, [x0, #:lo12:.LANCHOR88] - adrp x0, .LC187 - add x0, x0, :lo12:.LC187 + ldrh w1, [x0, #:lo12:.LANCHOR91] + adrp x0, .LC198 + add x0, x0, :lo12:.LC198 bl printf -.L2753: +.L2933: bl buf_init adrp x25, .LANCHOR10 ldrh w1, [x23, #:lo12:.LANCHOR6] @@ -17144,19 +18330,19 @@ zftl_init: bl ftl_malloc adrp x1, .LANCHOR4 str x0, [x1, #:lo12:.LANCHOR4] - ldrb w1, [x21, #:lo12:.LANCHOR73] - ldrh w0, [x22, #:lo12:.LANCHOR80] + ldrb w1, [x21, #:lo12:.LANCHOR76] + ldrh w0, [x22, #:lo12:.LANCHOR83] mul w0, w0, w1 lsl w0, w0, 2 bl ftl_malloc - adrp x1, .LANCHOR112 + adrp x1, .LANCHOR114 adrp x2, ftl_ext_info_data_buffer add x2, x2, :lo12:ftl_ext_info_data_buffer - str x0, [x1, #:lo12:.LANCHOR112] - adrp x0, .LANCHOR111 - ldrh w1, [x22, #:lo12:.LANCHOR80] - str x2, [x0, #:lo12:.LANCHOR111] - ldrb w0, [x21, #:lo12:.LANCHOR73] + str x0, [x1, #:lo12:.LANCHOR114] + adrp x0, .LANCHOR113 + ldrh w1, [x22, #:lo12:.LANCHOR83] + str x2, [x0, #:lo12:.LANCHOR113] + ldrb w0, [x21, #:lo12:.LANCHOR76] mul w1, w1, w0 lsl w0, w1, 1 adrp x1, .LANCHOR9 @@ -17167,15 +18353,15 @@ zftl_init: ldr w0, [x19, #:lo12:.LANCHOR14] add x1, x2, x1, sxtw 2 str x1, [x25, #:lo12:.LANCHOR10] - tbz x0, 12, .L2754 - adrp x0, .LC188 - add x0, x0, :lo12:.LC188 + tbz x0, 12, .L2934 + adrp x0, .LC199 + add x0, x0, :lo12:.LC199 bl printf -.L2754: - ldrh w0, [x22, #:lo12:.LANCHOR80] - ldrb w21, [x21, #:lo12:.LANCHOR73] +.L2934: + ldrh w0, [x22, #:lo12:.LANCHOR83] + ldrb w21, [x21, #:lo12:.LANCHOR76] ldrh w1, [x23, #:lo12:.LANCHOR6] - ldrh w22, [x24, #:lo12:.LANCHOR186] + ldrh w22, [x24, #:lo12:.LANCHOR187] mul w21, w0, w21 ldr w0, [x19, #:lo12:.LANCHOR14] add w21, w1, w21, lsl 2 @@ -17184,39 +18370,39 @@ zftl_init: add w22, w1, w22, lsl 2 add w21, w21, 632 add w22, w22, 704 - tbz x0, 12, .L2755 - ldrh w3, [x20, #:lo12:.LANCHOR199] - adrp x0, .LC189 + tbz x0, 12, .L2935 + ldrh w3, [x20, #:lo12:.LANCHOR203] + adrp x0, .LC200 mov w2, w22 mov w1, w21 - add x0, x0, :lo12:.LC189 + add x0, x0, :lo12:.LC200 bl printf -.L2755: - ldrh w0, [x20, #:lo12:.LANCHOR199] +.L2935: + ldrh w0, [x20, #:lo12:.LANCHOR203] cmp w21, w0 - bhi .L2756 + bhi .L2936 cmp w22, w0 - bls .L2757 -.L2756: -.L2800: - b .L2800 -.L2738: + bls .L2937 +.L2936: +.L2980: + b .L2980 +.L2918: add w1, w1, 1 lsl w3, w3, 1 and w1, w1, 65535 - b .L2737 -.L2740: + b .L2917 +.L2920: add w4, w4, 1 lsl w1, w1, 1 and w4, w4, 65535 - b .L2739 -.L2757: + b .L2919 +.L2937: bl sblk_init bl ftl_info_blk_init cmn w0, #1 - beq .L2736 + beq .L2916 bl ftl_ext_info_init - adrp x19, .LANCHOR97 + adrp x19, .LANCHOR100 mov w0, 1 bl pm_init bl lpa_rebuild_hash @@ -17228,7 +18414,7 @@ zftl_init: add x1, x0, 16 add x0, x0, 48 bl ftl_open_sblk_recovery - ldr x1, [x19, #:lo12:.LANCHOR97] + ldr x1, [x19, #:lo12:.LANCHOR100] ldr w0, [x1, 8] add w0, w0, 16 str w0, [x1, 8] @@ -17245,20 +18431,20 @@ zftl_init: bl pm_flush mov w0, 1 bl ftl_total_vpn_update - adrp x0, .LANCHOR181 - ldrb w0, [x0, #:lo12:.LANCHOR181] - cbz w0, .L2759 - ldr x1, [x19, #:lo12:.LANCHOR97] + adrp x0, .LANCHOR182 + ldrb w0, [x0, #:lo12:.LANCHOR182] + cbz w0, .L2939 + ldr x1, [x19, #:lo12:.LANCHOR100] ldr w0, [x1, 68] add w0, w0, 1 str w0, [x1, 68] -.L2759: +.L2939: bl ftl_ext_info_flush mov w0, 0 bl ftl_info_flush bl print_ftl_debug_info mov w0, 0 -.L2736: +.L2916: ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x23, x24, [sp, 48] @@ -17276,14 +18462,14 @@ rk_ftl_init: add x29, sp, 0 str x19, [sp, 16] bl nand_flash_init - cbnz w0, .L2804 + cbnz w0, .L2984 bl zftl_init -.L2804: +.L2984: mov w19, w0 bl idb_init mov w1, w19 - adrp x0, .LC190 - add x0, x0, :lo12:.LC190 + adrp x0, .LC201 + add x0, x0, :lo12:.LC201 bl printf mov w0, w19 ldr x19, [sp, 16] @@ -17297,12 +18483,12 @@ rk_ftl_init: gc_update_l2p_map_new: stp x29, x30, [sp, -176]! adrp x0, .LANCHOR10 - adrp x1, .LANCHOR72 + adrp x1, .LANCHOR75 add x29, sp, 0 stp x21, x22, [sp, 32] ldr x21, [x0, #:lo12:.LANCHOR10] stp x25, x26, [sp, 64] - ldrh w26, [x1, #:lo12:.LANCHOR72] + ldrh w26, [x1, #:lo12:.LANCHOR75] add x1, x21, 80 stp x23, x24, [sp, 48] adrp x24, .LANCHOR14 @@ -17312,12 +18498,12 @@ gc_update_l2p_map_new: ldrb w1, [x1, 9] mul w26, w26, w1 ldr w1, [x24, #:lo12:.LANCHOR14] - tbz x1, 8, .L2807 + tbz x1, 8, .L2987 ldrh w1, [x21, 80] - adrp x0, .LC191 - add x0, x0, :lo12:.LC191 + adrp x0, .LC202 + add x0, x0, :lo12:.LC202 bl printf -.L2807: +.L2987: adrp x23, .LANCHOR9 ldrh w1, [x21, 80] sub w2, w26, #1 @@ -17325,15 +18511,15 @@ gc_update_l2p_map_new: ldr x0, [x23, #:lo12:.LANCHOR9] mov w25, 0 strh w2, [x0, x1, lsl 1] - adrp x0, .LANCHOR121 - add x0, x0, :lo12:.LANCHOR121 + adrp x0, .LANCHOR123 + add x0, x0, :lo12:.LANCHOR123 str x0, [x29, 104] -.L2808: +.L2988: mov w28, w22 cmp w26, w22 - bhi .L2818 + bhi .L2998 ldr w0, [x24, #:lo12:.LANCHOR14] - tbz x0, 8, .L2819 + tbz x0, 8, .L2999 ldr x0, [x29, 128] mov w3, w25 ldr x1, [x23, #:lo12:.LANCHOR9] @@ -17341,22 +18527,22 @@ gc_update_l2p_map_new: ldr x0, [x0, #:lo12:.LANCHOR10] ldrh w2, [x1, x2, lsl 1] ldrh w1, [x0, 80] - adrp x0, .LC194 - add x0, x0, :lo12:.LC194 + adrp x0, .LC205 + add x0, x0, :lo12:.LC205 bl printf -.L2819: +.L2999: ldrh w1, [x21, 80] ldr x0, [x23, #:lo12:.LANCHOR9] ldrh w0, [x0, x1, lsl 1] cmp w25, w0 - beq .L2820 - adrp x1, .LANCHOR205 + beq .L3000 + adrp x1, .LANCHOR209 adrp x0, .LC0 - mov w2, 489 - add x1, x1, :lo12:.LANCHOR205 + mov w2, 569 + add x1, x1, :lo12:.LANCHOR209 add x0, x0, :lo12:.LC0 bl printf -.L2820: +.L3000: ldrh w1, [x21, 80] ldr x0, [x23, #:lo12:.LANCHOR9] strh w25, [x0, x1, lsl 1] @@ -17369,77 +18555,77 @@ gc_update_l2p_map_new: ldp x27, x28, [sp, 80] ldp x29, x30, [sp], 176 ret -.L2818: - adrp x27, .LANCHOR147 +.L2998: + adrp x27, .LANCHOR152 lsl x19, x22, 2 - ldr x0, [x27, #:lo12:.LANCHOR147] + ldr x0, [x27, #:lo12:.LANCHOR152] ldr w2, [x0, x19] cmn w2, #1 - beq .L2809 - adrp x0, .LANCHOR121 - ldrb w20, [x0, #:lo12:.LANCHOR121] + beq .L2989 + adrp x0, .LANCHOR123 + ldrb w20, [x0, #:lo12:.LANCHOR123] lsl w20, w20, 7 udiv w20, w2, w20 and w0, w20, 65535 str w0, [x29, 156] ldr w0, [x24, #:lo12:.LANCHOR14] - tbz x0, 8, .L2810 + tbz x0, 8, .L2990 ldr w1, [x29, 156] - adrp x0, .LC192 + adrp x0, .LC203 mov w3, w22 - add x0, x0, :lo12:.LC192 + add x0, x0, :lo12:.LC203 bl printf -.L2810: +.L2990: sub w28, w26, w28 add x28, x28, x22 lsl x0, x28, 2 str x0, [x29, 144] - adrp x0, .LC193 - add x0, x0, :lo12:.LC193 + adrp x0, .LC204 + add x0, x0, :lo12:.LC204 str x0, [x29, 120] - adrp x0, .LANCHOR99 - add x0, x0, :lo12:.LANCHOR99 + adrp x0, .LANCHOR102 + add x0, x0, :lo12:.LANCHOR102 str x0, [x29, 112] -.L2811: +.L2991: ldr x0, [x29, 144] cmp x0, x19 - bne .L2817 -.L2809: + bne .L2997 +.L2989: add x22, x22, 1 - b .L2808 -.L2817: - ldr x0, [x27, #:lo12:.LANCHOR147] + b .L2988 +.L2997: + ldr x0, [x27, #:lo12:.LANCHOR152] ldr w20, [x0, x19] cmn w20, #1 - beq .L2812 + beq .L2992 ldr x0, [x29, 104] ldr w1, [x29, 156] ldrb w0, [x0] lsl w0, w0, 7 udiv w0, w20, w0 cmp w1, w0, uxth - bne .L2812 - adrp x0, .LANCHOR148 - ldr x0, [x0, #:lo12:.LANCHOR148] + bne .L2992 + adrp x0, .LANCHOR153 + ldr x0, [x0, #:lo12:.LANCHOR153] ldr w28, [x0, x19] mov w0, w20 bl lpa_hash_get_ppa str w0, [x29, 172] cmn w0, #1 - bne .L2813 + bne .L2993 mov w2, 0 add x1, x29, 172 mov w0, w20 bl pm_log2phys -.L2813: +.L2993: ldr w3, [x29, 172] cmp w28, w3 - bne .L2814 - adrp x0, .LANCHOR149 + bne .L2994 + adrp x0, .LANCHOR154 mov w2, 1 add x1, x29, 168 add w25, w25, 1 - ldr x0, [x0, #:lo12:.LANCHOR149] + ldr x0, [x0, #:lo12:.LANCHOR154] ldr w0, [x0, x19] str w0, [x29, 168] mov w0, w20 @@ -17453,28 +18639,28 @@ gc_update_l2p_map_new: lsl w0, w0, w2 sub w0, w0, #1 and w28, w0, w28 - adrp x0, .LANCHOR98 - ldrb w0, [x0, #:lo12:.LANCHOR98] + adrp x0, .LANCHOR101 + ldrb w0, [x0, #:lo12:.LANCHOR101] udiv w0, w28, w0 -.L2840: +.L3020: bl ftl_vpn_decrement - ldr x0, [x27, #:lo12:.LANCHOR147] + ldr x0, [x27, #:lo12:.LANCHOR152] mov w1, -1 str w1, [x0, x19] -.L2812: +.L2992: add x19, x19, 4 - b .L2811 -.L2814: + b .L2991 +.L2994: ldr w0, [x24, #:lo12:.LANCHOR14] - tbz x0, 8, .L2816 + tbz x0, 8, .L2996 ldr x0, [x29, 120] mov w2, w28 mov w1, w20 bl printf -.L2816: +.L2996: ldr x0, [x29, 136] ldrh w0, [x0] - b .L2840 + b .L3020 .size gc_update_l2p_map_new, .-gc_update_l2p_map_new .section .text.gc_scan_src_blk_one_page,"ax",@progbits .align 2 @@ -17487,56 +18673,56 @@ gc_scan_src_blk_one_page: mov w5, 65535 add x29, sp, 0 stp x19, x20, [sp, 16] - adrp x19, .LANCHOR62 - add x1, x19, :lo12:.LANCHOR62 + adrp x19, .LANCHOR63 + add x1, x19, :lo12:.LANCHOR63 stp x21, x22, [sp, 32] stp x23, x24, [sp, 48] - adrp x20, .LANCHOR73 + adrp x20, .LANCHOR76 stp x25, x26, [sp, 64] str x27, [sp, 80] - ldrb w6, [x20, #:lo12:.LANCHOR73] + ldrb w6, [x20, #:lo12:.LANCHOR76] ldrb w0, [x1, 4] add x2, x1, x0, sxtw 1 ldrh w21, [x2, 40] ldrh w2, [x1, 2] -.L2842: +.L3022: cmp w21, w5 - beq .L2844 - cbz w4, .L2845 - add x1, x19, :lo12:.LANCHOR62 + beq .L3024 + cbz w4, .L3025 + add x1, x19, :lo12:.LANCHOR63 strh w2, [x1, 2] -.L2845: - cbz w3, .L2846 - add x1, x19, :lo12:.LANCHOR62 +.L3025: + cbz w3, .L3026 + add x1, x19, :lo12:.LANCHOR63 strb w0, [x1, 4] -.L2846: +.L3026: mov w0, 1 - adrp x22, .LANCHOR105 + adrp x22, .LANCHOR107 bl buf_alloc - adrp x23, .LANCHOR68 + adrp x23, .LANCHOR69 mov x24, x0 - add x22, x22, :lo12:.LANCHOR105 - add x23, x23, :lo12:.LANCHOR68 + add x22, x22, :lo12:.LANCHOR107 + add x23, x23, :lo12:.LANCHOR69 mov w26, 1 -.L2847: - add x25, x19, :lo12:.LANCHOR62 +.L3027: + add x25, x19, :lo12:.LANCHOR63 ldrb w1, [x25, 6] cmp w26, w1 - ble .L2855 + ble .L3035 mov x0, x24 bl buf_free ldrb w0, [x25, 4] - ldrb w1, [x20, #:lo12:.LANCHOR73] + ldrb w1, [x20, #:lo12:.LANCHOR76] add w0, w0, 1 and w0, w0, 255 strb w0, [x25, 4] cmp w1, w0 - bne .L2841 + bne .L3021 ldrh w0, [x25, 2] strb wzr, [x25, 4] add w0, w0, 1 strh w0, [x25, 2] -.L2841: +.L3021: ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x23, x24, [sp, 48] @@ -17544,29 +18730,29 @@ gc_scan_src_blk_one_page: ldr x27, [sp, 80] ldp x29, x30, [sp], 112 ret -.L2844: +.L3024: add w0, w0, 1 and w0, w0, 255 cmp w0, w6 - bne .L2843 + bne .L3023 add w2, w2, 1 mov w0, 0 and w2, w2, 65535 mov w4, 1 -.L2843: +.L3023: add x3, x1, x0, sxtw 1 ldrh w21, [x3, 40] mov w3, 1 - b .L2842 -.L2855: + b .L3022 +.L3035: ldrh w0, [x22] cmp w1, 3 mul w2, w0, w21 ldrh w0, [x25, 2] - bne .L2848 + bne .L3028 add w0, w0, w2 orr w0, w0, w26, lsl 24 -.L2864: +.L3044: str w0, [x24, 40] mov w1, 1 mov x0, x24 @@ -17575,51 +18761,51 @@ gc_scan_src_blk_one_page: ldr w0, [x24, 52] cmp w0, 512 ccmn w0, #1, 4, ne - beq .L2852 + beq .L3032 ldr x0, [x24, 24] ldr w27, [x0, 4] mov w0, w27 bl lpa_hash_get_ppa str w0, [x29, 108] cmn w0, #1 - bne .L2853 + bne .L3033 mov w2, 0 add x1, x29, 108 mov w0, w27 bl pm_log2phys -.L2853: +.L3033: ldr w1, [x24, 40] ldr w0, [x29, 108] cmp w1, w0 - bne .L2852 - add x1, x19, :lo12:.LANCHOR62 - adrp x3, .LANCHOR65 - ldr x3, [x3, #:lo12:.LANCHOR65] + bne .L3032 + add x1, x19, :lo12:.LANCHOR63 + adrp x3, .LANCHOR66 + ldr x3, [x3, #:lo12:.LANCHOR66] ldrh w0, [x1, 24] ubfiz x2, x0, 2, 16 add w0, w0, 1 str w25, [x3, x2] strh w0, [x1, 24] -.L2852: - add x1, x19, :lo12:.LANCHOR62 +.L3032: + add x1, x19, :lo12:.LANCHOR63 add w26, w26, 1 ldrh w0, [x1, 26] add w0, w0, 1 strh w0, [x1, 26] - b .L2847 -.L2848: + b .L3027 +.L3028: cmp w1, 2 - bne .L2850 + bne .L3030 lsl w0, w0, 1 sub w1, w0, #1 add w0, w26, w2 add w0, w1, w0 ldrb w1, [x23] orr w0, w0, w1, lsl 24 - b .L2864 -.L2850: + b .L3044 +.L3030: add w0, w0, w2 - b .L2864 + b .L3044 .size gc_scan_src_blk_one_page, .-gc_scan_src_blk_one_page .section .text.gc_scan_src_blk,"ax",@progbits .align 2 @@ -17630,50 +18816,50 @@ gc_scan_src_blk: mov w0, 65535 add x29, sp, 0 stp x19, x20, [sp, 16] - adrp x19, .LANCHOR62 + adrp x19, .LANCHOR63 stp x21, x22, [sp, 32] - ldrh w1, [x19, #:lo12:.LANCHOR62] + ldrh w1, [x19, #:lo12:.LANCHOR63] stp x23, x24, [sp, 48] stp x25, x26, [sp, 64] cmp w1, w0 - bne .L2866 - adrp x1, .LANCHOR206 + bne .L3046 + adrp x1, .LANCHOR210 adrp x0, .LC0 - mov w2, 919 - add x1, x1, :lo12:.LANCHOR206 + mov w2, 1004 + add x1, x1, :lo12:.LANCHOR210 add x0, x0, :lo12:.LC0 bl printf -.L2866: - ldrh w1, [x19, #:lo12:.LANCHOR62] +.L3046: + ldrh w1, [x19, #:lo12:.LANCHOR63] mov w0, 65535 cmp w1, w0 - beq .L2886 + beq .L3066 adrp x0, .LANCHOR14 ldr w0, [x0, #:lo12:.LANCHOR14] - tbz x0, 8, .L2868 + tbz x0, 8, .L3048 adrp x2, .LANCHOR9 ubfiz x0, x1, 1, 16 ldr x2, [x2, #:lo12:.LANCHOR9] ldrh w2, [x2, x0] - adrp x0, .LC195 - add x0, x0, :lo12:.LC195 + adrp x0, .LC206 + add x0, x0, :lo12:.LC206 bl printf -.L2868: - ldrh w0, [x19, #:lo12:.LANCHOR62] - add x14, x19, :lo12:.LANCHOR62 +.L3048: + ldrh w0, [x19, #:lo12:.LANCHOR63] + add x14, x19, :lo12:.LANCHOR63 add x1, x14, 40 bl ftl_get_blk_list_in_sblk and w1, w0, 255 strb w1, [x14, 5] - cbnz w1, .L2869 + cbnz w1, .L3049 mov w0, -1 - strh w0, [x19, #:lo12:.LANCHOR62] -.L2886: + strh w0, [x19, #:lo12:.LANCHOR63] +.L3066: mov w0, 0 - b .L2865 -.L2869: + b .L3045 +.L3049: adrp x4, .LANCHOR7 - ldrh w3, [x19, #:lo12:.LANCHOR62] + ldrh w3, [x19, #:lo12:.LANCHOR63] mov x22, x4 ldr x1, [x4, #:lo12:.LANCHOR7] mov x2, x3 @@ -17681,67 +18867,67 @@ gc_scan_src_blk: ldrb w1, [x1, 2] and w1, w1, 224 cmp w1, 32 - beq .L2870 + beq .L3050 cmp w1, 224 - beq .L2870 - cbz w1, .L2871 + beq .L3050 + cbz w1, .L3051 adrp x1, .LANCHOR10 ldr x1, [x1, #:lo12:.LANCHOR10] ldrh w3, [x1, 16] cmp w3, w2 - beq .L2870 + beq .L3050 ldrh w3, [x1, 48] cmp w3, w2 - beq .L2870 + beq .L3050 ldrh w1, [x1, 80] cmp w1, w2 - bne .L2900 -.L2870: - add x0, x19, :lo12:.LANCHOR62 + bne .L3080 +.L3050: + add x0, x19, :lo12:.LANCHOR63 mov w1, -1 - strh w1, [x19, #:lo12:.LANCHOR62] + strh w1, [x19, #:lo12:.LANCHOR63] strh wzr, [x0, 24] - b .L2886 -.L2871: + b .L3066 +.L3051: adrp x0, .LANCHOR9 mov x20, x0 ldr x1, [x0, #:lo12:.LANCHOR9] ldrh w1, [x1, x3, lsl 1] - cbz w1, .L2873 - adrp x1, .LANCHOR206 + cbz w1, .L3053 + adrp x1, .LANCHOR210 adrp x0, .LC0 - mov w2, 939 - add x1, x1, :lo12:.LANCHOR206 + mov w2, 1024 + add x1, x1, :lo12:.LANCHOR210 add x0, x0, :lo12:.LC0 bl printf -.L2873: - ldrh w1, [x19, #:lo12:.LANCHOR62] +.L3053: + ldrh w1, [x19, #:lo12:.LANCHOR63] ldr x0, [x20, #:lo12:.LANCHOR9] strh wzr, [x0, x1, lsl 1] - b .L2870 -.L2900: + b .L3050 +.L3080: and w0, w0, 255 sub w0, w0, #1 add x0, x14, x0, sxtw 1 ldrh w21, [x0, 40] mov w0, 65535 cmp w21, w0 - bne .L2874 - adrp x1, .LANCHOR206 + bne .L3054 + adrp x1, .LANCHOR210 adrp x0, .LC0 - mov w2, 947 - add x1, x1, :lo12:.LANCHOR206 + mov w2, 1032 + add x1, x1, :lo12:.LANCHOR210 add x0, x0, :lo12:.LC0 bl printf -.L2874: - adrp x1, .LANCHOR105 +.L3054: + adrp x1, .LANCHOR107 ldr x3, [x22, #:lo12:.LANCHOR7] - adrp x2, .LANCHOR80 - adrp x23, .LANCHOR72 - ldrh w20, [x1, #:lo12:.LANCHOR105] + adrp x2, .LANCHOR83 + adrp x23, .LANCHOR75 + ldrh w20, [x1, #:lo12:.LANCHOR107] mov x24, x2 - ldrh w1, [x19, #:lo12:.LANCHOR62] - ldrh w0, [x2, #:lo12:.LANCHOR80] + ldrh w1, [x19, #:lo12:.LANCHOR63] + ldrh w0, [x2, #:lo12:.LANCHOR83] add x1, x3, x1, lsl 2 sub w0, w0, #1 and w0, w0, 65535 @@ -17749,15 +18935,15 @@ gc_scan_src_blk: ldrb w1, [x1, 2] and w1, w1, 224 cmp w1, 160 - bne .L2887 - adrp x1, .LANCHOR68 - ldrb w21, [x1, #:lo12:.LANCHOR68] + bne .L3067 + adrp x1, .LANCHOR69 + ldrb w21, [x1, #:lo12:.LANCHOR69] cmp w21, 2 orr w20, w20, w21, lsl 24 - beq .L2876 + beq .L3056 and w21, w21, 65535 -.L2875: - add x22, x19, :lo12:.LANCHOR62 +.L3055: + add x22, x19, :lo12:.LANCHOR63 orr w20, w0, w20 mov w0, 1 strb w21, [x22, 6] @@ -17769,106 +18955,106 @@ gc_scan_src_blk: str w20, [x0, 40] mov x25, x0 mov w1, 1 - adrp x20, .LANCHOR65 + adrp x20, .LANCHOR66 bl sblk_read_page - ldrh w2, [x23, #:lo12:.LANCHOR72] - adrp x23, .LANCHOR73 + ldrh w2, [x23, #:lo12:.LANCHOR75] + adrp x23, .LANCHOR76 mov w1, 255 - ldrb w0, [x23, #:lo12:.LANCHOR73] + ldrb w0, [x23, #:lo12:.LANCHOR76] mul w2, w2, w0 - ldr x0, [x20, #:lo12:.LANCHOR65] + ldr x0, [x20, #:lo12:.LANCHOR66] lsl w2, w2, 2 bl ftl_memset strh wzr, [x22, 24] ldr w0, [x25, 52] cmp w0, 512 ccmn w0, #1, 4, ne - bne .L2877 -.L2902: + bne .L3057 +.L3082: mov x0, x25 bl buf_free mov w0, -1 -.L2865: +.L3045: 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 -.L2876: - ldrh w0, [x23, #:lo12:.LANCHOR72] +.L3056: + ldrh w0, [x23, #:lo12:.LANCHOR75] sub w0, w0, #1 and w0, w0, 65535 - b .L2875 -.L2887: + b .L3055 +.L3067: mov w21, 1 - b .L2875 -.L2877: + b .L3055 +.L3057: ldr x0, [x25, 24] ldr w1, [x0] mov w0, 15555 movk w0, 0xf55f, lsl 16 cmp w1, w0 - beq .L2878 - mov w2, 980 - adrp x1, .LANCHOR206 + beq .L3058 + mov w2, 1065 + adrp x1, .LANCHOR210 adrp x0, .LC0 - add x1, x1, :lo12:.LANCHOR206 + add x1, x1, :lo12:.LANCHOR210 add x0, x0, :lo12:.LC0 bl printf - b .L2902 -.L2878: - ldrb w0, [x23, #:lo12:.LANCHOR73] - adrp x22, .LANCHOR99 - ldrh w1, [x24, #:lo12:.LANCHOR80] - adrp x23, .LANCHOR98 + b .L3082 +.L3058: + ldrb w0, [x23, #:lo12:.LANCHOR76] + adrp x22, .LANCHOR102 + ldrh w1, [x24, #:lo12:.LANCHOR83] + adrp x23, .LANCHOR101 ldr x24, [x25, 8] - add x22, x22, :lo12:.LANCHOR99 - add x23, x23, :lo12:.LANCHOR98 + add x22, x22, :lo12:.LANCHOR102 + add x23, x23, :lo12:.LANCHOR101 mov x26, 0 mul w0, w0, w1 mul w21, w21, w0 and w21, w21, 65535 -.L2879: +.L3059: cmp w21, w26 - bgt .L2884 + bgt .L3064 mov x0, x25 bl buf_free adrp x0, .LANCHOR9 - ldrh w1, [x19, #:lo12:.LANCHOR62] - add x3, x19, :lo12:.LANCHOR62 + ldrh w1, [x19, #:lo12:.LANCHOR63] + add x3, x19, :lo12:.LANCHOR63 mov x20, x0 ldr x4, [x0, #:lo12:.LANCHOR9] ubfiz x2, x1, 1, 16 ldrh w3, [x3, 24] ldrh w2, [x4, x2] cmp w2, w3 - beq .L2885 - adrp x0, .LC196 - add x0, x0, :lo12:.LC196 + beq .L3065 + adrp x0, .LC207 + add x0, x0, :lo12:.LC207 bl printf -.L2885: - add x0, x19, :lo12:.LANCHOR62 - ldrh w2, [x19, #:lo12:.LANCHOR62] +.L3065: + add x0, x19, :lo12:.LANCHOR63 + ldrh w2, [x19, #:lo12:.LANCHOR63] ldr x1, [x20, #:lo12:.LANCHOR9] ldrh w3, [x0, 24] strh w3, [x1, x2, lsl 1] strh wzr, [x0, 28] ldrh w0, [x0, 24] - b .L2865 -.L2884: + b .L3045 +.L3064: ldr w0, [x24, x26, lsl 2] cmn w0, #1 - beq .L2881 + beq .L3061 bl lpa_hash_get_ppa str w0, [x29, 92] cmn w0, #1 - bne .L2882 + bne .L3062 ldr w0, [x24, x26, lsl 2] mov w2, 0 add x1, x29, 92 bl pm_log2phys -.L2882: +.L3062: ldrh w1, [x22] mov w0, 21 ldr w3, [x29, 92] @@ -17879,20 +19065,20 @@ gc_scan_src_blk: lsr w1, w3, w1 and w0, w0, w1 ldrb w1, [x23] - ldrh w2, [x19, #:lo12:.LANCHOR62] + ldrh w2, [x19, #:lo12:.LANCHOR63] udiv w0, w0, w1 - add x1, x19, :lo12:.LANCHOR62 + add x1, x19, :lo12:.LANCHOR63 cmp w0, w2 - bne .L2881 + bne .L3061 ldrh w0, [x1, 24] - ldr x4, [x20, #:lo12:.LANCHOR65] + ldr x4, [x20, #:lo12:.LANCHOR66] ubfiz x2, x0, 2, 16 add w0, w0, 1 str w3, [x4, x2] strh w0, [x1, 24] -.L2881: +.L3061: add x26, x26, 1 - b .L2879 + b .L3059 .size gc_scan_src_blk, .-gc_scan_src_blk .section .text.gc_scan_static_data,"ax",@progbits .align 2 @@ -17908,13 +19094,13 @@ gc_scan_static_data: ldr w1, [x0, 544] str x23, [sp, 48] cmn w1, #1 - beq .L2904 - adrp x21, .LANCHOR207 + beq .L3084 + adrp x21, .LANCHOR211 adrp x22, .LC0 - add x21, x21, :lo12:.LANCHOR207 + add x21, x21, :lo12:.LANCHOR211 add x22, x22, :lo12:.LC0 mov w20, 11 -.L2912: +.L3092: ldr x0, [x19, #:lo12:.LANCHOR10] mov w2, 0 add x1, x29, 76 @@ -17922,7 +19108,7 @@ gc_scan_static_data: bl pm_log2phys ldr w0, [x29, 76] cmn w0, #1 - beq .L2905 + beq .L3085 mov w0, 1 bl buf_alloc ldr w1, [x29, 76] @@ -17932,45 +19118,45 @@ gc_scan_static_data: bl sblk_read_page ldr w0, [x23, 52] cmp w0, 256 - bne .L2906 - adrp x0, .LANCHOR99 + bne .L3086 + adrp x0, .LANCHOR102 ldr w2, [x29, 76] mov w1, 1 - ldrh w3, [x0, #:lo12:.LANCHOR99] + ldrh w3, [x0, #:lo12:.LANCHOR102] mov w0, 21 sub w0, w0, w3 lsr w2, w2, w3 lsl w0, w1, w0 sub w0, w0, #1 and w0, w0, w2 - adrp x2, .LANCHOR98 - ldrb w3, [x2, #:lo12:.LANCHOR98] + adrp x2, .LANCHOR101 + ldrb w3, [x2, #:lo12:.LANCHOR101] mov w2, 0 udiv w0, w0, w3 bl gc_add_sblk -.L2906: +.L3086: ldr x0, [x19, #:lo12:.LANCHOR10] ldr x1, [x23, 24] ldr w0, [x0, 544] ldr w1, [x1, 4] cmp w1, w0 - beq .L2907 - mov w2, 1419 + beq .L3087 + mov w2, 1504 mov x1, x21 mov x0, x22 bl printf -.L2907: +.L3087: mov x0, x23 bl buf_free -.L2905: +.L3085: ldr x0, [x19, #:lo12:.LANCHOR10] - adrp x2, .LANCHOR118 - ldr w2, [x2, #:lo12:.LANCHOR118] + adrp x2, .LANCHOR120 + ldr w2, [x2, #:lo12:.LANCHOR120] ldr w1, [x0, 544] add w1, w1, 1 str w1, [x0, 544] cmp w1, w2 - bcc .L2908 + bcc .L3088 mov w1, -1 str w1, [x0, 544] ldr w1, [x0, 548] @@ -17981,42 +19167,42 @@ gc_scan_static_data: bl ftl_ext_info_flush mov w0, 0 bl ftl_info_flush -.L2903: +.L3083: ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldr x23, [sp, 48] ldp x29, x30, [sp], 80 ret -.L2908: +.L3088: ldr w0, [x29, 76] cmn w0, #1 - bne .L2903 + bne .L3083 sub w20, w20, #1 ands w20, w20, 65535 - bne .L2912 - b .L2903 -.L2904: + bne .L3092 + b .L3083 +.L3084: ldr w1, [x0, 536] - adrp x3, .LANCHOR97 + adrp x3, .LANCHOR100 ldr w2, [x0, 12] add w1, w1, 12959744 add w1, w1, 256 cmp w2, w1 - bhi .L2914 - ldr x4, [x3, #:lo12:.LANCHOR97] + bhi .L3094 + ldr x4, [x3, #:lo12:.LANCHOR100] + mov w5, 5000 ldr w1, [x0, 540] - add w1, w1, 98304 + add w1, w1, w5 ldr w4, [x4, 44] - add w1, w1, 1696 cmp w4, w1 - bls .L2903 -.L2914: - ldr x1, [x3, #:lo12:.LANCHOR97] + bls .L3083 +.L3094: + ldr x1, [x3, #:lo12:.LANCHOR100] ldr w1, [x1, 44] str w1, [x0, 540] str w2, [x0, 536] str wzr, [x0, 544] - b .L2903 + b .L3083 .size gc_scan_static_data, .-gc_scan_static_data .section .text.ftl_sblk_dump,"ax",@progbits .align 2 @@ -18042,49 +19228,49 @@ ftl_sblk_dump: ldrb w2, [x1, 2] mov w1, w21 ldrh w4, [x0, x23] - adrp x0, .LC197 + adrp x0, .LC208 ubfx x5, x5, 11, 8 - add x0, x0, :lo12:.LC197 + add x0, x0, :lo12:.LC208 ubfx x3, x2, 3, 2 and w4, w4, 2047 ubfx x2, x2, 5, 3 bl printf mov w0, 65535 cmp w21, w0 - beq .L2941 + beq .L3121 adrp x0, .LANCHOR6 ldrh w0, [x0, #:lo12:.LANCHOR6] cmp w0, w21 - bls .L2941 + bls .L3121 ldr x0, [x24, #:lo12:.LANCHOR7] add x0, x0, x23 ldrb w0, [x0, 2] and w0, w0, 224 cmp w0, 160 - bne .L2942 - adrp x0, .LANCHOR68 - ldrb w25, [x0, #:lo12:.LANCHOR68] -.L2922: + bne .L3122 + adrp x0, .LANCHOR69 + ldrb w25, [x0, #:lo12:.LANCHOR69] +.L3102: add x28, x29, 224 - adrp x19, .LANCHOR80 + adrp x19, .LANCHOR83 mov w0, w21 mov w27, 0 mov w20, 0 strh w21, [x28, -32]! add x1, x28, 16 bl ftl_get_blk_list_in_sblk - ldrh w2, [x19, #:lo12:.LANCHOR80] + ldrh w2, [x19, #:lo12:.LANCHOR83] and w1, w0, 255 strb w1, [x29, 201] and w4, w0, 255 strb wzr, [x29, 197] mov w3, w25 strh wzr, [x29, 194] - adrp x0, .LC198 + adrp x0, .LC209 mul w1, w1, w2 strh wzr, [x29, 202] strh w1, [x29, 198] - add x0, x0, :lo12:.LC198 + add x0, x0, :lo12:.LC209 ldr x1, [x24, #:lo12:.LANCHOR7] add x1, x1, x23 ldrb w2, [x1, 2] @@ -18096,39 +19282,39 @@ ftl_sblk_dump: str x19, [x29, 136] mov x26, x0 stp wzr, wzr, [x29, 164] - adrp x0, .LANCHOR105 - add x0, x0, :lo12:.LANCHOR105 + adrp x0, .LANCHOR107 + add x0, x0, :lo12:.LANCHOR107 str x0, [x29, 112] -.L2923: +.L3103: ldr x0, [x29, 136] - ldrh w0, [x0, #:lo12:.LANCHOR80] + ldrh w0, [x0, #:lo12:.LANCHOR83] cmp w0, w20 - bls .L2938 + bls .L3118 lsl w0, w20, 1 str wzr, [x29, 172] sub w0, w0, #1 str w0, [x29, 160] - adrp x0, .LC152 - add x0, x0, :lo12:.LC152 + adrp x0, .LC155 + add x0, x0, :lo12:.LC155 str x0, [x29, 120] - b .L2939 -.L2942: + b .L3119 +.L3122: mov w25, 1 - b .L2922 -.L2935: + b .L3102 +.L3115: ldr x0, [x29, 128] ldrh w10, [x28, x0] mov w0, 65535 cmp w10, w0 - beq .L2924 + beq .L3104 ldr x0, [x29, 112] cmp w25, 3 ldrh w19, [x0] mul w19, w19, w10 - bne .L2925 + bne .L3105 add w19, w20, w19 orr w19, w19, w22, lsl 24 -.L2926: +.L3106: str w19, [x26, 40] mov w1, 1 str w10, [x29, 104] @@ -18170,22 +19356,22 @@ ftl_sblk_dump: and w0, w0, 224 cmp w0, 224 ccmp w0, w1, 4, ne - beq .L2924 + beq .L3104 ldr x0, [x26, 24] ldr w0, [x0, 4] bl lpa_hash_get_ppa str w0, [x29, 188] cmn w0, #1 - bne .L2929 + bne .L3109 ldr x0, [x26, 24] mov w2, 0 add x1, x29, 188 ldr w0, [x0, 4] bl pm_log2phys -.L2929: +.L3109: ldr w0, [x29, 188] cmp w19, w0 - bne .L2930 + bne .L3110 ldr w0, [x29, 168] mov w1, w19 add w0, w0, 1 @@ -18193,81 +19379,81 @@ ftl_sblk_dump: ldr x0, [x26, 24] ldr w3, [x29, 168] ldr w2, [x0, 4] - adrp x0, .LC199 - add x0, x0, :lo12:.LC199 + adrp x0, .LC210 + add x0, x0, :lo12:.LC210 bl printf -.L2930: +.L3110: ldr x0, [x29, 152] - cbz x0, .L2932 + cbz x0, .L3112 ubfiz x19, x27, 2, 32 ldr w2, [x0, x19] ldr x0, [x26, 24] ldr w0, [x0, 4] cmp w0, w2 - beq .L2933 + beq .L3113 adrp x0, .LANCHOR14 ldr w0, [x0, #:lo12:.LANCHOR14] - tbz x0, 12, .L2933 - adrp x0, .LC200 + tbz x0, 12, .L3113 + adrp x0, .LC211 mov w1, w27 - add x0, x0, :lo12:.LC200 + add x0, x0, :lo12:.LC211 bl printf -.L2933: +.L3113: ldr x1, [x26, 24] ldr x0, [x29, 152] ldr w1, [x1, 4] ldr w0, [x0, x19] cmp w1, w0 - beq .L2932 + beq .L3112 cmn w0, #1 - beq .L2932 - adrp x1, .LANCHOR208 + beq .L3112 + adrp x1, .LANCHOR212 adrp x0, .LC0 mov w2, 1299 - add x1, x1, :lo12:.LANCHOR208 + add x1, x1, :lo12:.LANCHOR212 add x0, x0, :lo12:.LC0 bl printf -.L2932: +.L3112: add w27, w27, 1 -.L2924: +.L3104: add w22, w22, 1 and w22, w22, 65535 -.L2937: +.L3117: cmp w25, w22 - bcs .L2935 + bcs .L3115 ldr w0, [x29, 172] add w0, w0, 1 and w0, w0, 65535 str w0, [x29, 172] -.L2939: +.L3119: ldrb w0, [x29, 201] ldr w1, [x29, 172] cmp w0, w1 - bls .L2936 + bls .L3116 ldrsw x0, [x29, 172] mov w22, 1 add x0, x0, 8 lsl x0, x0, 1 str x0, [x29, 128] - b .L2937 -.L2925: + b .L3117 +.L3105: cmp w25, 2 - bne .L2927 + bne .L3107 ldr w0, [x29, 160] add w19, w19, w0 - adrp x0, .LANCHOR68 + adrp x0, .LANCHOR69 add w19, w19, w22 - ldrb w0, [x0, #:lo12:.LANCHOR68] + ldrb w0, [x0, #:lo12:.LANCHOR69] orr w19, w19, w0, lsl 24 - b .L2926 -.L2927: + b .L3106 +.L3107: add w19, w20, w19 - b .L2926 -.L2936: + b .L3106 +.L3116: add w20, w20, 1 and w20, w20, 65535 - b .L2923 -.L2938: + b .L3103 +.L3118: mov x0, x26 bl buf_free adrp x0, .LANCHOR9 @@ -18276,11 +19462,11 @@ ftl_sblk_dump: ldr x0, [x0, #:lo12:.LANCHOR9] ldrh w2, [x0, x1, lsl 1] mov w1, w21 - adrp x0, .LC201 - add x0, x0, :lo12:.LC201 + adrp x0, .LC212 + add x0, x0, :lo12:.LC212 bl printf ldr w0, [x29, 164] -.L2920: +.L3100: ldp x19, x20, [sp, 64] ldp x21, x22, [sp, 80] ldp x23, x24, [sp, 96] @@ -18289,92 +19475,94 @@ ftl_sblk_dump: ldp x29, x30, [sp, 48] add sp, sp, 272 ret -.L2941: +.L3121: mov w0, 0 - b .L2920 + b .L3100 .size ftl_sblk_dump, .-ftl_sblk_dump .section .text.zftl_read,"ax",@progbits .align 2 .global zftl_read .type zftl_read, %function zftl_read: - stp x29, x30, [sp, -192]! - add x29, sp, 0 - stp x19, x20, [sp, 16] + sub sp, sp, #208 + stp x29, x30, [sp, 16] + add x29, sp, 16 + stp x19, x20, [sp, 32] mov w20, w0 adrp x0, .LANCHOR14 - stp x21, x22, [sp, 32] - stp x25, x26, [sp, 64] + stp x21, x22, [sp, 48] + stp x25, x26, [sp, 80] mov w19, w1 ldr w0, [x0, #:lo12:.LANCHOR14] mov w26, w2 - stp x23, x24, [sp, 48] + stp x23, x24, [sp, 64] mov x22, x3 - stp x27, x28, [sp, 80] - tbz x0, 12, .L2953 + stp x27, x28, [sp, 96] + tbz x0, 12, .L3133 mov w3, w2 - adrp x0, .LC202 + adrp x0, .LC213 mov w2, w1 - add x0, x0, :lo12:.LC202 + add x0, x0, :lo12:.LC213 mov w1, w20 bl printf -.L2953: - cbnz w20, .L2954 - adrp x0, .LANCHOR58 +.L3133: + cbnz w20, .L3134 + adrp x0, .LANCHOR59 mov w20, 24576 - ldr w0, [x0, #:lo12:.LANCHOR58] -.L2955: + ldr w0, [x0, #:lo12:.LANCHOR59] +.L3135: add w1, w19, w26 cmp w0, w1 - bcc .L2983 - adrp x1, .LANCHOR97 + bcc .L3163 + adrp x1, .LANCHOR100 add w20, w20, w19 add w3, w26, w20 stp w3, wzr, [x29, 160] - ldr x2, [x1, #:lo12:.LANCHOR97] + ldr x2, [x1, #:lo12:.LANCHOR100] sub w3, w3, #1 str x1, [x29, 120] ldr w0, [x2, 24] add w0, w0, w26 str w0, [x2, 24] - adrp x0, .LANCHOR121 + adrp x0, .LANCHOR123 str x0, [x29, 168] - ldrb w2, [x0, #:lo12:.LANCHOR121] - adrp x0, .LANCHOR125 - add x28, x0, :lo12:.LANCHOR125 + ldrb w2, [x0, #:lo12:.LANCHOR123] + adrp x0, .LANCHOR127 + add x28, x0, :lo12:.LANCHOR127 udiv w27, w20, w2 udiv w2, w3, w2 mov w21, w27 sub w25, w2, w27 str w2, [x29, 156] add w25, w25, 1 -.L2957: - cbnz w25, .L2981 +.L3137: + cbnz w25, .L3161 ldr w0, [x29, 164] -.L2952: - 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], 192 +.L3132: + 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 -.L2954: +.L3134: cmp w20, 3 - bhi .L2983 + bhi .L3163 lsl w20, w20, 13 mov w0, 8192 - b .L2955 -.L2981: + b .L3135 +.L3161: ldr x0, [x29, 168] cmp w21, w27 - ldrb w1, [x0, #:lo12:.LANCHOR121] + ldrb w1, [x0, #:lo12:.LANCHOR123] ldr w0, [x29, 156] and w19, w1, 65535 ccmp w21, w0, 4, ne - bne .L2984 + bne .L3164 cmp w21, w27 - bne .L2959 + bne .L3139 udiv w24, w20, w1 and w0, w26, 65535 msub w1, w24, w1, w20 @@ -18383,18 +19571,18 @@ zftl_read: and w19, w19, 65535 cmp w26, w19 csel w19, w0, w19, cc -.L2958: - adrp x23, .LANCHOR49 - add x1, x23, :lo12:.LANCHOR49 +.L3138: + adrp x23, .LANCHOR50 + add x1, x23, :lo12:.LANCHOR50 add x1, x1, 2 mov w0, 0 -.L2962: +.L3142: ldr w2, [x1, 34] cmp w21, w2 - bne .L2960 + bne .L3140 ldrb w2, [x1] - tbz x2, 3, .L2960 - add x1, x23, :lo12:.LANCHOR49 + tbz x2, 3, .L3140 + add x1, x23, :lo12:.LANCHOR50 ubfiz x0, x0, 6, 32 add x0, x1, x0 lsl w2, w19, 9 @@ -18405,89 +19593,89 @@ zftl_read: add x22, x22, x19 add x1, x1, x24 bl ftl_memcpy -.L2961: +.L3141: add w21, w21, 1 sub w25, w25, #1 -.L2968: - adrp x0, .LANCHOR51 - ldrb w0, [x0, #:lo12:.LANCHOR51] +.L3148: + adrp x0, .LANCHOR52 + ldrb w0, [x0, #:lo12:.LANCHOR52] cmp w0, 2 - bls .L2969 - cbnz w25, .L2957 -.L2969: - adrp x0, .LANCHOR125 - ldrb w1, [x0, #:lo12:.LANCHOR125] - cbz w1, .L2957 - adrp x24, .LANCHOR124 - add x0, x23, :lo12:.LANCHOR49 - ldrb w2, [x24, #:lo12:.LANCHOR124] + bls .L3149 + cbnz w25, .L3137 +.L3149: + adrp x0, .LANCHOR127 + ldrb w1, [x0, #:lo12:.LANCHOR127] + cbz w1, .L3137 + adrp x24, .LANCHOR126 + add x0, x23, :lo12:.LANCHOR50 + ldrb w2, [x24, #:lo12:.LANCHOR126] add x0, x0, x2, lsl 6 bl sblk_read_page - adrp x0, .LANCHOR209 - add x0, x0, :lo12:.LANCHOR209 + adrp x0, .LANCHOR213 + add x0, x0, :lo12:.LANCHOR213 str x0, [x29, 136] adrp x0, .LC0 add x0, x0, :lo12:.LC0 str x0, [x29, 128] -.L2971: +.L3151: ldrb w0, [x28] - cbnz w0, .L2980 + cbnz w0, .L3160 mov w0, -1 strb wzr, [x28] - strb w0, [x24, #:lo12:.LANCHOR124] - b .L2957 -.L2959: + strb w0, [x24, #:lo12:.LANCHOR126] + b .L3137 +.L3139: ldr w0, [x29, 160] msub w19, w1, w21, w0 and w19, w19, 255 -.L2984: +.L3164: mov w24, 0 - b .L2958 -.L2960: + b .L3138 +.L3140: add w0, w0, 1 add x1, x1, 64 cmp w0, 32 - bne .L2962 + bne .L3142 mov w0, w21 bl lpa_hash_get_ppa str w0, [x29, 188] cmn w0, #1 - bne .L2963 + bne .L3143 mov w2, 0 add x1, x29, 188 mov w0, w21 bl pm_log2phys -.L2963: +.L3143: ldr w0, [x29, 188] cmn w0, #1 - bne .L2964 + bne .L3144 ldr x0, [x29, 168] mov w19, 0 - add x24, x0, :lo12:.LANCHOR121 -.L2965: + add x24, x0, :lo12:.LANCHOR123 +.L3145: ldrb w0, [x24] cmp w19, w0 - bcs .L2961 + bcs .L3141 madd w0, w21, w0, w19 cmp w20, w0 - bhi .L2966 + bhi .L3146 ldr w1, [x29, 160] cmp w1, w0 - bls .L2966 + bls .L3146 mov x0, x22 add x22, x22, 512 mov w2, 512 mov w1, 0 bl ftl_memset -.L2966: +.L3146: add w19, w19, 1 - b .L2965 -.L2964: + b .L3145 +.L3144: mov w0, 0 bl buf_alloc - cbz x0, .L2968 + cbz x0, .L3148 ldr x2, [x29, 120] - ldr x3, [x2, #:lo12:.LANCHOR97] + ldr x3, [x2, #:lo12:.LANCHOR100] ldr w2, [x3, 40] add w2, w2, 1 str w2, [x3, 40] @@ -18500,58 +19688,61 @@ zftl_read: stp w21, w2, [x0, 36] str w2, [x0, 44] bl zftl_add_read_buf - b .L2961 -.L2980: - ldrb w0, [x24, #:lo12:.LANCHOR124] + b .L3141 +.L3160: + ldrb w0, [x24, #:lo12:.LANCHOR126] cmp w0, 255 - bne .L2972 + bne .L3152 ldp x0, x1, [x29, 128] - mov w2, 1065 + mov w2, 1070 bl printf -.L2972: - ldrb w19, [x24, #:lo12:.LANCHOR124] - add x0, x23, :lo12:.LANCHOR49 +.L3152: + ldrb w19, [x24, #:lo12:.LANCHOR126] + add x0, x23, :lo12:.LANCHOR50 ubfiz x1, x19, 6, 8 lsl x2, x19, 6 add x1, x0, x1 str x1, [x29, 144] add x1, x0, x2 ldrb w0, [x0, x2] - strb w0, [x24, #:lo12:.LANCHOR124] + strb w0, [x24, #:lo12:.LANCHOR126] ldr w8, [x1, 52] cmn w8, #1 - bne .L2973 + bne .L3153 adrp x0, .LANCHOR10 str w8, [x29, 164] ldr x1, [x0, #:lo12:.LANCHOR10] ldr w0, [x1, 552] add w0, w0, 1 str w0, [x1, 552] -.L2974: - add x10, x23, :lo12:.LANCHOR49 +.L3154: + add x10, x23, :lo12:.LANCHOR50 add x10, x10, x19, lsl 6 ldr x0, [x10, 24] - ldr w2, [x10, 36] + ldr w3, [x10, 36] ldr w1, [x0, 4] - cmp w1, w2 - beq .L2975 + cmp w1, w3 + beq .L3155 adrp x1, .LANCHOR10 str w8, [x29, 152] str x10, [x29, 112] - ldr x3, [x1, #:lo12:.LANCHOR10] - ldr w1, [x3, 552] + ldr x2, [x1, #:lo12:.LANCHOR10] + ldr w1, [x2, 552] add w1, w1, 1 - str w1, [x3, 552] + str w1, [x2, 552] ldrb w1, [x10, 1] - ldp w4, w5, [x0] - ldp w6, w7, [x0, 8] - adrp x0, .LC204 - ldr w3, [x10, 40] - add x0, x0, :lo12:.LC204 + ldr w2, [x0, 12] + str w2, [sp] + mov w2, w8 + ldp w5, w6, [x0] + ldr w7, [x0, 8] + adrp x0, .LC215 + ldr w4, [x10, 40] + add x0, x0, :lo12:.LC215 bl printf ldr x10, [x29, 112] - adrp x0, .LANCHOR99 - ldrh w3, [x0, #:lo12:.LANCHOR99] + adrp x0, .LANCHOR102 + ldrh w3, [x0, #:lo12:.LANCHOR102] mov w0, 21 ldr w1, [x10, 40] sub w2, w0, w3 @@ -18560,34 +19751,34 @@ zftl_read: sub w0, w0, #1 lsr w1, w1, w3 and w0, w0, w1 - adrp x1, .LANCHOR98 - ldrb w2, [x1, #:lo12:.LANCHOR98] + adrp x1, .LANCHOR101 + ldrb w2, [x1, #:lo12:.LANCHOR101] mov x1, 0 udiv w0, w0, w2 bl ftl_sblk_dump ldr w8, [x29, 152] -.L2975: - add x0, x23, :lo12:.LANCHOR49 +.L3155: + add x0, x23, :lo12:.LANCHOR50 add x0, x0, x19, lsl 6 ldr x1, [x0, 24] ldr w0, [x0, 36] ldr w1, [x1, 4] cmp w1, w0 - bne .L2976 + bne .L3156 cmn w8, #1 - bne .L2977 -.L2976: + bne .L3157 +.L3156: ldp x0, x1, [x29, 128] - mov w2, 1086 + mov w2, 1091 bl printf -.L2977: - add x0, x23, :lo12:.LANCHOR49 +.L3157: + add x0, x23, :lo12:.LANCHOR50 add x19, x0, x19, lsl 6 ldr x0, [x29, 168] ldrb w2, [x19, 56] - ldrb w0, [x0, #:lo12:.LANCHOR121] + ldrb w0, [x0, #:lo12:.LANCHOR123] cmp w0, w2 - bls .L2978 + bls .L3158 ldrb w0, [x19, 57] lsl w2, w2, 9 ldr x1, [x19, 8] @@ -18595,55 +19786,55 @@ zftl_read: add x1, x1, x0 ldr x0, [x19, 16] bl ftl_memcpy -.L2979: +.L3159: ldr x1, [x29, 144] - adrp x0, .LANCHOR127 - add x0, x0, :lo12:.LANCHOR127 + adrp x0, .LANCHOR129 + add x0, x0, :lo12:.LANCHOR129 bl buf_remove_buf ldr x0, [x29, 144] bl buf_free ldrb w0, [x28] sub w0, w0, #1 strb w0, [x28] - b .L2971 -.L2973: + b .L3151 +.L3153: cmp w8, 256 - bne .L2974 - adrp x0, .LANCHOR99 + bne .L3154 + adrp x0, .LANCHOR102 mov w4, 21 ldp w2, w3, [x1, 36] mov w5, 1 - ldrh w0, [x0, #:lo12:.LANCHOR99] - str w5, [x29, 152] + ldrh w0, [x0, #:lo12:.LANCHOR102] + stp w8, w5, [x29, 108] sub w4, w4, w0 lsr w0, w3, w0 lsl w4, w5, w4 sub w4, w4, #1 and w4, w4, w0 - adrp x0, .LANCHOR98 - ldrb w0, [x0, #:lo12:.LANCHOR98] + adrp x0, .LANCHOR101 + ldrb w0, [x0, #:lo12:.LANCHOR101] udiv w4, w4, w0 - adrp x0, .LC203 - add x0, x0, :lo12:.LC203 - stp w8, w4, [x29, 108] + adrp x0, .LC214 + add x0, x0, :lo12:.LC214 and w1, w4, 65535 + str w4, [x29, 152] bl printf - ldr w4, [x29, 112] + ldr w5, [x29, 112] mov w2, 0 - ldr w5, [x29, 152] - mov w0, w4 + ldr w4, [x29, 152] mov w1, w5 + mov w0, w4 bl gc_add_sblk ldr w8, [x29, 108] - b .L2974 -.L2978: + b .L3154 +.L3158: ldrb w0, [x19, 2] and w0, w0, -9 strb w0, [x19, 2] - b .L2979 -.L2983: + b .L3159 +.L3163: mov w0, -1 - b .L2952 + b .L3132 .size zftl_read, .-zftl_read .section .text.ftl_vendor_read,"ax",@progbits .align 2 @@ -18717,125 +19908,125 @@ gc_check_data_one_wl: stp x29, x30, [sp, 16] add x29, sp, 16 stp x19, x20, [sp, 32] - adrp x19, .LANCHOR62 + adrp x19, .LANCHOR63 stp x21, x22, [sp, 48] - add x22, x19, :lo12:.LANCHOR62 + add x22, x19, :lo12:.LANCHOR63 adrp x20, .LANCHOR10 stp x23, x24, [sp, 64] stp x25, x26, [sp, 80] ldr x0, [x22, 8] stp x27, x28, [sp, 96] ldr x21, [x20, #:lo12:.LANCHOR10] - cbnz x0, .L3006 + cbnz x0, .L3186 mov w0, 1 bl buf_alloc str x0, [x22, 8] -.L3006: - add x0, x19, :lo12:.LANCHOR62 +.L3186: + add x0, x19, :lo12:.LANCHOR63 ldr x22, [x0, 8] - cbnz x22, .L3007 - adrp x1, .LANCHOR210 + cbnz x22, .L3187 + adrp x1, .LANCHOR214 adrp x0, .LC0 - mov w2, 367 - add x1, x1, :lo12:.LANCHOR210 + mov w2, 447 + add x1, x1, :lo12:.LANCHOR214 add x0, x0, :lo12:.LC0 bl printf -.L3007: - adrp x2, .LANCHOR105 +.L3187: + adrp x2, .LANCHOR107 add x28, x21, 96 add x27, x21, 80 - add x2, x2, :lo12:.LANCHOR105 + add x2, x2, :lo12:.LANCHOR107 mov w26, 0 -.L3008: +.L3188: ldrb w0, [x27, 9] cmp w26, w0 - bge .L3017 - adrp x25, .LANCHOR68 + bge .L3197 + adrp x25, .LANCHOR69 mov w24, 1 - add x23, x19, :lo12:.LANCHOR62 - add x25, x25, :lo12:.LANCHOR68 - b .L3018 -.L3016: + add x23, x19, :lo12:.LANCHOR63 + add x25, x25, :lo12:.LANCHOR69 + b .L3198 +.L3196: ldrh w0, [x28] ldrh w1, [x2] ldrb w3, [x25] cmp w3, 3 mul w1, w0, w1 ldrh w0, [x23, 16] - bne .L3009 + bne .L3189 add w0, w0, w1 orr w0, w0, w24, lsl 24 -.L3030: +.L3210: str w0, [x22, 40] mov w1, 1 str x2, [x29, 104] mov x0, x22 bl sblk_read_page ldr w0, [x22, 52] - adrp x1, .LANCHOR147 + adrp x1, .LANCHOR152 ldr x2, [x29, 104] cmn w0, #1 - beq .L3012 + beq .L3192 ldrh w0, [x23, 22] - ldr x4, [x1, #:lo12:.LANCHOR147] + ldr x4, [x1, #:lo12:.LANCHOR152] ldr x3, [x22, 24] lsl x0, x0, 2 ldr w5, [x4, x0] ldr w4, [x3, 4] cmp w5, w4 - bne .L3012 - adrp x4, .LANCHOR148 - ldr x4, [x4, #:lo12:.LANCHOR148] + bne .L3192 + adrp x4, .LANCHOR153 + ldr x4, [x4, #:lo12:.LANCHOR153] ldr w4, [x4, x0] ldr w0, [x3, 8] cmp w4, w0 - beq .L3013 -.L3012: - add x4, x1, :lo12:.LANCHOR147 + beq .L3193 +.L3192: + add x4, x1, :lo12:.LANCHOR152 ldrh w0, [x23, 22] - ldr x1, [x1, #:lo12:.LANCHOR147] + ldr x1, [x1, #:lo12:.LANCHOR152] ldr w0, [x1, x0, lsl 2] cmn w0, #1 - beq .L3013 - adrp x19, .LANCHOR72 + beq .L3193 + adrp x19, .LANCHOR75 ldrb w3, [x27, 9] str x4, [x29, 104] mov w2, 4 - ldrh w0, [x19, #:lo12:.LANCHOR72] + ldrh w0, [x19, #:lo12:.LANCHOR75] mul w3, w3, w0 - adrp x0, .LC205 - add x0, x0, :lo12:.LC205 + adrp x0, .LC216 + add x0, x0, :lo12:.LC216 bl rknand_print_hex - ldrh w0, [x19, #:lo12:.LANCHOR72] - adrp x19, .LANCHOR148 + ldrh w0, [x19, #:lo12:.LANCHOR75] + adrp x19, .LANCHOR153 ldrb w3, [x27, 9] mov w2, 4 - ldr x1, [x19, #:lo12:.LANCHOR148] + ldr x1, [x19, #:lo12:.LANCHOR153] mul w3, w3, w0 - adrp x0, .LC206 - add x0, x0, :lo12:.LC206 + adrp x0, .LC217 + add x0, x0, :lo12:.LC217 bl rknand_print_hex adrp x0, .LANCHOR14 ldr x4, [x29, 104] ldr w0, [x0, #:lo12:.LANCHOR14] - tbz x0, 10, .L3014 + tbz x0, 10, .L3194 ldr x1, [x22, 24] ldrh w0, [x23, 22] ldr x2, [x4] - ldr x3, [x19, #:lo12:.LANCHOR148] + ldr x3, [x19, #:lo12:.LANCHOR153] lsl x0, x0, 2 ldr w4, [x1, 12] str w4, [sp] ldr w4, [x3, x0] ldp w5, w6, [x1] ldr w3, [x2, x0] - adrp x0, .LC207 + adrp x0, .LC218 ldr w7, [x1, 8] - add x0, x0, :lo12:.LC207 + add x0, x0, :lo12:.LC218 ldr w1, [x22, 40] ldr w2, [x22, 52] bl printf -.L3014: +.L3194: ldr x0, [x20, #:lo12:.LANCHOR10] mov x1, 0 ldrh w0, [x0, 80] @@ -18845,7 +20036,7 @@ gc_check_data_one_wl: ldr x0, [x0, #:lo12:.LANCHOR9] strh wzr, [x0, x1, lsl 1] mov w0, -1 -.L3005: +.L3185: ldp x19, x20, [sp, 32] ldp x21, x22, [sp, 48] ldp x23, x24, [sp, 64] @@ -18854,43 +20045,43 @@ gc_check_data_one_wl: ldp x29, x30, [sp, 16] add sp, sp, 128 ret -.L3009: +.L3189: cmp w3, 2 - bne .L3011 + bne .L3191 sub w0, w0, #1 add w1, w24, w1 add w0, w0, w1 orr w0, w0, 33554432 - b .L3030 -.L3011: + b .L3210 +.L3191: add w0, w0, w1 - b .L3030 -.L3013: + b .L3210 +.L3193: ldrh w0, [x23, 22] add w24, w24, 1 add w0, w0, 1 strh w0, [x23, 22] -.L3018: +.L3198: ldrh w0, [x23, 20] cmp w24, w0 - ble .L3016 + ble .L3196 add w26, w26, 1 add x28, x28, 2 - b .L3008 -.L3017: - add x19, x19, :lo12:.LANCHOR62 + b .L3188 +.L3197: + add x19, x19, :lo12:.LANCHOR63 ldrh w0, [x19, 16] add w1, w0, 1 strh w1, [x19, 16] - adrp x1, .LANCHOR104 - ldrb w1, [x1, #:lo12:.LANCHOR104] - cbz w1, .L3019 + adrp x1, .LANCHOR70 + ldrb w1, [x1, #:lo12:.LANCHOR70] + cbz w1, .L3199 add w0, w0, 2 strh w0, [x19, 16] -.L3019: -.L3015: +.L3199: +.L3195: mov w0, 0 - b .L3005 + b .L3185 .size gc_check_data_one_wl, .-gc_check_data_one_wl .section .text.ftl_update_l2p_map,"ax",@progbits .align 2 @@ -18902,50 +20093,50 @@ ftl_update_l2p_map: stp x21, x22, [sp, 32] mov x22, x0 stp x19, x20, [sp, 16] - adrp x0, .LANCHOR80 + adrp x0, .LANCHOR83 stp x23, x24, [sp, 48] stp x25, x26, [sp, 64] stp x27, x28, [sp, 80] - ldrh w23, [x0, #:lo12:.LANCHOR80] + ldrh w23, [x0, #:lo12:.LANCHOR83] ldrb w0, [x22, 9] ldrh w19, [x22, 12] mul w23, w23, w0 - adrp x0, .LANCHOR111 + adrp x0, .LANCHOR113 str x0, [x29, 104] - ldr x1, [x0, #:lo12:.LANCHOR111] + ldr x1, [x0, #:lo12:.LANCHOR113] add x19, x1, x19, lsl 2 add x1, x19, x23, sxtw 2 ldr w1, [x1, -4] cmn w1, #1 - beq .L3032 - adrp x1, .LANCHOR211 + beq .L3212 + adrp x1, .LANCHOR215 adrp x0, .LC0 - mov w2, 1575 - add x1, x1, :lo12:.LANCHOR211 + mov w2, 1627 + add x1, x1, :lo12:.LANCHOR215 add x0, x0, :lo12:.LC0 bl printf -.L3032: - adrp x27, .LANCHOR121 +.L3212: + adrp x27, .LANCHOR123 mov x24, 0 - add x0, x27, :lo12:.LANCHOR121 + add x0, x27, :lo12:.LANCHOR123 mov w21, 0 str x0, [x29, 96] -.L3033: +.L3213: cmp w24, w23 - blt .L3039 + blt .L3219 adrp x0, .LANCHOR14 adrp x19, .LANCHOR9 ldr w0, [x0, #:lo12:.LANCHOR14] - tbz x0, 12, .L3040 + tbz x0, 12, .L3220 ldrh w1, [x22] ldr x2, [x19, #:lo12:.LANCHOR9] ubfiz x0, x1, 1, 16 ldrh w3, [x2, x0] - adrp x0, .LC211 + adrp x0, .LC222 mov w2, w21 - add x0, x0, :lo12:.LC211 + add x0, x0, :lo12:.LC222 bl printf -.L3040: +.L3220: ldrh w1, [x22] ldr x0, [x19, #:lo12:.LANCHOR9] ldp x23, x24, [sp, 48] @@ -18956,38 +20147,38 @@ ftl_update_l2p_map: ldp x27, x28, [sp, 80] ldp x29, x30, [sp], 128 ret -.L3039: +.L3219: ldr w2, [x19, x24, lsl 2] cmn w2, #1 - beq .L3034 - ldrb w20, [x27, #:lo12:.LANCHOR121] + beq .L3214 + ldrb w20, [x27, #:lo12:.LANCHOR123] adrp x0, .LANCHOR14 ldr w0, [x0, #:lo12:.LANCHOR14] lsl w20, w20, 7 udiv w20, w2, w20 and w20, w20, 65535 - tbz x0, 12, .L3035 - adrp x0, .LC208 + tbz x0, 12, .L3215 + adrp x0, .LC219 mov w3, w24 mov w1, w20 - add x0, x0, :lo12:.LC208 + add x0, x0, :lo12:.LC219 bl printf -.L3035: - adrp x25, .LANCHOR105 - adrp x26, .LC209 +.L3215: + adrp x25, .LANCHOR107 + adrp x26, .LC220 mov x28, x24 - add x25, x25, :lo12:.LANCHOR105 - add x26, x26, :lo12:.LC209 -.L3038: + add x25, x25, :lo12:.LANCHOR107 + add x26, x26, :lo12:.LC220 +.L3218: ldr w1, [x19, x28, lsl 2] cmn w1, #1 - beq .L3036 + beq .L3216 ldr x0, [x29, 96] ldrb w2, [x0] lsl w2, w2, 7 udiv w1, w1, w2 cmp w20, w1, uxth - bne .L3036 + bne .L3216 ldrb w0, [x22, 9] sdiv w1, w28, w0 msub w0, w1, w0, w28 @@ -18999,15 +20190,15 @@ ftl_update_l2p_map: str w2, [x29, 124] ldr w1, [x19, x28, lsl 2] bl pm_ppa_update_check - cbz w0, .L3037 + cbz w0, .L3217 ldr x0, [x29, 104] mov w3, w23 mov w2, 4 - ldr x1, [x0, #:lo12:.LANCHOR111] - adrp x0, .LC210 - add x0, x0, :lo12:.LC210 + ldr x1, [x0, #:lo12:.LANCHOR113] + adrp x0, .LC221 + add x0, x0, :lo12:.LC221 bl rknand_print_hex -.L3037: +.L3217: ldr w0, [x19, x28, lsl 2] add w21, w21, 1 mov w2, 1 @@ -19016,13 +20207,13 @@ ftl_update_l2p_map: bl pm_log2phys mov w0, -1 str w0, [x19, x28, lsl 2] -.L3036: +.L3216: add x28, x28, 1 cmp w23, w28 - bgt .L3038 -.L3034: + bgt .L3218 +.L3214: add x24, x24, 1 - b .L3033 + b .L3213 .size ftl_update_l2p_map, .-ftl_update_l2p_map .section .text.ftl_alloc_new_data_sblk,"ax",@progbits .align 2 @@ -19038,9 +20229,9 @@ ftl_alloc_new_data_sblk: ldrh w0, [x19] mov w1, 65535 cmp w0, w1 - beq .L3062 + beq .L3242 bl zftl_insert_data_list -.L3062: +.L3242: adrp x0, .LANCHOR10 ldr x0, [x0, #:lo12:.LANCHOR10] add x0, x0, 16 @@ -19064,54 +20255,54 @@ ftl_alloc_new_data_sblk: .type ftl_write_commit, %function ftl_write_commit: stp x29, x30, [sp, -144]! - adrp x0, .LANCHOR49 + adrp x0, .LANCHOR50 add x29, sp, 0 stp x23, x24, [sp, 48] - add x23, x0, :lo12:.LANCHOR49 + add x23, x0, :lo12:.LANCHOR50 stp x19, x20, [sp, 16] stp x21, x22, [sp, 32] stp x25, x26, [sp, 64] stp x27, x28, [sp, 80] -.L3067: - adrp x2, .LANCHOR57 - ldrb w1, [x2, #:lo12:.LANCHOR57] - cbz w1, .L3069 - adrp x3, .LANCHOR56 - adrp x0, .LANCHOR49 - add x0, x0, :lo12:.LANCHOR49 +.L3247: + adrp x2, .LANCHOR58 + ldrb w1, [x2, #:lo12:.LANCHOR58] + cbz w1, .L3249 + adrp x3, .LANCHOR57 + adrp x0, .LANCHOR50 + add x0, x0, :lo12:.LANCHOR50 sub w1, w1, #1 - ldrb w4, [x3, #:lo12:.LANCHOR56] - strb w1, [x2, #:lo12:.LANCHOR57] + ldrb w4, [x3, #:lo12:.LANCHOR57] + strb w1, [x2, #:lo12:.LANCHOR58] ubfiz x27, x4, 6, 8 add x5, x0, x27 stp x4, x5, [x29, 112] lsl x4, x4, 6 add x5, x0, x4 ldrb w0, [x0, x4] - strb w0, [x3, #:lo12:.LANCHOR56] - adrp x0, .LANCHOR118 + strb w0, [x3, #:lo12:.LANCHOR57] + adrp x0, .LANCHOR120 ldr w2, [x5, 36] mov x19, x0 - ldr w1, [x0, #:lo12:.LANCHOR118] + ldr w1, [x0, #:lo12:.LANCHOR120] cmp w2, w1 - bcc .L3071 - adrp x1, .LANCHOR212 + bcc .L3251 + adrp x1, .LANCHOR216 adrp x0, .LC0 - mov w2, 496 - add x1, x1, :lo12:.LANCHOR212 + mov w2, 501 + add x1, x1, :lo12:.LANCHOR216 add x0, x0, :lo12:.LC0 bl printf -.L3071: +.L3251: ldr x0, [x29, 112] - ldr w1, [x19, #:lo12:.LANCHOR118] + ldr w1, [x19, #:lo12:.LANCHOR120] add x0, x23, x0, lsl 6 ldr w22, [x0, 36] cmp w22, w1 - bcc .L3072 + bcc .L3252 ldr x0, [x29, 120] bl buf_free mov w0, -1 -.L3066: +.L3246: ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x23, x24, [sp, 48] @@ -19119,25 +20310,25 @@ ftl_write_commit: ldp x27, x28, [sp, 80] ldp x29, x30, [sp], 144 ret -.L3072: +.L3252: ldrb w21, [x0, 57] ldrb w20, [x0, 56] ldr x26, [x0, 8] ldr x28, [x0, 24] - adrp x0, .LANCHOR119 + adrp x0, .LANCHOR121 str x0, [x29, 104] - ldrb w1, [x0, #:lo12:.LANCHOR119] - cbz w1, .L3074 - adrp x0, .LANCHOR173 - ldrb w1, [x0, #:lo12:.LANCHOR173] + ldrb w1, [x0, #:lo12:.LANCHOR121] + cbz w1, .L3254 + adrp x0, .LANCHOR174 + ldrb w1, [x0, #:lo12:.LANCHOR174] add x1, x23, x1, lsl 6 -.L3075: +.L3255: ldrb w0, [x1] cmp w0, 255 - bne .L3076 + bne .L3256 ldr w0, [x1, 36] cmp w22, w0 - bne .L3074 + bne .L3254 ldr x0, [x1, 8] ubfiz x21, x21, 9, 8 lsl w2, w20, 9 @@ -19146,33 +20337,33 @@ ftl_write_commit: bl ftl_memcpy ldr x0, [x29, 120] bl buf_free - b .L3067 -.L3076: + b .L3247 +.L3256: ubfiz x1, x0, 6, 8 add x1, x23, x1 - b .L3075 -.L3074: + b .L3255 +.L3254: mov w0, w22 bl lpa_hash_get_ppa str w0, [x29, 140] cmn w0, #1 - bne .L3078 + bne .L3258 mov w2, 0 add x1, x29, 140 mov w0, w22 bl pm_log2phys -.L3078: +.L3258: adrp x25, .LANCHOR10 add x1, x23, 2 mov w0, 0 ldr x19, [x25, #:lo12:.LANCHOR10] add x19, x19, 16 -.L3081: +.L3261: ldr w2, [x1, 34] cmp w22, w2 - bne .L3079 + bne .L3259 ldrb w2, [x1] - tbz x2, 3, .L3079 + tbz x2, 3, .L3259 ubfiz x0, x0, 6, 32 and w2, w2, -9 add x0, x23, x0 @@ -19180,50 +20371,50 @@ ftl_write_commit: ldr x24, [x0, 8] ldr w0, [x0, 40] str w0, [x29, 140] -.L3080: - adrp x0, .LANCHOR121 +.L3260: + adrp x0, .LANCHOR123 str x0, [x29, 96] - ldrb w1, [x0, #:lo12:.LANCHOR121] + ldrb w1, [x0, #:lo12:.LANCHOR123] cmp w20, w1 - bcs .L3105 + bcs .L3285 add w20, w21, w20 - cbz x24, .L3083 - cbz w21, .L3084 + cbz x24, .L3263 + cbz w21, .L3264 lsl w2, w21, 9 mov x1, x24 mov x0, x26 bl ftl_memcpy ldr x19, [x25, #:lo12:.LANCHOR10] add x19, x19, 48 -.L3084: +.L3264: ldr x0, [x29, 96] - ldrb w2, [x0, #:lo12:.LANCHOR121] + ldrb w2, [x0, #:lo12:.LANCHOR123] cmp w20, w2 - bcc .L3085 + bcc .L3265 ldr x19, [x25, #:lo12:.LANCHOR10] add x19, x19, 16 -.L3105: +.L3285: mov w24, 0 - b .L3082 -.L3079: + b .L3262 +.L3259: add w0, w0, 1 add x1, x1, 64 cmp w0, 32 - bne .L3081 + bne .L3261 mov x24, 0 - b .L3080 -.L3085: + b .L3260 +.L3265: ubfiz x0, x20, 9, 9 sub w2, w2, w20 add x1, x24, x0 lsl w2, w2, 9 add x0, x26, x0 bl ftl_memcpy - b .L3105 -.L3083: + b .L3285 +.L3263: ldr w0, [x29, 140] cmn w0, #1 - beq .L3086 + beq .L3266 mov w0, 1 bl buf_alloc ldr w1, [x29, 140] @@ -19236,11 +20427,11 @@ ftl_write_commit: ldr w0, [x0, 4] add w24, w24, 1 cmp w22, w0 - bne .L3087 + bne .L3267 ldr w0, [x27, 52] cmn w0, #1 - bne .L3088 -.L3087: + bne .L3268 +.L3267: ldr x1, [x25, #:lo12:.LANCHOR10] mov w3, w22 ldr w4, [x27, 52] @@ -19248,73 +20439,73 @@ ftl_write_commit: ldr w0, [x1, 552] add w0, w0, 1 str w0, [x1, 552] - adrp x0, .LC212 - add x0, x0, :lo12:.LC212 + adrp x0, .LC223 + add x0, x0, :lo12:.LC223 ldrb w1, [x27, 1] bl printf ldr x1, [x27, 24] mov w3, 4 - adrp x0, .LC171 + adrp x0, .LC182 mov w2, w3 - add x0, x0, :lo12:.LC171 + add x0, x0, :lo12:.LC182 bl rknand_print_hex -.L3088: +.L3268: ldr x0, [x27, 24] ldr w0, [x0, 4] cmp w22, w0 - bne .L3089 + bne .L3269 ldr w0, [x27, 52] cmn w0, #1 - bne .L3090 -.L3089: - adrp x1, .LANCHOR212 + bne .L3270 +.L3269: + adrp x1, .LANCHOR216 adrp x0, .LC0 - mov w2, 567 - add x1, x1, :lo12:.LANCHOR212 + mov w2, 572 + add x1, x1, :lo12:.LANCHOR216 add x0, x0, :lo12:.LC0 bl printf -.L3090: - cbz w21, .L3091 +.L3270: + cbz w21, .L3271 ldr w0, [x29, 140] lsl w2, w21, 9 cmn w0, #1 - beq .L3092 + beq .L3272 ldr x1, [x27, 8] mov x0, x26 bl ftl_memcpy -.L3093: +.L3273: ldr x19, [x25, #:lo12:.LANCHOR10] add x19, x19, 48 -.L3091: +.L3271: ldr x0, [x29, 96] - ldrb w2, [x0, #:lo12:.LANCHOR121] + ldrb w2, [x0, #:lo12:.LANCHOR123] cmp w20, w2 - bcc .L3094 - bls .L3095 + bcc .L3274 + bls .L3275 ldr x19, [x25, #:lo12:.LANCHOR10] add x19, x19, 16 -.L3095: - cbz x27, .L3082 +.L3275: + cbz x27, .L3262 ldrb w0, [x27, 2] mov x1, x27 and w0, w0, -9 strb w0, [x27, 2] - adrp x0, .LANCHOR127 - add x0, x0, :lo12:.LANCHOR127 + adrp x0, .LANCHOR129 + add x0, x0, :lo12:.LANCHOR129 bl buf_remove_buf mov x0, x27 bl buf_free -.L3082: +.L3262: ldrh w0, [x19, 6] - cbnz w0, .L3097 + cbnz w0, .L3277 bl ftl_flush mov x0, x19 bl ftl_alloc_new_data_sblk -.L3097: +.L3277: mov x0, x19 bl ftl_get_new_free_page ldr x1, [x29, 112] - adrp x20, .LANCHOR173 + adrp x20, .LANCHOR174 lsl x2, x1, 6 add x1, x23, x2 ldr w3, [x1, 32] @@ -19335,94 +20526,94 @@ ftl_write_commit: sub w0, w0, #1 strh w0, [x1, 48] ldr x1, [x29, 120] - add x0, x20, :lo12:.LANCHOR173 + add x0, x20, :lo12:.LANCHOR174 bl buf_add_tail ldr x0, [x29, 104] - ldrb w2, [x0, #:lo12:.LANCHOR119] + ldrb w2, [x0, #:lo12:.LANCHOR121] add w2, w2, 1 and w2, w2, 255 - strb w2, [x0, #:lo12:.LANCHOR119] - adrp x0, .LANCHOR213 + strb w2, [x0, #:lo12:.LANCHOR121] + adrp x0, .LANCHOR217 cmp w2, 2 - str wzr, [x0, #:lo12:.LANCHOR213] + str wzr, [x0, #:lo12:.LANCHOR217] ldrh w0, [x19, 6] - bhi .L3098 + bhi .L3278 cmp w0, 1 - bne .L3070 -.L3098: + bne .L3250 +.L3278: ldrb w1, [x19, 5] cmp w1, 0 mov w1, 0 cset w4, ne cmp w0, 1 - ldrb w0, [x20, #:lo12:.LANCHOR173] + ldrb w0, [x20, #:lo12:.LANCHOR174] csinc w4, w2, w4, eq mov w3, w0 -.L3102: +.L3282: cmp w1, w4 - bne .L3103 - strb w3, [x20, #:lo12:.LANCHOR173] + bne .L3283 + strb w3, [x20, #:lo12:.LANCHOR174] and w1, w1, 255 ldr x3, [x29, 104] sub w2, w2, w1 ubfiz x0, x0, 6, 8 add x0, x23, x0 - strb w2, [x3, #:lo12:.LANCHOR119] + strb w2, [x3, #:lo12:.LANCHOR121] bl sblk_prog_page ldrh w0, [x19, 6] cmp w0, 1 - bne .L3070 + bne .L3250 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 -.L3070: - adrp x0, .LANCHOR57 - ldrb w0, [x0, #:lo12:.LANCHOR57] - cbnz w0, .L3067 -.L3069: +.L3250: + adrp x0, .LANCHOR58 + ldrb w0, [x0, #:lo12:.LANCHOR58] + cbnz w0, .L3247 +.L3249: bl ftl_write_completed mov w0, 0 - b .L3066 -.L3094: + b .L3246 +.L3274: ldr w0, [x29, 140] sub w2, w2, w20 lsl w2, w2, 9 cmn w0, #1 ubfiz x0, x20, 7, 9 - beq .L3096 + beq .L3276 ldr x1, [x27, 8] lsl x0, x0, 2 add x1, x1, x0 add x0, x26, x0 bl ftl_memcpy - b .L3095 -.L3096: + b .L3275 +.L3276: mov w1, 0 add x0, x26, x0, lsl 2 bl ftl_memset - b .L3095 -.L3103: + b .L3275 +.L3283: ubfiz x3, x3, 6, 8 add w1, w1, 1 ldrb w3, [x23, x3] - b .L3102 -.L3104: + b .L3282 +.L3284: lsl w2, w21, 9 mov x27, 0 mov w24, 0 -.L3092: +.L3272: mov w1, 0 mov x0, x26 bl ftl_memset - b .L3093 -.L3086: - cbnz w21, .L3104 + b .L3273 +.L3266: + cbnz w21, .L3284 mov w24, 0 mov x27, 0 - b .L3091 + b .L3271 .size ftl_write_commit, .-ftl_write_commit .section .text.gc_do_copy_back,"ax",@progbits .align 2 @@ -19430,21 +20621,21 @@ ftl_write_commit: .type gc_do_copy_back, %function gc_do_copy_back: sub sp, sp, #224 - adrp x0, .LANCHOR71 + adrp x0, .LANCHOR74 stp x29, x30, [sp, 16] add x29, sp, 16 - ldrb w0, [x0, #:lo12:.LANCHOR71] + ldrb w0, [x0, #:lo12:.LANCHOR74] stp x19, x20, [sp, 32] stp x21, x22, [sp, 48] stp x23, x24, [sp, 64] stp x25, x26, [sp, 80] stp x27, x28, [sp, 96] - cbnz w0, .L3128 + cbnz w0, .L3308 bl buf_alloc mov x19, x0 - cbz x0, .L3127 - adrp x20, .LANCHOR62 - add x3, x20, :lo12:.LANCHOR62 + cbz x0, .L3307 + adrp x20, .LANCHOR63 + add x3, x20, :lo12:.LANCHOR63 ldrh w2, [x3, 26] mov w0, w2 bl gc_get_src_ppa_from_index @@ -19458,52 +20649,52 @@ gc_do_copy_back: ldr w0, [x19, 52] cmp w0, 512 ccmn w0, #1, 4, ne - bne .L3130 - adrp x1, .LANCHOR214 + bne .L3310 + adrp x1, .LANCHOR218 adrp x0, .LC0 - mov w2, 601 - add x1, x1, :lo12:.LANCHOR214 + mov w2, 684 + add x1, x1, :lo12:.LANCHOR218 add x0, x0, :lo12:.LC0 bl printf -.L3130: +.L3310: ldr x0, [x19, 24] ldr w21, [x0, 4] mov w0, w21 bl lpa_hash_get_ppa str w0, [x29, 160] cmn w0, #1 - bne .L3131 + bne .L3311 mov w2, 0 add x1, x29, 160 mov w0, w21 bl pm_log2phys -.L3131: +.L3311: ldr w23, [x29, 160] cmp w22, w23 - bne .L3132 - adrp x0, .LANCHOR49 - add x0, x0, :lo12:.LANCHOR49 + bne .L3312 + adrp x0, .LANCHOR50 + add x0, x0, :lo12:.LANCHOR50 add x1, x0, 2 add x0, x0, 2050 -.L3135: +.L3315: ldr w2, [x1, 34] cmp w21, w2 - bne .L3133 + bne .L3313 ldrb w2, [x1] - tbz x2, 1, .L3133 + tbz x2, 1, .L3313 mov x0, x19 bl buf_free adrp x0, .LANCHOR14 ldr w0, [x0, #:lo12:.LANCHOR14] - tbz x0, 8, .L3127 - add x20, x20, :lo12:.LANCHOR62 - adrp x0, .LC213 + tbz x0, 8, .L3307 + add x20, x20, :lo12:.LANCHOR63 + adrp x0, .LC224 mov w2, w22 mov w1, w21 - add x0, x0, :lo12:.LC213 + add x0, x0, :lo12:.LC224 ldrh w3, [x20, 26] bl printf -.L3127: +.L3307: ldp x19, x20, [sp, 32] ldp x21, x22, [sp, 48] ldp x23, x24, [sp, 64] @@ -19512,14 +20703,14 @@ gc_do_copy_back: ldp x29, x30, [sp, 16] add sp, sp, 224 ret -.L3133: +.L3313: add x1, x1, 64 - cmp x0, x1 - bne .L3135 - adrp x0, .LANCHOR121 + cmp x1, x0 + bne .L3315 + adrp x0, .LANCHOR123 mov w1, 10 strb wzr, [x19, 57] - ldrb w0, [x0, #:lo12:.LANCHOR121] + ldrb w0, [x0, #:lo12:.LANCHOR123] strb w0, [x19, 56] ldrb w0, [x19, 2] str w21, [x19, 36] @@ -19530,65 +20721,65 @@ gc_do_copy_back: str w0, [x19, 32] adrp x0, .LANCHOR14 ldr w0, [x0, #:lo12:.LANCHOR14] - tbz x0, 8, .L3136 + tbz x0, 8, .L3316 mov w0, w21 bl lpa_hash_get_ppa - add x1, x20, :lo12:.LANCHOR62 + add x1, x20, :lo12:.LANCHOR63 mov w3, w0 mov w4, w22 - adrp x0, .LC214 + adrp x0, .LC225 mov w2, w23 - add x0, x0, :lo12:.LC214 + add x0, x0, :lo12:.LC225 ldrh w5, [x1, 26] mov w1, w21 bl printf -.L3136: +.L3316: mov x0, x19 bl ftl_gc_write_buf bl ftl_write_commit - add x20, x20, :lo12:.LANCHOR62 - adrp x0, .LANCHOR97 - ldr x1, [x0, #:lo12:.LANCHOR97] + add x20, x20, :lo12:.LANCHOR63 + adrp x0, .LANCHOR100 + ldr x1, [x0, #:lo12:.LANCHOR100] ldr w0, [x1, 60] add w0, w0, 1 str w0, [x1, 60] ldrh w0, [x20, 28] add w0, w0, 1 strh w0, [x20, 28] - b .L3127 -.L3132: + b .L3307 +.L3312: adrp x0, .LANCHOR14 ldr w0, [x0, #:lo12:.LANCHOR14] - tbz x0, 8, .L3137 - add x20, x20, :lo12:.LANCHOR62 + tbz x0, 8, .L3317 + add x20, x20, :lo12:.LANCHOR63 mov w0, w21 bl lpa_hash_get_ppa mov w3, w0 mov w4, w22 - adrp x0, .LC214 + adrp x0, .LC225 ldrh w5, [x20, 26] mov w2, w23 mov w1, w21 - add x0, x0, :lo12:.LC214 + add x0, x0, :lo12:.LC225 bl printf -.L3137: +.L3317: mov x0, x19 bl buf_free - b .L3127 -.L3128: + b .L3307 +.L3308: adrp x1, .LANCHOR10 - adrp x0, .LANCHOR68 + adrp x0, .LANCHOR69 stp x0, x1, [x29, 128] - adrp x24, .LANCHOR62 + adrp x24, .LANCHOR63 ldr x22, [x1, #:lo12:.LANCHOR10] - ldrb w25, [x0, #:lo12:.LANCHOR68] + ldrb w25, [x0, #:lo12:.LANCHOR69] add x22, x22, 80 cmp w25, 3 - bne .L3138 - adrp x0, .LANCHOR70 - ldrb w0, [x0, #:lo12:.LANCHOR70] - cbz w0, .L3139 - add x0, x24, :lo12:.LANCHOR62 + bne .L3318 + adrp x0, .LANCHOR73 + ldrb w0, [x0, #:lo12:.LANCHOR73] + cbz w0, .L3319 + add x0, x24, :lo12:.LANCHOR63 ldrb w19, [x22, 9] ldrh w20, [x0, 314] add w21, w19, w19, lsl 1 @@ -19596,30 +20787,30 @@ gc_do_copy_back: sdiv w21, w20, w21 madd w19, w21, w19, w20 and w19, w19, 65535 -.L3140: - adrp x1, .LANCHOR72 +.L3320: + adrp x1, .LANCHOR75 ldrb w0, [x22, 9] - add x4, x24, :lo12:.LANCHOR62 + add x4, x24, :lo12:.LANCHOR63 mov w2, 0 - ldrh w3, [x1, #:lo12:.LANCHOR72] + ldrh w3, [x1, #:lo12:.LANCHOR75] mul w8, w25, w0 ldrh w10, [x4, 24] mul w3, w3, w0 - adrp x0, .LANCHOR148 - ldr x7, [x0, #:lo12:.LANCHOR148] + adrp x0, .LANCHOR153 + ldr x7, [x0, #:lo12:.LANCHOR153] sub w3, w3, #1 -.L3143: +.L3323: cmp w2, w8 - blt .L3145 -.L3172: + blt .L3325 +.L3354: mov w23, 1 - b .L3141 -.L3139: - add x0, x24, :lo12:.LANCHOR62 + b .L3321 +.L3319: + add x0, x24, :lo12:.LANCHOR63 ldrb w20, [x22, 9] ldrh w1, [x0, 314] - adrp x0, .LANCHOR215 - add x0, x0, :lo12:.LANCHOR215 + adrp x0, .LANCHOR219 + add x0, x0, :lo12:.LANCHOR219 sdiv w19, w1, w20 ldrh w23, [x0, w19, sxtw 1] msub w19, w19, w20, w1 @@ -19630,110 +20821,106 @@ gc_do_copy_back: madd w20, w21, w20, w19 add w20, w20, w20, lsl 1 and w20, w20, 65535 - beq .L3140 -.L3141: + beq .L3320 +.L3321: adrp x0, .LANCHOR14 str x0, [x29, 112] ldr w1, [x0, #:lo12:.LANCHOR14] - tbz x1, 8, .L3146 - adrp x0, .LANCHOR148 + tbz x1, 8, .L3326 + adrp x0, .LANCHOR153 ubfiz x1, x20, 2, 16 mov w6, w20 mov w3, w19 - ldr x2, [x0, #:lo12:.LANCHOR148] - add x0, x24, :lo12:.LANCHOR62 + ldr x2, [x0, #:lo12:.LANCHOR153] + add x0, x24, :lo12:.LANCHOR63 ldrh w4, [x0, 314] - adrp x0, .LC215 + adrp x0, .LC226 ldr w5, [x2, x1] - add x0, x0, :lo12:.LC215 + add x0, x0, :lo12:.LC226 mov w2, w23 mov w1, w21 bl printf -.L3146: - adrp x0, .LANCHOR49 +.L3326: + adrp x0, .LANCHOR50 str wzr, [x29, 152] - add x0, x0, :lo12:.LANCHOR49 + add x0, x0, :lo12:.LANCHOR50 str x0, [x29, 120] -.L3147: - ldrb w2, [x22, 9] +.L3327: + ldrb w1, [x22, 9] ldr w0, [x29, 152] ldrh w26, [x29, 152] and w0, w0, 65535 str w0, [x29, 156] - mul w1, w25, w2 - cmp w0, w1 - blt .L3159 + mul w3, w25, w1 + cmp w0, w3 + blt .L3339 ldr x0, [x29, 128] - ldrb w0, [x0, #:lo12:.LANCHOR68] + ldrb w0, [x0, #:lo12:.LANCHOR69] cmp w0, 3 add x0, x29, 160 - beq .L3160 - sub w3, w1, #1 - mov w2, 0 -.L3161: - cmp w2, w3 - blt .L3167 - ldr x0, [x0, w3, sxtw 3] - mov w2, -1 - strb w2, [x0] - ldr x0, [x29, 160] - bl sblk_prog_page - b .L3166 -.L3138: - adrp x0, .LANCHOR104 - ldrb w0, [x0, #:lo12:.LANCHOR104] - cbnz w0, .L3142 - add x0, x24, :lo12:.LANCHOR62 + bne .L3340 + adrp x2, .LANCHOR73 + ldr x3, [x29, 160] + ldrb w2, [x2, #:lo12:.LANCHOR73] + cbz w2, .L3341 +.L3344: + strb wzr, [x3, 60] + b .L3342 +.L3318: + adrp x0, .LANCHOR70 + ldrb w0, [x0, #:lo12:.LANCHOR70] + cbnz w0, .L3322 + add x0, x24, :lo12:.LANCHOR63 ldrb w19, [x22, 9] mov w25, 1 ldrh w20, [x0, 314] sdiv w21, w20, w19 msub w19, w21, w19, w20 and w19, w19, 65535 - b .L3140 -.L3142: - add x0, x24, :lo12:.LANCHOR62 + b .L3320 +.L3322: + add x0, x24, :lo12:.LANCHOR63 ldrb w19, [x22, 9] mov w25, 2 ldrh w20, [x0, 314] sdiv w21, w20, w19 msub w19, w21, w19, w20 and w19, w19, 65535 - b .L3140 -.L3145: + b .L3320 +.L3325: add w5, w20, w2 cmp w5, w3 - beq .L3172 + beq .L3354 sbfiz x5, x5, 2, 32 ldr w0, [x7, x5] cmn w0, #1 - bne .L3144 + bne .L3324 ldrh w6, [x4, 26] cmp w6, w10 - bcs .L3127 + bcs .L3307 mov w0, w6 bl gc_get_src_ppa_from_index add w6, w6, 1 strh w6, [x4, 26] str w0, [x7, x5] -.L3144: +.L3324: add w2, w2, 1 and w2, w2, 65535 - b .L3143 -.L3159: + b .L3323 +.L3339: ldr w0, [x29, 156] add w0, w20, w0 str w0, [x29, 144] sxtw x27, w0 - adrp x0, .LANCHOR69 - ldr x0, [x0, #:lo12:.LANCHOR69] + adrp x0, .LANCHOR72 + ldr x0, [x0, #:lo12:.LANCHOR72] ldrb w0, [x0, x27] cmp w0, 255 - bne .L3148 + bne .L3328 mov w0, 0 bl buf_alloc mov x28, x0 - cbnz x0, .L3149 + cbnz x0, .L3329 bl sblk_wait_write_queue_completed bl ftl_write_completed bl gc_write_completed @@ -19741,17 +20928,17 @@ gc_do_copy_back: mov w0, 0 bl buf_alloc mov x28, x0 - cbz x0, .L3127 -.L3149: - adrp x0, .LANCHOR69 + cbz x0, .L3307 +.L3329: + adrp x0, .LANCHOR72 ldrb w1, [x28, 1] - adrp x5, .LANCHOR72 - adrp x6, .LANCHOR148 - ldr x0, [x0, #:lo12:.LANCHOR69] + adrp x5, .LANCHOR75 + adrp x6, .LANCHOR153 + ldr x0, [x0, #:lo12:.LANCHOR72] strb w1, [x0, x27] - add x1, x24, :lo12:.LANCHOR62 + add x1, x24, :lo12:.LANCHOR63 strb w23, [x28, 61] - ldrh w7, [x5, #:lo12:.LANCHOR72] + ldrh w7, [x5, #:lo12:.LANCHOR75] ldrb w0, [x1, 7] add w0, w0, 1 strb w0, [x1, 7] @@ -19762,32 +20949,32 @@ gc_do_copy_back: mul w0, w0, w7 sub w0, w0, #1 cmp w1, w0 - bne .L3150 - adrp x0, .LANCHOR147 - adrp x4, .LANCHOR73 + bne .L3330 + adrp x0, .LANCHOR152 + adrp x4, .LANCHOR76 stp x6, x5, [x29, 96] - ldr x1, [x0, #:lo12:.LANCHOR147] + ldr x1, [x0, #:lo12:.LANCHOR152] mov w0, -1 str x4, [x29, 144] str w0, [x1, x27, lsl 2] ldr x0, [x28, 8] - ldrb w2, [x4, #:lo12:.LANCHOR73] + ldrb w2, [x4, #:lo12:.LANCHOR76] mul w2, w2, w7 lsl w2, w2, 2 bl ftl_memcpy ldp x6, x5, [x29, 96] ldr x4, [x29, 144] ldr x7, [x28, 8] - ldrh w0, [x5, #:lo12:.LANCHOR72] - ldrb w1, [x4, #:lo12:.LANCHOR73] + ldrh w0, [x5, #:lo12:.LANCHOR75] + ldrb w1, [x4, #:lo12:.LANCHOR76] mul w0, w0, w1 - ldr x1, [x6, #:lo12:.LANCHOR148] + ldr x1, [x6, #:lo12:.LANCHOR153] lsl w2, w0, 2 add x0, x7, x0, sxtw 2 bl ftl_memcpy - adrp x0, .LANCHOR121 + adrp x0, .LANCHOR123 mov w1, 0 - ldrb w2, [x0, #:lo12:.LANCHOR121] + ldrb w2, [x0, #:lo12:.LANCHOR123] ldr x0, [x28, 24] lsl w2, w2, 1 bl ftl_memset @@ -19796,9 +20983,9 @@ gc_do_copy_back: ldr x5, [x29, 104] movk w0, 0xf55f, lsl 16 ldr x4, [x29, 144] - ldrh w1, [x5, #:lo12:.LANCHOR72] + ldrh w1, [x5, #:lo12:.LANCHOR75] str w0, [x6] - ldrb w0, [x4, #:lo12:.LANCHOR73] + ldrb w0, [x4, #:lo12:.LANCHOR76] mul w1, w1, w0 ldr x0, [x28, 8] lsl w1, w1, 2 @@ -19808,29 +20995,29 @@ gc_do_copy_back: ldr x0, [x0, #:lo12:.LANCHOR10] ldr w0, [x0, 132] str w0, [x6, 8] -.L3148: - adrp x0, .LANCHOR69 +.L3328: + adrp x0, .LANCHOR72 ldr w5, [x29, 156] add x1, x29, 160 - ldr x4, [x0, #:lo12:.LANCHOR69] - adrp x0, .LANCHOR49 - add x3, x0, :lo12:.LANCHOR49 + ldr x4, [x0, #:lo12:.LANCHOR72] + adrp x0, .LANCHOR50 + add x3, x0, :lo12:.LANCHOR50 ldrb w2, [x4, x27] ubfiz x0, x2, 6, 8 add x0, x3, x0 add x3, x3, x2, lsl 6 str x0, [x1, w5, sxtw 3] mov w0, 2 - adrp x5, .LANCHOR149 + adrp x5, .LANCHOR154 strh w0, [x3, 50] ldr x0, [x29, 128] strb w23, [x3, 61] - ldrb w0, [x0, #:lo12:.LANCHOR68] + ldrb w0, [x0, #:lo12:.LANCHOR69] cmp w0, 3 - bne .L3154 + bne .L3334 udiv w0, w26, w0 - adrp x6, .LANCHOR105 - ldrh w6, [x6, #:lo12:.LANCHOR105] + adrp x6, .LANCHOR107 + ldrh w6, [x6, #:lo12:.LANCHOR107] add w1, w0, w19 add w0, w0, w0, lsl 1 add x1, x22, x1, sxtw 1 @@ -19842,18 +21029,18 @@ gc_do_copy_back: ldrh w6, [x3, 48] orr w1, w1, w21 str w1, [x3, 40] - ldr x3, [x5, #:lo12:.LANCHOR149] + ldr x3, [x5, #:lo12:.LANCHOR154] orr w0, w1, w0, lsl 24 str w0, [x3, x6, lsl 2] -.L3155: +.L3335: ldr x0, [x29, 112] ldr w0, [x0, #:lo12:.LANCHOR14] - tbz x0, 8, .L3158 + tbz x0, 8, .L3338 ldr x0, [x29, 120] ldrb w4, [x4, x27] ldr w1, [x29, 156] add x2, x0, x2, lsl 6 - add x0, x24, :lo12:.LANCHOR62 + add x0, x24, :lo12:.LANCHOR63 ldrb w3, [x0, 6] ldr x0, [x2, 24] ldrb w7, [x2, 1] @@ -19862,22 +21049,22 @@ gc_do_copy_back: str w0, [sp, 8] mov w0, 3 udiv w26, w26, w0 - adrp x0, .LC216 - add x0, x0, :lo12:.LC216 + adrp x0, .LC227 + add x0, x0, :lo12:.LC227 add w26, w26, w19 str w26, [sp] ldr w5, [x2, 40] mov w2, w23 bl printf -.L3158: +.L3338: ldr w0, [x29, 152] add w0, w0, 1 str w0, [x29, 152] - b .L3147 -.L3150: + b .L3327 +.L3330: lsl x0, x27, 2 str x0, [x29, 144] - ldr x0, [x6, #:lo12:.LANCHOR148] + ldr x0, [x6, #:lo12:.LANCHOR153] lsl x1, x27, 2 ldr w0, [x0, x1] mov w1, 1 @@ -19887,10 +21074,10 @@ gc_do_copy_back: ldr w0, [x28, 52] cmp w0, 512 ccmn w0, #1, 4, ne - bne .L3152 - adrp x0, .LANCHOR99 + bne .L3332 + adrp x0, .LANCHOR102 ldr w1, [x28, 40] - ldrh w4, [x0, #:lo12:.LANCHOR99] + ldrh w4, [x0, #:lo12:.LANCHOR102] mov w0, 21 sub w2, w0, w4 mov w0, 1 @@ -19898,146 +21085,164 @@ gc_do_copy_back: lsl w0, w0, w2 sub w0, w0, #1 and w0, w0, w1 - adrp x1, .LANCHOR98 - ldrb w2, [x1, #:lo12:.LANCHOR98] + adrp x1, .LANCHOR101 + ldrb w2, [x1, #:lo12:.LANCHOR101] mov x1, 0 udiv w0, w0, w2 bl ftl_sblk_dump ldr w0, [x28, 52] cmp w0, 512 ccmn w0, #1, 4, ne - bne .L3152 + bne .L3332 ldr x0, [x28, 24] mov w1, -1 str w1, [x0, 4] ldr w0, [x28, 52] cmp w0, 512 ccmp w0, w1, 4, ne - bne .L3152 - adrp x1, .LANCHOR214 + bne .L3332 + adrp x1, .LANCHOR218 adrp x0, .LC0 - mov w2, 716 - add x1, x1, :lo12:.LANCHOR214 + mov w2, 799 + add x1, x1, :lo12:.LANCHOR218 add x0, x0, :lo12:.LC0 bl printf -.L3152: +.L3332: ldr x0, [x28, 24] - adrp x1, .LANCHOR118 - ldr w1, [x1, #:lo12:.LANCHOR118] + adrp x1, .LANCHOR120 + ldr w1, [x1, #:lo12:.LANCHOR120] ldr w2, [x0, 4] cmp w2, w1 - bcc .L3153 + bcc .L3333 mov w1, -1 str w1, [x0, 4] -.L3153: - adrp x1, .LANCHOR147 +.L3333: + adrp x1, .LANCHOR152 lsl x3, x27, 2 ldr w2, [x0, 4] - ldr x1, [x1, #:lo12:.LANCHOR147] + ldr x1, [x1, #:lo12:.LANCHOR152] str w2, [x1, x3] ldr w1, [x28, 40] str w1, [x0, 8] - b .L3148 -.L3154: + b .L3328 +.L3334: cmp w0, 2 - bne .L3156 - adrp x0, .LANCHOR104 - adrp x1, .LANCHOR105 - ldrb w0, [x0, #:lo12:.LANCHOR104] - cbnz w0, .L3157 + bne .L3336 + adrp x0, .LANCHOR70 + adrp x1, .LANCHOR107 + ldrb w0, [x0, #:lo12:.LANCHOR70] + cbnz w0, .L3337 ldr w0, [x29, 156] - ldrh w1, [x1, #:lo12:.LANCHOR105] + ldrh w1, [x1, #:lo12:.LANCHOR107] add w0, w19, w0 add x0, x22, x0, sxtw 1 ldrh w0, [x0, 16] madd w0, w0, w1, w21 -.L3215: +.L3398: orr w0, w0, 33554432 str w0, [x3, 40] -.L3156: +.L3336: ldr x0, [x29, 120] add x0, x0, x2, lsl 6 ldrh w1, [x0, 48] ldr w3, [x0, 40] - ldr x0, [x5, #:lo12:.LANCHOR149] + ldr x0, [x5, #:lo12:.LANCHOR154] str w3, [x0, x1, lsl 2] - b .L3155 -.L3157: + b .L3335 +.L3337: add w0, w19, w26, lsr 1 - ldrh w1, [x1, #:lo12:.LANCHOR105] + ldrh w1, [x1, #:lo12:.LANCHOR107] add x0, x22, x0, sxtw 1 ldrh w0, [x0, 16] madd w0, w0, w1, w21 and w1, w26, 1 add w0, w0, w1 - b .L3215 -.L3160: - adrp x1, .LANCHOR70 - ldrb w3, [x1, #:lo12:.LANCHOR70] - ldr x1, [x29, 160] - cbz w3, .L3162 -.L3165: - strb wzr, [x1, 60] - b .L3163 -.L3162: + b .L3398 +.L3341: cmp w23, 1 - bne .L3164 - mov w3, 9 -.L3214: - strb w3, [x1, 60] -.L3163: + bne .L3343 + mov w2, 9 +.L3397: + strb w2, [x3, 60] +.L3342: + mov w2, w1 add x1, x0, 24 bl sblk_xlc_prog_pages -.L3166: - adrp x1, .LANCHOR70 +.L3345: + adrp x1, .LANCHOR73 ldrb w3, [x22, 9] - ldrb w1, [x1, #:lo12:.LANCHOR70] + ldrb w1, [x1, #:lo12:.LANCHOR73] and w0, w3, 65535 - cbz w1, .L3168 + cbz w1, .L3350 add w0, w0, w0, lsl 1 -.L3169: - adrp x1, .LANCHOR97 - add x24, x24, :lo12:.LANCHOR62 - ldr x1, [x1, #:lo12:.LANCHOR97] +.L3351: + adrp x1, .LANCHOR100 + add x24, x24, :lo12:.LANCHOR63 + ldr x1, [x1, #:lo12:.LANCHOR100] ldr w2, [x1, 52] add w2, w2, w0 str w2, [x1, 52] ldrh w1, [x24, 314] add w0, w0, w1 - adrp x1, .LANCHOR72 + adrp x1, .LANCHOR75 and w0, w0, 65535 strh w0, [x24, 314] - ldrh w1, [x1, #:lo12:.LANCHOR72] + ldrh w1, [x1, #:lo12:.LANCHOR75] mul w1, w1, w3 cmp w0, w1 - blt .L3170 + blt .L3352 ldr x0, [x29, 136] ldr x0, [x0, #:lo12:.LANCHOR10] strh wzr, [x0, 86] -.L3170: +.L3352: bl gc_write_completed - b .L3127 -.L3164: + b .L3307 +.L3343: cmp w23, 2 - bne .L3165 - mov w3, 13 - b .L3214 -.L3167: + bne .L3344 + mov w2, 13 + b .L3397 +.L3340: + adrp x2, .LANCHOR70 + ldrb w2, [x2, #:lo12:.LANCHOR70] + cbz w2, .L3355 + adrp x2, .LANCHOR71 + ldrb w2, [x2, #:lo12:.LANCHOR71] + cbnz w2, .L3347 +.L3346: + sub w1, w3, #1 +.L3348: + cmp w2, w1 + blt .L3349 + ldr x0, [x0, w1, sxtw 3] + mov w1, -1 + strb w1, [x0] + mov w1, w3 + ldr x0, [x29, 160] + bl sblk_prog_page + b .L3345 +.L3355: + mov w2, 0 + b .L3346 +.L3347: + bl sblk_3d_mlc_prog_pages + b .L3345 +.L3349: ldr x4, [x0, w2, sxtw 3] add w2, w2, 1 ldr x5, [x0, w2, sxtw 3] and w2, w2, 65535 ldrb w5, [x5, 1] strb w5, [x4] - b .L3161 -.L3168: - adrp x1, .LANCHOR104 - ldrb w2, [x1, #:lo12:.LANCHOR104] + b .L3348 +.L3350: + adrp x1, .LANCHOR70 + ldrb w2, [x1, #:lo12:.LANCHOR70] mov w1, w0 ubfiz w0, w0, 1, 15 cmp w2, 0 csel w0, w0, w1, ne - b .L3169 + b .L3351 .size gc_do_copy_back, .-gc_do_copy_back .section .text.zftl_do_gc,"ax",@progbits .align 2 @@ -20045,231 +21250,247 @@ gc_do_copy_back: .type zftl_do_gc, %function zftl_do_gc: sub sp, sp, #128 - adrp x1, .LANCHOR94 + adrp x1, .LANCHOR97 stp x29, x30, [sp, 16] add x29, sp, 16 - stp x21, x22, [sp, 48] stp x19, x20, [sp, 32] - adrp x19, .LANCHOR145 - ldrh w22, [x1, #:lo12:.LANCHOR94] - adrp x1, .LANCHOR90 + adrp x19, .LANCHOR150 + stp x21, x22, [sp, 48] + ldrh w22, [x1, #:lo12:.LANCHOR97] + adrp x1, .LANCHOR93 stp x23, x24, [sp, 64] adrp x23, .LANCHOR10 - ldrh w21, [x1, #:lo12:.LANCHOR90] + ldrh w21, [x1, #:lo12:.LANCHOR93] stp x25, x26, [sp, 80] - ldrb w1, [x19, #:lo12:.LANCHOR145] + ldrb w1, [x19, #:lo12:.LANCHOR150] add w21, w22, w21 stp x27, x28, [sp, 96] - ldr x24, [x23, #:lo12:.LANCHOR10] + ldr x20, [x23, #:lo12:.LANCHOR10] cmp w1, 6 - bhi .L3323 - mov w26, w0 + bhi .L3507 + mov w25, w0 and w21, w21, 65535 - adrp x0, .L3219 - add x0, x0, :lo12:.L3219 + adrp x0, .L3402 + add x0, x0, :lo12:.L3402 ldrh w0, [x0,w1,uxtw #1] - adr x1, .Lrtx3219 + adr x1, .Lrtx3402 add x0, x1, w0, sxth #2 br x0 -.Lrtx3219: +.Lrtx3402: .section .rodata.zftl_do_gc,"a",@progbits .align 0 .align 2 -.L3219: - .2byte (.L3218 - .Lrtx3219) / 4 - .2byte (.L3220 - .Lrtx3219) / 4 - .2byte (.L3221 - .Lrtx3219) / 4 - .2byte (.L3222 - .Lrtx3219) / 4 - .2byte (.L3223 - .Lrtx3219) / 4 - .2byte (.L3224 - .Lrtx3219) / 4 - .2byte (.L3225 - .Lrtx3219) / 4 +.L3402: + .2byte (.L3401 - .Lrtx3402) / 4 + .2byte (.L3403 - .Lrtx3402) / 4 + .2byte (.L3404 - .Lrtx3402) / 4 + .2byte (.L3405 - .Lrtx3402) / 4 + .2byte (.L3406 - .Lrtx3402) / 4 + .2byte (.L3407 - .Lrtx3402) / 4 + .2byte (.L3408 - .Lrtx3402) / 4 .section .text.zftl_do_gc -.L3224: - adrp x20, .LANCHOR62 - add x24, x20, :lo12:.LANCHOR62 +.L3407: + adrp x20, .LANCHOR63 + add x24, x20, :lo12:.LANCHOR63 mov w22, 0 -.L3226: +.L3409: bl gc_check_data_one_wl - cbz w0, .L3319 + cbz w0, .L3503 ldr x0, [x23, #:lo12:.LANCHOR10] - add x20, x20, :lo12:.LANCHOR62 + add x20, x20, :lo12:.LANCHOR63 strh wzr, [x20, 56] ldrh w0, [x0, 80] bl ftl_free_sblk - adrp x2, .LANCHOR97 + adrp x2, .LANCHOR100 ldr x1, [x23, #:lo12:.LANCHOR10] mov w0, -1 - ldr x2, [x2, #:lo12:.LANCHOR97] + ldr x2, [x2, #:lo12:.LANCHOR100] strh w0, [x1, 80] strh w0, [x2, 126] strh w0, [x1, 130] ldr x0, [x20, 8] bl buf_free - strb wzr, [x19, #:lo12:.LANCHOR145] + strb wzr, [x19, #:lo12:.LANCHOR150] str xzr, [x20, 8] - b .L3387 -.L3218: - adrp x0, .LANCHOR92 - adrp x28, .LANCHOR85 - adrp x27, .LANCHOR83 - ldrh w1, [x24, 80] - ldrh w0, [x0, #:lo12:.LANCHOR92] - ldrh w25, [x28, #:lo12:.LANCHOR85] + b .L3574 +.L3401: + adrp x0, .LANCHOR95 + adrp x27, .LANCHOR88 + ldrh w2, [x20, 80] + ldrh w0, [x0, #:lo12:.LANCHOR95] + ldrh w24, [x27, #:lo12:.LANCHOR88] add w22, w22, w0 - ldrh w0, [x27, #:lo12:.LANCHOR83] + adrp x0, .LANCHOR86 + str x0, [x29, 104] and w22, w22, 65535 - add w25, w25, w0 - mov w0, 65535 - and w25, w25, 65535 - cmp w1, w0 - beq .L3227 - cbnz w26, .L3228 - adrp x0, .LANCHOR74 - ldrh w0, [x0, #:lo12:.LANCHOR74] + ldrh w1, [x0, #:lo12:.LANCHOR86] + add w24, w24, w1 + mov w1, 65535 + and w24, w24, 65535 + cmp w2, w1 + beq .L3410 + cbnz w25, .L3411 + adrp x0, .LANCHOR77 + ldrh w0, [x0, #:lo12:.LANCHOR77] cmp w21, w0, lsl 1 - blt .L3228 -.L3323: + blt .L3411 +.L3507: mov w20, 16 - b .L3216 -.L3228: - adrp x5, .LANCHOR82 + b .L3399 +.L3411: + adrp x5, .LANCHOR85 mov w1, 5 - adrp x26, .LANCHOR71 - ldrh w0, [x5, #:lo12:.LANCHOR82] + adrp x25, .LANCHOR74 + ldrh w0, [x5, #:lo12:.LANCHOR85] add w0, w0, 1 and w0, w0, 65535 - strh w0, [x5, #:lo12:.LANCHOR82] + strh w0, [x5, #:lo12:.LANCHOR85] bl zftl_get_gc_node and w3, w0, 65535 mov w1, 65535 cmp w3, w1 - beq .L3229 + beq .L3412 adrp x4, .LANCHOR9 ubfiz x3, x3, 1, 16 - adrp x1, .LANCHOR146 - mov x20, x1 + adrp x1, .LANCHOR151 + mov x26, x1 ldr x4, [x4, #:lo12:.LANCHOR9] - ldr w2, [x1, #:lo12:.LANCHOR146] + ldr w2, [x1, #:lo12:.LANCHOR151] add w2, w2, 1 - str w2, [x1, #:lo12:.LANCHOR146] + str w2, [x1, #:lo12:.LANCHOR151] ldrh w3, [x4, x3] - adrp x4, .LANCHOR80 - ldrh w4, [x4, #:lo12:.LANCHOR80] + adrp x4, .LANCHOR83 + ldrh w4, [x4, #:lo12:.LANCHOR83] cmp w4, w3 - bcs .L3230 + bcs .L3413 adrp x1, .LANCHOR6 ldrh w1, [x1, #:lo12:.LANCHOR6] cmp w2, w1, lsr 4 - bls .L3229 - adrp x1, .LANCHOR86 - ldrh w1, [x1, #:lo12:.LANCHOR86] + bls .L3412 + adrp x1, .LANCHOR89 + ldrh w1, [x1, #:lo12:.LANCHOR89] cmp w1, w3 - bls .L3229 -.L3230: - ldrb w2, [x26, #:lo12:.LANCHOR71] + bls .L3412 +.L3413: + ldrb w2, [x25, #:lo12:.LANCHOR74] mov w1, 0 bl gc_add_sblk - cbz w0, .L3231 + cbz w0, .L3414 mov w0, 1 - str wzr, [x20, #:lo12:.LANCHOR146] - strb w0, [x19, #:lo12:.LANCHOR145] - b .L3323 -.L3229: - strh wzr, [x5, #:lo12:.LANCHOR82] -.L3231: + str wzr, [x26, #:lo12:.LANCHOR151] + strb w0, [x19, #:lo12:.LANCHOR150] + b .L3507 +.L3412: + strh wzr, [x5, #:lo12:.LANCHOR85] +.L3414: cmp w22, 15 - bls .L3325 - adrp x0, .LANCHOR87 - ldrh w1, [x0, #:lo12:.LANCHOR87] - adrp x0, .LANCHOR88 - ldrh w0, [x0, #:lo12:.LANCHOR88] + bls .L3509 + adrp x0, .LANCHOR90 + ldrh w1, [x0, #:lo12:.LANCHOR90] + adrp x0, .LANCHOR91 + ldrh w0, [x0, #:lo12:.LANCHOR91] cmp w1, w0 - bhi .L3325 - cmp w25, 0 - cset w20, eq - add w20, w20, 1 -.L3232: + bhi .L3509 + cmp w24, 0 + cset w24, eq + add w24, w24, 1 +.L3415: adrp x0, .LANCHOR14 ldr w0, [x0, #:lo12:.LANCHOR14] - tbz x0, 8, .L3233 + tbz x0, 8, .L3416 ldr x0, [x23, #:lo12:.LANCHOR10] mov w4, w22 - ldrb w2, [x26, #:lo12:.LANCHOR71] + ldrb w2, [x25, #:lo12:.LANCHOR74] mov w3, w21 - mov w1, 1850 + mov w1, 1935 ldrh w7, [x0, 122] ldrh w6, [x0, 120] ldrh w5, [x0, 124] - ldrh w0, [x24, 80] + ldrh w0, [x20, 80] str w0, [sp] - adrp x0, .LC217 - add x0, x0, :lo12:.LC217 + adrp x0, .LC228 + add x0, x0, :lo12:.LC228 bl printf -.L3233: - ldrb w0, [x26, #:lo12:.LANCHOR71] +.L3416: + ldrb w0, [x25, #:lo12:.LANCHOR74] mov w2, 1 - mov w1, w20 + mov w1, w24 bl gc_search_src_blk cmp w0, 0 - ble .L3234 -.L3235: + ble .L3417 +.L3418: mov w0, 1 -.L3389: - strb w0, [x19, #:lo12:.LANCHOR145] - b .L3323 -.L3325: - mov w20, 2 - b .L3232 -.L3234: - ldrb w0, [x26, #:lo12:.LANCHOR71] +.L3576: + strb w0, [x19, #:lo12:.LANCHOR150] + b .L3507 +.L3509: + mov w24, 2 + b .L3415 +.L3417: + ldrb w0, [x25, #:lo12:.LANCHOR74] mov w2, 1 mov w1, 3 bl gc_search_src_blk cmp w0, 0 - bgt .L3235 - b .L3323 -.L3227: - cmp w26, 1 - bne .L3237 + bgt .L3418 + b .L3507 +.L3410: + adrp x28, .LANCHOR14 + ldr w0, [x28, #:lo12:.LANCHOR14] + tbz x0, 8, .L3420 + adrp x0, .LANCHOR74 + ldrh w7, [x20, 122] + ldrh w6, [x20, 120] + mov w4, w22 + ldrh w5, [x20, 124] + mov w3, w21 + ldrb w2, [x0, #:lo12:.LANCHOR74] + mov w1, 1947 + str w25, [sp] + adrp x0, .LC228 + add x0, x0, :lo12:.LC228 + bl printf +.L3420: + cmp w25, 1 + bne .L3421 bl gc_scan_static_data - adrp x24, .LANCHOR71 + adrp x26, .LANCHOR74 ldr x0, [x23, #:lo12:.LANCHOR10] ldrh w0, [x0, 122] - cbz w0, .L3238 -.L3239: + cbz w0, .L3422 +.L3423: mov w0, 1 - strb w0, [x24, #:lo12:.LANCHOR71] - b .L3389 -.L3238: + strb w0, [x26, #:lo12:.LANCHOR74] + b .L3576 +.L3422: bl gc_static_wearleveling mov w20, w0 - cbnz w0, .L3239 - cbnz w22, .L3240 -.L3244: + cbnz w0, .L3423 + cbnz w22, .L3424 +.L3428: mov w20, 16 -.L3241: +.L3425: ldr x0, [x23, #:lo12:.LANCHOR10] - adrp x3, .LANCHOR71 + adrp x3, .LANCHOR74 mov w1, 1 mov x23, x3 - strb w1, [x3, #:lo12:.LANCHOR71] + strb w1, [x3, #:lo12:.LANCHOR74] ldrh w5, [x0, 124] - cbz w5, .L3249 - strb w1, [x19, #:lo12:.LANCHOR145] - adrp x1, .LANCHOR14 - strb wzr, [x3, #:lo12:.LANCHOR71] - ldr w1, [x1, #:lo12:.LANCHOR14] - tbz x1, 8, .L3216 + cbz w5, .L3433 + strb w1, [x19, #:lo12:.LANCHOR150] + ldr w1, [x28, #:lo12:.LANCHOR14] + strb wzr, [x3, #:lo12:.LANCHOR74] + tbz x1, 8, .L3399 ldrh w7, [x0, 122] mov w4, w22 ldrh w6, [x0, 120] mov w3, w21 - adrp x0, .LC218 + adrp x0, .LC229 mov w2, 0 - mov w1, 1948 - add x0, x0, :lo12:.LC218 + mov w1, 2037 + add x0, x0, :lo12:.LC229 bl printf -.L3216: +.L3399: mov w0, w20 ldp x19, x20, [sp, 32] ldp x21, x22, [sp, 48] @@ -20279,663 +21500,662 @@ zftl_do_gc: ldp x29, x30, [sp, 16] add sp, sp, 128 ret -.L3240: - cmp w21, w25 - adrp x1, .LANCHOR87 - adrp x2, .LANCHOR84 - bcs .L3242 - ldrh w0, [x2, #:lo12:.LANCHOR84] - cmp w21, w0, lsl 1 - blt .L3243 -.L3242: - ldrh w2, [x2, #:lo12:.LANCHOR84] - add w0, w21, w25 - cmp w0, w2, lsl 1 - blt .L3243 - adrp x0, .LANCHOR88 - ldrh w2, [x1, #:lo12:.LANCHOR87] - ldrh w0, [x0, #:lo12:.LANCHOR88] +.L3424: + cmp w21, w24 + adrp x1, .LANCHOR90 + adrp x2, .LANCHOR87 + bcs .L3426 + ldrh w0, [x2, #:lo12:.LANCHOR87] + cmp w0, w21 + bhi .L3427 +.L3426: + ldrh w2, [x2, #:lo12:.LANCHOR87] + add w0, w21, w24 + cmp w0, w2 + blt .L3427 + adrp x0, .LANCHOR91 + ldrh w2, [x1, #:lo12:.LANCHOR90] + ldrh w0, [x0, #:lo12:.LANCHOR91] cmp w2, w0 - bcc .L3244 -.L3243: - adrp x5, .LANCHOR146 + bcc .L3428 +.L3427: + adrp x5, .LANCHOR151 adrp x2, .LANCHOR6 mov w6, 1 - strb w6, [x24, #:lo12:.LANCHOR71] - ldr w0, [x5, #:lo12:.LANCHOR146] + strb w6, [x26, #:lo12:.LANCHOR74] + ldr w0, [x5, #:lo12:.LANCHOR151] ldrh w2, [x2, #:lo12:.LANCHOR6] add w0, w0, 1 - str w0, [x5, #:lo12:.LANCHOR146] + str w0, [x5, #:lo12:.LANCHOR151] cmp w0, w2, lsr 5 - bls .L3245 - ldrh w0, [x1, #:lo12:.LANCHOR87] + bls .L3429 + ldrh w0, [x1, #:lo12:.LANCHOR90] cmp w0, w22 - bls .L3245 + bls .L3429 mov w1, 5 mov w0, 0 bl zftl_get_gc_node and w0, w0, 65535 mov w1, 65535 cmp w0, w1 - beq .L3244 + beq .L3428 adrp x1, .LANCHOR9 ubfiz x0, x0, 1, 16 - adrp x2, .LANCHOR73 + adrp x2, .LANCHOR76 ldr x1, [x1, #:lo12:.LANCHOR9] - ldrb w2, [x2, #:lo12:.LANCHOR73] + ldrb w2, [x2, #:lo12:.LANCHOR76] ldrh w1, [x1, x0] - adrp x0, .LANCHOR80 - ldrh w0, [x0, #:lo12:.LANCHOR80] + adrp x0, .LANCHOR83 + ldrh w0, [x0, #:lo12:.LANCHOR83] mul w0, w0, w2 cmp w1, w0 - bgt .L3244 + bgt .L3428 mov w0, w6 - str wzr, [x5, #:lo12:.LANCHOR146] + str wzr, [x5, #:lo12:.LANCHOR151] mov w2, 4 mov w1, 2 -.L3377: +.L3564: bl gc_search_src_blk and w0, w0, 65535 - cbz w0, .L3244 - b .L3235 -.L3245: - adrp x0, .LANCHOR88 - ldrh w1, [x1, #:lo12:.LANCHOR87] - ldrh w0, [x0, #:lo12:.LANCHOR88] + cbz w0, .L3428 + b .L3418 +.L3429: + adrp x0, .LANCHOR91 + ldrh w1, [x1, #:lo12:.LANCHOR90] + ldrh w0, [x0, #:lo12:.LANCHOR91] cmp w1, w0 - bcc .L3247 + bcc .L3431 mov w2, 1 mov w1, 2 mov w0, w2 - b .L3377 -.L3247: - ldrh w0, [x28, #:lo12:.LANCHOR85] - cbnz w0, .L3248 - ldrh w0, [x27, #:lo12:.LANCHOR83] + b .L3564 +.L3431: + ldrh w0, [x27, #:lo12:.LANCHOR88] + cbnz w0, .L3432 + ldr x0, [x29, 104] + ldrh w0, [x0, #:lo12:.LANCHOR86] cmp w0, 8 - bls .L3241 -.L3248: + bls .L3425 +.L3432: mov w1, 1 mov w2, 4 mov w0, w1 - b .L3377 -.L3237: - adrp x0, .LANCHOR74 - ldrh w0, [x0, #:lo12:.LANCHOR74] + b .L3564 +.L3421: + adrp x0, .LANCHOR77 + ldrh w0, [x0, #:lo12:.LANCHOR77] cmp w0, w21 - bcc .L3323 - b .L3244 -.L3249: - adrp x2, .LANCHOR74 - mov x24, x2 - ldrh w4, [x2, #:lo12:.LANCHOR74] + bcc .L3507 + b .L3428 +.L3433: + adrp x2, .LANCHOR77 + mov x26, x2 + ldrh w4, [x2, #:lo12:.LANCHOR77] cmp w21, w4 - bcs .L3250 - cbz w22, .L3251 + bcs .L3434 + cbz w22, .L3435 cmp w22, 16 - bls .L3252 - adrp x0, .LANCHOR87 - ldrh w2, [x0, #:lo12:.LANCHOR87] - adrp x0, .LANCHOR88 - ldrh w0, [x0, #:lo12:.LANCHOR88] + bls .L3436 + adrp x0, .LANCHOR90 + ldrh w2, [x0, #:lo12:.LANCHOR90] + adrp x0, .LANCHOR91 + ldrh w0, [x0, #:lo12:.LANCHOR91] cmp w2, w0 - bhi .L3252 + bhi .L3436 str x3, [x29, 104] mov w2, 4 mov w0, w1 bl gc_search_src_blk ldr x3, [x29, 104] tst w0, 65535 - bne .L3253 - ldrb w0, [x3, #:lo12:.LANCHOR71] + bne .L3437 + ldrb w0, [x3, #:lo12:.LANCHOR74] mov w2, 4 mov w1, 3 -.L3379: +.L3570: bl gc_search_src_blk and w0, w0, 65535 -.L3254: - cbnz w0, .L3256 - b .L3216 -.L3253: +.L3438: + cbnz w0, .L3440 + b .L3399 +.L3437: mov w1, 5 mov w0, 0 bl zftl_get_gc_node and w3, w0, 65535 mov w1, 65535 cmp w3, w1 - beq .L3256 + beq .L3440 adrp x4, .LANCHOR9 ubfiz x3, x3, 1, 16 - adrp x1, .LANCHOR146 + adrp x1, .LANCHOR151 mov x21, x1 ldr x4, [x4, #:lo12:.LANCHOR9] - ldr w2, [x1, #:lo12:.LANCHOR146] + ldr w2, [x1, #:lo12:.LANCHOR151] add w2, w2, 1 - str w2, [x1, #:lo12:.LANCHOR146] + str w2, [x1, #:lo12:.LANCHOR151] ldrh w3, [x4, x3] - adrp x4, .LANCHOR80 - ldrh w4, [x4, #:lo12:.LANCHOR80] + adrp x4, .LANCHOR83 + ldrh w4, [x4, #:lo12:.LANCHOR83] cmp w4, w3 - bcs .L3257 + bcs .L3441 adrp x1, .LANCHOR6 ldrh w1, [x1, #:lo12:.LANCHOR6] cmp w2, w1, lsr 4 - bls .L3256 - adrp x1, .LANCHOR86 - ldrh w1, [x1, #:lo12:.LANCHOR86] + bls .L3440 + adrp x1, .LANCHOR89 + ldrh w1, [x1, #:lo12:.LANCHOR89] cmp w1, w3 - bls .L3256 -.L3257: - ldrb w2, [x23, #:lo12:.LANCHOR71] + bls .L3440 +.L3441: + ldrb w2, [x23, #:lo12:.LANCHOR74] mov w1, 0 bl gc_add_sblk - str wzr, [x21, #:lo12:.LANCHOR146] - adrp x0, .LANCHOR116 + str wzr, [x21, #:lo12:.LANCHOR151] + adrp x0, .LANCHOR118 mov w1, 1 - str w1, [x0, #:lo12:.LANCHOR116] -.L3256: + str w1, [x0, #:lo12:.LANCHOR118] +.L3440: mov w0, 1 - strb w0, [x19, #:lo12:.LANCHOR145] - b .L3216 -.L3252: + strb w0, [x19, #:lo12:.LANCHOR150] + b .L3399 +.L3436: mov w2, 1 mov w0, w2 mov w1, 2 -.L3386: +.L3573: bl gc_search_src_blk tst w0, 65535 - bne .L3256 + bne .L3440 mov w2, 2 -.L3382: - mov w1, 3 - ldrb w0, [x23, #:lo12:.LANCHOR71] - b .L3379 -.L3251: - adrp x1, .LANCHOR14 - strb wzr, [x3, #:lo12:.LANCHOR71] - ldr w1, [x1, #:lo12:.LANCHOR14] - tbz x1, 8, .L3259 + b .L3566 +.L3435: + ldr w1, [x28, #:lo12:.LANCHOR14] + strb wzr, [x3, #:lo12:.LANCHOR74] + tbz x1, 8, .L3443 ldrh w7, [x0, 122] mov w5, 0 ldrh w6, [x0, 120] mov w4, 0 - adrp x0, .LC218 + adrp x0, .LC229 mov w3, w21 mov w2, 0 - mov w1, 1978 - add x0, x0, :lo12:.LC218 + mov w1, 2067 + add x0, x0, :lo12:.LC229 bl printf -.L3259: +.L3443: cmp w21, 16 - bls .L3260 + bls .L3444 mov w2, 4 - b .L3382 -.L3260: +.L3566: + mov w1, 3 + ldrb w0, [x23, #:lo12:.LANCHOR74] + b .L3570 +.L3444: mov w2, 1 - ldrb w0, [x23, #:lo12:.LANCHOR71] + ldrb w0, [x23, #:lo12:.LANCHOR74] mov w1, w2 - b .L3386 -.L3250: - cmp w26, 1 - bne .L3216 + b .L3573 +.L3434: + cmp w25, 1 + bne .L3399 cmp w21, w4, lsl 1 - bge .L3261 - cmp w25, w22, lsr 1 - bcs .L3262 - adrp x0, .LANCHOR87 - ldrh w1, [x0, #:lo12:.LANCHOR87] - adrp x0, .LANCHOR88 - ldrh w0, [x0, #:lo12:.LANCHOR88] + bge .L3445 + cmp w24, w22, lsr 1 + bcs .L3446 + adrp x0, .LANCHOR90 + ldrh w1, [x0, #:lo12:.LANCHOR90] + adrp x0, .LANCHOR91 + ldrh w0, [x0, #:lo12:.LANCHOR91] cmp w1, w0 - bcs .L3262 - adrp x0, .LANCHOR84 - ldrh w0, [x0, #:lo12:.LANCHOR84] + bcs .L3446 + adrp x0, .LANCHOR87 + ldrh w0, [x0, #:lo12:.LANCHOR87] lsr w0, w0, 2 - strh w0, [x2, #:lo12:.LANCHOR74] - b .L3216 -.L3262: + strh w0, [x2, #:lo12:.LANCHOR77] + b .L3399 +.L3446: mov w1, 5 mov w0, 0 bl zftl_get_gc_node - and w26, w0, 65535 + and w25, w0, 65535 mov w1, 65535 - mov w3, w26 - cmp w26, w1 - bne .L3263 -.L3268: + mov w28, w25 + cmp w25, w1 + bne .L3447 +.L3452: cmp w22, 1 - bhi .L3264 -.L3265: - cmp w21, w25 - adrp x21, .LANCHOR84 - bcs .L3272 - strb wzr, [x23, #:lo12:.LANCHOR71] + bhi .L3448 +.L3449: + cmp w21, w24 + adrp x21, .LANCHOR87 + bcs .L3456 + strb wzr, [x23, #:lo12:.LANCHOR74] mov w0, 4 bl zftl_get_gc_node.part.9 and w0, w0, 65535 mov w1, 65535 cmp w0, w1 - beq .L3272 + beq .L3456 adrp x1, .LANCHOR9 ubfiz x0, x0, 1, 16 - adrp x2, .LANCHOR73 + adrp x2, .LANCHOR76 ldr x1, [x1, #:lo12:.LANCHOR9] - ldrb w2, [x2, #:lo12:.LANCHOR73] + ldrb w2, [x2, #:lo12:.LANCHOR76] ldrh w1, [x1, x0] - adrp x0, .LANCHOR80 - ldrh w0, [x0, #:lo12:.LANCHOR80] + adrp x0, .LANCHOR83 + ldrh w0, [x0, #:lo12:.LANCHOR83] mul w0, w0, w2 cmp w1, w0, lsr 1 - ble .L3274 -.L3272: - ldrh w0, [x21, #:lo12:.LANCHOR84] + ble .L3458 +.L3456: + ldrh w0, [x21, #:lo12:.LANCHOR87] lsr w0, w0, 2 - strh w0, [x24, #:lo12:.LANCHOR74] - b .L3216 -.L3263: - adrp x2, .LANCHOR146 - adrp x4, .LANCHOR6 - uxtw x26, w26 - ldr w1, [x2, #:lo12:.LANCHOR146] - ldrh w4, [x4, #:lo12:.LANCHOR6] + strh w0, [x26, #:lo12:.LANCHOR77] + b .L3399 +.L3447: + adrp x2, .LANCHOR151 + adrp x3, .LANCHOR6 + uxtw x25, w25 + ldr w1, [x2, #:lo12:.LANCHOR151] + ldrh w3, [x3, #:lo12:.LANCHOR6] add w1, w1, 1 - str w1, [x2, #:lo12:.LANCHOR146] - cmp w1, w4, lsr 4 - adrp x4, .LANCHOR9 - bls .L3266 - ldr x1, [x4, #:lo12:.LANCHOR9] - str wzr, [x2, #:lo12:.LANCHOR146] - ldrh w2, [x1, x26, lsl 1] - adrp x1, .LANCHOR86 - ldrh w1, [x1, #:lo12:.LANCHOR86] + str w1, [x2, #:lo12:.LANCHOR151] + cmp w1, w3, lsr 4 + adrp x3, .LANCHOR9 + bls .L3450 + ldr x1, [x3, #:lo12:.LANCHOR9] + str wzr, [x2, #:lo12:.LANCHOR151] + ldrh w2, [x1, x25, lsl 1] + adrp x1, .LANCHOR89 + ldrh w1, [x1, #:lo12:.LANCHOR89] cmp w2, w1 - bcs .L3266 - str x4, [x29, 96] + bcs .L3450 + str x3, [x29, 96] mov w2, 1 - str w3, [x29, 104] mov w1, 0 bl gc_add_sblk - ldr w3, [x29, 104] - ldr x4, [x29, 96] - cbnz w0, .L3256 -.L3266: - ldr x0, [x4, #:lo12:.LANCHOR9] - ldrh w1, [x0, x26, lsl 1] - adrp x0, .LANCHOR80 - ldrh w0, [x0, #:lo12:.LANCHOR80] + ldr x3, [x29, 96] + cbnz w0, .L3440 +.L3450: + ldr x0, [x3, #:lo12:.LANCHOR9] + ldrh w1, [x0, x25, lsl 1] + adrp x0, .LANCHOR83 + ldrh w0, [x0, #:lo12:.LANCHOR83] cmp w1, w0, lsr 1 - bhi .L3267 + bhi .L3451 mov w2, 0 mov w1, 1 - mov w0, w3 + mov w0, w28 bl gc_add_sblk - b .L3256 -.L3267: - ldrh w2, [x27, #:lo12:.LANCHOR83] - ldrh w0, [x28, #:lo12:.LANCHOR85] + b .L3440 +.L3451: + ldr x2, [x29, 104] + ldrh w0, [x27, #:lo12:.LANCHOR88] + ldrh w2, [x2, #:lo12:.LANCHOR86] add w0, w0, w2 - adrp x2, .LANCHOR84 - ldrh w2, [x2, #:lo12:.LANCHOR84] + adrp x2, .LANCHOR87 + ldrh w2, [x2, #:lo12:.LANCHOR87] cmp w0, w2, lsl 1 - ble .L3268 - adrp x0, .LANCHOR86 - ldrh w0, [x0, #:lo12:.LANCHOR86] + ble .L3452 + adrp x0, .LANCHOR89 + ldrh w0, [x0, #:lo12:.LANCHOR89] cmp w0, w1 - bcc .L3265 - b .L3268 -.L3264: + bcc .L3449 + b .L3452 +.L3448: mov w1, 1 - strb w1, [x23, #:lo12:.LANCHOR71] + strb w1, [x23, #:lo12:.LANCHOR74] cmp w22, 16 - bls .L3269 - adrp x0, .LANCHOR87 - ldrh w2, [x0, #:lo12:.LANCHOR87] - adrp x0, .LANCHOR88 - ldrh w0, [x0, #:lo12:.LANCHOR88] + bls .L3453 + adrp x0, .LANCHOR90 + ldrh w2, [x0, #:lo12:.LANCHOR90] + adrp x0, .LANCHOR91 + ldrh w0, [x0, #:lo12:.LANCHOR91] cmp w2, w0 - bhi .L3269 + bhi .L3453 mov w2, 4 mov w0, w1 bl gc_search_src_blk ands w0, w0, 65535 - bne .L3270 + bne .L3454 mov w2, 4 -.L3378: - ldrb w0, [x23, #:lo12:.LANCHOR71] +.L3565: + ldrb w0, [x23, #:lo12:.LANCHOR74] mov w1, 3 bl gc_search_src_blk and w0, w0, 65535 -.L3270: - adrp x1, .LANCHOR84 - cmp w21, w25, lsr 1 - ldrh w1, [x1, #:lo12:.LANCHOR84] - bls .L3380 +.L3454: + adrp x1, .LANCHOR87 + cmp w21, w24, lsr 1 + ldrh w1, [x1, #:lo12:.LANCHOR87] + bls .L3568 lsr w1, w1, 2 -.L3381: - strh w1, [x24, #:lo12:.LANCHOR74] - b .L3254 -.L3269: +.L3569: + strh w1, [x26, #:lo12:.LANCHOR77] + b .L3438 +.L3453: mov w2, 1 mov w1, 2 mov w0, w2 bl gc_search_src_blk ands w0, w0, 65535 - bne .L3270 + bne .L3454 mov w2, 2 - b .L3378 -.L3274: + b .L3565 +.L3458: mov w1, 3 mov w2, 4 mov w0, 0 bl gc_search_src_blk - ldrh w1, [x21, #:lo12:.LANCHOR84] + ldrh w1, [x21, #:lo12:.LANCHOR87] and w0, w0, 65535 -.L3380: +.L3568: lsr w1, w1, 1 - b .L3381 -.L3261: - adrp x0, .LANCHOR84 + b .L3569 +.L3445: + adrp x0, .LANCHOR87 mov w20, 0 - ldrh w0, [x0, #:lo12:.LANCHOR84] + ldrh w0, [x0, #:lo12:.LANCHOR87] lsr w0, w0, 2 - strh w0, [x2, #:lo12:.LANCHOR74] - b .L3216 -.L3220: - adrp x7, .LANCHOR62 + strh w0, [x2, #:lo12:.LANCHOR77] + b .L3399 +.L3403: + adrp x7, .LANCHOR63 mov w0, 65535 - ldrh w1, [x7, #:lo12:.LANCHOR62] + ldrh w1, [x7, #:lo12:.LANCHOR63] cmp w1, w0 - bne .L3275 + bne .L3459 bl gc_get_src_blk - strh w0, [x7, #:lo12:.LANCHOR62] -.L3275: - ldrh w3, [x7, #:lo12:.LANCHOR62] + strh w0, [x7, #:lo12:.LANCHOR63] +.L3459: + ldrh w3, [x7, #:lo12:.LANCHOR63] mov w0, 65535 - add x1, x7, :lo12:.LANCHOR62 + add x1, x7, :lo12:.LANCHOR63 cmp w3, w0 - beq .L3388 + beq .L3575 adrp x0, .LANCHOR7 ldrh w5, [x1, 56] uxtw x4, w3 ldr x2, [x0, #:lo12:.LANCHOR7] add x2, x2, x4, lsl 2 - cbz w5, .L3277 + cbz w5, .L3461 add x1, x1, 58 mov w0, 0 -.L3279: +.L3463: ldrh w6, [x1], 2 cmp w6, w3 - bne .L3278 -.L3283: - adrp x0, .LANCHOR62 + bne .L3462 +.L3467: + adrp x0, .LANCHOR63 mov w1, -1 - strh w1, [x0, #:lo12:.LANCHOR62] - b .L3323 -.L3278: + strh w1, [x0, #:lo12:.LANCHOR63] + b .L3507 +.L3462: add w0, w0, 1 and w0, w0, 65535 cmp w5, w0 - bne .L3279 -.L3277: + bne .L3463 +.L3461: ldrb w0, [x2, 2] and w1, w0, 224 cmp w1, 224 - beq .L3280 + beq .L3464 tst w0, 192 - bne .L3281 -.L3280: + bne .L3465 +.L3464: adrp x0, .LANCHOR9 ldr x0, [x0, #:lo12:.LANCHOR9] ldrh w0, [x0, x4, lsl 1] - cbz w0, .L3283 - mov w2, 2211 - adrp x1, .LANCHOR216 + cbz w0, .L3467 + mov w2, 2300 + adrp x1, .LANCHOR220 adrp x0, .LC0 - add x1, x1, :lo12:.LANCHOR216 + add x1, x1, :lo12:.LANCHOR220 add x0, x0, :lo12:.LC0 bl printf - b .L3283 -.L3281: + b .L3467 +.L3465: mov w0, 2 - b .L3389 -.L3221: + b .L3576 +.L3404: bl gc_scan_src_blk cmn w0, #1 - bne .L3284 + bne .L3468 mov w0, 3 - b .L3389 -.L3284: - adrp x20, .LANCHOR62 + b .L3576 +.L3468: + adrp x20, .LANCHOR63 mov w2, 65535 - add x0, x20, :lo12:.LANCHOR62 - ldrh w1, [x20, #:lo12:.LANCHOR62] + add x0, x20, :lo12:.LANCHOR63 + ldrh w1, [x20, #:lo12:.LANCHOR63] cmp w1, w2 - beq .L3235 + beq .L3418 ldrh w2, [x0, 24] - cbz w2, .L3285 + cbz w2, .L3469 mov w1, 4 strh wzr, [x0, 26] - strb w1, [x19, #:lo12:.LANCHOR145] - b .L3323 -.L3285: + strb w1, [x19, #:lo12:.LANCHOR150] + b .L3507 +.L3469: mov w0, 1 - strb w0, [x19, #:lo12:.LANCHOR145] + strb w0, [x19, #:lo12:.LANCHOR150] adrp x0, .LANCHOR9 ubfiz x1, x1, 1, 16 mov x19, x0 ldr x2, [x0, #:lo12:.LANCHOR9] ldrh w1, [x2, x1] - cbz w1, .L3286 - adrp x1, .LANCHOR216 + cbz w1, .L3470 + adrp x1, .LANCHOR220 adrp x0, .LC0 - mov w2, 2239 - add x1, x1, :lo12:.LANCHOR216 + mov w2, 2328 + add x1, x1, :lo12:.LANCHOR220 add x0, x0, :lo12:.LC0 bl printf -.L3286: - ldrh w0, [x20, #:lo12:.LANCHOR62] - add x21, x20, :lo12:.LANCHOR62 +.L3470: + ldrh w0, [x20, #:lo12:.LANCHOR63] + add x21, x20, :lo12:.LANCHOR63 bl ftl_free_sblk ldr x0, [x19, #:lo12:.LANCHOR9] - ldrh w1, [x20, #:lo12:.LANCHOR62] + ldrh w1, [x20, #:lo12:.LANCHOR63] strh wzr, [x0, x1, lsl 1] ldrh w0, [x21, 30] add w0, w0, 1 and w0, w0, 65535 cmp w0, 8 - bhi .L3287 + bhi .L3471 strh w0, [x21, 30] - b .L3283 -.L3287: + b .L3467 +.L3471: strh wzr, [x21, 30] bl ftl_flush bl pm_flush bl ftl_ext_info_flush mov w0, 0 bl ftl_info_flush - b .L3283 -.L3222: - adrp x20, .LANCHOR62 - adrp x23, .LANCHOR80 - add x22, x20, :lo12:.LANCHOR62 - add x23, x23, :lo12:.LANCHOR80 -.L3358: + b .L3467 +.L3405: + adrp x20, .LANCHOR63 + adrp x23, .LANCHOR83 + add x22, x20, :lo12:.LANCHOR63 + add x23, x23, :lo12:.LANCHOR83 +.L3544: bl gc_scan_src_blk_one_page ldrh w1, [x22, 2] ldrh w0, [x23] cmp w1, w0 - bcs .L3289 + bcs .L3473 cmp w21, 7 - bls .L3358 - b .L3323 -.L3289: + bls .L3544 + b .L3507 +.L3473: ldrh w3, [x22, 24] adrp x0, .LANCHOR14 - cbz w3, .L3290 + cbz w3, .L3474 ldr w0, [x0, #:lo12:.LANCHOR14] mov w1, 4 strh wzr, [x22, 26] - strb w1, [x19, #:lo12:.LANCHOR145] + strb w1, [x19, #:lo12:.LANCHOR150] adrp x19, .LANCHOR9 - tbz x0, 8, .L3291 + tbz x0, 8, .L3475 ldrh w1, [x22] ldr x2, [x19, #:lo12:.LANCHOR9] ubfiz x0, x1, 1, 16 ldrh w2, [x2, x0] - adrp x0, .LC219 - add x0, x0, :lo12:.LC219 + adrp x0, .LC230 + add x0, x0, :lo12:.LC230 bl printf -.L3291: - ldrh w2, [x20, #:lo12:.LANCHOR62] - add x0, x20, :lo12:.LANCHOR62 +.L3475: + ldrh w2, [x20, #:lo12:.LANCHOR63] + add x0, x20, :lo12:.LANCHOR63 ldr x1, [x19, #:lo12:.LANCHOR9] ldrh w0, [x0, 24] ldrh w1, [x1, x2, lsl 1] cmp w1, w0 - beq .L3292 - adrp x1, .LANCHOR216 + beq .L3476 + adrp x1, .LANCHOR220 adrp x0, .LC0 - mov w2, 2273 - add x1, x1, :lo12:.LANCHOR216 + mov w2, 2362 + add x1, x1, :lo12:.LANCHOR220 add x0, x0, :lo12:.LC0 bl printf -.L3292: - add x0, x20, :lo12:.LANCHOR62 - ldrh w1, [x20, #:lo12:.LANCHOR62] +.L3476: + add x0, x20, :lo12:.LANCHOR63 + ldrh w1, [x20, #:lo12:.LANCHOR63] ldrh w2, [x0, 24] ldr x0, [x19, #:lo12:.LANCHOR9] strh w2, [x0, x1, lsl 1] - b .L3323 -.L3290: + b .L3507 +.L3474: adrp x2, .LANCHOR7 ldr w0, [x0, #:lo12:.LANCHOR14] ldrh w1, [x22] ldr x21, [x2, #:lo12:.LANCHOR7] mov w2, 1 - strb w2, [x19, #:lo12:.LANCHOR145] + strb w2, [x19, #:lo12:.LANCHOR150] add x21, x21, x1, uxth 2 - tbz x0, 8, .L3293 + tbz x0, 8, .L3477 ldrb w2, [x21, 2] - adrp x0, .LC220 - add x0, x0, :lo12:.LC220 + adrp x0, .LC231 + add x0, x0, :lo12:.LC231 ubfx x2, x2, 5, 3 bl printf -.L3293: +.L3477: ldrb w0, [x21, 2] and w1, w0, 224 cmp w1, 224 - beq .L3294 + beq .L3478 tst w0, 192 - bne .L3295 -.L3294: - adrp x1, .LANCHOR216 + bne .L3479 +.L3478: + adrp x1, .LANCHOR220 adrp x0, .LC0 - mov w2, 2283 - add x1, x1, :lo12:.LANCHOR216 + mov w2, 2372 + add x1, x1, :lo12:.LANCHOR220 add x0, x0, :lo12:.LC0 bl printf -.L3295: - ldrh w0, [x20, #:lo12:.LANCHOR62] - add x19, x20, :lo12:.LANCHOR62 +.L3479: + ldrh w0, [x20, #:lo12:.LANCHOR63] + add x19, x20, :lo12:.LANCHOR63 bl ftl_free_sblk mov w0, -1 - strh w0, [x20, #:lo12:.LANCHOR62] + strh w0, [x20, #:lo12:.LANCHOR63] ldrh w0, [x19, 30] add w0, w0, 1 and w0, w0, 65535 cmp w0, 8 - bhi .L3296 + bhi .L3480 strh w0, [x19, 30] - b .L3323 -.L3296: + b .L3507 +.L3480: strh wzr, [x19, 30] -.L3387: +.L3574: bl flt_sys_flush - b .L3323 -.L3223: - ldrh w1, [x24, 80] + b .L3507 +.L3406: + ldrh w1, [x20, 80] mov w0, 65535 cmp w1, w0 - bne .L3297 - adrp x0, .LANCHOR71 - ldrb w22, [x0, #:lo12:.LANCHOR71] + bne .L3481 + adrp x0, .LANCHOR74 + ldrb w22, [x0, #:lo12:.LANCHOR74] cmp w22, 1 - bne .L3297 + bne .L3481 bl ftl_flush - adrp x0, .LANCHOR62 - add x1, x0, :lo12:.LANCHOR62 - mov x20, x0 + adrp x0, .LANCHOR63 + add x1, x0, :lo12:.LANCHOR63 + mov x21, x0 ldrh w1, [x1, 318] - cbz w1, .L3298 + cbz w1, .L3482 mov w0, w22 mov w1, 5 -.L3384: +.L3571: bl zftl_gc_get_free_sblk and w19, w0, 65535 mov w0, 65535 cmp w19, w0 - beq .L3300 + beq .L3484 adrp x0, .LANCHOR7 - ldr x21, [x0, #:lo12:.LANCHOR7] - add x21, x21, x19, uxth 2 - ldrb w0, [x21, 2] + ldr x22, [x0, #:lo12:.LANCHOR7] + add x22, x22, x19, uxth 2 + ldrb w0, [x22, 2] tst w0, 224 - beq .L3301 - adrp x1, .LANCHOR216 + beq .L3485 + adrp x1, .LANCHOR220 adrp x0, .LC0 - mov w2, 2312 - add x1, x1, :lo12:.LANCHOR216 + mov w2, 2401 + add x1, x1, :lo12:.LANCHOR220 add x0, x0, :lo12:.LC0 bl printf -.L3301: - ldrb w0, [x21, 2] +.L3485: + ldrb w0, [x22, 2] mov w1, 5 bfi w0, w1, 5, 3 orr w0, w0, 16 - strb w0, [x21, 2] -.L3322: + strb w0, [x22, 2] +.L3506: mov w1, 1 mov w0, w19 bl ftl_erase_sblk - adrp x22, .LANCHOR72 + adrp x22, .LANCHOR75 mov w0, 5 - strb w0, [x24, 84] - add x1, x24, 96 + strb w0, [x20, 84] + add x1, x20, 96 mov w0, w19 bl ftl_get_blk_list_in_sblk and w0, w0, 255 - adrp x1, .LANCHOR80 - adrp x21, .LANCHOR73 - strb w0, [x24, 89] - ldrh w1, [x1, #:lo12:.LANCHOR80] - ldrh w2, [x22, #:lo12:.LANCHOR72] - strh w19, [x24, 80] - strh wzr, [x24, 82] + adrp x1, .LANCHOR83 + strb w0, [x20, 89] + strh w19, [x20, 80] + ldrh w1, [x1, #:lo12:.LANCHOR83] + strh wzr, [x20, 82] + strb wzr, [x20, 85] + strh wzr, [x20, 90] mul w0, w0, w1 - strb wzr, [x24, 85] - strh w0, [x24, 86] + ldrh w2, [x22, #:lo12:.LANCHOR75] + strh w0, [x20, 86] + adrp x20, .LANCHOR76 mov w1, 255 - ldrb w0, [x21, #:lo12:.LANCHOR73] - strh wzr, [x24, 90] + ldrb w0, [x20, #:lo12:.LANCHOR76] mul w2, w2, w0 - adrp x0, .LANCHOR147 - ldr x0, [x0, #:lo12:.LANCHOR147] + adrp x0, .LANCHOR152 + ldr x0, [x0, #:lo12:.LANCHOR152] lsl w2, w2, 2 bl ftl_memset - ldrb w0, [x21, #:lo12:.LANCHOR73] + ldrb w0, [x20, #:lo12:.LANCHOR76] mov w1, 255 - ldrh w2, [x22, #:lo12:.LANCHOR72] + ldrh w2, [x22, #:lo12:.LANCHOR75] mul w2, w2, w0 - adrp x0, .LANCHOR148 - ldr x0, [x0, #:lo12:.LANCHOR148] + adrp x0, .LANCHOR153 + ldr x0, [x0, #:lo12:.LANCHOR153] lsl w2, w2, 2 bl ftl_memset - ldrb w0, [x21, #:lo12:.LANCHOR73] + ldrb w0, [x20, #:lo12:.LANCHOR76] mov w1, 255 - ldrh w2, [x22, #:lo12:.LANCHOR72] + ldrh w2, [x22, #:lo12:.LANCHOR75] mul w2, w2, w0 - adrp x0, .LANCHOR69 - ldr x0, [x0, #:lo12:.LANCHOR69] + adrp x0, .LANCHOR72 + ldr x0, [x0, #:lo12:.LANCHOR72] bl ftl_memset ldr x0, [x23, #:lo12:.LANCHOR10] mov w1, -1 @@ -20944,11 +22164,11 @@ zftl_do_gc: strh w1, [x0, 130] bl pm_flush bl ftl_ext_info_flush - adrp x0, .LANCHOR97 + adrp x0, .LANCHOR100 mov w1, -1 - ldr x0, [x0, #:lo12:.LANCHOR97] + ldr x0, [x0, #:lo12:.LANCHOR100] strh w19, [x0, 126] - add x0, x20, :lo12:.LANCHOR62 + add x0, x21, :lo12:.LANCHOR63 str w1, [x0, 324] strh wzr, [x0, 314] strh wzr, [x0, 56] @@ -20956,217 +22176,217 @@ zftl_do_gc: strh wzr, [x0, 320] mov w0, 0 bl ftl_info_flush - b .L3323 -.L3298: + b .L3507 +.L3482: mov w1, 5 mov w0, 0 - b .L3384 -.L3297: - cmp w26, 1 + b .L3571 +.L3481: + cmp w25, 1 mov w22, 4 csinc w22, w22, wzr, eq cmp w21, 15 mov w0, w22 add w22, w22, 4 - adrp x25, .LANCHOR71 - adrp x21, .LANCHOR62 + adrp x25, .LANCHOR74 + adrp x24, .LANCHOR63 csel w22, w22, w0, ls - add x25, x25, :lo12:.LANCHOR71 - add x20, x21, :lo12:.LANCHOR62 - add x26, x24, 80 -.L3304: + add x25, x25, :lo12:.LANCHOR74 + add x21, x24, :lo12:.LANCHOR63 + add x26, x20, 80 +.L3488: sub w22, w22, #1 and w22, w22, 255 cmp w22, 255 - beq .L3323 + beq .L3507 bl gc_do_copy_back ldrb w0, [x25] - cbnz w0, .L3305 - adrp x0, .LANCHOR51 - ldrb w0, [x0, #:lo12:.LANCHOR51] + cbnz w0, .L3489 + adrp x0, .LANCHOR52 + ldrb w0, [x0, #:lo12:.LANCHOR52] cmp w0, 3 - bhi .L3306 + bhi .L3490 bl ftl_write_commit -.L3306: - ldrh w1, [x20, 26] - ldrh w0, [x20, 24] +.L3490: + ldrh w1, [x21, 26] + ldrh w0, [x21, 24] cmp w1, w0 - bcc .L3304 + bcc .L3488 mov w0, 1 - strb w0, [x19, #:lo12:.LANCHOR145] + strb w0, [x19, #:lo12:.LANCHOR150] bl ftl_write_commit bl ftl_flush adrp x0, .LANCHOR9 - ldrh w2, [x20] + ldrh w2, [x21] mov x19, x0 ldr x1, [x0, #:lo12:.LANCHOR9] ldrh w1, [x1, x2, lsl 1] - cbz w1, .L3308 - adrp x1, .LANCHOR216 + cbz w1, .L3492 + adrp x1, .LANCHOR220 adrp x0, .LC0 - mov w2, 2387 - add x1, x1, :lo12:.LANCHOR216 + mov w2, 2476 + add x1, x1, :lo12:.LANCHOR220 add x0, x0, :lo12:.LC0 bl printf -.L3308: - ldrh w0, [x21, #:lo12:.LANCHOR62] +.L3492: + ldrh w0, [x24, #:lo12:.LANCHOR63] ldr x2, [x19, #:lo12:.LANCHOR9] ubfiz x1, x0, 1, 16 ldrh w1, [x2, x1] - cbnz w1, .L3309 + cbnz w1, .L3493 bl ftl_free_sblk - b .L3283 -.L3309: + b .L3467 +.L3493: mov w2, 1 mov w1, 0 bl gc_add_sblk - b .L3283 -.L3305: - ldrh w0, [x20, 320] - cbz w0, .L3310 - strh wzr, [x20, 320] + b .L3467 +.L3489: + ldrh w0, [x21, 320] + cbz w0, .L3494 + strh wzr, [x21, 320] bl sblk_wait_write_queue_completed bl gc_write_completed - ldr w0, [x20, 324] + ldr w0, [x21, 324] cmn w0, #1 - beq .L3311 + beq .L3495 bl ftl_mask_bad_block -.L3311: +.L3495: ldr x0, [x23, #:lo12:.LANCHOR10] - add x20, x21, :lo12:.LANCHOR62 + add x20, x24, :lo12:.LANCHOR63 strh wzr, [x20, 56] ldrh w0, [x0, 80] str wzr, [x20, 324] bl ftl_free_sblk - adrp x2, .LANCHOR97 + adrp x2, .LANCHOR100 ldr x1, [x23, #:lo12:.LANCHOR10] mov w0, -1 - ldr x2, [x2, #:lo12:.LANCHOR97] + ldr x2, [x2, #:lo12:.LANCHOR100] strh w0, [x1, 80] strh w0, [x2, 126] strh w0, [x1, 130] ldr x0, [x20, 8] - cbz x0, .L3312 + cbz x0, .L3496 bl buf_free -.L3312: - add x21, x21, :lo12:.LANCHOR62 - str xzr, [x21, 8] +.L3496: + add x24, x24, :lo12:.LANCHOR63 + str xzr, [x24, 8] bl flt_sys_flush - mov w2, 2425 - strb wzr, [x19, #:lo12:.LANCHOR145] - adrp x1, .LANCHOR216 + mov w2, 2514 + strb wzr, [x19, #:lo12:.LANCHOR150] + adrp x1, .LANCHOR220 adrp x0, .LC0 - add x1, x1, :lo12:.LANCHOR216 + add x1, x1, :lo12:.LANCHOR220 add x0, x0, :lo12:.LC0 bl printf - b .L3323 -.L3310: + b .L3507 +.L3494: ldrh w0, [x26, 6] - ldrh w1, [x20, 26] + ldrh w1, [x21, 26] cmp w0, 1 - ldrh w0, [x20, 24] - bls .L3313 + ldrh w0, [x21, 24] + bls .L3497 cmp w1, w0 - bcc .L3304 + bcc .L3488 mov w0, 1 - strb w0, [x19, #:lo12:.LANCHOR145] - ldrh w0, [x20, 56] + strb w0, [x19, #:lo12:.LANCHOR150] + ldrh w0, [x21, 56] add w1, w0, 1 - strh w1, [x20, 56] - add x0, x20, x0, sxtw 1 - ldrh w1, [x20] + strh w1, [x21, 56] + add x0, x21, x0, sxtw 1 + ldrh w1, [x21] strh w1, [x0, 58] mov w0, -1 - strh w0, [x20] - b .L3323 -.L3313: + strh w0, [x21] + b .L3507 +.L3497: mov w2, 5 - strb w2, [x19, #:lo12:.LANCHOR145] + strb w2, [x19, #:lo12:.LANCHOR150] cmp w1, w0 - bcc .L3314 - ldrh w0, [x20, 56] + bcc .L3498 + ldrh w0, [x21, 56] add w1, w0, 1 - strh w1, [x20, 56] - add x0, x20, x0, sxtw 1 - ldrh w1, [x20] + strh w1, [x21, 56] + add x0, x21, x0, sxtw 1 + ldrh w1, [x21] strh w1, [x0, 58] mov w0, -1 - strh w0, [x20] -.L3314: + strh w0, [x21] +.L3498: bl ftl_flush bl sblk_wait_write_queue_completed bl gc_write_completed ldr x0, [x23, #:lo12:.LANCHOR10] - ldrh w1, [x24, 80] + ldrh w1, [x20, 80] strh w1, [x0, 128] bl pm_flush bl ftl_ext_info_flush - add x0, x21, :lo12:.LANCHOR62 - adrp x1, .LANCHOR80 - adrp x2, .LANCHOR68 - ldrh w1, [x1, #:lo12:.LANCHOR80] - ldrb w2, [x2, #:lo12:.LANCHOR68] + add x0, x24, :lo12:.LANCHOR63 + adrp x1, .LANCHOR83 + adrp x2, .LANCHOR69 + ldrh w1, [x1, #:lo12:.LANCHOR83] + ldrb w2, [x2, #:lo12:.LANCHOR69] strh wzr, [x0, 16] strh w1, [x0, 18] cmp w2, 2 strh w2, [x0, 20] - bne .L3316 + bne .L3500 ubfiz w1, w1, 1, 15 strh w1, [x0, 18] - adrp x1, .LANCHOR104 - ldrb w1, [x1, #:lo12:.LANCHOR104] - cbnz w1, .L3316 + adrp x1, .LANCHOR70 + ldrb w1, [x1, #:lo12:.LANCHOR70] + cbnz w1, .L3500 mov w1, 1 strh w1, [x0, 20] -.L3316: - add x21, x21, :lo12:.LANCHOR62 - strh wzr, [x21, 22] - b .L3323 -.L3319: +.L3500: + add x24, x24, :lo12:.LANCHOR63 + strh wzr, [x24, 22] + b .L3507 +.L3503: ldrh w1, [x24, 16] ldrh w0, [x24, 18] cmp w1, w0 - bcc .L3320 + bcc .L3504 mov w0, 6 - strb w0, [x19, #:lo12:.LANCHOR145] + strb w0, [x19, #:lo12:.LANCHOR150] ldr x0, [x24, 8] bl buf_free str xzr, [x24, 8] - b .L3323 -.L3320: + b .L3507 +.L3504: cmp w21, 15 - bls .L3226 - cmp w26, 1 - bne .L3323 + bls .L3409 + cmp w25, 1 + bne .L3507 add w22, w22, 1 and w22, w22, 255 cmp w22, 4 - bls .L3226 - b .L3323 -.L3225: + bls .L3409 + b .L3507 +.L3408: bl gc_update_l2p_map_new - mov w20, -1 + mov w21, -1 bl gc_free_src_blk bl ftl_flush bl pm_flush - strh w20, [x24, 80] + strh w21, [x20, 80] bl ftl_ext_info_flush - adrp x0, .LANCHOR97 - ldr x0, [x0, #:lo12:.LANCHOR97] - strh w20, [x0, 126] + adrp x0, .LANCHOR100 + ldr x0, [x0, #:lo12:.LANCHOR100] + strh w21, [x0, 126] mov w0, 0 bl ftl_info_flush -.L3388: - strb wzr, [x19, #:lo12:.LANCHOR145] - b .L3323 -.L3300: - mov w2, 2318 - adrp x1, .LANCHOR216 +.L3575: + strb wzr, [x19, #:lo12:.LANCHOR150] + b .L3507 +.L3484: + mov w2, 2407 + adrp x1, .LANCHOR220 adrp x0, .LC0 - add x1, x1, :lo12:.LANCHOR216 + add x1, x1, :lo12:.LANCHOR220 add x0, x0, :lo12:.LC0 bl printf - b .L3322 + b .L3506 .size zftl_do_gc, .-zftl_do_gc .section .text.zftl_write,"ax",@progbits .align 2 @@ -21184,31 +22404,32 @@ zftl_write: ldr w0, [x0, #:lo12:.LANCHOR14] mov w20, w2 stp x21, x22, [sp, 32] - mov x24, x3 + mov x23, x3 stp x25, x26, [sp, 64] - tbz x0, 12, .L3391 + tbz x0, 12, .L3578 + ldr w4, [x23] mov w3, w2 - adrp x0, .LC221 + adrp x0, .LC232 mov w2, w1 - add x0, x0, :lo12:.LC221 + add x0, x0, :lo12:.LC232 mov w1, w27 bl printf -.L3391: - cbnz w27, .L3392 - adrp x0, .LANCHOR58 +.L3578: + cbnz w27, .L3579 + adrp x0, .LANCHOR59 mov w27, 24576 - ldr w0, [x0, #:lo12:.LANCHOR58] -.L3393: + ldr w0, [x0, #:lo12:.LANCHOR59] +.L3580: add w1, w19, w20 cmp w0, w1 - bcc .L3407 - adrp x23, .LANCHOR121 + bcc .L3594 + adrp x24, .LANCHOR123 add w27, w27, w19 sub w19, w20, #1 - adrp x25, .LANCHOR97 - ldrb w0, [x23, #:lo12:.LANCHOR121] + adrp x25, .LANCHOR100 + ldrb w0, [x24, #:lo12:.LANCHOR123] add w19, w19, w27 - add x23, x23, :lo12:.LANCHOR121 + add x24, x24, :lo12:.LANCHOR123 udiv w22, w27, w0 udiv w19, w19, w0 add w0, w27, w20 @@ -21216,25 +22437,25 @@ zftl_write: mov w26, w22 sub w21, w19, w22 add w21, w21, 1 -.L3395: - cbnz w21, .L3403 - adrp x20, .LANCHOR90 - adrp x19, .LANCHOR94 - add x20, x20, :lo12:.LANCHOR90 - add x19, x19, :lo12:.LANCHOR94 +.L3582: + cbnz w21, .L3590 + adrp x20, .LANCHOR93 + adrp x19, .LANCHOR97 + add x20, x20, :lo12:.LANCHOR93 + add x19, x19, :lo12:.LANCHOR97 bl ftl_write_commit bl ftl_flush mov w1, 1 mov w0, 0 bl zftl_do_gc -.L3404: +.L3591: ldrh w0, [x20] ldrh w1, [x19] add w0, w0, w1 cmp w0, 7 - ble .L3405 + ble .L3592 mov w0, 0 -.L3390: +.L3577: ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x23, x24, [sp, 48] @@ -21242,28 +22463,28 @@ zftl_write: ldp x27, x28, [sp, 80] ldp x29, x30, [sp], 112 ret -.L3392: +.L3579: cmp w27, 3 - bhi .L3407 + bhi .L3594 lsl w27, w27, 13 mov w0, 8192 - b .L3393 -.L3403: + b .L3580 +.L3590: mov w0, 0 bl buf_alloc mov x28, x0 - cbnz x0, .L3396 + cbnz x0, .L3583 bl ftl_write_commit - b .L3395 -.L3396: - ldrb w3, [x23] + b .L3582 +.L3583: + ldrb w3, [x24] cmp w26, w22 strb wzr, [x0, 57] ccmp w26, w19, 4, ne strb w3, [x0, 56] - bne .L3399 + bne .L3586 cmp w26, w22 - bne .L3400 + bne .L3587 udiv w0, w27, w3 msub w0, w0, w3, w27 and w0, w0, 255 @@ -21272,11 +22493,11 @@ zftl_write: and w3, w3, 255 cmp w20, w3 csel w3, w20, w3, cc -.L3412: +.L3599: strb w3, [x28, 56] -.L3399: +.L3586: ldr x3, [x28, 8] - mov x1, x24 + mov x1, x23 ldrb w0, [x28, 57] sub w21, w21, #1 ldrb w2, [x28, 56] @@ -21284,7 +22505,7 @@ zftl_write: lsl w2, w2, 9 add x0, x3, x0 bl ftl_memcpy - ldr x1, [x25, #:lo12:.LANCHOR97] + ldr x1, [x25, #:lo12:.LANCHOR100] ldr w0, [x1, 8] str w26, [x28, 36] add w26, w26, 1 @@ -21295,20 +22516,20 @@ zftl_write: bl ftl_write_buf ldrb w0, [x28, 56] ubfiz x0, x0, 9, 8 - add x24, x24, x0 - b .L3395 -.L3400: + add x23, x23, x0 + b .L3582 +.L3587: ldr w0, [x29, 108] msub w3, w3, w26, w0 - b .L3412 -.L3405: + b .L3599 +.L3592: mov w1, 1 mov w0, 0 bl zftl_do_gc - b .L3404 -.L3407: + b .L3591 +.L3594: mov w0, -1 - b .L3390 + b .L3577 .size zftl_write, .-zftl_write .section .text.ftl_vendor_write,"ax",@progbits .align 2 @@ -21367,12 +22588,12 @@ ftl_write: mov x20, x3 mov w22, w1 ands w21, w0, 255 - bne .L3418 + bne .L3605 mov w3, w2 mov w0, 0 mov x2, x20 bl idb_write_data -.L3418: +.L3605: mov x3, x20 mov w2, w19 mov w1, w22 @@ -21388,46 +22609,46 @@ ftl_write: .type zftl_discard, %function zftl_discard: stp x29, x30, [sp, -128]! - adrp x2, .LANCHOR58 + adrp x2, .LANCHOR59 add x29, sp, 0 stp x19, x20, [sp, 16] mov w19, w1 - ldr w2, [x2, #:lo12:.LANCHOR58] + ldr w2, [x2, #:lo12:.LANCHOR59] add w1, w0, w1 stp x21, x22, [sp, 32] stp x23, x24, [sp, 48] cmp w2, w1 stp x25, x26, [sp, 64] stp x27, x28, [sp, 80] - bcc .L3441 - adrp x24, .LANCHOR217 + bcc .L3628 + adrp x24, .LANCHOR221 add w22, w0, 24576 adrp x0, .LANCHOR14 str x0, [x29, 104] - ldr w1, [x24, #:lo12:.LANCHOR217] + ldr w1, [x24, #:lo12:.LANCHOR221] ldr w2, [x0, #:lo12:.LANCHOR14] add w1, w19, w1 - str w1, [x24, #:lo12:.LANCHOR217] - tbz x2, 12, .L3422 - adrp x0, .LC222 + str w1, [x24, #:lo12:.LANCHOR221] + tbz x2, 12, .L3609 + adrp x0, .LC233 mov w4, 0 mov w3, w19 mov w2, w22 - add x0, x0, :lo12:.LC222 + add x0, x0, :lo12:.LC233 bl printf -.L3422: - adrp x23, .LANCHOR97 - adrp x26, .LANCHOR121 - ldr x0, [x23, #:lo12:.LANCHOR97] +.L3609: + adrp x23, .LANCHOR100 + adrp x26, .LANCHOR123 + ldr x0, [x23, #:lo12:.LANCHOR100] ldr w27, [x0, 8] add w1, w27, 1 str w1, [x0, 8] bl ftl_write_commit bl ftl_flush - ldrb w21, [x26, #:lo12:.LANCHOR121] + ldrb w21, [x26, #:lo12:.LANCHOR123] udiv w20, w22, w21 msub w25, w20, w21, w22 - cbz w25, .L3423 + cbz w25, .L3610 sub w21, w21, w25 mov w0, w20 cmp w21, w19 @@ -21435,20 +22656,20 @@ zftl_discard: bl lpa_hash_get_ppa str w0, [x29, 120] cmn w0, #1 - bne .L3424 + bne .L3611 mov w2, 0 add x1, x29, 120 mov w0, w20 bl pm_log2phys -.L3424: +.L3611: ldr w0, [x29, 120] and w28, w21, 65535 cmn w0, #1 - beq .L3426 + beq .L3613 mov w0, 0 bl buf_alloc mov x3, x0 - cbz x0, .L3426 + cbz x0, .L3613 strb w25, [x0, 57] ubfiz x25, x25, 9, 25 strb w21, [x0, 56] @@ -21463,57 +22684,57 @@ zftl_discard: mov x0, x3 bl ftl_write_buf bl ftl_write_commit - ldr x1, [x23, #:lo12:.LANCHOR97] + ldr x1, [x23, #:lo12:.LANCHOR100] ldr w0, [x1, 76] add w0, w0, 1 str w0, [x1, 76] -.L3426: +.L3613: add w20, w20, 1 sub w19, w19, w28 -.L3423: - cbz w19, .L3428 +.L3610: + cbz w19, .L3615 bl ftl_flush -.L3428: - adrp x25, .LANCHOR99 - add x21, x26, :lo12:.LANCHOR121 - add x25, x25, :lo12:.LANCHOR99 +.L3615: + adrp x25, .LANCHOR102 + add x21, x26, :lo12:.LANCHOR123 + add x25, x25, :lo12:.LANCHOR102 mov w0, -1 str w0, [x29, 124] -.L3429: +.L3616: ldrb w0, [x21] cmp w19, w0 - bcs .L3434 - cbz w19, .L3436 + bcs .L3621 + cbz w19, .L3623 mov w0, w20 bl lpa_hash_get_ppa str w0, [x29, 120] cmn w0, #1 - bne .L3437 + bne .L3624 mov w2, 0 add x1, x29, 120 mov w0, w20 bl pm_log2phys -.L3437: +.L3624: ldr w0, [x29, 120] cmn w0, #1 - beq .L3436 + beq .L3623 mov w0, 0 bl buf_alloc mov x21, x0 - cbz x0, .L3436 + cbz x0, .L3623 strb wzr, [x0, 57] strb w19, [x0, 56] stp w27, w20, [x21, 32] - ldrb w0, [x26, #:lo12:.LANCHOR121] + ldrb w0, [x26, #:lo12:.LANCHOR123] cmp w19, w0 - bcc .L3439 - adrp x1, .LANCHOR218 + bcc .L3626 + adrp x1, .LANCHOR222 adrp x0, .LC0 - mov w2, 1236 - add x1, x1, :lo12:.LANCHOR218 + mov w2, 1241 + add x1, x1, :lo12:.LANCHOR222 add x0, x0, :lo12:.LC0 bl printf -.L3439: +.L3626: ldr x0, [x21, 8] lsl w2, w19, 9 mov w1, 0 @@ -21521,42 +22742,42 @@ zftl_discard: mov x0, x21 bl ftl_write_buf bl ftl_write_commit - ldr x1, [x23, #:lo12:.LANCHOR97] + ldr x1, [x23, #:lo12:.LANCHOR100] ldr w0, [x1, 76] add w0, w0, 1 str w0, [x1, 76] -.L3436: - ldr w1, [x24, #:lo12:.LANCHOR217] +.L3623: + ldr w1, [x24, #:lo12:.LANCHOR221] cmp w1, 8192 - bls .L3442 + bls .L3629 ldr x0, [x29, 104] ldr w0, [x0, #:lo12:.LANCHOR14] - tbz x0, 12, .L3440 - adrp x0, .LC222 + tbz x0, 12, .L3627 + adrp x0, .LC233 mov w4, 0 mov w3, w19 mov w2, w22 - add x0, x0, :lo12:.LC222 + add x0, x0, :lo12:.LC233 bl printf -.L3440: - str wzr, [x24, #:lo12:.LANCHOR217] +.L3627: + str wzr, [x24, #:lo12:.LANCHOR221] bl flt_sys_flush - adrp x0, .LANCHOR116 + adrp x0, .LANCHOR118 mov w1, 1 - str w1, [x0, #:lo12:.LANCHOR116] -.L3442: + str w1, [x0, #:lo12:.LANCHOR118] +.L3629: mov w0, 0 - b .L3420 -.L3434: + b .L3607 +.L3621: mov w0, w20 bl lpa_hash_get_ppa str w0, [x29, 120] cmn w0, #1 - beq .L3430 + beq .L3617 mov w0, 0 bl buf_alloc mov x28, x0 - cbz x0, .L3432 + cbz x0, .L3619 ldrb w2, [x21] mov w1, 0 strb w2, [x0, 56] @@ -21568,24 +22789,24 @@ zftl_discard: mov x0, x28 bl ftl_write_buf bl ftl_write_commit -.L3468: - ldr x1, [x23, #:lo12:.LANCHOR97] +.L3655: + ldr x1, [x23, #:lo12:.LANCHOR100] ldr w0, [x1, 76] add w0, w0, 1 str w0, [x1, 76] -.L3432: +.L3619: ldrb w0, [x21] add w20, w20, 1 sub w19, w19, w0 - b .L3429 -.L3430: + b .L3616 +.L3617: mov w2, 0 add x1, x29, 120 mov w0, w20 bl pm_log2phys ldr w0, [x29, 120] cmn w0, #1 - beq .L3432 + beq .L3619 add x1, x29, 124 mov w2, 1 mov w0, w20 @@ -21599,14 +22820,14 @@ zftl_discard: lsl w0, w0, w2 sub w0, w0, #1 and w0, w0, w1 - adrp x1, .LANCHOR98 - ldrb w1, [x1, #:lo12:.LANCHOR98] + adrp x1, .LANCHOR101 + ldrb w1, [x1, #:lo12:.LANCHOR101] udiv w0, w0, w1 bl ftl_vpn_decrement - b .L3468 -.L3441: + b .L3655 +.L3628: mov w0, -1 -.L3420: +.L3607: ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x23, x24, [sp, 48] @@ -21764,6 +22985,7 @@ ftl_discard: .global g_flash_interface_mode .global g_idb_ecc_bits .global g_idb_slc_mode_enable + .global g_one_pass_program .global g_slc_mode_addr2 .global g_slc_mode_enable .global g_flash_cur_mode @@ -21794,21 +23016,21 @@ _c_ftl_blk_pre_plane: .zero 2 .section .bss._c_ftl_block_addr_log2,"aw",@nobits .align 1 - .set .LANCHOR99,. + 0 + .set .LANCHOR102,. + 0 .type _c_ftl_block_addr_log2, %object .size _c_ftl_block_addr_log2, 2 _c_ftl_block_addr_log2: .zero 2 .section .bss._c_ftl_block_align_addr,"aw",@nobits .align 1 - .set .LANCHOR105,. + 0 + .set .LANCHOR107,. + 0 .type _c_ftl_block_align_addr, %object .size _c_ftl_block_align_addr, 2 _c_ftl_block_align_addr: .zero 2 .section .bss._c_ftl_byte_pre_page,"aw",@nobits .align 1 - .set .LANCHOR199,. + 0 + .set .LANCHOR203,. + 0 .type _c_ftl_byte_pre_page, %object .size _c_ftl_byte_pre_page, 2 _c_ftl_byte_pre_page: @@ -21820,73 +23042,73 @@ _c_ftl_byte_pre_page: _c_ftl_nand_blks_per_die: .zero 2 .section .bss._c_ftl_nand_die_num,"aw",@nobits - .set .LANCHOR106,. + 0 + .set .LANCHOR108,. + 0 .type _c_ftl_nand_die_num, %object .size _c_ftl_nand_die_num, 1 _c_ftl_nand_die_num: .zero 1 .section .bss._c_ftl_nand_planes_num,"aw",@nobits - .set .LANCHOR73,. + 0 + .set .LANCHOR76,. + 0 .type _c_ftl_nand_planes_num, %object .size _c_ftl_nand_planes_num, 1 _c_ftl_nand_planes_num: .zero 1 .section .bss._c_ftl_nand_type,"aw",@nobits - .set .LANCHOR68,. + 0 + .set .LANCHOR69,. + 0 .type _c_ftl_nand_type, %object .size _c_ftl_nand_type, 1 _c_ftl_nand_type: .zero 1 .section .bss._c_ftl_page_pre_blk,"aw",@nobits .align 1 - .set .LANCHOR72,. + 0 + .set .LANCHOR75,. + 0 .type _c_ftl_page_pre_blk, %object .size _c_ftl_page_pre_blk, 2 _c_ftl_page_pre_blk: .zero 2 .section .bss._c_ftl_page_pre_slc_blk,"aw",@nobits .align 1 - .set .LANCHOR80,. + 0 + .set .LANCHOR83,. + 0 .type _c_ftl_page_pre_slc_blk, %object .size _c_ftl_page_pre_slc_blk, 2 _c_ftl_page_pre_slc_blk: .zero 2 .section .bss._c_ftl_planes_per_die,"aw",@nobits - .set .LANCHOR98,. + 0 + .set .LANCHOR101,. + 0 .type _c_ftl_planes_per_die, %object .size _c_ftl_planes_per_die, 1 _c_ftl_planes_per_die: .zero 1 .section .bss._c_ftl_pm_page_num,"aw",@nobits .align 1 - .set .LANCHOR186,. + 0 + .set .LANCHOR187,. + 0 .type _c_ftl_pm_page_num, %object .size _c_ftl_pm_page_num, 2 _c_ftl_pm_page_num: .zero 2 .section .bss._c_ftl_sec_per_page,"aw",@nobits - .set .LANCHOR121,. + 0 + .set .LANCHOR123,. + 0 .type _c_ftl_sec_per_page, %object .size _c_ftl_sec_per_page, 1 _c_ftl_sec_per_page: .zero 1 .section .bss._c_max_pm_sblk,"aw",@nobits .align 1 - .set .LANCHOR141,. + 0 + .set .LANCHOR146,. + 0 .type _c_max_pm_sblk, %object .size _c_max_pm_sblk, 2 _c_max_pm_sblk: .zero 2 .section .bss._c_mix_max_slc_ec_count,"aw",@nobits .align 1 - .set .LANCHOR102,. + 0 + .set .LANCHOR105,. + 0 .type _c_mix_max_slc_ec_count, %object .size _c_mix_max_slc_ec_count, 2 _c_mix_max_slc_ec_count: .zero 2 .section .bss._c_mix_max_xlc_ec_count,"aw",@nobits .align 1 - .set .LANCHOR100,. + 0 + .set .LANCHOR103,. + 0 .type _c_mix_max_xlc_ec_count, %object .size _c_mix_max_xlc_ec_count, 2 _c_mix_max_xlc_ec_count: @@ -21900,49 +23122,49 @@ _c_slc_to_xlc_ec_ratio: .zero 2 .section .bss._c_swl_slc_gc_th,"aw",@nobits .align 1 - .set .LANCHOR140,. + 0 + .set .LANCHOR145,. + 0 .type _c_swl_slc_gc_th, %object .size _c_swl_slc_gc_th, 2 _c_swl_slc_gc_th: .zero 2 .section .bss._c_swl_xlc_gc_th,"aw",@nobits .align 1 - .set .LANCHOR139,. + 0 + .set .LANCHOR144,. + 0 .type _c_swl_xlc_gc_th, %object .size _c_swl_xlc_gc_th, 2 _c_swl_xlc_gc_th: .zero 2 .section .bss._c_totle_data_density,"aw",@nobits .align 2 - .set .LANCHOR204,. + 0 + .set .LANCHOR208,. + 0 .type _c_totle_data_density, %object .size _c_totle_data_density, 4 _c_totle_data_density: .zero 4 .section .bss._c_totle_log_page,"aw",@nobits .align 2 - .set .LANCHOR118,. + 0 + .set .LANCHOR120,. + 0 .type _c_totle_log_page, %object .size _c_totle_log_page, 4 _c_totle_log_page: .zero 4 .section .bss._c_totle_phy_density,"aw",@nobits .align 2 - .set .LANCHOR203,. + 0 + .set .LANCHOR207,. + 0 .type _c_totle_phy_density, %object .size _c_totle_phy_density, 4 _c_totle_phy_density: .zero 4 .section .bss._c_user_data_density,"aw",@nobits .align 2 - .set .LANCHOR58,. + 0 + .set .LANCHOR59,. + 0 .type _c_user_data_density, %object .size _c_user_data_density, 4 _c_user_data_density: .zero 4 .section .bss._gc_after_discard_en,"aw",@nobits .align 2 - .set .LANCHOR116,. + 0 + .set .LANCHOR118,. + 0 .type _gc_after_discard_en, %object .size _gc_after_discard_en, 4 _gc_after_discard_en: @@ -21961,28 +23183,28 @@ _last_write_time: .zero 4 .section .bss._max_slc_super_block,"aw",@nobits .align 1 - .set .LANCHOR101,. + 0 + .set .LANCHOR104,. + 0 .type _max_slc_super_block, %object .size _max_slc_super_block, 2 _max_slc_super_block: .zero 2 .section .bss._max_xlc_super_block,"aw",@nobits .align 1 - .set .LANCHOR88,. + 0 + .set .LANCHOR91,. + 0 .type _max_xlc_super_block, %object .size _max_xlc_super_block, 2 _max_xlc_super_block: .zero 2 .section .bss._min_slc_super_block,"aw",@nobits .align 1 - .set .LANCHOR84,. + 0 + .set .LANCHOR87,. + 0 .type _min_slc_super_block, %object .size _min_slc_super_block, 2 _min_slc_super_block: .zero 2 .section .bss.discard_sector_count,"aw",@nobits .align 2 - .set .LANCHOR217,. + 0 + .set .LANCHOR221,. + 0 .type discard_sector_count, %object .size discard_sector_count, 4 discard_sector_count: @@ -21996,41 +23218,41 @@ fill_spare_size: .zero 2 .section .bss.flash_ddr_tuning_sdr_read_count,"aw",@nobits .align 2 - .set .LANCHOR155,. + 0 + .set .LANCHOR160,. + 0 .type flash_ddr_tuning_sdr_read_count, %object .size flash_ddr_tuning_sdr_read_count, 4 flash_ddr_tuning_sdr_read_count: .zero 4 .section .bss.flash_read_retry,"aw",@nobits .align 3 - .set .LANCHOR157,. + 0 + .set .LANCHOR162,. + 0 .type flash_read_retry, %object .size flash_read_retry, 8 flash_read_retry: .zero 8 .section .bss.free_buf_count,"aw",@nobits - .set .LANCHOR51,. + 0 + .set .LANCHOR52,. + 0 .type free_buf_count, %object .size free_buf_count, 1 free_buf_count: .zero 1 .section .bss.free_mix_sblk,"aw",@nobits .align 1 - .set .LANCHOR94,. + 0 + .set .LANCHOR97,. + 0 .type free_mix_sblk, %object .size free_mix_sblk, 2 free_mix_sblk: .zero 2 .section .bss.free_slc_sblk,"aw",@nobits .align 1 - .set .LANCHOR90,. + 0 + .set .LANCHOR93,. + 0 .type free_slc_sblk, %object .size free_slc_sblk, 2 free_slc_sblk: .zero 2 .section .bss.free_xlc_sblk,"aw",@nobits .align 1 - .set .LANCHOR92,. + 0 + .set .LANCHOR95,. + 0 .type free_xlc_sblk, %object .size free_xlc_sblk, 2 free_xlc_sblk: @@ -22042,14 +23264,14 @@ free_xlc_sblk: ftl_ext_info_data_buffer: .zero 16384 .section .bss.ftl_ext_info_first_write,"aw",@nobits - .set .LANCHOR182,. + 0 + .set .LANCHOR183,. + 0 .type ftl_ext_info_first_write, %object .size ftl_ext_info_first_write, 1 ftl_ext_info_first_write: .zero 1 .section .bss.ftl_flush_jiffies,"aw",@nobits .align 2 - .set .LANCHOR213,. + 0 + .set .LANCHOR217,. + 0 .type ftl_flush_jiffies, %object .size ftl_flush_jiffies, 4 ftl_flush_jiffies: @@ -22062,41 +23284,41 @@ ftl_info_data_buffer: .zero 16384 .section .bss.ftl_info_spare,"aw",@nobits .align 6 - .set .LANCHOR177,. + 0 + .set .LANCHOR178,. + 0 .type ftl_info_spare, %object .size ftl_info_spare, 256 ftl_info_spare: .zero 256 .section .bss.ftl_low_format_cur_blk,"aw",@nobits .align 1 - .set .LANCHOR59,. + 0 + .set .LANCHOR60,. + 0 .type ftl_low_format_cur_blk, %object .size ftl_low_format_cur_blk, 2 ftl_low_format_cur_blk: .zero 2 .section .bss.ftl_power_lost_flag,"aw",@nobits - .set .LANCHOR181,. + 0 + .set .LANCHOR182,. + 0 .type ftl_power_lost_flag, %object .size ftl_power_lost_flag, 1 ftl_power_lost_flag: .zero 1 .section .bss.ftl_sblk_lpa_tbl,"aw",@nobits .align 3 - .set .LANCHOR111,. + 0 + .set .LANCHOR113,. + 0 .type ftl_sblk_lpa_tbl, %object .size ftl_sblk_lpa_tbl, 8 ftl_sblk_lpa_tbl: .zero 8 .section .bss.ftl_sblk_update_list,"aw",@nobits .align 3 - .set .LANCHOR64,. + 0 + .set .LANCHOR65,. + 0 .type ftl_sblk_update_list, %object .size ftl_sblk_update_list, 16 ftl_sblk_update_list: .zero 16 .section .bss.ftl_sblk_update_list_offset,"aw",@nobits .align 1 - .set .LANCHOR117,. + 0 + .set .LANCHOR119,. + 0 .type ftl_sblk_update_list_offset, %object .size ftl_sblk_update_list_offset, 2 ftl_sblk_update_list_offset: @@ -22110,13 +23332,13 @@ ftl_sblk_vpn: .zero 8 .section .bss.ftl_sblk_vpn_update_id,"aw",@nobits .align 1 - .set .LANCHOR63,. + 0 + .set .LANCHOR64,. + 0 .type ftl_sblk_vpn_update_id, %object .size ftl_sblk_vpn_update_id, 2 ftl_sblk_vpn_update_id: .zero 2 .section .bss.ftl_sys_info_first_write,"aw",@nobits - .set .LANCHOR180,. + 0 + .set .LANCHOR181,. + 0 .type ftl_sys_info_first_write, %object .size ftl_sys_info_first_write, 1 ftl_sys_info_first_write: @@ -22129,14 +23351,14 @@ ftl_tmp_buffer: .zero 16384 .section .bss.ftl_tmp_spare,"aw",@nobits .align 6 - .set .LANCHOR175,. + 0 + .set .LANCHOR176,. + 0 .type ftl_tmp_spare, %object .size ftl_tmp_spare, 256 ftl_tmp_spare: .zero 256 .section .bss.ftl_vpn_update_count,"aw",@nobits .align 1 - .set .LANCHOR115,. + 0 + .set .LANCHOR117,. + 0 .type ftl_vpn_update_count, %object .size ftl_vpn_update_count, 2 ftl_vpn_update_count: @@ -22150,14 +23372,14 @@ g_block_align_addr: .zero 2 .section .bss.g_buf,"aw",@nobits .align 3 - .set .LANCHOR49,. + 0 + .set .LANCHOR50,. + 0 .type g_buf, %object .size g_buf, 2048 g_buf: .zero 2048 .section .bss.g_die_addr,"aw",@nobits .align 2 - .set .LANCHOR136,. + 0 + .set .LANCHOR141,. + 0 .type g_die_addr, %object .size g_die_addr, 32 g_die_addr: @@ -22170,27 +23392,27 @@ g_die_addr: g_die_cs_idx: .zero 8 .section .bss.g_flash_3d_mlc_flag,"aw",@nobits - .set .LANCHOR104,. + 0 + .set .LANCHOR70,. + 0 .type g_flash_3d_mlc_flag, %object .size g_flash_3d_mlc_flag, 1 g_flash_3d_mlc_flag: .zero 1 .section .bss.g_flash_3d_tlc_flag,"aw",@nobits - .set .LANCHOR70,. + 0 + .set .LANCHOR73,. + 0 .type g_flash_3d_tlc_flag, %object .size g_flash_3d_tlc_flag, 1 g_flash_3d_tlc_flag: .zero 1 .section .bss.g_flash_blk_info,"aw",@nobits .align 3 - .set .LANCHOR160,. + 0 + .set .LANCHOR195,. + 0 .type g_flash_blk_info, %object .size g_flash_blk_info, 4 g_flash_blk_info: .zero 4 .section .bss.g_flash_cur_mode,"aw",@nobits .align 3 - .set .LANCHOR35,. + 0 + .set .LANCHOR31,. + 0 .type g_flash_cur_mode, %object .size g_flash_cur_mode, 4 g_flash_cur_mode: @@ -22208,20 +23430,20 @@ g_flash_interface_mode: g_flash_multi_page_prog_en: .zero 1 .section .bss.g_flash_multi_page_read_en,"aw",@nobits - .set .LANCHOR166,. + 0 + .set .LANCHOR168,. + 0 .type g_flash_multi_page_read_en, %object .size g_flash_multi_page_read_en, 1 g_flash_multi_page_read_en: .zero 1 .section .bss.g_flash_page_buffer,"aw",@nobits .align 3 - .set .LANCHOR162,. + 0 + .set .LANCHOR164,. + 0 .type g_flash_page_buffer, %object .size g_flash_page_buffer, 8 g_flash_page_buffer: .zero 8 .section .bss.g_flash_reversd_blks,"aw",@nobits - .set .LANCHOR196,. + 0 + .set .LANCHOR200,. + 0 .type g_flash_reversd_blks, %object .size g_flash_reversd_blks, 1 g_flash_reversd_blks: @@ -22234,28 +23456,28 @@ g_flash_slc_mode: .zero 1 .section .bss.g_flash_spare_buffer,"aw",@nobits .align 3 - .set .LANCHOR161,. + 0 + .set .LANCHOR163,. + 0 .type g_flash_spare_buffer, %object .size g_flash_spare_buffer, 8 g_flash_spare_buffer: .zero 8 .section .bss.g_flash_sys_spare_buffer,"aw",@nobits .align 3 - .set .LANCHOR159,. + 0 + .set .LANCHOR194,. + 0 .type g_flash_sys_spare_buffer, %object .size g_flash_sys_spare_buffer, 8 g_flash_sys_spare_buffer: .zero 8 .section .bss.g_flash_tmp_page_buffer,"aw",@nobits .align 3 - .set .LANCHOR151,. + 0 + .set .LANCHOR156,. + 0 .type g_flash_tmp_page_buffer, %object .size g_flash_tmp_page_buffer, 8 g_flash_tmp_page_buffer: .zero 8 .section .bss.g_flash_tmp_spare_buffer,"aw",@nobits .align 3 - .set .LANCHOR153,. + 0 + .set .LANCHOR158,. + 0 .type g_flash_tmp_spare_buffer, %object .size g_flash_tmp_spare_buffer, 8 g_flash_tmp_spare_buffer: @@ -22268,14 +23490,14 @@ g_flash_toggle_mode_en: .zero 1 .section .bss.g_ftl_info_blk,"aw",@nobits .align 6 - .set .LANCHOR178,. + 0 + .set .LANCHOR179,. + 0 .type g_ftl_info_blk, %object .size g_ftl_info_blk, 4 g_ftl_info_blk: .zero 4 .section .bss.g_gc_info,"aw",@nobits .align 3 - .set .LANCHOR62,. + 0 + .set .LANCHOR63,. + 0 .type g_gc_info, %object .size g_gc_info, 328 g_gc_info: @@ -22287,7 +23509,7 @@ g_gc_info: g_idb_ecc_bits: .zero 1 .section .bss.g_idb_slc_mode_enable,"aw",@nobits - .set .LANCHOR168,. + 0 + .set .LANCHOR49,. + 0 .type g_idb_slc_mode_enable, %object .size g_idb_slc_mode_enable, 1 g_idb_slc_mode_enable: @@ -22306,14 +23528,14 @@ g_lsb_page_tbl: g_maxRegNum: .zero 1 .section .bss.g_maxRetryCount,"aw",@nobits - .set .LANCHOR154,. + 0 + .set .LANCHOR159,. + 0 .type g_maxRetryCount, %object .size g_maxRetryCount, 1 g_maxRetryCount: .zero 1 .section .bss.g_msb_page_tbl,"aw",@nobits .align 2 - .set .LANCHOR133,. + 0 + .set .LANCHOR138,. + 0 .type g_msb_page_tbl, %object .size g_msb_page_tbl, 1024 g_msb_page_tbl: @@ -22338,7 +23560,7 @@ g_nand_opt_para: g_nandc_ecc_bits: .zero 1 .section .bss.g_nandc_tran_timeout,"aw",@nobits - .set .LANCHOR152,. + 0 + .set .LANCHOR157,. + 0 .type g_nandc_tran_timeout, %object .size g_nandc_tran_timeout, 1 g_nandc_tran_timeout: @@ -22355,10 +23577,16 @@ g_nandc_v6_master_info: .type g_nandc_ver, %object .size g_nandc_ver, 1 g_nandc_ver: + .zero 1 + .section .bss.g_one_pass_program,"aw",@nobits + .set .LANCHOR71,. + 0 + .type g_one_pass_program, %object + .size g_one_pass_program, 1 +g_one_pass_program: .zero 1 .section .bss.g_pm_spare,"aw",@nobits .align 3 - .set .LANCHOR190,. + 0 + .set .LANCHOR191,. + 0 .type g_pm_spare, %object .size g_pm_spare, 8 g_pm_spare: @@ -22382,131 +23610,131 @@ g_slc_mode_enable: .zero 1 .section .bss.g_slc_page_num,"aw",@nobits .align 1 - .set .LANCHOR135,. + 0 + .set .LANCHOR140,. + 0 .type g_slc_page_num, %object .size g_slc_page_num, 2 g_slc_page_num: .zero 2 .section .bss.g_totle_phy_block,"aw",@nobits .align 1 - .set .LANCHOR137,. + 0 + .set .LANCHOR142,. + 0 .type g_totle_phy_block, %object .size g_totle_phy_block, 2 g_totle_phy_block: .zero 2 .section .bss.gc_des_ppa_tbl,"aw",@nobits .align 3 - .set .LANCHOR149,. + 0 + .set .LANCHOR154,. + 0 .type gc_des_ppa_tbl, %object .size gc_des_ppa_tbl, 8 gc_des_ppa_tbl: .zero 8 .section .bss.gc_free_slc_sblk_th,"aw",@nobits .align 1 - .set .LANCHOR74,. + 0 + .set .LANCHOR77,. + 0 .type gc_free_slc_sblk_th, %object .size gc_free_slc_sblk_th, 2 gc_free_slc_sblk_th: .zero 2 .section .bss.gc_lpa_tbl,"aw",@nobits .align 3 - .set .LANCHOR147,. + 0 + .set .LANCHOR152,. + 0 .type gc_lpa_tbl, %object .size gc_lpa_tbl, 8 gc_lpa_tbl: .zero 8 .section .bss.gc_mode,"aw",@nobits - .set .LANCHOR71,. + 0 + .set .LANCHOR74,. + 0 .type gc_mode, %object .size gc_mode, 1 gc_mode: .zero 1 .section .bss.gc_page_buf_id,"aw",@nobits .align 3 - .set .LANCHOR69,. + 0 + .set .LANCHOR72,. + 0 .type gc_page_buf_id, %object .size gc_page_buf_id, 8 gc_page_buf_id: .zero 8 .section .bss.gc_pre_ppa_tbl,"aw",@nobits .align 3 - .set .LANCHOR148,. + 0 + .set .LANCHOR153,. + 0 .type gc_pre_ppa_tbl, %object .size gc_pre_ppa_tbl, 8 gc_pre_ppa_tbl: .zero 8 .section .bss.gc_search_count,"aw",@nobits .align 2 - .set .LANCHOR146,. + 0 + .set .LANCHOR151,. + 0 .type gc_search_count, %object .size gc_search_count, 4 gc_search_count: .zero 4 .section .bss.gc_slc_cache_index,"aw",@nobits .align 1 - .set .LANCHOR77,. + 0 + .set .LANCHOR80,. + 0 .type gc_slc_cache_index, %object .size gc_slc_cache_index, 2 gc_slc_cache_index: .zero 2 .section .bss.gc_slc_data_index,"aw",@nobits .align 1 - .set .LANCHOR81,. + 0 + .set .LANCHOR84,. + 0 .type gc_slc_data_index, %object .size gc_slc_data_index, 2 gc_slc_data_index: .zero 2 .section .bss.gc_slc_mode_tlc_vpn_th,"aw",@nobits .align 1 - .set .LANCHOR79,. + 0 + .set .LANCHOR82,. + 0 .type gc_slc_mode_tlc_vpn_th, %object .size gc_slc_mode_tlc_vpn_th, 2 gc_slc_mode_tlc_vpn_th: .zero 2 .section .bss.gc_slc_mode_vpn_th,"aw",@nobits .align 1 - .set .LANCHOR61,. + 0 + .set .LANCHOR62,. + 0 .type gc_slc_mode_vpn_th, %object .size gc_slc_mode_vpn_th, 2 gc_slc_mode_vpn_th: .zero 2 .section .bss.gc_state,"aw",@nobits - .set .LANCHOR145,. + 0 + .set .LANCHOR150,. + 0 .type gc_state, %object .size gc_state, 1 gc_state: .zero 1 .section .bss.gc_tlc_mode_slc_vpn_th,"aw",@nobits .align 1 - .set .LANCHOR89,. + 0 + .set .LANCHOR92,. + 0 .type gc_tlc_mode_slc_vpn_th, %object .size gc_tlc_mode_slc_vpn_th, 2 gc_tlc_mode_slc_vpn_th: .zero 2 .section .bss.gc_tlc_mode_tlc_vpn_th,"aw",@nobits .align 1 - .set .LANCHOR86,. + 0 + .set .LANCHOR89,. + 0 .type gc_tlc_mode_tlc_vpn_th, %object .size gc_tlc_mode_tlc_vpn_th, 2 gc_tlc_mode_tlc_vpn_th: .zero 2 .section .bss.gc_valid_page_ppa,"aw",@nobits .align 3 - .set .LANCHOR65,. + 0 + .set .LANCHOR66,. + 0 .type gc_valid_page_ppa, %object .size gc_valid_page_ppa, 8 gc_valid_page_ppa: .zero 8 .section .bss.gc_xlc_data_index,"aw",@nobits .align 1 - .set .LANCHOR78,. + 0 + .set .LANCHOR81,. + 0 .type gc_xlc_data_index, %object .size gc_xlc_data_index, 2 gc_xlc_data_index: .zero 2 .section .bss.gc_xlc_search_index,"aw",@nobits .align 1 - .set .LANCHOR82,. + 0 + .set .LANCHOR85,. + 0 .type gc_xlc_search_index, %object .size gc_xlc_search_index, 2 gc_xlc_search_index: @@ -22520,7 +23748,7 @@ gp_blk_info: .zero 8 .section .bss.gp_data_slc_cache_head,"aw",@nobits .align 3 - .set .LANCHOR76,. + 0 + .set .LANCHOR79,. + 0 .type gp_data_slc_cache_head, %object .size gp_data_slc_cache_head, 8 gp_data_slc_cache_head: @@ -22534,17 +23762,18 @@ gp_data_slc_data_head: .zero 8 .section .bss.gp_data_xlc_data_head,"aw",@nobits .align 3 - .set .LANCHOR75,. + 0 + .set .LANCHOR78,. + 0 .type gp_data_xlc_data_head, %object .size gp_data_xlc_data_head, 8 gp_data_xlc_data_head: .zero 8 .section .bss.gp_flash_check_buf,"aw",@nobits .align 3 + .set .LANCHOR137,. + 0 .type gp_flash_check_buf, %object - .size gp_flash_check_buf, 262144 + .size gp_flash_check_buf, 8 gp_flash_check_buf: - .zero 262144 + .zero 8 .section .bss.gp_flash_info,"aw",@nobits .align 3 .set .LANCHOR26,. + 0 @@ -22554,21 +23783,21 @@ gp_flash_info: .zero 8 .section .bss.gp_free_mix_head,"aw",@nobits .align 3 - .set .LANCHOR95,. + 0 + .set .LANCHOR98,. + 0 .type gp_free_mix_head, %object .size gp_free_mix_head, 8 gp_free_mix_head: .zero 8 .section .bss.gp_free_slc_head,"aw",@nobits .align 3 - .set .LANCHOR91,. + 0 + .set .LANCHOR94,. + 0 .type gp_free_slc_head, %object .size gp_free_slc_head, 8 gp_free_slc_head: .zero 8 .section .bss.gp_free_xlc_head,"aw",@nobits .align 3 - .set .LANCHOR93,. + 0 + .set .LANCHOR96,. + 0 .type gp_free_xlc_head, %object .size gp_free_xlc_head, 8 gp_free_xlc_head: @@ -22582,7 +23811,7 @@ gp_ftl_ext_info: .zero 8 .section .bss.gp_ftl_info,"aw",@nobits .align 3 - .set .LANCHOR97,. + 0 + .set .LANCHOR100,. + 0 .type gp_ftl_info, %object .size gp_ftl_info, 8 gp_ftl_info: @@ -22610,27 +23839,28 @@ gp_sblk_list_tbl: .zero 8 .section .bss.idb_buf,"aw",@nobits .align 3 + .set .LANCHOR135,. + 0 .type idb_buf, %object - .size idb_buf, 262144 + .size idb_buf, 8 idb_buf: - .zero 262144 + .zero 8 .section .bss.idb_need_write_back,"aw",@nobits .align 2 - .set .LANCHOR169,. + 0 + .set .LANCHOR136,. + 0 .type idb_need_write_back, %object .size idb_need_write_back, 4 idb_need_write_back: .zero 4 .section .bss.lpa_hash,"aw",@nobits .align 3 - .set .LANCHOR110,. + 0 + .set .LANCHOR112,. + 0 .type lpa_hash, %object .size lpa_hash, 512 lpa_hash: .zero 512 .section .bss.lpa_hash_index,"aw",@nobits .align 3 - .set .LANCHOR112,. + 0 + .set .LANCHOR114,. + 0 .type lpa_hash_index, %object .size lpa_hash_index, 8 lpa_hash_index: @@ -22654,7 +23884,7 @@ nandc_hw_seed: nandc_randomizer_en: .zero 1 .section .bss.p_free_buf_head,"aw",@nobits - .set .LANCHOR50,. + 0 + .set .LANCHOR51,. + 0 .type p_free_buf_head, %object .size p_free_buf_head, 1 p_free_buf_head: @@ -22666,135 +23896,135 @@ p_free_buf_head: p_read_ahead_ext_buf: .zero 8 .section .bss.pm_first_write,"aw",@nobits - .set .LANCHOR191,. + 0 + .set .LANCHOR192,. + 0 .type pm_first_write, %object .size pm_first_write, 1 pm_first_write: .zero 1 .section .bss.pm_gc_enable,"aw",@nobits .align 2 - .set .LANCHOR128,. + 0 + .set .LANCHOR130,. + 0 .type pm_gc_enable, %object .size pm_gc_enable, 4 pm_gc_enable: .zero 4 .section .bss.pm_last_load_ram_id,"aw",@nobits - .set .LANCHOR201,. + 0 + .set .LANCHOR205,. + 0 .type pm_last_load_ram_id, %object .size pm_last_load_ram_id, 1 pm_last_load_ram_id: .zero 1 .section .bss.pm_last_update_ram_id,"aw",@nobits - .set .LANCHOR131,. + 0 + .set .LANCHOR133,. + 0 .type pm_last_update_ram_id, %object .size pm_last_update_ram_id, 1 pm_last_update_ram_id: .zero 1 .section .bss.pm_ram_info,"aw",@nobits .align 3 - .set .LANCHOR130,. + 0 + .set .LANCHOR132,. + 0 .type pm_ram_info, %object .size pm_ram_info, 512 pm_ram_info: .zero 512 .section .bss.read_ahead_lpa,"aw",@nobits .align 2 - .set .LANCHOR202,. + 0 + .set .LANCHOR206,. + 0 .type read_ahead_lpa, %object .size read_ahead_lpa, 4 read_ahead_lpa: .zero 4 .section .bss.read_buf_count,"aw",@nobits - .set .LANCHOR125,. + 0 + .set .LANCHOR127,. + 0 .type read_buf_count, %object .size read_buf_count, 1 read_buf_count: .zero 1 .section .bss.read_buf_head,"aw",@nobits - .set .LANCHOR124,. + 0 + .set .LANCHOR126,. + 0 .type read_buf_head, %object .size read_buf_head, 1 read_buf_head: .zero 1 .section .bss.sblk_gc_write_completed_queue_head,"aw",@nobits - .set .LANCHOR66,. + 0 + .set .LANCHOR67,. + 0 .type sblk_gc_write_completed_queue_head, %object .size sblk_gc_write_completed_queue_head, 1 sblk_gc_write_completed_queue_head: .zero 1 .section .bss.sblk_queue_head,"aw",@nobits - .set .LANCHOR53,. + 0 + .set .LANCHOR54,. + 0 .type sblk_queue_head, %object .size sblk_queue_head, 1 sblk_queue_head: .zero 1 .section .bss.sblk_read_completed_queue_head,"aw",@nobits - .set .LANCHOR127,. + 0 + .set .LANCHOR129,. + 0 .type sblk_read_completed_queue_head, %object .size sblk_read_completed_queue_head, 1 sblk_read_completed_queue_head: .zero 1 .section .bss.sblk_write_completed_queue_head,"aw",@nobits - .set .LANCHOR122,. + 0 + .set .LANCHOR124,. + 0 .type sblk_write_completed_queue_head, %object .size sblk_write_completed_queue_head, 1 sblk_write_completed_queue_head: .zero 1 .section .bss.slc_cache_sblk,"aw",@nobits .align 1 - .set .LANCHOR83,. + 0 + .set .LANCHOR86,. + 0 .type slc_cache_sblk, %object .size slc_cache_sblk, 2 slc_cache_sblk: .zero 2 .section .bss.slc_data_sblk,"aw",@nobits .align 1 - .set .LANCHOR85,. + 0 + .set .LANCHOR88,. + 0 .type slc_data_sblk, %object .size slc_data_sblk, 2 slc_data_sblk: .zero 2 .section .bss.write_buf_count,"aw",@nobits - .set .LANCHOR57,. + 0 + .set .LANCHOR58,. + 0 .type write_buf_count, %object .size write_buf_count, 1 write_buf_count: .zero 1 .section .bss.write_buf_head,"aw",@nobits - .set .LANCHOR56,. + 0 + .set .LANCHOR57,. + 0 .type write_buf_head, %object .size write_buf_head, 1 write_buf_head: .zero 1 .section .bss.write_commit_count,"aw",@nobits - .set .LANCHOR119,. + 0 + .set .LANCHOR121,. + 0 .type write_commit_count, %object .size write_commit_count, 1 write_commit_count: .zero 1 .section .bss.write_commit_head,"aw",@nobits - .set .LANCHOR173,. + 0 + .set .LANCHOR174,. + 0 .type write_commit_head, %object .size write_commit_head, 1 write_commit_head: .zero 1 .section .bss.xlc_data_sblk,"aw",@nobits .align 1 - .set .LANCHOR87,. + 0 + .set .LANCHOR90,. + 0 .type xlc_data_sblk, %object .size xlc_data_sblk, 2 xlc_data_sblk: .zero 2 .section .bss.zftl_print_list_count,"aw",@nobits .align 1 - .set .LANCHOR96,. + 0 + .set .LANCHOR99,. + 0 .type zftl_print_list_count, %object .size zftl_print_list_count, 2 zftl_print_list_count: .zero 2 .section .data.g_nand_para_info,"aw",@progbits .align 3 - .set .LANCHOR34,. + 0 + .set .LANCHOR30,. + 0 .type g_nand_para_info, %object .size g_nand_para_info, 32 g_nand_para_info: @@ -22828,7 +24058,7 @@ g_nand_para_info: .byte 0 .section .data.hy_f26_ref_value,"aw",@progbits .align 3 - .set .LANCHOR150,. + 0 + .set .LANCHOR155,. + 0 .type hy_f26_ref_value, %object .size hy_f26_ref_value, 28 hy_f26_ref_value: @@ -22862,7 +24092,7 @@ hy_f26_ref_value: .byte -37 .section .data.nand_opt_para,"aw",@progbits .align 3 - .set .LANCHOR195,. + 0 + .set .LANCHOR199,. + 0 .type nand_opt_para, %object .size nand_opt_para, 128 nand_opt_para: @@ -22944,7 +24174,7 @@ nand_opt_para: .zero 14 .section .data.sd15_slc_rr,"aw",@progbits .align 3 - .set .LANCHOR33,. + 0 + .set .LANCHOR36,. + 0 .type sd15_slc_rr, %object .size sd15_slc_rr, 25 sd15_slc_rr: @@ -22975,7 +24205,7 @@ sd15_slc_rr: .byte 112 .section .data.sd15_tlc_rr,"aw",@progbits .align 3 - .set .LANCHOR32,. + 0 + .set .LANCHOR35,. + 0 .type sd15_tlc_rr, %object .size sd15_tlc_rr, 329 sd15_tlc_rr: @@ -23310,7 +24540,7 @@ sd15_tlc_rr: .byte 0 .section .data.tlc_prog_order,"aw",@progbits .align 3 - .set .LANCHOR215,. + 0 + .set .LANCHOR219,. + 0 .type tlc_prog_order, %object .size tlc_prog_order, 768 tlc_prog_order: @@ -23707,9 +24937,9 @@ zftl_debug: .word 17476 .section .data.zftl_nand_flash_para_tbl,"aw",@progbits .align 3 - .set .LANCHOR194,. + 0 + .set .LANCHOR198,. + 0 .type zftl_nand_flash_para_tbl, %object - .size zftl_nand_flash_para_tbl, 1152 + .size zftl_nand_flash_para_tbl, 1216 zftl_nand_flash_para_tbl: .byte 6 .byte -104 @@ -24428,7 +25658,7 @@ zftl_nand_flash_para_tbl: .hword 9671 .byte 5 .byte 19 - .byte 60 + .byte 70 .byte 32 .byte 1 .byte 0 @@ -24456,7 +25686,7 @@ zftl_nand_flash_para_tbl: .hword 9671 .byte 5 .byte 19 - .byte 60 + .byte 70 .byte 32 .byte 1 .byte 0 @@ -24496,6 +25726,34 @@ zftl_nand_flash_para_tbl: .byte -33 .byte 0 .byte 6 + .byte -101 + .byte 73 + .byte 1 + .byte 0 + .byte -101 + .byte 73 + .byte 9 + .byte 1 + .byte 32 + .hword 256 + .byte 2 + .byte 1 + .hword 2144 + .hword -23097 + .byte 8 + .byte 21 + .byte 70 + .byte 32 + .byte 1 + .byte 0 + .byte 8 + .byte 0 + .hword 256 + .byte 3 + .byte 0 + .byte 0 + .byte 0 + .byte 6 .byte -83 .byte -34 .byte 20 @@ -24663,6 +25921,34 @@ zftl_nand_flash_para_tbl: .byte 0 .byte 0 .byte 0 + .byte 6 + .byte -83 + .byte 58 + .byte 20 + .byte 3 + .byte 8 + .byte 80 + .byte 2 + .byte 1 + .byte 32 + .hword 388 + .byte 2 + .byte 2 + .hword 1362 + .hword 473 + .byte 9 + .byte 8 + .byte 40 + .byte 32 + .byte 3 + .byte 1 + .byte 4 + .byte 0 + .hword 512 + .byte 2 + .byte -65 + .byte -66 + .byte 0 .byte 5 .byte -119 .byte 100 @@ -24678,7 +25964,7 @@ zftl_nand_flash_para_tbl: .byte 1 .hword 1024 .hword 455 - .byte 3 + .byte 4 .byte 17 .byte 40 .byte 32 @@ -24706,7 +25992,7 @@ zftl_nand_flash_para_tbl: .byte 2 .hword 1024 .hword 455 - .byte 3 + .byte 4 .byte 17 .byte 40 .byte 32 @@ -24719,489 +26005,496 @@ zftl_nand_flash_para_tbl: .byte 0 .byte 0 .byte 0 - .section .rodata.__func__.10060,"a",@progbits - .align 3 - .set .LANCHOR5,. + 0 - .type __func__.10060, %object - .size __func__.10060, 18 -__func__.10060: - .string "_list_remove_node" - .section .rodata.__func__.10085,"a",@progbits - .align 3 - .set .LANCHOR11,. + 0 - .type __func__.10085, %object - .size __func__.10085, 23 -__func__.10085: - .string "_list_update_data_list" - .section .rodata.__func__.10193,"a",@progbits - .align 3 - .set .LANCHOR179,. + 0 - .type __func__.10193, %object - .size __func__.10193, 15 -__func__.10193: - .string "ftl_info_flush" - .section .rodata.__func__.10225,"a",@progbits - .align 3 - .set .LANCHOR126,. + 0 - .type __func__.10225, %object - .size __func__.10225, 15 -__func__.10225: - .string "ftl_alloc_sblk" - .section .rodata.__func__.10266,"a",@progbits - .align 3 - .set .LANCHOR107,. + 0 - .type __func__.10266, %object - .size __func__.10266, 18 -__func__.10266: - .string "ftl_alloc_sys_blk" - .section .rodata.__func__.10276,"a",@progbits - .align 3 - .set .LANCHOR108,. + 0 - .type __func__.10276, %object - .size __func__.10276, 17 -__func__.10276: - .string "ftl_free_sys_blk" - .section .rodata.__func__.10311,"a",@progbits - .align 3 - .set .LANCHOR208,. + 0 - .type __func__.10311, %object - .size __func__.10311, 14 -__func__.10311: - .string "ftl_sblk_dump" - .section .rodata.__func__.10335,"a",@progbits - .align 3 - .set .LANCHOR197,. + 0 - .type __func__.10335, %object - .size __func__.10335, 16 -__func__.10335: - .string "ftl_sysblk_dump" - .section .rodata.__func__.10354,"a",@progbits - .align 3 - .set .LANCHOR188,. + 0 - .type __func__.10354, %object - .size __func__.10354, 23 -__func__.10354: - .string "ftl_open_sblk_recovery" - .section .rodata.__func__.10380,"a",@progbits - .align 3 - .set .LANCHOR109,. + 0 - .type __func__.10380, %object - .size __func__.10380, 23 -__func__.10380: - .string "ftl_get_ppa_from_index" - .section .rodata.__func__.10401,"a",@progbits + .section .rodata.__func__.10010,"a",@progbits .align 3 .set .LANCHOR211,. + 0 - .type __func__.10401, %object - .size __func__.10401, 19 -__func__.10401: - .string "ftl_update_l2p_map" - .section .rodata.__func__.10419,"a",@progbits + .type __func__.10010, %object + .size __func__.10010, 20 +__func__.10010: + .string "gc_scan_static_data" + .section .rodata.__func__.10077,"a",@progbits .align 3 - .set .LANCHOR113,. + 0 - .type __func__.10419, %object - .size __func__.10419, 22 -__func__.10419: - .string "ftl_get_new_free_page" - .section .rodata.__func__.10430,"a",@progbits + .set .LANCHOR220,. + 0 + .type __func__.10077, %object + .size __func__.10077, 11 +__func__.10077: + .string "zftl_do_gc" + .section .rodata.__func__.10170,"a",@progbits .align 3 - .set .LANCHOR114,. + 0 - .type __func__.10430, %object - .size __func__.10430, 22 -__func__.10430: - .string "ftl_ext_alloc_new_blk" - .section .rodata.__func__.10455,"a",@progbits + .set .LANCHOR5,. + 0 + .type __func__.10170, %object + .size __func__.10170, 18 +__func__.10170: + .string "_list_remove_node" + .section .rodata.__func__.10195,"a",@progbits .align 3 - .set .LANCHOR183,. + 0 - .type __func__.10455, %object - .size __func__.10455, 19 -__func__.10455: - .string "ftl_ext_info_flush" - .section .rodata.__func__.10467,"a",@progbits + .set .LANCHOR11,. + 0 + .type __func__.10195, %object + .size __func__.10195, 23 +__func__.10195: + .string "_list_update_data_list" + .section .rodata.__func__.10303,"a",@progbits .align 3 - .set .LANCHOR184,. + 0 - .type __func__.10467, %object - .size __func__.10467, 18 -__func__.10467: - .string "ftl_ext_info_init" - .section .rodata.__func__.10504,"a",@progbits + .set .LANCHOR180,. + 0 + .type __func__.10303, %object + .size __func__.10303, 15 +__func__.10303: + .string "ftl_info_flush" + .section .rodata.__func__.10335,"a",@progbits .align 3 - .set .LANCHOR185,. + 0 - .type __func__.10504, %object - .size __func__.10504, 25 -__func__.10504: - .string "ftl_low_format_data_init" - .section .rodata.__func__.10519,"a",@progbits + .set .LANCHOR128,. + 0 + .type __func__.10335, %object + .size __func__.10335, 15 +__func__.10335: + .string "ftl_alloc_sblk" + .section .rodata.__func__.10376,"a",@progbits .align 3 - .set .LANCHOR187,. + 0 - .type __func__.10519, %object - .size __func__.10519, 15 -__func__.10519: - .string "ftl_low_format" - .section .rodata.__func__.10567,"a",@progbits + .set .LANCHOR109,. + 0 + .type __func__.10376, %object + .size __func__.10376, 18 +__func__.10376: + .string "ftl_alloc_sys_blk" + .section .rodata.__func__.10386,"a",@progbits .align 3 - .set .LANCHOR176,. + 0 - .type __func__.10567, %object - .size __func__.10567, 14 -__func__.10567: - .string "ftl_prog_page" - .section .rodata.__func__.10684,"a",@progbits - .align 3 - .set .LANCHOR165,. + 0 - .type __func__.10684, %object - .size __func__.10684, 31 -__func__.10684: - .string "queue_wait_first_req_completed" - .section .rodata.__func__.10737,"a",@progbits - .align 3 - .set .LANCHOR172,. + 0 - .type __func__.10737, %object - .size __func__.10737, 15 -__func__.10737: - .string "sblk_prog_page" - .section .rodata.__func__.10764,"a",@progbits - .align 3 - .set .LANCHOR167,. + 0 - .type __func__.10764, %object - .size __func__.10764, 15 -__func__.10764: - .string "sblk_read_page" - .section .rodata.__func__.10803,"a",@progbits - .align 3 - .set .LANCHOR198,. + 0 - .type __func__.10803, %object - .size __func__.10803, 16 -__func__.10803: - .string "load_l2p_region" - .section .rodata.__func__.10817,"a",@progbits - .align 3 - .set .LANCHOR142,. + 0 - .type __func__.10817, %object - .size __func__.10817, 13 -__func__.10817: - .string "pm_free_sblk" - .section .rodata.__func__.10837,"a",@progbits - .align 3 - .set .LANCHOR200,. + 0 - .type __func__.10837, %object - .size __func__.10837, 6 -__func__.10837: - .string "pm_gc" - .section .rodata.__func__.10853,"a",@progbits - .align 3 - .set .LANCHOR129,. + 0 - .type __func__.10853, %object - .size __func__.10853, 17 -__func__.10853: - .string "pm_alloc_new_blk" - .section .rodata.__func__.10863,"a",@progbits - .align 3 - .set .LANCHOR189,. + 0 - .type __func__.10863, %object - .size __func__.10863, 14 -__func__.10863: - .string "pm_write_page" - .section .rodata.__func__.10881,"a",@progbits - .align 3 - .set .LANCHOR132,. + 0 - .type __func__.10881, %object - .size __func__.10881, 21 -__func__.10881: - .string "pm_select_ram_region" - .section .rodata.__func__.8530,"a",@progbits - .align 3 - .set .LANCHOR156,. + 0 - .type __func__.8530, %object - .size __func__.8530, 19 -__func__.8530: - .string "flash_read_page_en" - .section .rodata.__func__.8559,"a",@progbits - .align 3 - .set .LANCHOR174,. + 0 - .type __func__.8559, %object - .size __func__.8559, 19 -__func__.8559: - .string "flash_prog_page_en" - .section .rodata.__func__.8574,"a",@progbits - .align 3 - .set .LANCHOR37,. + 0 - .type __func__.8574, %object - .size __func__.8574, 26 -__func__.8574: - .string "flash_erase_duplane_block" - .section .rodata.__func__.8585,"a",@progbits - .align 3 - .set .LANCHOR39,. + 0 - .type __func__.8585, %object - .size __func__.8585, 21 -__func__.8585: - .string "flash_erase_block_en" - .section .rodata.__func__.8599,"a",@progbits - .align 3 - .set .LANCHOR28,. + 0 - .type __func__.8599, %object - .size __func__.8599, 28 -__func__.8599: - .string "flash_wait_device_ready_raw" - .section .rodata.__func__.8623,"a",@progbits - .align 3 - .set .LANCHOR170,. + 0 - .type __func__.8623, %object - .size __func__.8623, 26 -__func__.8623: - .string "flash_start_tlc_page_prog" - .section .rodata.__func__.8641,"a",@progbits - .align 3 - .set .LANCHOR171,. + 0 - .type __func__.8641, %object - .size __func__.8641, 22 -__func__.8641: - .string "flash_start_page_prog" - .section .rodata.__func__.8652,"a",@progbits - .align 3 - .set .LANCHOR36,. + 0 - .type __func__.8652, %object - .size __func__.8652, 22 -__func__.8652: - .string "flash_start_page_read" - .section .rodata.__func__.8665,"a",@progbits - .align 3 - .set .LANCHOR163,. + 0 - .type __func__.8665, %object - .size __func__.8665, 31 -__func__.8665: - .string "flash_complete_plane_page_read" - .section .rodata.__func__.8677,"a",@progbits - .align 3 - .set .LANCHOR40,. + 0 - .type __func__.8677, %object - .size __func__.8677, 23 -__func__.8677: - .string "flash_start_plane_read" - .section .rodata.__func__.8690,"a",@progbits - .align 3 - .set .LANCHOR164,. + 0 - .type __func__.8690, %object - .size __func__.8690, 25 -__func__.8690: - .string "flash_complete_page_read" - .section .rodata.__func__.9001,"a",@progbits - .align 3 - .set .LANCHOR134,. + 0 - .type __func__.9001, %object - .size __func__.9001, 20 -__func__.9001: - .string "flash_die_info_init" - .section .rodata.__func__.9011,"a",@progbits - .align 3 - .set .LANCHOR15,. + 0 - .type __func__.9011, %object - .size __func__.9011, 22 -__func__.9011: - .string "nand_flash_print_info" - .section .rodata.__func__.9056,"a",@progbits - .align 3 - .set .LANCHOR193,. + 0 - .type __func__.9056, %object - .size __func__.9056, 16 -__func__.9056: - .string "nand_flash_init" - .section .rodata.__func__.9079,"a",@progbits - .align 3 - .set .LANCHOR144,. + 0 - .type __func__.9079, %object - .size __func__.9079, 11 -__func__.9079: - .string "nandc_init" - .section .rodata.__func__.9239,"a",@progbits - .align 3 - .set .LANCHOR52,. + 0 - .type __func__.9239, %object - .size __func__.9239, 13 -__func__.9239: - .string "buf_add_tail" - .section .rodata.__func__.9252,"a",@progbits - .align 3 - .set .LANCHOR54,. + 0 - .type __func__.9252, %object - .size __func__.9252, 10 -__func__.9252: - .string "buf_alloc" - .section .rodata.__func__.9266,"a",@progbits - .align 3 - .set .LANCHOR55,. + 0 - .type __func__.9266, %object - .size __func__.9266, 16 -__func__.9266: - .string "buf_remove_free" - .section .rodata.__func__.9278,"a",@progbits - .align 3 - .set .LANCHOR158,. + 0 - .type __func__.9278, %object - .size __func__.9278, 20 -__func__.9278: - .string "flash_info_blk_init" - .section .rodata.__func__.9289,"a",@progbits - .align 3 - .set .LANCHOR143,. + 0 - .type __func__.9289, %object - .size __func__.9289, 21 -__func__.9289: - .string "flash_info_data_init" - .section .rodata.__func__.9311,"a",@progbits - .align 3 - .set .LANCHOR192,. + 0 - .type __func__.9311, %object - .size __func__.9311, 17 -__func__.9311: - .string "flash_info_flush" - .section .rodata.__func__.9387,"a",@progbits - .align 3 - .set .LANCHOR138,. + 0 - .type __func__.9387, %object - .size __func__.9387, 17 -__func__.9387: - .string "lpa_rebuild_hash" - .section .rodata.__func__.9434,"a",@progbits + .set .LANCHOR110,. + 0 + .type __func__.10386, %object + .size __func__.10386, 17 +__func__.10386: + .string "ftl_free_sys_blk" + .section .rodata.__func__.10421,"a",@progbits .align 3 .set .LANCHOR212,. + 0 - .type __func__.9434, %object - .size __func__.9434, 17 -__func__.9434: - .string "ftl_write_commit" - .section .rodata.__func__.9452,"a",@progbits + .type __func__.10421, %object + .size __func__.10421, 14 +__func__.10421: + .string "ftl_sblk_dump" + .section .rodata.__func__.10445,"a",@progbits .align 3 - .set .LANCHOR120,. + 0 - .type __func__.9452, %object - .size __func__.9452, 14 -__func__.9452: - .string "ftl_write_buf" - .section .rodata.__func__.9496,"a",@progbits + .set .LANCHOR201,. + 0 + .type __func__.10445, %object + .size __func__.10445, 16 +__func__.10445: + .string "ftl_sysblk_dump" + .section .rodata.__func__.10467,"a",@progbits .align 3 - .set .LANCHOR123,. + 0 - .type __func__.9496, %object - .size __func__.9496, 18 -__func__.9496: - .string "zftl_add_read_buf" - .section .rodata.__func__.9529,"a",@progbits + .set .LANCHOR189,. + 0 + .type __func__.10467, %object + .size __func__.10467, 23 +__func__.10467: + .string "ftl_open_sblk_recovery" + .section .rodata.__func__.10497,"a",@progbits .align 3 - .set .LANCHOR209,. + 0 - .type __func__.9529, %object - .size __func__.9529, 10 -__func__.9529: - .string "zftl_read" - .section .rodata.__func__.9560,"a",@progbits + .set .LANCHOR111,. + 0 + .type __func__.10497, %object + .size __func__.10497, 23 +__func__.10497: + .string "ftl_get_ppa_from_index" + .section .rodata.__func__.10518,"a",@progbits .align 3 - .set .LANCHOR218,. + 0 - .type __func__.9560, %object - .size __func__.9560, 13 -__func__.9560: - .string "_ftl_discard" - .section .rodata.__func__.9679,"a",@progbits + .set .LANCHOR215,. + 0 + .type __func__.10518, %object + .size __func__.10518, 19 +__func__.10518: + .string "ftl_update_l2p_map" + .section .rodata.__func__.10536,"a",@progbits .align 3 - .set .LANCHOR60,. + 0 - .type __func__.9679, %object - .size __func__.9679, 12 -__func__.9679: - .string "gc_add_sblk" - .section .rodata.__func__.9700,"a",@progbits + .set .LANCHOR115,. + 0 + .type __func__.10536, %object + .size __func__.10536, 22 +__func__.10536: + .string "ftl_get_new_free_page" + .section .rodata.__func__.10547,"a",@progbits .align 3 - .set .LANCHOR210,. + 0 - .type __func__.9700, %object - .size __func__.9700, 21 -__func__.9700: - .string "gc_check_data_one_wl" - .section .rodata.__func__.9734,"a",@progbits + .set .LANCHOR116,. + 0 + .type __func__.10547, %object + .size __func__.10547, 22 +__func__.10547: + .string "ftl_ext_alloc_new_blk" + .section .rodata.__func__.10572,"a",@progbits .align 3 - .set .LANCHOR205,. + 0 - .type __func__.9734, %object - .size __func__.9734, 22 -__func__.9734: - .string "gc_update_l2p_map_new" - .section .rodata.__func__.9747,"a",@progbits + .set .LANCHOR184,. + 0 + .type __func__.10572, %object + .size __func__.10572, 19 +__func__.10572: + .string "ftl_ext_info_flush" + .section .rodata.__func__.10584,"a",@progbits .align 3 - .set .LANCHOR67,. + 0 - .type __func__.9747, %object - .size __func__.9747, 19 -__func__.9747: - .string "gc_write_completed" - .section .rodata.__func__.9776,"a",@progbits + .set .LANCHOR185,. + 0 + .type __func__.10584, %object + .size __func__.10584, 18 +__func__.10584: + .string "ftl_ext_info_init" + .section .rodata.__func__.10621,"a",@progbits .align 3 - .set .LANCHOR214,. + 0 - .type __func__.9776, %object - .size __func__.9776, 16 -__func__.9776: - .string "gc_do_copy_back" - .section .rodata.__func__.9798,"a",@progbits + .set .LANCHOR186,. + 0 + .type __func__.10621, %object + .size __func__.10621, 25 +__func__.10621: + .string "ftl_low_format_data_init" + .section .rodata.__func__.10636,"a",@progbits .align 3 - .set .LANCHOR103,. + 0 - .type __func__.9798, %object - .size __func__.9798, 16 -__func__.9798: - .string "gc_free_src_blk" - .section .rodata.__func__.9842,"a",@progbits + .set .LANCHOR188,. + 0 + .type __func__.10636, %object + .size __func__.10636, 15 +__func__.10636: + .string "ftl_low_format" + .section .rodata.__func__.10684,"a",@progbits .align 3 - .set .LANCHOR206,. + 0 - .type __func__.9842, %object - .size __func__.9842, 16 -__func__.9842: - .string "gc_scan_src_blk" - .section .rodata.__func__.9900,"a",@progbits + .set .LANCHOR177,. + 0 + .type __func__.10684, %object + .size __func__.10684, 14 +__func__.10684: + .string "ftl_prog_page" + .section .rodata.__func__.10806,"a",@progbits .align 3 - .set .LANCHOR207,. + 0 - .type __func__.9900, %object - .size __func__.9900, 20 -__func__.9900: - .string "gc_scan_static_data" - .section .rodata.__func__.9967,"a",@progbits + .set .LANCHOR167,. + 0 + .type __func__.10806, %object + .size __func__.10806, 31 +__func__.10806: + .string "queue_wait_first_req_completed" + .section .rodata.__func__.10860,"a",@progbits + .align 3 + .set .LANCHOR173,. + 0 + .type __func__.10860, %object + .size __func__.10860, 15 +__func__.10860: + .string "sblk_prog_page" + .section .rodata.__func__.10887,"a",@progbits + .align 3 + .set .LANCHOR169,. + 0 + .type __func__.10887, %object + .size __func__.10887, 15 +__func__.10887: + .string "sblk_read_page" + .section .rodata.__func__.10947,"a",@progbits + .align 3 + .set .LANCHOR202,. + 0 + .type __func__.10947, %object + .size __func__.10947, 16 +__func__.10947: + .string "load_l2p_region" + .section .rodata.__func__.10961,"a",@progbits + .align 3 + .set .LANCHOR147,. + 0 + .type __func__.10961, %object + .size __func__.10961, 13 +__func__.10961: + .string "pm_free_sblk" + .section .rodata.__func__.10981,"a",@progbits + .align 3 + .set .LANCHOR204,. + 0 + .type __func__.10981, %object + .size __func__.10981, 6 +__func__.10981: + .string "pm_gc" + .section .rodata.__func__.10997,"a",@progbits + .align 3 + .set .LANCHOR131,. + 0 + .type __func__.10997, %object + .size __func__.10997, 17 +__func__.10997: + .string "pm_alloc_new_blk" + .section .rodata.__func__.11007,"a",@progbits + .align 3 + .set .LANCHOR190,. + 0 + .type __func__.11007, %object + .size __func__.11007, 14 +__func__.11007: + .string "pm_write_page" + .section .rodata.__func__.11025,"a",@progbits + .align 3 + .set .LANCHOR134,. + 0 + .type __func__.11025, %object + .size __func__.11025, 21 +__func__.11025: + .string "pm_select_ram_region" + .section .rodata.__func__.8556,"a",@progbits + .align 3 + .set .LANCHOR161,. + 0 + .type __func__.8556, %object + .size __func__.8556, 19 +__func__.8556: + .string "flash_read_page_en" + .section .rodata.__func__.8598,"a",@progbits + .align 3 + .set .LANCHOR175,. + 0 + .type __func__.8598, %object + .size __func__.8598, 19 +__func__.8598: + .string "flash_prog_page_en" + .section .rodata.__func__.8614,"a",@progbits + .align 3 + .set .LANCHOR37,. + 0 + .type __func__.8614, %object + .size __func__.8614, 26 +__func__.8614: + .string "flash_erase_duplane_block" + .section .rodata.__func__.8625,"a",@progbits + .align 3 + .set .LANCHOR39,. + 0 + .type __func__.8625, %object + .size __func__.8625, 21 +__func__.8625: + .string "flash_erase_block_en" + .section .rodata.__func__.8639,"a",@progbits + .align 3 + .set .LANCHOR28,. + 0 + .type __func__.8639, %object + .size __func__.8639, 28 +__func__.8639: + .string "flash_wait_device_ready_raw" + .section .rodata.__func__.8663,"a",@progbits + .align 3 + .set .LANCHOR170,. + 0 + .type __func__.8663, %object + .size __func__.8663, 26 +__func__.8663: + .string "flash_start_tlc_page_prog" + .section .rodata.__func__.8674,"a",@progbits + .align 3 + .set .LANCHOR171,. + 0 + .type __func__.8674, %object + .size __func__.8674, 29 +__func__.8674: + .string "flash_start_3d_mlc_page_prog" + .section .rodata.__func__.8692,"a",@progbits + .align 3 + .set .LANCHOR172,. + 0 + .type __func__.8692, %object + .size __func__.8692, 22 +__func__.8692: + .string "flash_start_page_prog" + .section .rodata.__func__.8703,"a",@progbits + .align 3 + .set .LANCHOR32,. + 0 + .type __func__.8703, %object + .size __func__.8703, 22 +__func__.8703: + .string "flash_start_page_read" + .section .rodata.__func__.8716,"a",@progbits + .align 3 + .set .LANCHOR165,. + 0 + .type __func__.8716, %object + .size __func__.8716, 31 +__func__.8716: + .string "flash_complete_plane_page_read" + .section .rodata.__func__.8728,"a",@progbits + .align 3 + .set .LANCHOR40,. + 0 + .type __func__.8728, %object + .size __func__.8728, 23 +__func__.8728: + .string "flash_start_plane_read" + .section .rodata.__func__.8741,"a",@progbits + .align 3 + .set .LANCHOR166,. + 0 + .type __func__.8741, %object + .size __func__.8741, 25 +__func__.8741: + .string "flash_complete_page_read" + .section .rodata.__func__.9073,"a",@progbits + .align 3 + .set .LANCHOR139,. + 0 + .type __func__.9073, %object + .size __func__.9073, 20 +__func__.9073: + .string "flash_die_info_init" + .section .rodata.__func__.9083,"a",@progbits + .align 3 + .set .LANCHOR15,. + 0 + .type __func__.9083, %object + .size __func__.9083, 22 +__func__.9083: + .string "nand_flash_print_info" + .section .rodata.__func__.9128,"a",@progbits + .align 3 + .set .LANCHOR197,. + 0 + .type __func__.9128, %object + .size __func__.9128, 16 +__func__.9128: + .string "nand_flash_init" + .section .rodata.__func__.9151,"a",@progbits + .align 3 + .set .LANCHOR149,. + 0 + .type __func__.9151, %object + .size __func__.9151, 11 +__func__.9151: + .string "nandc_init" + .section .rodata.__func__.9320,"a",@progbits + .align 3 + .set .LANCHOR53,. + 0 + .type __func__.9320, %object + .size __func__.9320, 13 +__func__.9320: + .string "buf_add_tail" + .section .rodata.__func__.9333,"a",@progbits + .align 3 + .set .LANCHOR55,. + 0 + .type __func__.9333, %object + .size __func__.9333, 10 +__func__.9333: + .string "buf_alloc" + .section .rodata.__func__.9347,"a",@progbits + .align 3 + .set .LANCHOR56,. + 0 + .type __func__.9347, %object + .size __func__.9347, 16 +__func__.9347: + .string "buf_remove_free" + .section .rodata.__func__.9360,"a",@progbits + .align 3 + .set .LANCHOR196,. + 0 + .type __func__.9360, %object + .size __func__.9360, 20 +__func__.9360: + .string "flash_info_blk_init" + .section .rodata.__func__.9371,"a",@progbits + .align 3 + .set .LANCHOR148,. + 0 + .type __func__.9371, %object + .size __func__.9371, 21 +__func__.9371: + .string "flash_info_data_init" + .section .rodata.__func__.9393,"a",@progbits + .align 3 + .set .LANCHOR193,. + 0 + .type __func__.9393, %object + .size __func__.9393, 17 +__func__.9393: + .string "flash_info_flush" + .section .rodata.__func__.9469,"a",@progbits + .align 3 + .set .LANCHOR143,. + 0 + .type __func__.9469, %object + .size __func__.9469, 17 +__func__.9469: + .string "lpa_rebuild_hash" + .section .rodata.__func__.9516,"a",@progbits .align 3 .set .LANCHOR216,. + 0 - .type __func__.9967, %object - .size __func__.9967, 11 -__func__.9967: - .string "zftl_do_gc" + .type __func__.9516, %object + .size __func__.9516, 17 +__func__.9516: + .string "ftl_write_commit" + .section .rodata.__func__.9534,"a",@progbits + .align 3 + .set .LANCHOR122,. + 0 + .type __func__.9534, %object + .size __func__.9534, 14 +__func__.9534: + .string "ftl_write_buf" + .section .rodata.__func__.9578,"a",@progbits + .align 3 + .set .LANCHOR125,. + 0 + .type __func__.9578, %object + .size __func__.9578, 18 +__func__.9578: + .string "zftl_add_read_buf" + .section .rodata.__func__.9611,"a",@progbits + .align 3 + .set .LANCHOR213,. + 0 + .type __func__.9611, %object + .size __func__.9611, 10 +__func__.9611: + .string "zftl_read" + .section .rodata.__func__.9642,"a",@progbits + .align 3 + .set .LANCHOR222,. + 0 + .type __func__.9642, %object + .size __func__.9642, 13 +__func__.9642: + .string "_ftl_discard" + .section .rodata.__func__.9789,"a",@progbits + .align 3 + .set .LANCHOR61,. + 0 + .type __func__.9789, %object + .size __func__.9789, 12 +__func__.9789: + .string "gc_add_sblk" + .section .rodata.__func__.9810,"a",@progbits + .align 3 + .set .LANCHOR214,. + 0 + .type __func__.9810, %object + .size __func__.9810, 21 +__func__.9810: + .string "gc_check_data_one_wl" + .section .rodata.__func__.9844,"a",@progbits + .align 3 + .set .LANCHOR209,. + 0 + .type __func__.9844, %object + .size __func__.9844, 22 +__func__.9844: + .string "gc_update_l2p_map_new" + .section .rodata.__func__.9857,"a",@progbits + .align 3 + .set .LANCHOR68,. + 0 + .type __func__.9857, %object + .size __func__.9857, 19 +__func__.9857: + .string "gc_write_completed" + .section .rodata.__func__.9886,"a",@progbits + .align 3 + .set .LANCHOR218,. + 0 + .type __func__.9886, %object + .size __func__.9886, 16 +__func__.9886: + .string "gc_do_copy_back" + .section .rodata.__func__.9908,"a",@progbits + .align 3 + .set .LANCHOR106,. + 0 + .type __func__.9908, %object + .size __func__.9908, 16 +__func__.9908: + .string "gc_free_src_blk" + .section .rodata.__func__.9952,"a",@progbits + .align 3 + .set .LANCHOR210,. + 0 + .type __func__.9952, %object + .size __func__.9952, 16 +__func__.9952: + .string "gc_scan_src_blk" .section .rodata._list_remove_node.str1.1,"aMS",@progbits,1 .LC0: .string "\n!!!!! error @ func:%s - line:%d\n" .section .rodata.dump_ftl_info.str1.1,"aMS",@progbits,1 -.LC154: +.LC165: .string "free_buf_count: %d\n" -.LC155: +.LC166: .string "g_ftl_info_blk blk:0x%x, index:0x%x, page:0x%x\n" -.LC156: +.LC167: .string "ftl_ext_info_blk blk:0x%x, page:0x%x\n" -.LC157: +.LC168: .string "ac_blk:0x%x, page:0x%x, index:0x%x, free:0x%x, page_index:0x%x\n" -.LC158: +.LC169: .string "tmp_blk:0x%x, page:0x%x, index:0x%x, free:0x%x, page_index:0x%x\n" -.LC159: +.LC170: .string "gc_blk:0x%x, page:0x%x, index:0x%x, free:0x%x, page_index:0x%x\n" -.LC160: +.LC171: .string "lpa:" -.LC161: +.LC172: .string "vpn:" -.LC162: +.LC173: .string "sblk:" -.LC163: +.LC174: .string "lpa_hash:" -.LC164: +.LC175: .string "lpa_hash_index:" .section .rodata.dump_sblk_queue.str1.1,"aMS",@progbits,1 -.LC68: +.LC70: .string "dump_sblk_queue: %d\n" -.LC69: +.LC71: .string "buf id= %d state = %d ppa = %x\n" .section .rodata.flash_complete_page_read.str1.1,"aMS",@progbits,1 .LC118: .string "flash_complete_page_read %x %x error_ecc %d %d\n" .section .rodata.flash_ddr_tuning_read.str1.1,"aMS",@progbits,1 -.LC109: - .string "%d flash_ddr_tuning_read %x ecc=%d\n" -.LC110: - .string "sync para %d\n" .LC111: - .string "DDR mode Read error %x %x\n" + .string "%d flash_ddr_tuning_read %x ecc=%d\n" .LC112: + .string "sync para %d\n" +.LC113: + .string "DDR mode Read error %x %x\n" +.LC114: .string "SDR mode Read %x %x ecc:%x\n" .section .rodata.flash_erase_all.str1.1,"aMS",@progbits,1 .LC35: @@ -25217,25 +26510,25 @@ __func__.9967: .LC32: .string "flash_erase_duplane_block pageadd = %x status = %x\n" .section .rodata.flash_get_last_written_page.str1.1,"aMS",@progbits,1 -.LC115: +.LC117: .string "flash_get_last_written_page: %x %x %x\n" .section .rodata.flash_info_blk_init.str1.1,"aMS",@progbits,1 -.LC116: +.LC162: .string "...%d @ %s %d %p\n" -.LC117: +.LC163: .string "no sys info %x\n" .section .rodata.flash_info_data_init.str1.1,"aMS",@progbits,1 -.LC84: +.LC86: .string "...%d @ %s\n" .section .rodata.flash_info_flush.str1.1,"aMS",@progbits,1 -.LC149: +.LC159: .string "finfo:" -.LC150: +.LC160: .string "flash_info_flush id = %x, page = %x\n" -.LC151: +.LC161: .string "sys_info_flush error:%x\n" .section .rodata.flash_mask_bad_block.str1.1,"aMS",@progbits,1 -.LC40: +.LC41: .string "flash_mask_bad_block %d %d\n" .section .rodata.flash_prog_page.str1.1,"aMS",@progbits,1 .LC122: @@ -25243,28 +26536,31 @@ __func__.9967: .LC123: .string "flash_prog_page page_addr = %x status = %x\n" .section .rodata.flash_prog_page_en.str1.1,"aMS",@progbits,1 -.LC128: - .string "flash_prog_page_en:%x %x\n" -.LC129: - .string "w d:" .LC130: - .string "w s:" + .string "flash_prog_page_en:%x %x %x\n" .LC131: - .string "spare" + .string "w d:" .LC132: - .string "data" + .string "w s:" .LC133: + .string "spare" +.LC134: + .string "data" +.LC135: .string "write error: %x\n" .section .rodata.flash_read_id.str1.1,"aMS",@progbits,1 .LC38: .string "No.%d FLASH ID:%x %x %x %x %x %x\n" + .section .rodata.flash_read_otp_data.str1.1,"aMS",@progbits,1 +.LC39: + .string "otp:%x %x %x %x\n" .section .rodata.flash_read_page.str1.1,"aMS",@progbits,1 -.LC102: +.LC104: .string "flash_read_page %x %x %x\n" .section .rodata.flash_read_page_en.str1.1,"aMS",@progbits,1 -.LC113: +.LC115: .string "flash_read_page_en %x %x %x\n" -.LC114: +.LC116: .string "flash_read_page_en %x %x error_ecc %d %d\n" .section .rodata.flash_set_interface_mode.str1.1,"aMS",@progbits,1 .LC36: @@ -25272,171 +26568,186 @@ __func__.9967: .LC37: .string "nand ddr mode %x\n" .section .rodata.ftl_alloc_sblk.str1.1,"aMS",@progbits,1 -.LC67: +.LC69: .string "alloc sblk %x %d\n" + .section .rodata.ftl_dump_write_open_sblk.str1.1,"aMS",@progbits,1 +.LC154: + .string "ftl_sblk_dump_write = %x %d %d %d %d\n" +.LC155: + .string "blk= %x, page=%x, ppa = %x, status = %x, data:%x %x %x %x, spare: %x %x %x %x\n" +.LC156: + .string "ftl_sblk_dump_write2 = %x %d %d %d\n" +.LC157: + .string "ftl_sblk_dump_write = %x %x\n" +.LC158: + .string "ftl_sblk_dump_write done = %x\n" .section .rodata.ftl_ext_info_init.str1.1,"aMS",@progbits,1 -.LC138: +.LC140: .string "%s %d %d %x %x\n" .section .rodata.ftl_free_sblk.str1.1,"aMS",@progbits,1 -.LC55: - .string "swl_tlc_free_mini_ec_blk sblk %x\n" .LC56: + .string "swl_tlc_free_mini_ec_blk sblk %x\n" +.LC57: .string "swl_slc_free_mini_ec_blk sblk %x\n" .section .rodata.ftl_info_blk_init.str1.1,"aMS",@progbits,1 -.LC136: +.LC138: .string "%d %x @%d %x\n" -.LC137: +.LC139: .string "ftl_info_blk_init %d %d %x\n" .section .rodata.ftl_info_flush.str1.1,"aMS",@progbits,1 -.LC135: +.LC137: .string "g_ftl_info_blk blk = %x, page = %x version = %d\n" .section .rodata.ftl_low_format.str1.1,"aMS",@progbits,1 -.LC139: +.LC141: .string "ftl_low_format %d\n" -.LC140: +.LC142: .string "low format %d %d %d %d\n" .section .rodata.ftl_mask_bad_block.str1.1,"aMS",@progbits,1 -.LC60: +.LC61: .string "mask bad block:cs %x block: %x\n" .section .rodata.ftl_open_sblk_recovery.str1.1,"aMS",@progbits,1 -.LC142: - .string "saved_active_page = %x\n" -.LC143: - .string "saved_active_plane = %x\n" .LC144: - .string "sblk = %x\n" + .string "saved_active_page = %x\n" .LC145: - .string "phy_blk = %x %x\n" + .string "saved_active_plane = %x\n" .LC146: - .string "sblk = %x, vpn0 = %d, vpn1 = %d\n" + .string "sblk = %x\n" .LC147: - .string "dump write = %x\n" + .string "phy_blk = %x %x\n" +.LC148: + .string "sblk = %x, vpn0 = %d, vpn1 = %d\n" +.LC149: + .string "dump_write_lpa = %x %x %x %x\n" +.LC150: + .string "dump write new ppa = %x, last ppa = %x lpa = %x\n" +.LC151: + .string "dump write = %x %x\n" +.LC152: + .string "dump write hash update = %x %x %x\n" .section .rodata.ftl_re_low_format.str1.1,"aMS",@progbits,1 -.LC141: +.LC143: .string "re low format %d\n" .section .rodata.ftl_sblk_dump.str1.1,"aMS",@progbits,1 -.LC197: +.LC208: .string "ftl_sblk_dump = %x %d %d %d %d\n" -.LC198: +.LC209: .string "ftl_sblk_dump = %x %x %x %x\n" -.LC199: +.LC210: .string "page_addr = %x, lpa=%x vpn = %d\n" -.LC200: +.LC211: .string "index= %x, lpa=%x\n" -.LC201: +.LC212: .string "block = %x, vpn=%x check vpn = %d\n" .section .rodata.ftl_sysblk_dump.str1.1,"aMS",@progbits,1 -.LC152: - .string "blk= %x, page=%x, ppa = %x, status = %x, data:%x %x %x %x, spare: %x %x %x %x\n" -.LC153: +.LC164: .string "l2p:" .section .rodata.ftl_test_block.str1.1,"aMS",@progbits,1 -.LC134: +.LC136: .string "low format %d\n" .section .rodata.ftl_update_l2p_map.str1.1,"aMS",@progbits,1 -.LC208: +.LC219: .string "ftl_update_l2p_map: %x %x %x\n" -.LC209: +.LC220: .string "ftl_update_l2p_map" -.LC210: +.LC221: .string "lpa_tbl:" -.LC211: +.LC222: .string "sblk %x vpn: %d %d\n" .section .rodata.ftl_vpn_decrement.str1.1,"aMS",@progbits,1 -.LC59: +.LC60: .string "ftl_vpn_decrement %x = %d, %d\n" .section .rodata.ftl_write_commit.str1.1,"aMS",@progbits,1 -.LC212: +.LC223: .string "%d read error: ppa:%x, lpa:%x, status:%x\n" .section .rodata.ftl_write_completed.str1.1,"aMS",@progbits,1 -.LC66: +.LC68: .string "ftl prog error =%x, lpa = %x, ppa= %x\n" .section .rodata.gc_add_sblk.str1.1,"aMS",@progbits,1 -.LC41: - .string "gc_add_sblk = %d, %d, %d, %d, %d, %d\n" .LC42: + .string "gc_add_sblk = %d, %d, %d, %d, %d, %d\n" +.LC43: .string "gc_add_sblk = %d, %d, %d,last update:%d, %d\n" .section .rodata.gc_check_data_one_wl.str1.1,"aMS",@progbits,1 -.LC205: +.LC216: .string "gc_lpa:" -.LC206: +.LC217: .string "gc_ppa:" -.LC207: +.LC218: .string "err: ppa = %x, status = %x, %x %x spare: %x %x %x %x\n" .section .rodata.gc_do_copy_back.str1.1,"aMS",@progbits,1 -.LC213: +.LC224: .string "gc page in buf: lpa %x ppa = %x pageindex= %x\n" -.LC214: +.LC225: .string "gc_do_copy_back: lpa %x des_ppa = %x %x gc_ppa= %x page_index= %d\n" -.LC215: +.LC226: .string "gc_do_copy_back: %x %x %x %x gc_ppa:%x %x\n" -.LC216: +.LC227: .string "%d prog_step: %x %x buf id= %x ppa = %x hash=%x id = %x plane = %x lpa=%x\n" .section .rodata.gc_free_src_blk.str1.1,"aMS",@progbits,1 -.LC57: - .string "gc_free_src_blk = %x, vpn = %d\n" .LC58: + .string "gc_free_src_blk = %x, vpn = %d\n" +.LC59: .string "gc_free_src_blk %x, %d\n" .section .rodata.gc_free_temp_buf.str1.1,"aMS",@progbits,1 -.LC45: +.LC46: .string "%d gc_free_temp_buf buf id= %x\n" .section .rodata.gc_recovery.str1.1,"aMS",@progbits,1 -.LC175: +.LC186: .string "ppa = %x, status = %x, data:%x %x %x %x, spare: %x %x %x %x\n" -.LC176: +.LC187: .string "ppa = %x, status = %x, %x %x spare: %x %x %x %x\n" -.LC177: +.LC188: .string "gc_recovery: %x vpn = %x\n" .section .rodata.gc_scan_src_blk.str1.1,"aMS",@progbits,1 -.LC195: +.LC206: .string "gc_scan_src_blk = %x, vpn = %d\n" -.LC196: +.LC207: .string "gc_scan_src_blk = %x, s vpn0 = %d, c vpn1 = %d\n" .section .rodata.gc_search_src_blk.str1.1,"aMS",@progbits,1 -.LC47: - .string "zftl_get_gc_node cache = %x index = %d vpn = %x\n" .LC48: + .string "zftl_get_gc_node cache = %x index = %d vpn = %x\n" +.LC49: .string "gc_search_src_blk mode = %x, src mode = %x, count= %d %d\n" .section .rodata.gc_static_wearleveling.str1.1,"aMS",@progbits,1 -.LC73: - .string "gc_static_wearleveling: min blk: %x,sec=%d,xec = %d ,mode=%d, func=%x, bbt=%x vpn = %d\n" -.LC74: - .string "gc_static_wearleveling: min slc blk: %x,sec=%d,xec = %d ,mode=%d, func=%x, bbt=%x vpn = %d\n" .LC75: - .string "gc_static_wearleveling: min tlc blk: %x,sec=%d,xec = %d ,mode=%d, func=%x, bbt=%x vpn = %d\n" + .string "gc_static_wearleveling: min blk: %x,sec=%d,xec = %d ,mode=%d, func=%x, bbt=%x vpn = %d\n" .LC76: - .string "gc_static_wearleveling: max slc blk: %x,sec=%d,xec = %d ,mode=%d, func=%x, bbt=%x vpn = %d\n" + .string "gc_static_wearleveling: min slc blk: %x,sec=%d,xec = %d ,mode=%d, func=%x, bbt=%x vpn = %d\n" .LC77: - .string "gc_static_wearleveling: max xlc blk: %x,sec=%d,xec = %d ,mode=%d, func=%x, bbt=%x vpn = %d\n" + .string "gc_static_wearleveling: min tlc blk: %x,sec=%d,xec = %d ,mode=%d, func=%x, bbt=%x vpn = %d\n" .LC78: - .string "gc_static_wearleveling: slc blk: %x, tlc blk: %d avg slc ec: %d, avg tlc ec: %d \n" + .string "gc_static_wearleveling: max slc blk: %x,sec=%d,xec = %d ,mode=%d, func=%x, bbt=%x vpn = %d\n" .LC79: - .string "gc_static_wearleveling: min slc ec: %x, min tlc ec: %d max slc ec: %d, max tlc ec: %d; %d %d\n" + .string "gc_static_wearleveling: max xlc blk: %x,sec=%d,xec = %d ,mode=%d, func=%x, bbt=%x vpn = %d\n" .LC80: - .string "swl add tlc gc = %x, %d, %d, %d, %d, %d\n" + .string "gc_static_wearleveling: slc blk: %x, tlc blk: %d avg slc ec: %d, avg tlc ec: %d \n" .LC81: + .string "gc_static_wearleveling: min slc ec: %x, min tlc ec: %d max slc ec: %d, max tlc ec: %d; %d %d\n" +.LC82: + .string "swl add tlc gc = %x, %d, %d, %d, %d, %d\n" +.LC83: .string "swl add slc gc = %x, %d, %d, %d, %d, %d\n" .section .rodata.gc_update_l2p_map_new.str1.1,"aMS",@progbits,1 -.LC191: +.LC202: .string "gc_update_l2p_map_new sblk %x\n" -.LC192: +.LC203: .string "gc_update_l2p_map_new: %x %x %x\n" -.LC193: +.LC204: .string "lpa: %x %x %x\n" -.LC194: +.LC205: .string "gc_update_l2p_map_new: %x vpn = %x vpn1 = %x done\n" .section .rodata.gc_write_completed.str1.1,"aMS",@progbits,1 -.LC43: - .string "status: %x, ppa: %x\n" .LC44: + .string "status: %x, ppa: %x\n" +.LC45: .string "gc_write_completed: %x %x %x %x\n" .section .rodata.hynix_get_read_retry_default.str1.1,"aMS",@progbits,1 -.LC92: +.LC94: .string "otp error! %d" -.LC93: +.LC95: .string "rr" .section .rodata.hynix_read_retrial.str1.1,"aMS",@progbits,1 -.LC108: +.LC110: .string "hynix RR %d row=%x, count %d, status=%d\n" .section .rodata.idb_write_data.str1.1,"aMS",@progbits,1 .LC124: @@ -25446,25 +26757,25 @@ __func__.9967: .LC126: .string "write_idblock fail! %x\n" .section .rodata.load_l2p_region.str1.1,"aMS",@progbits,1 -.LC166: +.LC177: .string "region_id = %d, pm_max_region = %d\n" -.LC167: +.LC178: .string "load_l2p_region no ppa = %x , %x, all setting 0xff....\n" -.LC168: +.LC179: .string "load_l2p_region = %x,%x,%x, %x\n" -.LC169: +.LC180: .string "pm_ppa:" -.LC170: +.LC181: .string "data:" -.LC171: +.LC182: .string "spare:" .section .rodata.lpa_rebuild_hash.str1.1,"aMS",@progbits,1 -.LC72: +.LC74: .string "%s %d %d\n" .section .rodata.micron_read_retrial.str1.1,"aMS",@progbits,1 -.LC103: +.LC105: .string "micron %d row=%x,last status %d,status = %d\n" -.LC104: +.LC106: .string "micron RR %d row=%x,count %d,status=%d\n" .section .rodata.nand_flash_print_info.str1.1,"aMS",@progbits,1 .LC1: @@ -25528,70 +26839,72 @@ __func__.9967: .LC30: .string "g_flash_toggle_mode_en: %x\n" .section .rodata.nandc_init.str1.1,"aMS",@progbits,1 -.LC85: - .string "...%s enter... %p\n" -.LC86: - .string "0:%x %x %x %x %x\n" .LC87: + .string "...%s enter... %p\n" +.LC88: + .string "0:%x %x %x %x %x\n" +.LC89: .string "g_nandc_ver...%d\n" .section .rodata.nandc_xfer.str1.1,"aMS",@progbits,1 -.LC99: - .string "dqs data abort %x\n" -.LC100: - .string "dqs data timeout %x\n" .LC101: + .string "dqs data abort %x\n" +.LC102: + .string "dqs data timeout %x\n" +.LC103: .string "xfer error %x\n" .section .rodata.nandc_xfer_done.str1.1,"aMS",@progbits,1 -.LC94: - .string "flash_abort_clear = %d\n" -.LC95: - .string "%d mtrans_cnt = %d page_num = %d\n" .LC96: - .string "nandc:" + .string "flash_abort_clear = %d\n" .LC97: - .string "%d flReg.d32=%x %x\n" + .string "%d mtrans_cnt = %d page_num = %d\n" .LC98: + .string "nandc:" +.LC99: + .string "%d flReg.d32=%x %x\n" +.LC100: .string "nandc_xfer_done read error %x\n" .section .rodata.pm_alloc_new_blk.str1.1,"aMS",@progbits,1 -.LC70: +.LC72: .string "blk %x is bad block\n" -.LC71: +.LC73: .string "pm_alloc_new_blk: %x %x %x %x\n" .section .rodata.pm_free_sblk.str1.1,"aMS",@progbits,1 -.LC83: +.LC85: .string "ftl_free_no_use_map_blk %x %x %x %d\n" .section .rodata.pm_init.str1.1,"aMS",@progbits,1 -.LC172: +.LC183: .string "pm_init posr %x %x %x\n" -.LC173: +.LC184: .string "pm_init recovery %x %x %x\n" .section .rodata.pm_log2phys.str1.1,"aMS",@progbits,1 -.LC174: +.LC185: .string "pm_log2phys lpn = %d, max lpn = %d\n" .section .rodata.pm_ppa_update_check.str1.1,"aMS",@progbits,1 -.LC165: +.LC176: .string "%s w error lpn = %x, max ppa = %d\n" .section .rodata.pm_write_page.str1.1,"aMS",@progbits,1 -.LC148: +.LC153: .string "pm_write_page write error: %x\n" .section .rodata.print_ftl_debug_info.str1.1,"aMS",@progbits,1 -.LC61: - .string "free blk: s:%x,t:%x,m:%x, data blk:s:%x,%x,t%x vpn: s:%x t:%x, max_vpn: %x\n" .LC62: - .string "totle w: %d MB,r: %d MB %d dv:0x%X,poc:%d\n" + .string "bad blk = %x, %x free blk: s:%x,t:%x,m:%x, data blk:s:%x,%x,t%x vpn: s:%x t:%x, max_vpn: %x\n" .LC63: - .string "gc xlc page: %d,gc slc page: %d, tmp w: %d MB\n" + .string "totle w: %d MB,r: %d MB %d dv:0x%X,poc:%d\n" .LC64: - .string "slc ec: %d,%d,%d,%d,%d,tlc ec: %d,%d,%d,%d,%d\n" + .string "gc xlc page: %d,gc slc page: %d, tmp w: %d MB\n" .LC65: + .string "slc ec: %d,%d,%d,%d,%d,tlc ec: %d,%d,%d,%d,%d\n" +.LC66: .string "gc th: tlc_tlc: %d tlc_slc: %d slc_slc: %d slc_tlc:%d free_th: %d\n" +.LC67: + .string "swl : %x %x %x %x\n" .section .rodata.print_gc_debug_info.str1.1,"aMS",@progbits,1 -.LC46: +.LC47: .string "gc: b:%x,p:%x,i:%x; free buf=%d %d free slc th: %d\n" .section .rodata.print_list_info.str1.1,"aMS",@progbits,1 -.LC53: - .string "list count:%p %d\n" .LC54: + .string "list count:%p %d\n" +.LC55: .string "%d: node:%x %x %x %x, %d %d %d %d %d\n" .section .rodata.queue_wait_first_req_completed.str1.1,"aMS",@progbits,1 .LC119: @@ -25735,22 +27048,28 @@ random_seed: .hword 17598 .hword 28087 .section .rodata.rk_ftl_init.str1.1,"aMS",@progbits,1 -.LC190: +.LC201: .string "zftl_init %x\n" .section .rodata.rknand_print_hex.str1.1,"aMS",@progbits,1 -.LC88: - .string "%s 0x%x:" -.LC89: - .string "%x " .LC90: - .string "" + .string "%s 0x%x:" .LC91: + .string "%x " +.LC92: + .string "" +.LC93: .string "%s\n" .section .rodata.sandisk_prog_test_bad_block.str1.1,"aMS",@progbits,1 -.LC39: +.LC40: .string "bad block test:%x %x\n" - .section .rodata.sblk_prog_page.str1.1,"aMS",@progbits,1 + .section .rodata.sblk_3d_tlc_dump_prog.str1.1,"aMS",@progbits,1 .LC127: + .string "sblk_3d_tlc_dump_prog wl_addr= %x ppa = %x ppa = %x\n" + .section .rodata.sblk_mlc_dump_prog.str1.1,"aMS",@progbits,1 +.LC128: + .string "sblk_mlc_dump_prog wl_addr= %x ppa = %x ppa = %x\n" + .section .rodata.sblk_prog_page.str1.1,"aMS",@progbits,1 +.LC129: .string "sblk_prog_page ppa = %x, count = %d\n" .section .rodata.toshiba_15ref_value,"a",@progbits .align 3 @@ -25855,7 +27174,7 @@ toshiba_15ref_value: .byte 0 .section .rodata.toshiba_3D_slc_value,"a",@progbits .align 3 - .set .LANCHOR31,. + 0 + .set .LANCHOR34,. + 0 .type toshiba_3D_slc_value, %object .size toshiba_3D_slc_value, 11 toshiba_3D_slc_value: @@ -25872,7 +27191,7 @@ toshiba_3D_slc_value: .byte 56 .section .rodata.toshiba_3D_tlc_value,"a",@progbits .align 3 - .set .LANCHOR30,. + 0 + .set .LANCHOR33,. + 0 .type toshiba_3D_tlc_value, %object .size toshiba_3D_tlc_value, 399 toshiba_3D_tlc_value: @@ -26276,11 +27595,11 @@ toshiba_3D_tlc_value: .byte 12 .byte 14 .section .rodata.toshiba_3d_read_retrial.str1.1,"aMS",@progbits,1 -.LC105: - .string "toshiba SRR %d row=%x, status=%d\n" -.LC106: - .string "toshiba TRR %d row=%x, status=%d\n" .LC107: + .string "toshiba SRR %d row=%x, status=%d\n" +.LC108: + .string "toshiba TRR %d row=%x, status=%d\n" +.LC109: .string "toshiba RR %d row=%x,count %d,status=%d\n" .section .rodata.toshiba_A19ref_value,"a",@progbits .align 3 @@ -26348,63 +27667,63 @@ toshiba_ref_value: .byte 12 .byte 112 .section .rodata.zftl_discard.str1.1,"aMS",@progbits,1 -.LC222: +.LC233: .string "ftl_discard:(%x, %x, %x, %x)\n" .section .rodata.zftl_do_gc.str1.1,"aMS",@progbits,1 -.LC217: +.LC228: .string "gc %d: %d %d %d %d %d %d %d\n" -.LC218: +.LC229: .string "gc %d: %d %d %d %d %d %d\n" -.LC219: +.LC230: .string "GC_STATE_SCAN_ALL_PAGE = %x, vpn0 = %d, vpn1 = %d\n" -.LC220: +.LC231: .string "gc free %x, %d\n" .section .rodata.zftl_gc_get_free_sblk.str1.1,"aMS",@progbits,1 -.LC49: - .string "swl_tlc_free_mini_ec_blk alloc sblk %x\n" .LC50: - .string "zftl_get_free_sblk %x %d, %p %d %d\n" + .string "swl_tlc_free_mini_ec_blk alloc sblk %x\n" .LC51: + .string "zftl_get_free_sblk %x %d, %p %d %d\n" +.LC52: .string "zftl_gc_get_free_sblk %x %x %x, %d %d %d\n" .section .rodata.zftl_get_free_sblk.str1.1,"aMS",@progbits,1 -.LC52: +.LC53: .string "swl_slc_free_mini_ec_blk alloc sblk %x\n" .section .rodata.zftl_init.str1.1,"aMS",@progbits,1 -.LC178: - .string "FTL version: 6.0.14 20180908" -.LC179: - .string "_c_user_data_density := %d\n" -.LC180: - .string "_c_totle_phy_density := %d\n" -.LC181: - .string "_c_totle_log_page := %d\n" -.LC182: - .string "_c_totle_data_density := %d\n" -.LC183: - .string "_c_ftl_pm_page_num := %d\n" -.LC184: - .string "_c_ftl_byte_pre_page := %d\n" -.LC185: - .string "_c_max_pm_sblk := %d\n" -.LC186: - .string "_min_slc_super_block := %d\n" -.LC187: - .string "_max_xlc_super_block := %d\n" -.LC188: - .string "gp_ftl_ext_info %p %p %p\n" .LC189: + .string "FTL version: 6.0.14 20181128" +.LC190: + .string "_c_user_data_density := %d\n" +.LC191: + .string "_c_totle_phy_density := %d\n" +.LC192: + .string "_c_totle_log_page := %d\n" +.LC193: + .string "_c_totle_data_density := %d\n" +.LC194: + .string "_c_ftl_pm_page_num := %d\n" +.LC195: + .string "_c_ftl_byte_pre_page := %d\n" +.LC196: + .string "_c_max_pm_sblk := %d\n" +.LC197: + .string "_min_slc_super_block := %d\n" +.LC198: + .string "_max_xlc_super_block := %d\n" +.LC199: + .string "gp_ftl_ext_info %p %p %p\n" +.LC200: .string "flash info size: %d %d %d\n" .section .rodata.zftl_read.str1.1,"aMS",@progbits,1 -.LC202: +.LC213: .string "ftl_read %x %x %x\n" -.LC203: +.LC214: .string "ftl_read refresh =%x, lpa = %x, ppa= %x\n" -.LC204: - .string "id=%d, lpa = %x, ppa = %x spare = %x %x %x %x\n" +.LC215: + .string "id=%d, status = %x, lpa = %x, ppa = %x spare = %x %x %x %x\n" .section .rodata.zftl_sblk_list_init.str1.1,"aMS",@progbits,1 -.LC82: +.LC84: .string "free blk vpn error: %x %x\n" .section .rodata.zftl_write.str1.1,"aMS",@progbits,1 -.LC221: - .string "ftlwrite %x %x %x\n" +.LC232: + .string "ftlwrite %x %x %x %x\n" .hidden free