diff options
author | Yifeng Zhao <zyf@rock-chips.com> | 2018-12-07 11:30:07 +0800 |
---|---|---|
committer | Tao Huang <huangtao@rock-chips.com> | 2019-02-12 09:30:03 +0800 |
commit | 6dfc7913e70b2baa7a5af604b20c0d40ff1118d9 (patch) | |
tree | 4776266fa1a91de63623d1e99b4e1866a258a244 | |
parent | f7468ce49e849e368709db3c594301b1d4ac1da7 (diff) |
drivers: rk_nand: support SKHynix 14nm 2D 16GB Nand Flash
support SKHynix 14nm 2D 16GB NAND FLASH H27TDG8T2D8R.
Change-Id: Ic465d325e6660cf1dc6db686391005529dd8fbeb
Signed-off-by: Yifeng Zhao <zyf@rock-chips.com>
-rw-r--r-- | drivers/rk_nand/rk_ftl_arm_v7.S | 17700 | ||||
-rw-r--r-- | drivers/rk_nand/rk_ftl_arm_v8.S | 12709 | ||||
-rw-r--r-- | drivers/rk_nand/rk_ftlv5_arm64.S | 15279 | ||||
-rw-r--r-- | drivers/rk_nand/rk_zftl_arm64.S | 15089 |
4 files changed, 31694 insertions, 29083 deletions
diff --git a/drivers/rk_nand/rk_ftl_arm_v7.S b/drivers/rk_nand/rk_ftl_arm_v7.S index 68804d63b8d2..a78e40af74f4 100644 --- a/drivers/rk_nand/rk_ftl_arm_v7.S +++ b/drivers/rk_nand/rk_ftl_arm_v7.S @@ -5,7 +5,7 @@ * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. - * date: 2018-09-05 + * date: 2019-01-07 */ .arch armv7-a .fpu softvfp @@ -20,8 +20,8 @@ .file "rk_ftl_arm_v7.S" .text .align 2 - .type FlashGetReadRetryDefault.part.26, %function -FlashGetReadRetryDefault.part.26: + .type FlashGetReadRetryDefault.part.28, %function +FlashGetReadRetryDefault.part.28: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @@ -75,7 +75,7 @@ FlashGetReadRetryDefault.part.26: .word .LANCHOR1 .word .LANCHOR1+45 .fnend - .size FlashGetReadRetryDefault.part.26, .-FlashGetReadRetryDefault.part.26 + .size FlashGetReadRetryDefault.part.28, .-FlashGetReadRetryDefault.part.28 .align 2 .global FlashMemCmp8 .type FlashMemCmp8, %function @@ -207,13 +207,38 @@ FlashSetRandomizer: .fnend .size FlashSetRandomizer, .-FlashSetRandomizer .align 2 + .global FlashBlockAlignInit + .type FlashBlockAlignInit, %function +FlashBlockAlignInit: + .fnstart + @ args = 0, pretend = 0, frame = 0 + @ frame_needed = 0, uses_anonymous_args = 0 + @ link register save eliminated. + ldr r3, .L37 + cmp r0, #256 + movhi r2, #512 + str r0, [r3, #856] + bhi .L36 + cmp r0, #128 + bxls lr + mov r2, #256 +.L36: + str r2, [r3, #856] + bx lr +.L38: + .align 2 +.L37: + .word .LANCHOR0 + .fnend + .size FlashBlockAlignInit, .-FlashBlockAlignInit + .align 2 .global FlashReadCmd .type FlashReadCmd, %function FlashReadCmd: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr ip, .L34 + ldr ip, .L40 mov r2, r1, lsr #16 stmfd sp!, {r4, lr} .save {r4, lr} @@ -235,9 +260,9 @@ FlashReadCmd: str r2, [r3, #8] ldmfd sp!, {r4, lr} b FlashSetRandomizer -.L35: +.L41: .align 2 -.L34: +.L40: .word .LANCHOR0 .fnend .size FlashReadCmd, .-FlashReadCmd @@ -248,7 +273,7 @@ FlashReadDpDataOutCmd: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r2, .L40 + ldr r2, .L46 stmfd sp!, {r4, lr} .save {r4, lr} add ip, r2, r0, asl #3 @@ -259,7 +284,7 @@ FlashReadDpDataOutCmd: add r3, r3, #8 mov r2, #0 add r3, r4, r3, asl #8 - bne .L37 + bne .L43 mov ip, #6 str ip, [r3, #8] str r2, [r3, #4] @@ -269,8 +294,8 @@ FlashReadDpDataOutCmd: mov r2, r1, lsr #8 str r2, [r3, #4] mov r2, r1, lsr #16 - b .L39 -.L37: + b .L45 +.L43: str r2, [r3, #8] uxtb ip, r1 str r2, [r3, #4] @@ -283,78 +308,26 @@ FlashReadDpDataOutCmd: mov ip, #5 str ip, [r3, #8] str r2, [r3, #4] -.L39: +.L45: str r2, [r3, #4] mov r2, #224 str r2, [r3, #8] ldmfd sp!, {r4, lr} b FlashSetRandomizer -.L41: +.L47: .align 2 -.L40: +.L46: .word .LANCHOR0 .fnend .size FlashReadDpDataOutCmd, .-FlashReadDpDataOutCmd .align 2 - .global flash_enter_slc_mode - .type flash_enter_slc_mode, %function -flash_enter_slc_mode: - .fnstart - @ args = 0, pretend = 0, frame = 0 - @ frame_needed = 0, uses_anonymous_args = 0 - @ link register save eliminated. - ldr r3, .L44 - ldrb r2, [r3, #928] @ zero_extendqisi2 - cmp r2, #0 - bxeq lr - add r0, r3, r0, asl #3 - ldrb r3, [r0, #868] @ zero_extendqisi2 - ldr r2, [r0, #864] - add r3, r3, #8 - add r3, r2, r3, asl #8 - mov r2, #218 - str r2, [r3, #8] - bx lr -.L45: - .align 2 -.L44: - .word .LANCHOR0 - .fnend - .size flash_enter_slc_mode, .-flash_enter_slc_mode - .align 2 - .global flash_exit_slc_mode - .type flash_exit_slc_mode, %function -flash_exit_slc_mode: - .fnstart - @ args = 0, pretend = 0, frame = 0 - @ frame_needed = 0, uses_anonymous_args = 0 - @ link register save eliminated. - ldr r3, .L48 - ldrb r2, [r3, #928] @ zero_extendqisi2 - cmp r2, #0 - bxeq lr - add r0, r3, r0, asl #3 - ldrb r3, [r0, #868] @ zero_extendqisi2 - ldr r2, [r0, #864] - add r3, r3, #8 - add r3, r2, r3, asl #8 - mov r2, #223 - str r2, [r3, #8] - bx lr -.L49: - .align 2 -.L48: - .word .LANCHOR0 - .fnend - .size flash_exit_slc_mode, .-flash_exit_slc_mode - .align 2 .global FlashProgFirstCmd .type FlashProgFirstCmd, %function FlashProgFirstCmd: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr ip, .L51 + ldr ip, .L49 mov r2, r1, lsr #16 stmfd sp!, {r4, lr} .save {r4, lr} @@ -375,9 +348,9 @@ FlashProgFirstCmd: str r2, [r3, #4] ldmfd sp!, {r4, lr} b FlashSetRandomizer -.L52: +.L50: .align 2 -.L51: +.L49: .word .LANCHOR0 .fnend .size FlashProgFirstCmd, .-FlashProgFirstCmd @@ -389,14 +362,14 @@ FlashEraseCmd: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L55 + ldr r3, .L53 cmp r2, #0 add r0, r3, r0, asl #3 ldr ip, [r0, #864] ldrb r0, [r0, #868] @ zero_extendqisi2 add r0, r0, #8 add r0, ip, r0, asl #8 - beq .L54 + beq .L52 ldr r3, [r3, #856] mov r2, #96 str r2, [r0, #8] @@ -407,7 +380,7 @@ FlashEraseCmd: mov r2, r1, lsr #16 add r1, r1, r3 str r2, [r0, #4] -.L54: +.L52: mov r3, #96 str r3, [r0, #8] uxtb r3, r1 @@ -419,9 +392,9 @@ FlashEraseCmd: str r1, [r0, #4] str r3, [r0, #8] bx lr -.L56: +.L54: .align 2 -.L55: +.L53: .word .LANCHOR0 .fnend .size FlashEraseCmd, .-FlashEraseCmd @@ -432,7 +405,7 @@ FlashProgDpSecondCmd: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr ip, .L58 + ldr ip, .L56 mov r2, r1, lsr #16 stmfd sp!, {r4, r5, lr} .save {r4, r5, lr} @@ -453,9 +426,9 @@ FlashProgDpSecondCmd: str r2, [r3, #4] ldmfd sp!, {r4, r5, lr} b FlashSetRandomizer -.L59: +.L57: .align 2 -.L58: +.L56: .word .LANCHOR0 .fnend .size FlashProgDpSecondCmd, .-FlashProgDpSecondCmd @@ -467,7 +440,7 @@ FlashProgSecondCmd: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L61 + ldr r3, .L59 add r3, r3, r0, asl #3 ldr r2, [r3, #864] ldrb r3, [r3, #868] @ zero_extendqisi2 @@ -476,9 +449,9 @@ FlashProgSecondCmd: mov r2, #16 str r2, [r3, #8] bx lr -.L62: +.L60: .align 2 -.L61: +.L59: .word .LANCHOR0 .fnend .size FlashProgSecondCmd, .-FlashProgSecondCmd @@ -490,7 +463,7 @@ FlashProgDpFirstCmd: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L64 + ldr r3, .L62 add r0, r3, r0, asl #3 ldrb r3, [r3, #906] @ zero_extendqisi2 ldrb r2, [r0, #868] @ zero_extendqisi2 @@ -499,16 +472,16 @@ FlashProgDpFirstCmd: add r2, r1, r2, asl #8 str r3, [r2, #8] bx lr -.L65: +.L63: .align 2 -.L64: +.L62: .word .LANCHOR0 .fnend .size FlashProgDpFirstCmd, .-FlashProgDpFirstCmd .align 2 - .global JSHash - .type JSHash, %function -JSHash: + .global js_hash + .type js_hash, %function +js_hash: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @@ -516,25 +489,25 @@ JSHash: mov r2, #0 stmfd sp!, {r4, lr} .save {r4, lr} - ldr r0, .L69 - b .L67 -.L68: + ldr r0, .L67 + b .L65 +.L66: mov ip, r0, asl #5 ldrb r4, [r3, r2] @ zero_extendqisi2 add ip, ip, r0, lsr #2 add r2, r2, #1 add ip, ip, r4 eor r0, r0, ip -.L67: +.L65: cmp r2, r1 - bne .L68 + bne .L66 ldmfd sp!, {r4, pc} -.L70: +.L68: .align 2 -.L69: +.L67: .word 1204201446 .fnend - .size JSHash, .-JSHash + .size js_hash, .-js_hash .align 2 .global FlashLoadIdbInfo .type FlashLoadIdbInfo, %function @@ -568,14 +541,14 @@ FlashReadIdbData: stmfd sp!, {r3, lr} .save {r3, lr} mov r2, #2048 - ldr r1, .L74 + ldr r1, .L72 bl memcpy mov r0, #0 ldmfd sp!, {r3, pc} -.L75: +.L73: .align 2 -.L74: - .word .LANCHOR0+932 +.L72: + .word .LANCHOR0+928 .fnend .size FlashReadIdbData, .-FlashReadIdbData .align 2 @@ -588,56 +561,61 @@ FlashLoadPhyInfoInRam: stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} mov r4, #0 - ldr r6, .L88 -.L80: + ldr r6, .L86 +.L78: add r5, r6, r4, asl #5 - ldr r1, .L88+4 + ldr r1, .L86+4 add r0, r5, #1 ldrb r2, [r6, r4, asl #5] @ zero_extendqisi2 bl FlashMemCmp8 subs r1, r0, #0 - bne .L77 + bne .L75 cmp r5, #0 ldrneb r2, [r5, #22] @ zero_extendqisi2 - ldrne r3, .L88+8 - bne .L82 - b .L87 -.L77: - add r4, r4, #1 - cmp r4, #77 + ldrne r3, .L86+8 bne .L80 + b .L85 +.L75: + add r4, r4, #1 + cmp r4, #81 + bne .L78 mvn r0, #0 ldmfd sp!, {r4, r5, r6, pc} -.L82: +.L80: ldrb r0, [r3, r1, asl #5] @ zero_extendqisi2 cmp r0, r2 - beq .L81 + beq .L79 add r1, r1, #1 cmp r1, #4 - bne .L82 -.L81: - ldr r3, .L88+8 + bne .L80 +.L79: + ldr r3, .L86+8 mov r2, #32 - ldr r0, .L88+12 + ldr r0, .L86+12 add r1, r3, r1, asl #5 bl memcpy - ldr r0, .L88+16 mov r1, r5 mov r2, #32 + ldr r0, .L86+16 bl memcpy + ldr r2, .L86+20 + movw r3, #3126 + ldrh r0, [r2, r3] + bl FlashBlockAlignInit mov r0, #0 ldmfd sp!, {r4, r5, r6, pc} -.L87: +.L85: mvn r0, #0 ldmfd sp!, {r4, r5, r6, pc} -.L89: +.L87: .align 2 -.L88: +.L86: .word .LANCHOR1+396 - .word .LANCHOR0+2980 - .word .LANCHOR1+2860 - .word .LANCHOR0+896 + .word .LANCHOR0+2976 .word .LANCHOR1+2988 + .word .LANCHOR0+896 + .word .LANCHOR1+3116 + .word .LANCHOR1 .fnend .size FlashLoadPhyInfoInRam, .-FlashLoadPhyInfoInRam .align 2 @@ -648,28 +626,28 @@ ftl_flash_suspend: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L91 - ldr r2, [r3, #3012] + ldr r3, .L89 + ldr r2, [r3, #3008] ldr r1, [r2, #0] - str r1, [r3, #3016] + str r1, [r3, #3012] ldr r1, [r2, #4] - str r1, [r3, #3020] + str r1, [r3, #3016] ldr r1, [r2, #8] - str r1, [r3, #3024] + str r1, [r3, #3020] ldr r1, [r2, #12] - str r1, [r3, #3028] + str r1, [r3, #3024] ldr r1, [r2, #304] - str r1, [r3, #3032] + str r1, [r3, #3028] ldr r1, [r2, #308] - str r1, [r3, #3036] + str r1, [r3, #3032] ldr r1, [r2, #336] ldr r2, [r2, #344] - str r1, [r3, #3040] - str r2, [r3, #3044] + str r1, [r3, #3036] + str r2, [r3, #3040] bx lr -.L92: +.L90: .align 2 -.L91: +.L89: .word .LANCHOR0 .fnend .size ftl_flash_suspend, .-ftl_flash_suspend @@ -684,11 +662,11 @@ LogAddr2PhyAddr: stmfd sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr} .save {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr} mov fp, r3 - ldr r3, .L98 + ldr r3, .L96 mov r5, r1 mov r6, r2 - movw r1, #3062 - movw r2, #3060 + movw r1, #3058 + mov r2, #3056 ldr r8, [r0, #4] ldrh r2, [r3, r2] mov r4, r0 @@ -709,17 +687,17 @@ LogAddr2PhyAddr: mov r1, sl bl __aeabi_uidiv cmp r5, #1 - ldr r3, .L98 + ldr r3, .L96 uxth r0, r0 mls sl, sl, r0, r9 uxth sl, sl - bne .L95 - ldrb r2, [r3, #928] @ zero_extendqisi2 + bne .L93 + ldrb r2, [r3, #3072] @ zero_extendqisi2 cmp r2, #0 addeq r8, r3, r8, asl #1 movweq r2, #3076 ldreqh r8, [r8, r2] -.L95: +.L93: add r3, r3, r0, asl #2 ldr r3, [r3, #3588] mla r7, r7, sl, r3 @@ -728,7 +706,7 @@ LogAddr2PhyAddr: add r8, r7, r8 str r8, [r6, #0] str r0, [fp, #0] - bls .L97 + bls .L95 ldr r0, [r4, #4] ldr r3, [r4, #40] add r0, r0, #1024 @@ -736,12 +714,12 @@ LogAddr2PhyAddr: rsbs r0, r3, #0 adc r0, r0, r3 ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L97: +.L95: mov r0, #0 ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L99: +.L97: .align 2 -.L98: +.L96: .word .LANCHOR0 .fnend .size LogAddr2PhyAddr, .-LogAddr2PhyAddr @@ -753,14 +731,14 @@ FlashScheduleEnSet: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L101 + ldr r3, .L99 ldr r2, [r3, #3620] str r0, [r3, #3620] mov r0, r2 bx lr -.L102: +.L100: .align 2 -.L101: +.L99: .word .LANCHOR0 .fnend .size FlashScheduleEnSet, .-FlashScheduleEnSet @@ -772,13 +750,13 @@ FlashGetPageSize: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L104 + ldr r3, .L102 ldr r3, [r3, #3624] ldrb r0, [r3, #9] @ zero_extendqisi2 bx lr -.L105: +.L103: .align 2 -.L104: +.L102: .word .LANCHOR0 .fnend .size FlashGetPageSize, .-FlashGetPageSize @@ -801,16 +779,16 @@ NandcGetChipIf: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L108 + ldr r3, .L106 add r3, r3, r0, asl #3 ldrb r0, [r3, #868] @ zero_extendqisi2 ldr r2, [r3, #864] add r0, r0, #8 add r0, r2, r0, asl #8 bx lr -.L109: +.L107: .align 2 -.L108: +.L106: .word .LANCHOR0 .fnend .size NandcGetChipIf, .-NandcGetChipIf @@ -822,16 +800,16 @@ NandcSetDdrPara: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L111 + ldr r3, .L109 mov r2, r0, asl #8 orr r2, r2, r0, asl #16 orr r2, r2, #1 - ldr r3, [r3, #3012] + ldr r3, [r3, #3008] str r2, [r3, #304] bx lr -.L112: +.L110: .align 2 -.L111: +.L109: .word .LANCHOR0 .fnend .size NandcSetDdrPara, .-NandcSetDdrPara @@ -843,14 +821,14 @@ NandcSetDdrDiv: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L114 + ldr r3, .L112 orr r0, r0, #16640 - ldr r3, [r3, #3012] + ldr r3, [r3, #3008] str r0, [r3, #344] bx lr -.L115: +.L113: .align 2 -.L114: +.L112: .word .LANCHOR0 .fnend .size NandcSetDdrDiv, .-NandcSetDdrDiv @@ -862,17 +840,17 @@ NandcSetDdrMode: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L118 + ldr r3, .L116 cmp r0, #0 - ldr r2, [r3, #3012] + ldr r2, [r3, #3008] ldr r3, [r2, #0] bfc r3, #13, #1 orrne r3, r3, #253952 str r3, [r2, #0] bx lr -.L119: +.L117: .align 2 -.L118: +.L116: .word .LANCHOR0 .fnend .size NandcSetDdrMode, .-NandcSetDdrMode @@ -884,18 +862,18 @@ NandcSetMode: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L124 + ldr r3, .L122 ands r1, r0, #6 - ldr r2, [r3, #3012] + ldr r2, [r3, #3008] ldr r3, [r2, #0] bfieq r3, r1, #13, #1 - beq .L123 + beq .L121 orr r3, r3, #24576 movw r1, #16641 bfc r3, #15, #1 str r1, [r2, #344] orr r3, r3, #196608 - ldr r1, .L124+4 + ldr r1, .L122+4 tst r0, #4 orrne r3, r3, #32768 str r1, [r2, #304] @@ -903,13 +881,13 @@ NandcSetMode: str r1, [r2, #308] mov r1, #39 str r1, [r2, #308] -.L123: +.L121: str r3, [r2, #0] mov r0, #0 bx lr -.L125: +.L123: .align 2 -.L124: +.L122: .word .LANCHOR0 .word 1710595 .fnend @@ -922,7 +900,7 @@ NandcFlashCs: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L127 + ldr r3, .L125 add r3, r3, r0, asl #3 mov r0, #1 ldr r2, [r3, #864] @@ -932,9 +910,9 @@ NandcFlashCs: bfi r3, r1, #0, #8 str r3, [r2, #0] bx lr -.L128: +.L126: .align 2 -.L127: +.L125: .word .LANCHOR0 .fnend .size NandcFlashCs, .-NandcFlashCs @@ -946,7 +924,7 @@ NandcFlashDeCs: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L130 + ldr r3, .L128 add r3, r3, r0, asl #3 ldr r2, [r3, #864] ldr r3, [r2, #0] @@ -954,9 +932,9 @@ NandcFlashDeCs: bfc r3, #17, #1 str r3, [r2, #0] bx lr -.L131: +.L129: .align 2 -.L130: +.L128: .word .LANCHOR0 .fnend .size NandcFlashDeCs, .-NandcFlashDeCs @@ -965,21 +943,23 @@ NandcFlashDeCs: .type NandcDelayns, %function NandcDelayns: .fnstart - @ args = 0, pretend = 0, frame = 8 + @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - @ link register save eliminated. - .pad #8 - sub sp, sp, #8 - mov r0, r0, lsr #4 - str r0, [sp, #4] -.L133: - ldr r0, [sp, #4] - cmp r0, #0 - sub r3, r0, #1 - str r3, [sp, #4] - bne .L133 - add sp, sp, #8 - bx lr + add r0, r0, #996 + mov r1, #1000 + stmfd sp!, {r3, lr} + .save {r3, lr} + add r0, r0, #3 + bl __aeabi_uidiv + ldr r3, .L131 + ldr r3, [r3, #8] + blx r3 + mov r0, #0 + ldmfd sp!, {r3, pc} +.L132: + .align 2 +.L131: + .word arm_delay_ops .fnend .size NandcDelayns, .-NandcDelayns .align 2 @@ -991,7 +971,7 @@ FlashReadStatusEN: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} - ldr r3, .L144 + ldr r3, .L142 add r0, r3, r0, asl #3 ldr ip, [r3, #3624] ldrb r5, [r0, #868] @ zero_extendqisi2 @@ -1002,7 +982,7 @@ FlashReadStatusEN: add r0, r4, r5, asl #8 movne r3, #112 strne r3, [r0, #8] - bne .L140 + bne .L138 cmp r2, #0 ldreqb r2, [r3, #909] @ zero_extendqisi2 ldrneb r2, [r3, #910] @ zero_extendqisi2 @@ -1010,28 +990,28 @@ FlashReadStatusEN: ldrb r3, [r3, #911] @ zero_extendqisi2 cmp r3, #0 movne r3, #0 - ldrne r2, .L144 - bne .L139 - b .L140 -.L141: + ldrne r2, .L142 + bne .L137 + b .L138 +.L139: mov ip, r3, asl #3 add r3, r3, #1 mov ip, r1, lsr ip uxtb ip, ip str ip, [r0, #4] -.L139: +.L137: ldrb ip, [r2, #911] @ zero_extendqisi2 cmp r3, ip - bcc .L141 -.L140: + bcc .L139 +.L138: mov r0, #80 bl NandcDelayns ldr r0, [r4, r5, asl #8] uxtb r0, r0 ldmfd sp!, {r3, r4, r5, pc} -.L145: +.L143: .align 2 -.L144: +.L142: .word .LANCHOR0 .fnend .size FlashReadStatusEN, .-FlashReadStatusEN @@ -1047,15 +1027,15 @@ FlashWaitReadyEN: mov r6, r0 mov r5, r1 mov r4, r2 -.L150: +.L148: mov r0, r6 mov r1, r5 mov r2, r4 bl FlashReadStatusEN cmp r0, #255 - beq .L150 + beq .L148 tst r0, #64 - beq .L150 + beq .L148 ldmfd sp!, {r4, r5, r6, pc} .fnend .size FlashWaitReadyEN, .-FlashWaitReadyEN @@ -1066,7 +1046,7 @@ FlashWaitCmdDone: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L154 + ldr r3, .L152 stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} add r4, r3, r0, asl #4 @@ -1074,10 +1054,10 @@ FlashWaitCmdDone: mov r6, r0 ldr r3, [r4, #8] cmp r3, #0 - beq .L152 + beq .L150 mov r0, r5 bl NandcFlashCs - ldr r3, .L154+4 + ldr r3, .L152+4 ldr r1, [r4, #4] mov r0, r5 add r6, r3, r6, asl #2 @@ -1098,12 +1078,12 @@ FlashWaitCmdDone: cmp r2, r3 strne r6, [r2, #0] strne r3, [r4, #12] -.L152: +.L150: mov r0, #0 ldmfd sp!, {r4, r5, r6, pc} -.L155: +.L153: .align 2 -.L154: +.L152: .word .LANCHOR0+3628 .word .LANCHOR0 .fnend @@ -1117,8 +1097,8 @@ HynixSetRRPara: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, lr} .save {r4, r5, r6, r7, r8, r9, sl, lr} - mov r8, r3 - ldr r9, .L162 + mov r7, r3 + ldr r9, .L161 mov r4, r0 mov r5, r1 mov r6, r2 @@ -1127,21 +1107,28 @@ HynixSetRRPara: cmp r3, #6 addeq r9, r9, #20 addeq r9, r9, r0, asl #6 - addeq r9, r9, r8, asl #2 - beq .L158 + addeq r9, r9, r7, asl #2 + beq .L156 cmp r3, #7 + bne .L157 + add r9, r9, #28 + mov r3, #160 + mla r9, r3, r0, r9 + mov r3, #10 + mla r9, r3, r7, r9 + b .L156 +.L157: + cmp r3, #8 + addne r3, r7, r0, asl #3 addeq r9, r9, #28 - addne r3, r8, r0, asl #3 - moveq r3, #160 + addeq r3, r7, r7, asl #2 addne r9, r9, #20 - mlaeq r9, r3, r0, r9 - moveq r3, #10 + addeq r9, r9, r3 addne r9, r9, r3, asl #3 - mlaeq r9, r3, r8, r9 -.L158: - ldr r3, .L162 +.L156: + ldr r3, .L161 mov r0, r4 - mov r7, #0 + mov r8, #0 add r3, r3, r4, asl #3 ldrb sl, [r3, #868] @ zero_extendqisi2 ldr r2, [r3, #864] @@ -1150,30 +1137,30 @@ HynixSetRRPara: bl NandcFlashCs mov r3, #54 str r3, [sl, #8] - b .L160 -.L161: - ldrb r3, [r6, r7] @ zero_extendqisi2 + b .L159 +.L160: + ldrb r3, [r6, r8] @ zero_extendqisi2 mov r0, #200 str r3, [sl, #4] bl NandcDelayns - ldrsb r3, [r9, r7] - add r7, r7, #1 + ldrsb r3, [r9, r8] + add r8, r8, #1 str r3, [sl, #0] -.L160: - uxtb r3, r7 +.L159: + uxtb r3, r8 cmp r3, r5 - bcc .L161 + bcc .L160 mov r3, #22 mov r0, r4 str r3, [sl, #8] bl NandcFlashDeCs - ldr r3, .L162 + ldr r3, .L161 add r4, r3, r4 - strb r8, [r4, #3756] + strb r7, [r4, #3756] ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, pc} -.L163: - .align 2 .L162: + .align 2 +.L161: .word .LANCHOR0 .fnend .size HynixSetRRPara, .-HynixSetRRPara @@ -1184,36 +1171,36 @@ FlashSetReadRetryDefault: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - stmfd sp!, {r4, r5, r6, lr} - .save {r4, r5, r6, lr} - ldr r6, .L169 - ldr r3, [r6, #3624] + stmfd sp!, {r3, r4, r5, lr} + .save {r3, r4, r5, lr} + ldr r5, .L168 + ldr r3, [r5, #3624] ldrb r3, [r3, #19] @ zero_extendqisi2 sub r3, r3, #1 uxtb r3, r3 - cmp r3, #6 - ldmhifd sp!, {r4, r5, r6, pc} - ldr r5, .L169+4 + cmp r3, #7 + ldmhifd sp!, {r3, r4, r5, pc} mov r4, #0 -.L167: - ldrb r3, [r5, r4, asl #3] @ zero_extendqisi2 +.L166: + ldr r3, .L168+4 uxtb r0, r4 + ldrb r3, [r3, r4, asl #3] @ zero_extendqisi2 cmp r3, #173 - bne .L166 - ldrb r1, [r6, #1] @ zero_extendqisi2 + bne .L165 + ldrb r1, [r5, #1] @ zero_extendqisi2 mov r3, #0 - ldr r2, .L169+8 + ldr r2, .L168+8 bl HynixSetRRPara -.L166: +.L165: add r4, r4, #1 cmp r4, #4 - bne .L167 - ldmfd sp!, {r4, r5, r6, pc} -.L170: - .align 2 + bne .L166 + ldmfd sp!, {r3, r4, r5, pc} .L169: + .align 2 +.L168: .word .LANCHOR0 - .word .LANCHOR0+2980 + .word .LANCHOR0+2976 .word .LANCHOR0+4 .fnend .size FlashSetReadRetryDefault, .-FlashSetReadRetryDefault @@ -1227,15 +1214,15 @@ SamsungSetRRPara: stmfd sp!, {r3, r4, r5, r6, r7, r8, sl, lr} .save {r3, r4, r5, r6, r7, r8, sl, lr} mov r4, r0 - ldr r3, .L174 + ldr r3, .L173 mov r5, #0 - ldr sl, .L174+4 + ldr sl, .L173+4 mov r8, #161 add r1, r3, r1, asl #2 add r6, r1, #3 mov r7, r3 - b .L172 -.L173: + b .L171 +.L172: str r8, [r4, #8] mov r3, #0 str r3, [r4, #0] @@ -1246,15 +1233,15 @@ SamsungSetRRPara: ldrsb r3, [r6, #1]! str r3, [r4, #0] bl NandcDelayns -.L172: +.L171: ldrb r3, [sl, #3760] @ zero_extendqisi2 cmp r5, r3 - bcc .L173 + bcc .L172 ldmfd sp!, {r3, r4, r5, r6, r7, r8, sl, pc} -.L175: - .align 2 .L174: - .word .LANCHOR1+3020 + .align 2 +.L173: + .word .LANCHOR1+3148 .word .LANCHOR0 .fnend .size SamsungSetRRPara, .-SamsungSetRRPara @@ -1268,17 +1255,17 @@ ToshibaSetRRPara: stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, lr} .save {r4, r5, r6, r7, r8, r9, sl, lr} add r6, r1, #1 - ldr r8, .L183 + ldr r8, .L182 mov r4, r0 add r6, r6, r6, asl #2 mov r5, #0 add r3, r8, #45 add r7, r8, r6 - ldr sl, .L183+4 + ldr sl, .L182+4 add r6, r3, r6 add r9, r8, r1 - b .L177 -.L181: + b .L176 +.L180: mov r3, #85 str r3, [r4, #8] ldrsb r3, [r5, r8] @@ -1288,25 +1275,25 @@ ToshibaSetRRPara: ldrb r3, [sl, #3761] @ zero_extendqisi2 cmp r3, #34 ldreqsb r3, [r7, #0] - beq .L182 + beq .L181 cmp r3, #35 - addne r3, r9, #3072 + addne r3, r9, #3200 addne r3, r3, #12 ldreqsb r3, [r6, #0] ldrnesb r3, [r3, #0] -.L182: +.L181: add r5, r5, #1 add r7, r7, #1 add r6, r6, #1 str r3, [r4, #0] -.L177: +.L176: ldrb r3, [sl, #3760] @ zero_extendqisi2 cmp r5, r3 - bcc .L181 + bcc .L180 ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, pc} -.L184: - .align 2 .L183: + .align 2 +.L182: .word .LANCHOR1 .word .LANCHOR0 .fnend @@ -1321,7 +1308,7 @@ FlashReadStatus: stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} mov r2, #112 - ldr r3, .L186 + ldr r3, .L185 add r3, r3, r0, asl #3 mov r0, #80 ldrb r5, [r3, #868] @ zero_extendqisi2 @@ -1332,44 +1319,82 @@ FlashReadStatus: bl NandcDelayns ldr r0, [r4, r5, asl #8] ldmfd sp!, {r3, r4, r5, pc} -.L187: - .align 2 .L186: + .align 2 +.L185: .word .LANCHOR0 .fnend .size FlashReadStatus, .-FlashReadStatus .align 2 + .global NandcWaitFlashReadyNoDelay + .type NandcWaitFlashReadyNoDelay, %function +NandcWaitFlashReadyNoDelay: + .fnstart + @ args = 0, pretend = 0, frame = 8 + @ frame_needed = 0, uses_anonymous_args = 0 + ldr r3, .L192 + stmfd sp!, {r0, r1, r2, r4, r5, lr} + .save {r0, r1, r2, r4, r5, lr} + add r3, r3, r0, asl #3 + ldr r4, .L192+4 + ldr r5, [r3, #864] +.L189: + ldr r3, [r5, #0] + str r3, [sp, #4] + ldr r3, [sp, #4] + tst r3, #512 + bne .L190 + mov r0, #10 + bl NandcDelayns + subs r4, r4, #1 + bne .L189 + mvn r0, #0 + b .L188 +.L190: + mov r0, #0 +.L188: + ldmfd sp!, {r1, r2, r3, r4, r5, pc} +.L193: + .align 2 +.L192: + .word .LANCHOR0 + .word 100000 + .fnend + .size NandcWaitFlashReadyNoDelay, .-NandcWaitFlashReadyNoDelay + .align 2 .global NandcWaitFlashReady .type NandcWaitFlashReady, %function NandcWaitFlashReady: .fnstart @ args = 0, pretend = 0, frame = 8 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L193 + ldr r3, .L199 stmfd sp!, {r0, r1, r2, r4, r5, lr} .save {r0, r1, r2, r4, r5, lr} add r3, r3, r0, asl #3 - ldr r4, .L193+4 + mov r0, #150 + ldr r4, .L199+4 ldr r5, [r3, #864] -.L190: - mov r0, #100 bl NandcDelayns +.L196: ldr r3, [r5, #0] str r3, [sp, #4] ldr r3, [sp, #4] tst r3, #512 - bne .L191 + bne .L197 + mov r0, #10 + bl NandcDelayns subs r4, r4, #1 - bne .L190 + bne .L196 mvn r0, #0 - b .L189 -.L191: + b .L195 +.L197: mov r0, #0 -.L189: +.L195: ldmfd sp!, {r1, r2, r3, r4, r5, pc} -.L194: +.L200: .align 2 -.L193: +.L199: .word .LANCHOR0 .word 100000 .fnend @@ -1389,9 +1414,9 @@ FlashEraseSLc2KBlocks: mov r8, r1 mov r4, r0 mov r7, r6 - ldr r5, .L203 - b .L196 -.L202: + ldr r5, .L209 + b .L202 +.L208: add r3, r6, r8 add r2, sp, #8 mov r0, r4 @@ -1405,7 +1430,7 @@ FlashEraseSLc2KBlocks: cmp r3, r2 mvncs r3, #0 strcs r3, [r4, #0] - bcs .L198 + bcs .L204 add r2, r5, r3 add r3, r5, r3, asl #4 ldrb sl, [r2, #3764] @ zero_extendqisi2 @@ -1442,27 +1467,27 @@ FlashEraseSLc2KBlocks: strne r3, [r4, #0] ldr r3, [r4, #0] cmn r3, #1 - bne .L201 - ldr r0, .L203+4 + bne .L207 + ldr r0, .L209+4 ldr r1, [sp, #8] bl printk -.L201: +.L207: mov r0, sl bl NandcFlashDeCs -.L198: +.L204: sub r6, r6, #1 add r7, r7, #1 add r4, r4, #36 uxtb r6, r6 -.L196: +.L202: cmp r7, r8 - bne .L202 + bne .L208 mov r0, #0 add sp, sp, #20 ldmfd sp!, {r4, r5, r6, r7, r8, sl, pc} -.L204: +.L210: .align 2 -.L203: +.L209: .word .LANCHOR0 .word .LC1 .fnend @@ -1479,7 +1504,7 @@ micron_auto_read_calibration_config: mov r6, r1 mov r4, r0 bl NandcWaitFlashReady - ldr r3, .L206 + ldr r3, .L212 mov r2, #239 mov r0, #200 add r4, r3, r4, asl #3 @@ -1497,9 +1522,9 @@ micron_auto_read_calibration_config: str r3, [r5, r4, asl #8] str r3, [r5, r4, asl #8] ldmfd sp!, {r4, r5, r6, pc} -.L207: +.L213: .align 2 -.L206: +.L212: .word .LANCHOR0 .fnend .size micron_auto_read_calibration_config, .-micron_auto_read_calibration_config @@ -1520,17 +1545,17 @@ SandiskSetRRPara: mov r0, #200 mov r5, r1 bl NandcDelayns - ldr r1, .L214 + ldr r1, .L220 add r3, r5, r5, asl #2 mvn r6, #4 add r0, r1, r3 add r1, r1, #45 add r1, r1, r3 mov r2, #0 - ldr ip, .L214+4 + ldr ip, .L220+4 mul r5, r6, r5 - b .L209 -.L212: + b .L215 +.L218: ldrb r6, [ip, #3761] @ zero_extendqisi2 add r2, r2, #1 cmp r6, #67 @@ -1541,16 +1566,16 @@ SandiskSetRRPara: add r1, r1, #1 ldrsb r6, [r6, #5] str r6, [r4, #0] -.L209: +.L215: ldrb r6, [ip, #3760] @ zero_extendqisi2 cmp r2, r6 - bcc .L212 + bcc .L218 mov r0, #0 ldmfd sp!, {r4, r5, r6, lr} b NandcWaitFlashReady -.L215: +.L221: .align 2 -.L214: +.L220: .word .LANCHOR1 .word .LANCHOR0 .fnend @@ -1562,7 +1587,7 @@ SandiskProgTestBadBlock: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L217 + ldr r3, .L223 stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} add r3, r3, r0, asl #3 @@ -1593,9 +1618,9 @@ SandiskProgTestBadBlock: ldr r0, [r5, r6, asl #8] and r0, r0, #1 ldmfd sp!, {r4, r5, r6, pc} -.L218: +.L224: .align 2 -.L217: +.L223: .word .LANCHOR0 .fnend .size SandiskProgTestBadBlock, .-SandiskProgTestBadBlock @@ -1606,13 +1631,13 @@ FlashReadSpare: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L220 + ldr r3, .L226 mov ip, #0 stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} mov r6, r2 - ldrb r2, [r3, #2997] @ zero_extendqisi2 - ldr r3, .L220+4 + ldrb r2, [r3, #3125] @ zero_extendqisi2 + ldr r3, .L226+4 add r3, r3, r0, asl #3 mov r2, r2, asl #9 ldrb r5, [r3, #868] @ zero_extendqisi2 @@ -1635,14 +1660,100 @@ FlashReadSpare: ldr r3, [r4, r5, asl #8] strb r3, [r6, #0] ldmfd sp!, {r4, r5, r6, pc} -.L221: +.L227: .align 2 -.L220: +.L226: .word .LANCHOR1 .word .LANCHOR0 .fnend .size FlashReadSpare, .-FlashReadSpare .align 2 + .global FlashSetInterfaceMode + .type FlashSetInterfaceMode, %function +FlashSetInterfaceMode: + .fnstart + @ args = 0, pretend = 0, frame = 0 + @ frame_needed = 0, uses_anonymous_args = 0 + stmfd sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr} + .save {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr} + mov r4, #0 + ldr sl, .L242 + mov r7, #239 + mov r1, r4 + mov r6, #128 + sub r8, sl, #864 + mov r5, #1 + mov r9, #35 +.L238: + mov r2, sl + ldr lr, .L242+4 + ldr r3, [r2, r4]! + ldrb lr, [r4, lr] @ zero_extendqisi2 + ldrb r2, [r2, #4] @ zero_extendqisi2 + cmp lr, #152 + cmpne lr, #69 + add r2, r2, #8 + add ip, r3, r2, asl #8 + beq .L229 + cmp lr, #173 + cmpne lr, #44 + bne .L230 +.L229: + cmp r0, #1 + ldrb fp, [r8, #3772] @ zero_extendqisi2 + bne .L231 + tst fp, #1 + beq .L230 + cmp lr, #173 + str r7, [ip, #8] + streq r0, [ip, #4] + beq .L240 + cmp lr, #44 + streq r0, [ip, #4] + strne r6, [ip, #4] + moveq ip, #5 + strne r0, [r3, r2, asl #8] + bne .L236 + b .L241 +.L231: + tst fp, #4 + beq .L230 + cmp lr, #173 + str r7, [ip, #8] + bne .L235 + str r5, [ip, #4] + mov ip, #32 +.L241: + str ip, [r3, r2, asl #8] + b .L236 +.L235: + cmp lr, #44 + streq r5, [ip, #4] + streq r9, [r3, r2, asl #8] + beq .L236 + str r6, [ip, #4] +.L240: + str r1, [r3, r2, asl #8] +.L236: + str r1, [r3, r2, asl #8] + str r1, [r3, r2, asl #8] + str r1, [r3, r2, asl #8] +.L230: + add r4, r4, #8 + cmp r4, #32 + bne .L238 + mov r0, #0 + bl NandcWaitFlashReady + mov r0, #0 + ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc} +.L243: + .align 2 +.L242: + .word .LANCHOR0+864 + .word .LANCHOR0+2976 + .fnend + .size FlashSetInterfaceMode, .-FlashSetInterfaceMode + .align 2 .global FlashEraseBlock .type FlashEraseBlock, %function FlashEraseBlock: @@ -1674,6 +1785,101 @@ FlashEraseBlock: .fnend .size FlashEraseBlock, .-FlashEraseBlock .align 2 + .global flash_exit_slc_mode + .type flash_exit_slc_mode, %function +flash_exit_slc_mode: + .fnstart + @ args = 0, pretend = 0, frame = 0 + @ frame_needed = 0, uses_anonymous_args = 0 + stmfd sp!, {r3, r4, r5, r6, r7, lr} + .save {r3, r4, r5, r6, r7, lr} + mov r6, r0 + ldr r4, .L247 + ldrb r3, [r4, #3072] @ zero_extendqisi2 + cmp r3, #0 + ldmeqfd sp!, {r3, r4, r5, r6, r7, pc} + bl NandcFlashCs + add r3, r4, r6, asl #3 + mov r0, #100 + ldrb r5, [r3, #868] @ zero_extendqisi2 + ldr r4, [r3, #864] + mov r3, #239 + add r5, r5, #8 + add r7, r4, r5, asl #8 + str r3, [r7, #8] + mov r3, #145 + str r3, [r7, #4] + bl NandcDelayns + mov r3, #2 + mov r0, #100 + str r3, [r4, r5, asl #8] + mov r3, #1 + str r3, [r4, r5, asl #8] + mov r3, #0 + str r3, [r4, r5, asl #8] + str r3, [r4, r5, asl #8] + bl NandcDelayns + mov r0, r6 + bl NandcWaitFlashReadyNoDelay + mov r3, #223 + mov r0, r6 + str r3, [r7, #8] + ldmfd sp!, {r3, r4, r5, r6, r7, lr} + b NandcWaitFlashReady +.L248: + .align 2 +.L247: + .word .LANCHOR0 + .fnend + .size flash_exit_slc_mode, .-flash_exit_slc_mode + .align 2 + .global flash_enter_slc_mode + .type flash_enter_slc_mode, %function +flash_enter_slc_mode: + .fnstart + @ args = 0, pretend = 0, frame = 0 + @ frame_needed = 0, uses_anonymous_args = 0 + stmfd sp!, {r3, r4, r5, r6, r7, lr} + .save {r3, r4, r5, r6, r7, lr} + mov r6, r0 + ldr r4, .L251 + ldrb r3, [r4, #3072] @ zero_extendqisi2 + cmp r3, #0 + ldmeqfd sp!, {r3, r4, r5, r6, r7, pc} + bl NandcFlashCs + add r3, r4, r6, asl #3 + mov r0, #100 + ldrb r5, [r3, #868] @ zero_extendqisi2 + ldr r4, [r3, #864] + mov r3, #239 + add r5, r5, #8 + add r7, r4, r5, asl #8 + str r3, [r7, #8] + mov r3, #145 + str r3, [r7, #4] + bl NandcDelayns + mov r3, #0 + mov r2, #1 + str r3, [r4, r5, asl #8] + mov r0, #100 + str r2, [r4, r5, asl #8] + str r3, [r4, r5, asl #8] + str r3, [r4, r5, asl #8] + bl NandcDelayns + mov r0, r6 + bl NandcWaitFlashReadyNoDelay + mov r3, #218 + mov r0, r6 + str r3, [r7, #8] + ldmfd sp!, {r3, r4, r5, r6, r7, lr} + b NandcWaitFlashReady +.L252: + .align 2 +.L251: + .word .LANCHOR0 + .fnend + .size flash_enter_slc_mode, .-flash_enter_slc_mode + .align 2 .global FlashReset .type FlashReset, %function FlashReset: @@ -1683,7 +1889,7 @@ FlashReset: stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} mov r4, r0 - ldr r3, .L224 + ldr r3, .L254 add r3, r3, r0, asl #3 ldrb r5, [r3, #868] @ zero_extendqisi2 ldr r2, [r3, #864] @@ -1697,9 +1903,9 @@ FlashReset: mov r0, r4 ldmfd sp!, {r3, r4, r5, lr} b NandcFlashDeCs -.L225: +.L255: .align 2 -.L224: +.L254: .word .LANCHOR0 .fnend .size FlashReset, .-FlashReset @@ -1711,19 +1917,19 @@ FlashReadIDRaw: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r0, r1, r2, r3, r4, r5, r6, r7, r8, lr} .save {r0, r1, r2, r3, r4, r5, r6, r7, r8, lr} - mov r5, r1 mov r4, r0 - bl FlashReset - ldr r3, .L228 - mov r0, r4 - add r3, r3, r4, asl #3 + ldr r3, .L258 + mov r5, r1 + add r3, r3, r0, asl #3 ldrb r7, [r3, #868] @ zero_extendqisi2 ldr r6, [r3, #864] - bl NandcFlashCs + bl FlashReset add r7, r7, #8 + mov r0, r4 + bl NandcFlashCs mov r3, #144 - mov r0, #200 add r8, r6, r7, asl #8 + mov r0, #200 str r3, [r8, #8] mov r3, #0 str r3, [r8, #4] @@ -1746,10 +1952,10 @@ FlashReadIDRaw: sub r3, r2, #1 uxtb r3, r3 cmp r3, #253 - bhi .L226 + bhi .L256 ldrb r1, [r5, #2] @ zero_extendqisi2 ldrb r3, [r5, #1] @ zero_extendqisi2 - ldr r0, .L228+4 + ldr r0, .L258+4 str r1, [sp, #0] ldrb r1, [r5, #3] @ zero_extendqisi2 str r1, [sp, #4] @@ -1759,100 +1965,16 @@ FlashReadIDRaw: str r1, [sp, #12] add r1, r4, #1 bl printk -.L226: +.L256: ldmfd sp!, {r0, r1, r2, r3, r4, r5, r6, r7, r8, pc} -.L229: +.L259: .align 2 -.L228: +.L258: .word .LANCHOR0 .word .LC2 .fnend .size FlashReadIDRaw, .-FlashReadIDRaw .align 2 - .global FlashSetInterfaceMode - .type FlashSetInterfaceMode, %function -FlashSetInterfaceMode: - .fnstart - @ args = 0, pretend = 0, frame = 0 - @ frame_needed = 0, uses_anonymous_args = 0 - stmfd sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr} - .save {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr} - mov r4, #0 - ldr sl, .L244 - mov r7, #239 - ldr r9, .L244+4 - mov r1, r4 - sub r8, sl, #864 - mov r6, #128 - mov r5, #1 -.L240: - mov r2, sl - ldrb lr, [r4, r9] @ zero_extendqisi2 - ldr r3, [r2, r4]! - cmp lr, #152 - cmpne lr, #69 - ldrb r2, [r2, #4] @ zero_extendqisi2 - add r2, r2, #8 - add ip, r3, r2, asl #8 - beq .L231 - cmp lr, #173 - cmpne lr, #44 - bne .L232 -.L231: - cmp r0, #1 - ldrb fp, [r8, #3772] @ zero_extendqisi2 - bne .L233 - tst fp, #1 - beq .L232 - cmp lr, #173 - str r7, [ip, #8] - streq r0, [ip, #4] - beq .L243 - cmp lr, #44 - streq r0, [ip, #4] - strne r6, [ip, #4] - moveq ip, #5 - strne r0, [r3, r2, asl #8] - bne .L238 - b .L242 -.L233: - tst fp, #4 - beq .L232 - cmp lr, #173 - str r7, [ip, #8] - streq r5, [ip, #4] - moveq ip, #32 - beq .L242 - cmp lr, #44 - strne r6, [ip, #4] - bne .L243 - str r5, [ip, #4] - mov ip, #35 -.L242: - str ip, [r3, r2, asl #8] - b .L238 -.L243: - str r1, [r3, r2, asl #8] -.L238: - str r1, [r3, r2, asl #8] - str r1, [r3, r2, asl #8] - str r1, [r3, r2, asl #8] -.L232: - add r4, r4, #8 - cmp r4, #32 - bne .L240 - mov r0, #0 - bl NandcWaitFlashReady - mov r0, #0 - ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L245: - .align 2 -.L244: - .word .LANCHOR0+864 - .word .LANCHOR0+2980 - .fnend - .size FlashSetInterfaceMode, .-FlashSetInterfaceMode - .align 2 .global ftl_flash_de_init .type ftl_flash_de_init, %function ftl_flash_de_init: @@ -1862,39 +1984,40 @@ ftl_flash_de_init: stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} mov r0, #0 - ldr r4, .L249 + ldr r4, .L264 bl NandcWaitFlashReady bl FlashSetReadRetryDefault - ldr r3, .L249+4 - ldr r2, [r4, #3776] - cmp r2, r3 - bne .L247 + ldr r0, [r4, #3776] + cmp r0, #0 + beq .L261 mov r0, #0 bl flash_enter_slc_mode -.L247: + b .L262 +.L261: + bl flash_exit_slc_mode +.L262: ldrb r3, [r4, #3780] @ zero_extendqisi2 - ldr r5, .L249 + ldr r5, .L264 cmp r3, #0 - beq .L248 + beq .L263 ldrb r3, [r5, #3772] @ zero_extendqisi2 tst r3, #1 - beq .L248 + beq .L263 mov r0, #1 bl FlashSetInterfaceMode mov r0, #1 bl NandcSetMode mov r3, #0 strb r3, [r5, #3780] -.L248: +.L263: ldr r3, [r4, #864] mov r0, #0 str r0, [r3, #336] ldmfd sp!, {r3, r4, r5, pc} -.L250: +.L265: .align 2 -.L249: +.L264: .word .LANCHOR0 - .word 1446522928 .fnend .size ftl_flash_de_init, .-ftl_flash_de_init .align 2 @@ -1904,7 +2027,7 @@ FlashReadDpCmd: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L255 + ldr r3, .L270 stmfd sp!, {r4, r5, r6, r7, r8, lr} .save {r4, r5, r6, r7, r8, lr} mov r7, r2 @@ -1919,7 +2042,7 @@ FlashReadDpCmd: ldrb r2, [r3, #904] @ zero_extendqisi2 add r6, r1, r6, asl #8 str r2, [r6, #8] - bne .L252 + bne .L267 mov r8, #0 uxtb r2, r5 str r8, [r6, #4] @@ -1935,8 +2058,8 @@ FlashReadDpCmd: str r8, [r6, #8] str r8, [r6, #4] str r8, [r6, #4] - b .L254 -.L252: + b .L269 +.L267: uxtb r2, r5 str r2, [r6, #4] mov r2, r5, lsr #8 @@ -1945,7 +2068,7 @@ FlashReadDpCmd: str r2, [r6, #4] ldrb r3, [r3, #905] @ zero_extendqisi2 str r3, [r6, #8] -.L254: +.L269: uxtb r3, r7 mov r0, r4 str r3, [r6, #4] @@ -1958,9 +2081,9 @@ FlashReadDpCmd: str r3, [r6, #8] ldmfd sp!, {r4, r5, r6, r7, r8, lr} b FlashSetRandomizer -.L256: +.L271: .align 2 -.L255: +.L270: .word .LANCHOR0 .fnend .size FlashReadDpCmd, .-FlashReadDpCmd @@ -1972,14 +2095,14 @@ NandcRandmzSel: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L258 + ldr r3, .L273 add r3, r3, r0, asl #3 ldr r3, [r3, #864] str r1, [r3, #336] bx lr -.L259: +.L274: .align 2 -.L258: +.L273: .word .LANCHOR0 .fnend .size NandcRandmzSel, .-NandcRandmzSel @@ -1996,36 +2119,36 @@ NandcTimeCfg: mov r4, r0 mov r0, #0 bl rknand_get_clk_rate - ldr r1, .L270 + ldr r1, .L285 bl __aeabi_idiv - ldr r3, .L270+4 - ldr r3, [r3, #3012] + ldr r3, .L285+4 + ldr r3, [r3, #3008] cmp r0, #250 movwgt r2, #8354 - bgt .L268 + bgt .L283 cmp r0, #220 - bgt .L269 -.L263: + bgt .L284 +.L278: cmp r0, #185 movwgt r2, #4226 - bgt .L268 + bgt .L283 cmp r0, #160 movwgt r2, #4194 - bgt .L268 + bgt .L283 cmp r4, #35 movwls r2, #4193 - bls .L268 + bls .L283 cmp r4, #99 movwls r2, #4225 - bls .L268 -.L269: + bls .L283 +.L284: movw r2, #8322 -.L268: +.L283: str r2, [r3, #4] ldmfd sp!, {r4, pc} -.L271: +.L286: .align 2 -.L270: +.L285: .word 1000000 .word .LANCHOR0 .fnend @@ -2040,10 +2163,10 @@ NandcInit: stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} mov r2, #0 - ldr r4, .L274 + ldr r4, .L289 mov r3, #1 mov r5, #0 - str r0, [r4, #3012] + str r0, [r4, #3008] str r2, [r4, #868] str r0, [r4, #864] str r3, [r4, #876] @@ -2066,31 +2189,31 @@ NandcInit: str r2, [r4, #3788] ldr r2, [r0, #352] cmp r2, r1 - str r2, [r4, #3776] + str r2, [r4, #3792] moveq r2, #8 streq r2, [r4, #3788] str r3, [r0, #0] mov r0, #40 - ldr r3, [r4, #3012] + ldr r3, [r4, #3008] str r5, [r3, #336] bl NandcTimeCfg - ldr r3, [r4, #3012] + ldr r3, [r4, #3008] movw r2, #8322 mov r0, #36864 str r2, [r3, #344] - ldr r2, .L274+4 + ldr r2, .L289+4 str r2, [r3, #304] bl ftl_malloc - str r5, [r4, #3820] - str r5, [r4, #3828] - str r0, [r4, #3792] + str r5, [r4, #3824] + str r5, [r4, #3832] str r0, [r4, #3796] - add r0, r0, #32768 str r0, [r4, #3800] + add r0, r0, #32768 + str r0, [r4, #3804] ldmfd sp!, {r3, r4, r5, pc} -.L275: +.L290: .align 2 -.L274: +.L289: .word .LANCHOR0 .word 1710593 .fnend @@ -2108,23 +2231,23 @@ FlashTimingCfg: sub r3, r3, #33 cmp r0, r2 cmpne r3, #1 - bls .L277 + bls .L292 movw r3, #4226 movw r2, #8322 cmp r0, r3 cmpne r0, r2 - bne .L278 -.L277: - ldr r3, .L279 - ldr r3, [r3, #3012] + bne .L293 +.L292: + ldr r3, .L294 + ldr r3, [r3, #3008] str r0, [r3, #4] -.L278: - ldr r3, .L279+4 - ldrb r0, [r3, #3009] @ zero_extendqisi2 +.L293: + ldr r3, .L294+4 + ldrb r0, [r3, #3137] @ zero_extendqisi2 b NandcTimeCfg -.L280: +.L295: .align 2 -.L279: +.L294: .word .LANCHOR0 .word .LANCHOR1 .fnend @@ -2136,28 +2259,28 @@ NandcGetTimeCfg: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr ip, .L282 + ldr ip, .L297 stmfd sp!, {r4, lr} .save {r4, lr} - ldr r4, [ip, #3012] + ldr r4, [ip, #3008] ldr r4, [r4, #4] str r4, [r0, #0] - ldr r0, [ip, #3012] + ldr r0, [ip, #3008] ldr r0, [r0, #0] str r0, [r1, #0] - ldr r1, [ip, #3012] + ldr r1, [ip, #3008] ldr r1, [r1, #304] str r1, [r2, #0] - ldr r2, [ip, #3012] + ldr r2, [ip, #3008] ldr r0, [r2, #308] ldr r1, [r2, #344] uxtb r2, r0 orr r2, r2, r1, asl #16 str r2, [r3, #0] ldmfd sp!, {r4, pc} -.L283: +.L298: .align 2 -.L282: +.L297: .word .LANCHOR0 .fnend .size NandcGetTimeCfg, .-NandcGetTimeCfg @@ -2169,34 +2292,34 @@ NandcBchSel: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L289 + ldr r3, .L304 mov r1, #1 - ldr r2, [r3, #3012] - str r0, [r3, #3832] + ldr r2, [r3, #3008] + str r0, [r3, #3836] mov r3, #0 str r1, [r2, #8] mov r1, #16 cmp r0, r1 bfi r3, r1, #8, #8 bfc r3, #18, #1 - beq .L288 -.L285: + beq .L303 +.L300: cmp r0, #24 orreq r3, r3, #16 - beq .L286 + beq .L301 cmp r0, #40 orr r3, r3, #262144 orr r3, r3, #16 - bne .L286 -.L288: + bne .L301 +.L303: bfc r3, #4, #1 -.L286: +.L301: orr r3, r3, #1 str r3, [r2, #12] bx lr -.L290: +.L305: .align 2 -.L289: +.L304: .word .LANCHOR0 .fnend .size NandcBchSel, .-NandcBchSel @@ -2208,12 +2331,12 @@ FlashBchSel: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L292 - strb r0, [r3, #3836] + ldr r3, .L307 + strb r0, [r3, #3840] b NandcBchSel -.L293: +.L308: .align 2 -.L292: +.L307: .word .LANCHOR0 .fnend .size FlashBchSel, .-FlashBchSel @@ -2224,64 +2347,63 @@ ftl_flash_resume: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L299 - stmfd sp!, {r4, r5, r6, lr} - .save {r4, r5, r6, lr} + stmfd sp!, {r3, r4, r5, lr} + .save {r3, r4, r5, lr} mov r4, #0 - ldr r2, [r3, #3012] - ldr r1, [r3, #3016] - ldr r5, [r3, #3032] - ldr r6, .L299+4 - str r1, [r2, #0] - ldr r1, [r3, #3020] - ldr r2, [r3, #3012] - str r1, [r2, #4] - ldr r1, [r3, #3024] - str r1, [r2, #8] - ldr r1, [r3, #3028] - str r1, [r2, #12] - ldr r1, [r3, #3036] - str r5, [r2, #304] - str r1, [r2, #308] - ldr r1, [r3, #3040] - ldr r3, [r3, #3044] - str r1, [r2, #336] - str r3, [r2, #344] -.L296: - ldrb r3, [r6, r4, asl #3] @ zero_extendqisi2 + ldr r5, .L314 + ldr r3, [r5, #3008] + ldr r2, [r5, #3012] + str r2, [r3, #0] + ldr r2, [r5, #3016] + ldr r3, [r5, #3008] + str r2, [r3, #4] + ldr r2, [r5, #3020] + str r2, [r3, #8] + ldr r2, [r5, #3024] + str r2, [r3, #12] + ldr r2, [r5, #3028] + str r2, [r3, #304] + ldr r2, [r5, #3032] + str r2, [r3, #308] + ldr r2, [r5, #3036] + str r2, [r3, #336] + ldr r2, [r5, #3040] + add r5, r5, #2976 + str r2, [r3, #344] +.L311: + ldrb r3, [r5, r4, asl #3] @ zero_extendqisi2 sub r3, r3, #1 uxtb r3, r3 cmp r3, #253 - bhi .L295 + bhi .L310 uxtb r0, r4 bl FlashReset -.L295: +.L310: add r4, r4, #1 cmp r4, #4 - bne .L296 - ldr r4, .L299 + bne .L311 + ldr r4, .L314 ldrb r3, [r4, #3780] @ zero_extendqisi2 cmp r3, #0 - beq .L297 + beq .L312 mov r0, #1 bl NandcSetMode ldrb r0, [r4, #3772] @ zero_extendqisi2 bl FlashSetInterfaceMode ldrb r0, [r4, #3772] @ zero_extendqisi2 bl NandcSetMode - ubfx r0, r5, #8, #8 + ldrb r0, [r4, #3029] @ zero_extendqisi2 bl NandcSetDdrPara -.L297: - ldr r3, .L299 +.L312: + ldr r3, .L314 ldr r3, [r3, #3624] ldrb r0, [r3, #20] @ zero_extendqisi2 - ldmfd sp!, {r4, r5, r6, lr} + ldmfd sp!, {r3, r4, r5, lr} b FlashBchSel -.L300: +.L315: .align 2 -.L299: +.L314: .word .LANCHOR0 - .word .LANCHOR0+2980 .fnend .size ftl_flash_resume, .-ftl_flash_resume .align 2 @@ -2335,11 +2457,11 @@ NandcIqrWaitFlashReady: and r3, r3, #2 uxtb r3, r3 cmp r3, #0 - bne .L304 + bne .L319 mov r0, r4 ldmfd sp!, {r4, lr} b wait_for_nand_flash_ready -.L304: +.L319: ldr r3, [r4, #368] orr r3, r3, #2 str r3, [r4, #368] @@ -2360,18 +2482,18 @@ FlashEraseBlocks: .save {r4, r5, r6, r7, r8, r9, sl, fp, lr} .pad #28 sub sp, sp, #28 - ldr r5, .L325 + ldr r5, .L340 mov r6, r0 str r1, [sp, #12] mov r7, r2 ldrb r4, [r5, #852] @ zero_extendqisi2 cmp r4, #0 moveq r9, r5 - beq .L306 + beq .L321 mov r1, r2 bl FlashEraseSLc2KBlocks - b .L307 -.L315: + b .L322 +.L330: mov r8, #36 rsb r3, r4, r7 mul r8, r8, r4 @@ -2389,17 +2511,17 @@ FlashEraseBlocks: cmp r0, r3 mvncs r3, #0 strcs r3, [r6, r8] - bcs .L309 - ldrb r3, [r5, #3837] @ zero_extendqisi2 + bcs .L324 + ldrb r3, [r5, #3841] @ zero_extendqisi2 cmp r3, #0 add r3, r9, r0, asl #4 ldr r3, [r3, #3636] moveq sl, #0 cmp r3, #0 - beq .L311 + beq .L326 uxtb r0, r0 bl FlashWaitCmdDone -.L311: +.L326: ldr r2, [sp, #20] mov r1, #0 cmp sl, #0 @@ -2421,15 +2543,15 @@ FlashEraseBlocks: ldr r3, [sp, #12] mov r0, r8 cmp r3, #1 - bne .L313 - ldrb r3, [r5, #928] @ zero_extendqisi2 + bne .L328 + ldrb r3, [r5, #3072] @ zero_extendqisi2 cmp r3, #0 - beq .L313 + beq .L328 bl flash_enter_slc_mode - b .L314 -.L313: + b .L329 +.L328: bl flash_exit_slc_mode -.L314: +.L329: ldr r3, [sp, #20] mov r0, r8 ldr r1, [sp, #16] @@ -2445,59 +2567,59 @@ FlashEraseBlocks: bl FlashEraseCmd mov r0, r8 bl NandcFlashDeCs -.L309: +.L324: add r4, r4, #1 -.L306: +.L321: cmp r4, r7 - bcc .L315 - ldr r5, .L325 + bcc .L330 + ldr r5, .L340 mov r4, #0 - ldr r8, .L325+4 - ldr r0, [r5, #3012] + ldr r8, .L340+4 + ldr r0, [r5, #3008] bl NandcIqrWaitFlashReady - b .L316 -.L318: + b .L331 +.L333: uxtb r0, r4 bl FlashWaitCmdDone ldr r3, [sp, #12] cmp r3, #1 - bne .L317 - ldrb r3, [r5, #928] @ zero_extendqisi2 + bne .L332 + ldrb r3, [r5, #3072] @ zero_extendqisi2 cmp r3, #0 - beq .L317 + beq .L332 ldrb r0, [r8, r4, asl #4] @ zero_extendqisi2 bl flash_exit_slc_mode -.L317: +.L332: add r4, r4, #1 -.L316: +.L331: ldrb r2, [r5, #3762] @ zero_extendqisi2 - ldr r3, .L325 + ldr r3, .L340 cmp r4, r2 - bcc .L318 - ldr r0, [r3, #3840] + bcc .L333 + ldr r0, [r3, #3844] cmp r0, #0 - beq .L307 - ldrb r3, [r3, #2980] @ zero_extendqisi2 + beq .L322 + ldrb r3, [r3, #2976] @ zero_extendqisi2 cmp r3, #69 moveq r3, #0 moveq r2, r3 - bne .L324 - b .L319 -.L320: + bne .L339 + b .L334 +.L335: add r3, r3, #1 str r2, [r6, #-36] -.L319: +.L334: cmp r3, r7 add r6, r6, #36 - bne .L320 -.L324: + bne .L335 +.L339: mov r0, #0 -.L307: +.L322: add sp, sp, #28 ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L326: +.L341: .align 2 -.L325: +.L340: .word .LANCHOR0 .word .LANCHOR0+3628 .fnend @@ -2530,7 +2652,7 @@ NandcSendDumpDataStart: ldr r2, [r0, #16] .pad #8 sub sp, sp, #8 - ldr r3, .L329 + ldr r3, .L344 str r2, [sp, #4] ldr r2, [sp, #4] bfc r2, #2, #1 @@ -2542,9 +2664,9 @@ NandcSendDumpDataStart: str r3, [r0, #8] add sp, sp, #8 bx lr -.L330: +.L345: .align 2 -.L329: +.L344: .word 538969130 .fnend .size NandcSendDumpDataStart, .-NandcSendDumpDataStart @@ -2558,12 +2680,12 @@ NandcSendDumpDataDone: @ link register save eliminated. .pad #8 sub sp, sp, #8 -.L332: +.L347: ldr r3, [r0, #8] str r3, [sp, #4] ldr r3, [sp, #4] tst r3, #1048576 - beq .L332 + beq .L347 add sp, sp, #8 bx lr .fnend @@ -2578,7 +2700,7 @@ NandcXferStart: stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} .save {r4, r5, r6, r7, r8, r9, sl, fp, lr} mov r6, r1 - ldr r1, .L347 + ldr r1, .L362 mov r8, r2 mov r4, #0 .pad #20 @@ -2603,7 +2725,7 @@ NandcXferStart: bfi r4, r3, #4, #1 ldr r3, [r1, #3788] cmp r3, #3 - bls .L335 + bls .L350 ldr r3, [r5, #16] cmp r9, #0 cmpeq ip, #0 @@ -2611,10 +2733,10 @@ NandcXferStart: ldr r3, [sp, #12] bfc r3, #2, #1 str r3, [sp, #12] - beq .L336 + beq .L351 cmp r6, #0 - beq .L337 - ldr r3, [r1, #3832] + beq .L352 + ldr r3, [r1, #3836] mov r0, ip cmp r3, #24 movhi r3, #128 @@ -2624,26 +2746,26 @@ NandcXferStart: str r3, [sp, #4] mov r3, #0 mov r2, r3 - b .L339 -.L342: + b .L354 +.L357: cmp ip, #0 mov lr, r3, lsr #2 add r2, r2, #1 ldrneh fp, [r0, #2] mvneq fp, #0 ldrneh sl, [r0], #4 - ldreq sl, [r1, #3800] + ldreq sl, [r1, #3804] orrne sl, sl, fp, asl #16 - ldrne fp, [r1, #3800] + ldrne fp, [r1, #3804] streq fp, [sl, lr, asl #2] strne sl, [fp, lr, asl #2] ldr lr, [sp, #0] add r3, r3, lr -.L339: +.L354: ldr sl, [sp, #4] cmp r2, sl - bcc .L342 -.L337: + bcc .L357 +.L352: mov r0, r5 add r8, r8, #1 bl rk_nandc_xfer_irq_flag_init @@ -2651,34 +2773,34 @@ NandcXferStart: mov r8, r8, asr #1 cmp r9, #0 bfi r4, r8, #22, #6 - ldr r8, .L347 + ldr r8, .L362 orr r3, r3, #1 str r3, [r5, #368] ldr r3, [r5, #364] ubfx sl, r4, #22, #5 - ldreq r0, [r8, #3796] + ldreq r0, [r8, #3800] movne r0, r9 orr r3, r3, #1 str r3, [r5, #364] - ldr r3, [r8, #3800] + ldr r3, [r8, #3804] mov r2, r6 mov r1, sl, asl #10 - str r3, [r8, #3808] - str r0, [r8, #3804] + str r3, [r8, #3812] + str r0, [r8, #3808] bl rknand_dma_map_single mov r2, r6 mov r1, sl, asl #7 - str r0, [r8, #3812] - ldr r0, [r8, #3808] + str r0, [r8, #3816] + ldr r0, [r8, #3812] bl rknand_dma_map_single mov r3, #1 - str r3, [r8, #3820] + str r3, [r8, #3824] mov r2, #16 - ldr r3, [r8, #3812] + ldr r3, [r8, #3816] tst r9, #3 - str r0, [r8, #3816] + str r0, [r8, #3820] str r3, [r5, #20] - ldr r3, [r8, #3816] + ldr r3, [r8, #3820] str r3, [r5, #24] mov r3, #0 str r3, [sp, #12] @@ -2703,19 +2825,19 @@ NandcXferStart: ldr r3, [sp, #12] orr r3, r3, #1 str r3, [sp, #12] -.L336: +.L351: ldr r3, [sp, #12] str r3, [r5, #16] -.L335: +.L350: str r7, [r5, #12] str r4, [r5, #8] orr r4, r4, #4 str r4, [r5, #8] add sp, sp, #20 ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L348: +.L363: .align 2 -.L347: +.L362: .word .LANCHOR0 .fnend .size NandcXferStart, .-NandcXferStart @@ -2734,14 +2856,14 @@ NandcCopy1KB: mov r4, r0 ldr r6, [sp, #16] add r2, r2, r5, asl #9 - bne .L350 + bne .L365 cmp r3, #0 - beq .L351 + beq .L366 mov r0, r2 mov r1, r3 mov r2, #1024 bl memcpy -.L351: +.L366: cmp r6, #0 ldmeqfd sp!, {r4, r5, r6, pc} ldrb r3, [r6, #2] @ zero_extendqisi2 @@ -2759,14 +2881,14 @@ NandcCopy1KB: add r5, r5, #128 str r3, [r4, r5, asl #2] ldmfd sp!, {r4, r5, r6, pc} -.L350: +.L365: cmp r3, #0 - beq .L353 + beq .L368 mov r1, r2 mov r0, r3 mov r2, #1024 bl memcpy -.L353: +.L368: cmp r6, #0 ldmeqfd sp!, {r4, r5, r6, pc} mov r5, r5, lsr #1 @@ -2795,14 +2917,14 @@ Ftl_log2: @ link register save eliminated. mov r2, #1 mov r3, #0 - b .L355 -.L356: + b .L370 +.L371: add r3, r3, #1 mov r2, r2, asl #1 uxth r3, r3 -.L355: +.L370: cmp r2, r0 - bls .L356 + bls .L371 sub r3, r3, #1 uxth r0, r3 bx lr @@ -2827,27 +2949,27 @@ FtlSysBlkNumInit: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L361 - movw r2, #3848 + ldr r3, .L376 + movw r2, #3852 cmp r0, #23 - movw r1, #3858 + movw r1, #3862 ldrh r2, [r3, r2] movls r0, #24 ldrh r1, [r3, r1] - str r0, [r3, #3844] + str r0, [r3, #3848] mul r2, r2, r0 rsb r0, r0, r1 - mov r1, #3856 + movw r1, #3860 strh r0, [r3, r1] @ movhi mov r0, #0 - ldr r1, [r3, #3864] - str r2, [r3, #3852] + ldr r1, [r3, #3868] + str r2, [r3, #3856] rsb r2, r2, r1 - str r2, [r3, #3860] + str r2, [r3, #3864] bx lr -.L362: +.L377: .align 2 -.L361: +.L376: .word .LANCHOR0 .fnend .size FtlSysBlkNumInit, .-FtlSysBlkNumInit @@ -2860,126 +2982,122 @@ FtlConstantsInit: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} .save {r4, r5, r6, r7, r8, r9, sl, fp, lr} - movw r2, #3868 - ldr r3, .L380 + mov r3, #3872 + ldr r2, .L395 mov r4, r0 ldrh lr, [r0, #8] + movw r1, #3876 + ldrh r0, [r0, #10] .pad #20 sub sp, sp, #20 - ldrh r1, [r0, #10] - ldrh r0, [r0, #12] - strh lr, [r3, r2] @ movhi - add r2, r2, #2 ldrh r6, [r4, #14] - strh r1, [r3, r2] @ movhi - mov r2, #3872 - strh r0, [r3, r2] @ movhi - movw r2, #3858 - strh r6, [r3, r2] @ movhi - mov r3, #0 - ldr r2, .L380+4 -.L364: - strb r3, [r3, r2] - add r3, r3, #1 - cmp r3, #32 - bne .L364 - ldrh r2, [r4, #14] - ldrh r3, [r4, #20] - cmp r3, r2, lsr #8 - bcs .L365 - ldr r2, .L380+4 - sub ip, r1, #1 - uxtb r7, r0 - mov r3, #0 - rsb sl, r0, r2 + strh lr, [r2, r3] @ movhi + add r3, r3, #2 + strh r0, [r2, r3] @ movhi + ldrh r3, [r4, #12] + strh r3, [r2, r1] @ movhi + movw r1, #3862 + strh r6, [r2, r1] @ movhi + mov r2, #0 + ldr r1, .L395+4 +.L379: + strb r2, [r2, r1] + add r2, r2, #1 + cmp r2, #32 + bne .L379 + ldrh r1, [r4, #14] + ldrh r2, [r4, #20] + cmp r2, r1, lsr #8 + bcs .L380 + ldr r1, .L395+4 + sub ip, r0, #1 + uxtb r7, r3 + mov r2, #0 + rsb sl, r3, r1 str sl, [sp, #8] - mla ip, r0, ip, r2 + mla ip, r3, ip, r1 mov r8, r7, asl #1 uxtb r8, r8 str ip, [sp, #12] - b .L366 -.L367: - strb ip, [r9, r2] + b .L381 +.L382: + strb ip, [r9, r1] add fp, ip, r7 add ip, ip, r8 add r5, r5, #1 - strb fp, [sl, r2] + strb fp, [sl, r1] uxtb ip, ip -.L369: - cmp r5, r1 - add r2, r2, r0 - bcc .L367 - add r3, r3, #1 -.L366: - cmp r3, r0 - bcs .L368 +.L384: + cmp r5, r0 + add r1, r1, r3 + bcc .L382 + add r2, r2, #1 +.L381: + cmp r2, r3 + bcs .L383 ldr fp, [sp, #8] - mov r2, #0 - uxtb ip, r3 - mov r5, r2 - add r9, fp, r3 + mov r1, #0 + uxtb ip, r2 + mov r5, r1 + add r9, fp, r2 ldr fp, [sp, #12] - add sl, fp, r3 - b .L369 -.L368: - ldr r3, .L380 - movw r2, #3870 - mov r1, r1, asl #1 + add sl, fp, r2 + b .L384 +.L383: + ldr r2, .L395 + movw r1, #3874 + mov r0, r0, asl #1 mov r6, r6, lsr #1 - strh r1, [r3, r2] @ movhi - movw r2, #3858 - strh r6, [r3, r2] @ movhi -.L365: - ldr r3, .L380 - movw r2, #3906 + strh r0, [r2, r1] @ movhi + movw r1, #3862 + strh r6, [r2, r1] @ movhi +.L380: + ldr r2, .L395 + movw r1, #3910 cmp lr, #1 - mov r1, #5 + mov r0, #5 mov ip, #0 - ldr sl, .L380 - ldrb r8, [r3, #852] @ zero_extendqisi2 - strh r1, [r3, r2] @ movhi - movw r1, #3908 - streqh lr, [r3, r2] @ movhi + ldr sl, .L395 + ldrb r8, [r2, #852] @ zero_extendqisi2 + strh r0, [r2, r1] @ movhi + movw r0, #3912 + streqh lr, [r2, r1] @ movhi cmp r8, #0 - movw r2, #3910 - strh ip, [r3, r1] @ movhi - mov r1, #4352 - strh r1, [r3, r2] @ movhi - ldrne r3, .L380 - movne r1, #384 - strneh r1, [r3, r2] @ movhi - movw r3, #3870 - ldrh r5, [sl, r3] - movw r3, #3848 - mul r5, r5, r0 - uxth r5, r5 - strh r5, [sl, r3] @ movhi - add r3, r3, #10 - ldrh r6, [sl, r3] - add r3, r3, #54 - mul r0, r0, r6 - uxth r0, r0 - strh r0, [sl, r3] @ movhi - bl Ftl_log2 - movw r3, #3914 + movw r1, #3914 + strh ip, [r2, r0] @ movhi + mov r0, #4352 + strh r0, [r2, r1] @ movhi + ldrne r2, .L395 + movne r0, #384 ldrh fp, [r4, #18] - movw r2, #3916 ldrh r9, [r4, #20] - strh r0, [sl, r3] @ movhi + strneh r0, [r2, r1] @ movhi + movw r2, #3874 + ldrh r5, [sl, r2] + movw r2, #3852 mov r0, r9 + mul r5, r5, r3 + uxth r5, r5 + strh r5, [sl, r2] @ movhi + add r2, r2, #10 + ldrh r6, [sl, r2] + add r2, r2, #54 + mul r3, r3, r6 + strh r3, [sl, r2] @ movhi + add r2, r2, #2 ldrh r3, [r4, #16] mul r1, r3, r5 strh r3, [sl, r2] @ movhi - add r2, r2, #2 - strh fp, [sl, r2] @ movhi mov r2, #3920 + strh fp, [sl, r2] @ movhi + add r2, r2, #2 strh r1, [sl, r2] @ movhi add r2, r2, #2 strh r9, [sl, r2] @ movhi str r3, [sp, #4] bl Ftl_log2 - movw r2, #3924 - movw r1, #3926 + movw r2, #3926 + movw r1, #3928 cmp r6, #1024 strh r0, [sl, r2] @ movhi mov r2, r9, asl #9 @@ -2989,14 +3107,14 @@ FtlConstantsInit: add r1, r1, #2 mov r2, r2, lsr #8 strh r2, [sl, r1] @ movhi - movw r2, #3930 + movw r2, #3932 ldrh r1, [r4, #26] mov r4, sl strh r1, [sl, r2] @ movhi uxtbhi r1, r6 mul r2, r6, r5 - str r2, [sl, #3864] - movw r2, #3908 + str r2, [sl, #3868] + movw r2, #3912 ldr r3, [sp, #4] strhih r1, [sl, r2] @ movhi ldrh r2, [sl, r2] @@ -3007,17 +3125,17 @@ FtlConstantsInit: mul r2, r9, r2 mul r3, r3, r2 mov r3, r3, asr #11 - str r3, [sl, #3932] - movw sl, #3910 + str r3, [sl, #3936] + movw sl, #3914 ldrh r0, [r4, sl] mov r0, r0, asl #3 bl __aeabi_idiv - mov r3, #3936 + movw r3, #3940 uxth r0, r0 strh r0, [r4, r3] @ movhi cmp r0, #4 - ldr r4, .L380 - ldrls r2, .L380 + ldr r4, .L395 + ldrls r2, .L395 movls r1, #4 strlsh r1, [r2, r3] @ movhi cmp r8, #0 @@ -3025,7 +3143,7 @@ FtlConstantsInit: movne r3, #640 strneh r3, [r4, sl] @ movhi ldrh r2, [r4, sl] - movw r3, #3938 + movw r3, #3942 mov r2, r2, asr r7 add r7, r7, #9 mov r6, r6, asr r7 @@ -3036,67 +3154,67 @@ FtlConstantsInit: strh r6, [r4, r3] @ movhi mul r3, r5, r6 add r6, r6, #8 - str r3, [r4, #3944] - mov r3, #3936 + str r3, [r4, #3948] + movw r3, #3940 ldrh r0, [r4, r3] bl __aeabi_uidiv cmp r5, #1 - ldreq r3, .L380 + ldreq r3, .L395 uxtah r6, r6, r0 - str r6, [r4, #3844] - ldr r4, .L380 + str r6, [r4, #3848] + ldr r4, .L395 addeq r6, r6, #4 - streq r6, [r3, #3844] - ldr r0, [r4, #3844] + streq r6, [r3, #3848] + ldr r0, [r4, #3848] uxth r0, r0 bl FtlSysBlkNumInit - ldr r3, [r4, #3844] - ldr r6, [r4, #3860] + ldr r3, [r4, #3848] + ldr r6, [r4, #3864] mov r0, #2048 - str r3, [r4, #3948] - movw r3, #3916 + str r3, [r4, #3952] + movw r3, #3918 ldrh r3, [r4, r3] mov r6, r6, asl #2 mul r6, r3, r6 - movw r3, #3924 + movw r3, #3926 ldrh r3, [r4, r3] add r3, r3, #9 mov r6, r6, lsr r3 - mov r3, #3952 + movw r3, #3956 add r6, r6, #2 uxth r6, r6 strh r6, [r4, r3] @ movhi - movw r3, #3922 + movw r3, #3924 ldrh r5, [r4, r3] mov r1, r5 bl __aeabi_idiv - movw r3, #3954 - ldrb ip, [r4, #928] @ zero_extendqisi2 - ldr r1, [r4, #3944] + movw r3, #3958 + ldrb ip, [r4, #3072] @ zero_extendqisi2 + ldr r1, [r4, #3948] cmp ip, #0 strh r0, [r4, r3] @ movhi mov r3, #0 - str r3, [r4, #3956] - mov r3, #3936 + str r3, [r4, #3960] + movw r3, #3940 ldrh r0, [r4, r3] add r2, r0, #3 strh r2, [r4, r3] @ movhi add r2, r1, #3 - str r2, [r4, #3944] + str r2, [r4, #3948] addne r0, r0, #4 addne r1, r1, #5 strneh r0, [r4, r3] @ movhi - strne r1, [r4, #3944] - bne .L377 -.L376: + strne r1, [r4, #3948] + bne .L392 +.L391: cmp r2, #7 movls r3, #8 - strls r3, [r4, #3944] -.L377: - movw r3, #3960 + strls r3, [r4, #3948] +.L392: + movw r3, #3964 mov r2, #0 strh r2, [r4, r3] @ movhi - mov r2, #3856 + movw r2, #3860 ldrh r2, [r4, r2] mov r0, #0 mov r1, r2, lsr #3 @@ -3104,16 +3222,16 @@ FtlConstantsInit: add r2, r2, #52 add r6, r2, r6, asl #2 cmp r6, r5, asl #9 - ldrcc r2, .L380 + ldrcc r2, .L395 movcc r1, #1 strcch r1, [r2, r3] @ movhi add sp, sp, #20 ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L381: +.L396: .align 2 -.L380: +.L395: .word .LANCHOR0 - .word .LANCHOR0+3874 + .word .LANCHOR0+3878 .fnend .size FtlConstantsInit, .-FtlConstantsInit .align 2 @@ -3124,36 +3242,36 @@ IsBlkInVendorPart: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L389 - movw r2, #3962 + ldr r3, .L404 + movw r2, #3966 ldrh r2, [r3, r2] cmp r2, #0 - beq .L387 - mov r2, #3936 + beq .L402 + movw r2, #3940 ldrh r1, [r3, r2] - ldr r2, [r3, #3964] + ldr r2, [r3, #3968] mov r3, #0 - b .L384 -.L386: + b .L399 +.L401: ldrh ip, [r2], #2 cmp ip, r0 - beq .L388 + beq .L403 add r3, r3, #1 uxth r3, r3 -.L384: +.L399: cmp r3, r1 - bne .L386 + bne .L401 mov r0, #0 bx lr -.L388: +.L403: mov r0, #1 bx lr -.L387: +.L402: mov r0, r2 bx lr -.L390: +.L405: .align 2 -.L389: +.L404: .word .LANCHOR0 .fnend .size IsBlkInVendorPart, .-IsBlkInVendorPart @@ -3164,36 +3282,36 @@ FtlCacheMetchLpa: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r2, .L399 + ldr r2, .L414 stmfd sp!, {r4, lr} .save {r4, lr} - ldr r3, [r2, #3968] + ldr r3, [r2, #3972] cmp r3, #0 - beq .L396 - ldr ip, [r2, #3972] + beq .L411 + ldr ip, [r2, #3976] mov r2, #0 -.L395: +.L410: ldr r4, [ip, #16] cmp r4, r0 - bcc .L393 + bcc .L408 cmp r4, r1 - bls .L397 -.L393: + bls .L412 +.L408: add r2, r2, #1 add ip, ip, #36 cmp r2, r3 - bne .L395 + bne .L410 mov r0, #0 ldmfd sp!, {r4, pc} -.L397: +.L412: mov r0, #1 ldmfd sp!, {r4, pc} -.L396: +.L411: mov r0, r3 ldmfd sp!, {r4, pc} -.L400: +.L415: .align 2 -.L399: +.L414: .word .LANCHOR0 .fnend .size FtlCacheMetchLpa, .-FtlCacheMetchLpa @@ -3205,12 +3323,12 @@ FtlGetCap: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L402 - ldr r0, [r3, #3956] + ldr r3, .L417 + ldr r0, [r3, #3960] bx lr -.L403: +.L418: .align 2 -.L402: +.L417: .word .LANCHOR0 .fnend .size FtlGetCap, .-FtlGetCap @@ -3222,12 +3340,12 @@ ftl_get_density: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L405 - ldr r0, [r3, #3956] + ldr r3, .L420 + ldr r0, [r3, #3960] bx lr -.L406: +.L421: .align 2 -.L405: +.L420: .word .LANCHOR0 .fnend .size ftl_get_density, .-ftl_get_density @@ -3239,12 +3357,12 @@ FtlGetLpn: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L408 - ldr r0, [r3, #3976] + ldr r3, .L423 + ldr r0, [r3, #3980] bx lr -.L409: +.L424: .align 2 -.L408: +.L423: .word .LANCHOR0 .fnend .size FtlGetLpn, .-FtlGetLpn @@ -3257,8 +3375,8 @@ FtlBbmMapBadBlock: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r0, r1, r4, r5, r6, lr} .save {r0, r1, r4, r5, r6, lr} - movw r3, #3912 - ldr r4, .L411 + movw r3, #3916 + ldr r4, .L426 mov r5, r0 ldrh r6, [r4, r3] mov r1, r6 @@ -3267,7 +3385,7 @@ FtlBbmMapBadBlock: mls r3, r6, r2, r5 add r1, r4, r2, asl #2 mov r6, #1 - ldr r0, [r1, #4008] + ldr r0, [r1, #4012] uxth r3, r3 and r1, r3, #31 mov ip, r3, lsr #5 @@ -3276,17 +3394,17 @@ FtlBbmMapBadBlock: str r1, [r0, ip, asl #2] str r1, [sp, #0] mov r1, r5 - ldr r0, .L411+4 + ldr r0, .L426+4 bl printk - movw r3, #3986 + movw r3, #3990 ldrh r2, [r4, r3] mov r0, #0 add r2, r2, r6 strh r2, [r4, r3] @ movhi ldmfd sp!, {r2, r3, r4, r5, r6, pc} -.L412: +.L427: .align 2 -.L411: +.L426: .word .LANCHOR0 .word .LC3 .fnend @@ -3301,8 +3419,8 @@ FtlBbmIsBadBlock: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, r4, r5, r6, r7, lr} .save {r3, r4, r5, r6, r7, lr} - movw r3, #3912 - ldr r5, .L414 + movw r3, #3916 + ldr r5, .L429 mov r7, r0 ldrh r6, [r5, r3] mov r1, r6 @@ -3315,14 +3433,14 @@ FtlBbmIsBadBlock: and r4, r4, #31 uxth r0, r0 add r5, r5, r0, asl #2 - ldr r3, [r5, #4008] + ldr r3, [r5, #4012] ldr r0, [r3, r2, asl #2] mov r0, r0, lsr r4 and r0, r0, #1 ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L415: +.L430: .align 2 -.L414: +.L429: .word .LANCHOR0 .fnend .size FtlBbmIsBadBlock, .-FtlBbmIsBadBlock @@ -3348,11 +3466,11 @@ FtlBbtCalcTotleCnt: .save {r4, r5, r6, r7, r8, lr} mov r4, #0 mov r5, r4 - ldr r6, .L421 - movw r8, #3912 - movw r7, #3870 - b .L418 -.L420: + ldr r6, .L436 + movw r8, #3916 + movw r7, #3874 + b .L433 +.L435: mov r0, r5 add r5, r5, #1 bl FtlBbmIsBadBlock @@ -3360,17 +3478,17 @@ FtlBbtCalcTotleCnt: cmp r0, #0 addne r4, r4, #1 uxthne r4, r4 -.L418: +.L433: ldrh r3, [r6, r8] ldrh r2, [r6, r7] mul r3, r2, r3 cmp r5, r3 - blt .L420 + blt .L435 mov r0, r4 ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L422: +.L437: .align 2 -.L421: +.L436: .word .LANCHOR0 .fnend .size FtlBbtCalcTotleCnt, .-FtlBbtCalcTotleCnt @@ -3383,14 +3501,14 @@ V2P_block: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, r4, r5, r6, r7, lr} .save {r3, r4, r5, r6, r7, lr} - mov r3, #3872 - ldr r5, .L424 + movw r3, #3876 + ldr r5, .L439 mov r7, r1 mov r6, r0 ldrh r4, [r5, r3] mov r1, r4 bl __aeabi_uidiv - movw r3, #3912 + movw r3, #3916 ldrh r5, [r5, r3] mov r1, r4 mul r7, r4, r7 @@ -3400,9 +3518,9 @@ V2P_block: add r1, r5, r1 uxth r0, r1 ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L425: +.L440: .align 2 -.L424: +.L439: .word .LANCHOR0 .fnend .size V2P_block, .-V2P_block @@ -3413,8 +3531,8 @@ P2V_plane: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L427 - mov r2, #3872 + ldr r3, .L442 + movw r2, #3876 stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} mov r6, r0 @@ -3429,9 +3547,9 @@ P2V_plane: add r1, r5, r1 uxth r0, r1 ldmfd sp!, {r4, r5, r6, pc} -.L428: +.L443: .align 2 -.L427: +.L442: .word .LANCHOR0 .fnend .size P2V_plane, .-P2V_plane @@ -3444,25 +3562,25 @@ P2V_block_in_plane: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r4, lr} .save {r4, lr} - movw r3, #3912 - ldr r4, .L430 + movw r3, #3916 + ldr r4, .L445 ldrh r1, [r4, r3] bl __aeabi_uidivmod - mov r3, #3872 + movw r3, #3876 uxth r0, r1 ldrh r1, [r4, r3] bl __aeabi_uidiv uxth r0, r0 ldmfd sp!, {r4, pc} -.L431: +.L446: .align 2 -.L430: +.L445: .word .LANCHOR0 .fnend .size P2V_block_in_plane, .-P2V_block_in_plane .align 2 - .type FtlFreeSysBlkQueueIn.part.5, %function -FtlFreeSysBlkQueueIn.part.5: + .type FtlFreeSysBlkQueueIn.part.7, %function +FtlFreeSysBlkQueueIn.part.7: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @@ -3470,35 +3588,35 @@ FtlFreeSysBlkQueueIn.part.5: stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} mov r5, r0 - beq .L433 - ldr r4, .L434 - ldr r3, [r4, #4040] + beq .L448 + ldr r4, .L449 + ldr r3, [r4, #4044] cmp r3, #0 - bne .L433 + bne .L448 bl P2V_block_in_plane mov r1, #1 mov r3, r5, asl #10 mov r2, r1 mov r6, r0 - ldr r0, [r4, #4044] + ldr r0, [r4, #4048] mov r6, r6, asl #1 str r3, [r0, #4] bl FlashEraseBlocks - ldr r3, [r4, #4048] + ldr r3, [r4, #4052] ldrh r2, [r3, r6] add r2, r2, #1 strh r2, [r3, r6] @ movhi - ldr r3, [r4, #4052] + ldr r3, [r4, #4056] add r3, r3, #1 - str r3, [r4, #4052] -.L433: - ldr r3, .L434 - movw r2, #4062 - movw r0, #4056 + str r3, [r4, #4056] +.L448: + ldr r3, .L449 + movw r2, #4066 + movw r0, #4060 ldrh r1, [r3, r2] add r1, r1, #1 strh r1, [r3, r2] @ movhi - movw r2, #4060 + mov r2, #4064 ldrh r1, [r3, r2] add ip, r1, #4 add r1, r1, #1 @@ -3507,12 +3625,12 @@ FtlFreeSysBlkQueueIn.part.5: strh r5, [ip, r0] @ movhi strh r1, [r3, r2] @ movhi ldmfd sp!, {r4, r5, r6, pc} -.L435: +.L450: .align 2 -.L434: +.L449: .word .LANCHOR0 .fnend - .size FtlFreeSysBlkQueueIn.part.5, .-FtlFreeSysBlkQueueIn.part.5 + .size FtlFreeSysBlkQueueIn.part.7, .-FtlFreeSysBlkQueueIn.part.7 .align 2 .global ftl_cmp_data_ver .type ftl_cmp_data_ver, %function @@ -3522,13 +3640,13 @@ ftl_cmp_data_ver: @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. cmp r0, r1 - bls .L437 + bls .L452 rsb r0, r1, r0 cmp r0, #-2147483648 movhi r0, #0 movls r0, #1 bx lr -.L437: +.L452: rsb r0, r0, r1 cmp r0, #-2147483648 movls r0, #0 @@ -3544,15 +3662,15 @@ FtlFreeSysBlkQueueEmpty: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r2, .L440 - movw r3, #4062 + ldr r2, .L455 + movw r3, #4066 ldrh r0, [r2, r3] rsbs r0, r0, #1 movcc r0, #0 bx lr -.L441: +.L456: .align 2 -.L440: +.L455: .word .LANCHOR0 .fnend .size FtlFreeSysBlkQueueEmpty, .-FtlFreeSysBlkQueueEmpty @@ -3564,16 +3682,16 @@ FtlFreeSysBlkQueueFull: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r2, .L443 - movw r3, #4062 + ldr r2, .L458 + movw r3, #4066 ldrh r0, [r2, r3] sub r2, r0, #1024 rsbs r0, r2, #0 adc r0, r0, r2 bx lr -.L444: +.L459: .align 2 -.L443: +.L458: .word .LANCHOR0 .fnend .size FtlFreeSysBlkQueueFull, .-FtlFreeSysBlkQueueFull @@ -3590,15 +3708,15 @@ FtlFreeSysBlkQueueIn: uxth r2, r2 cmp r2, r3 bxhi lr - ldr r2, .L447 - movw r3, #4062 + ldr r2, .L462 + movw r3, #4066 ldrh r3, [r2, r3] cmp r3, #1024 bxeq lr - b FtlFreeSysBlkQueueIn.part.5 -.L448: + b FtlFreeSysBlkQueueIn.part.7 +.L463: .align 2 -.L447: +.L462: .word .LANCHOR0 .fnend .size FtlFreeSysBlkQueueIn, .-FtlFreeSysBlkQueueIn @@ -3609,51 +3727,51 @@ FtlFreeSysBLkSort: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L453 - ldr r2, .L453+4 - ldr r1, .L453+8 + ldr r3, .L468 + ldr r2, .L468+4 + ldr r1, .L468+8 stmfd sp!, {r4, r5, lr} .save {r4, r5, lr} ldrh r4, [r2, r3] - movw r3, #4062 + movw r3, #4066 ldrh r3, [r1, r3] and r4, r4, #31 cmp r3, #0 ldmeqfd sp!, {r4, r5, pc} - movw r3, #4058 + movw r3, #4062 mov r0, #0 ldrh r2, [r1, r3] - add r3, r3, #2 + mov r3, #4064 ldrh r3, [r1, r3] - b .L451 -.L452: + b .L466 +.L467: add ip, r1, r2, asl #1 add r2, r2, #1 add ip, ip, #4064 add r0, r0, #1 mov r2, r2, asl #22 - ldrh r5, [ip, #0] + ldrh r5, [ip, #4] add ip, r1, r3, asl #1 add r3, r3, #1 add ip, ip, #4064 mov r2, r2, lsr #22 uxth r0, r0 mov r3, r3, asl #22 - strh r5, [ip, #0] @ movhi + strh r5, [ip, #4] @ movhi mov r3, r3, lsr #22 -.L451: +.L466: cmp r0, r4 - ldr ip, .L453+8 - blt .L452 - movw r1, #4058 + ldr ip, .L468+8 + blt .L467 + movw r1, #4062 strh r2, [ip, r1] @ movhi - movw r2, #4060 + mov r2, #4064 strh r3, [ip, r2] @ movhi ldmfd sp!, {r4, r5, pc} -.L454: +.L469: .align 2 -.L453: - .word -2044 +.L468: + .word -2040 .word .LANCHOR2 .word .LANCHOR0 .fnend @@ -3667,73 +3785,73 @@ FtlFreeSysBlkQueueOut: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, r4, r5, r6, r7, r8, sl, lr} .save {r3, r4, r5, r6, r7, r8, sl, lr} - movw r6, #4062 - ldr r4, .L462 - movw r7, #4058 -.L456: + movw r6, #4066 + ldr r4, .L477 + movw r7, #4062 +.L471: ldrh r1, [r4, r6] cmp r1, #0 - beq .L457 - ldrh r3, [r4, r7] + beq .L472 + ldrh r2, [r4, r7] sub r1, r1, #1 - ldr sl, [r4, #4040] - add r2, r4, r3, asl #1 + ldr sl, [r4, #4044] + add r3, r4, r2, asl #1 cmp sl, #0 - add r2, r2, #4064 - add r3, r3, #1 - bic r3, r3, #64512 - ldrh r5, [r2, #0] + add r3, r3, #4064 + add r2, r2, #1 + bic r2, r2, #64512 + ldrh r5, [r3, #4] strh r1, [r4, r6] @ movhi - strh r3, [r4, r7] @ movhi - bne .L458 + strh r2, [r4, r7] @ movhi + bne .L473 mov r0, r5 bl P2V_block_in_plane mov r3, r5, asl #10 mov r8, r0 - ldr r0, [r4, #4044] + ldr r0, [r4, #4048] str r3, [r0, #4] - ldrb r3, [r4, #928] @ zero_extendqisi2 + ldrb r3, [r4, #3072] @ zero_extendqisi2 cmp r3, #0 - beq .L459 + beq .L474 mov r1, sl mov r2, #1 bl FlashEraseBlocks -.L459: +.L474: mov r1, #1 - ldr r0, [r4, #4044] + ldr r0, [r4, #4048] mov r2, r1 mov r8, r8, asl #1 bl FlashEraseBlocks - ldr r3, [r4, #4048] + ldr r3, [r4, #4052] ldrh r2, [r3, r8] add r2, r2, #1 strh r2, [r3, r8] @ movhi - ldr r3, [r4, #4052] + ldr r3, [r4, #4056] add r3, r3, #1 - str r3, [r4, #4052] - b .L458 -.L457: - ldr r0, .L462+4 + str r3, [r4, #4056] + b .L473 +.L472: + ldr r0, .L477+4 bl printk -.L460: - b .L460 -.L458: +.L475: + b .L475 +.L473: sub r2, r5, #1 movw r3, #65533 uxth r2, r2 cmp r2, r3 - bls .L461 + bls .L476 mov r1, r5 ldrh r2, [r4, r6] - ldr r0, .L462+8 + ldr r0, .L477+8 bl printk - b .L456 -.L461: + b .L471 +.L476: mov r0, r5 ldmfd sp!, {r3, r4, r5, r6, r7, r8, sl, pc} -.L463: +.L478: .align 2 -.L462: +.L477: .word .LANCHOR0 .word .LC4 .word .LC5 @@ -3746,35 +3864,35 @@ test_node_in_list: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L469 + ldr r3, .L484 stmfd sp!, {r4, lr} .save {r4, lr} movw r4, #65535 ldr r2, [r0, #0] - ldr r0, [r3, #-2024] - ldr ip, .L469+4 + ldr r0, [r3, #-2020] + ldr ip, .L484+4 rsb r3, r0, r2 mov r3, r3, asr #1 mul r3, ip, r3 mov ip, #6 uxth r3, r3 -.L466: +.L481: cmp r1, r3 - beq .L467 + beq .L482 ldrh r3, [r2, #0] cmp r3, r4 - beq .L468 + beq .L483 mla r2, ip, r3, r0 - b .L466 -.L467: + b .L481 +.L482: mov r0, #1 ldmfd sp!, {r4, pc} -.L468: +.L483: mov r0, #0 ldmfd sp!, {r4, pc} -.L470: +.L485: .align 2 -.L469: +.L484: .word .LANCHOR2 .word -1431655765 .fnend @@ -3786,57 +3904,57 @@ insert_data_list: .fnstart @ args = 0, pretend = 0, frame = 16 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r2, .L486 - mov r3, #3856 + ldr r2, .L501 + movw r3, #3860 stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} .save {r4, r5, r6, r7, r8, r9, sl, fp, lr} .pad #20 sub sp, sp, #20 ldrh r3, [r2, r3] cmp r3, r0 - bls .L472 - ldr r1, .L486+4 + bls .L487 + ldr r1, .L501+4 mov ip, #6 mul ip, ip, r0 mvn r6, #0 - ldr r4, [r1, #-2024] + ldr r4, [r1, #-2020] mov r8, r1 add r2, r4, ip strh r6, [r2, #2] @ movhi strh r6, [r4, ip] @ movhi - ldr r3, [r1, #-2020] + ldr r3, [r1, #-2016] cmp r3, #0 - beq .L485 -.L473: - ldr r7, [r1, #-2016] + beq .L500 +.L488: + ldr r7, [r1, #-2012] mov r5, r0, asl #1 ldrh r1, [r2, #4] - ldr fp, [r8, #-2024] + ldr fp, [r8, #-2020] ldrh sl, [r7, r5] cmp r1, #0 - ldr r8, .L486+8 + ldr r8, .L501+8 mulne r6, r1, sl rsb r1, fp, r3 - mov sl, #3856 + movw sl, #3860 mov r1, r1, asr #1 mul r1, r8, r1 - ldr r8, .L486 + ldr r8, .L501 ldrh sl, [r8, sl] - ldr r8, [r8, #4048] + ldr r8, [r8, #4052] uxth r1, r1 add r5, r8, r5 str r5, [sp, #12] mov r5, #0 str sl, [sp, #8] str r8, [sp, #4] -.L480: +.L495: add r5, r5, #1 ldr r8, [sp, #8] uxth r5, r5 cmp r5, r8 - bhi .L472 + bhi .L487 cmp r0, r1 - beq .L472 + beq .L487 mov r9, r1, asl #1 ldrh r8, [r3, #4] ldrh sl, [r7, r9] @@ -3844,56 +3962,56 @@ insert_data_list: mvneq r8, #0 mulne r8, r8, sl cmp r8, r6 - bne .L476 + bne .L491 ldr r8, [sp, #4] ldrh sl, [r8, r9] ldr r9, [sp, #12] ldrh r8, [r9, #0] cmp sl, r8 - bcc .L478 - b .L477 -.L476: - bhi .L477 -.L478: + bcc .L493 + b .L492 +.L491: + bhi .L492 +.L493: ldrh r8, [r3, #0] movw sl, #65535 cmp r8, sl streqh r1, [r2, #2] @ movhi streqh r0, [r3, #0] @ movhi - ldreq r3, .L486+4 - streq r2, [r3, #-2012] - beq .L472 -.L479: + ldreq r3, .L501+4 + streq r2, [r3, #-2008] + beq .L487 +.L494: mov r1, #6 mla r3, r1, r8, fp mov r1, r8 - b .L480 -.L477: + b .L495 +.L492: strh r1, [r4, ip] @ movhi ldrh r1, [r3, #2] strh r1, [r2, #2] @ movhi - ldr r1, .L486+4 - ldr ip, [r1, #-2020] + ldr r1, .L501+4 + ldr ip, [r1, #-2016] cmp r3, ip - bne .L481 + bne .L496 strh r0, [r3, #2] @ movhi -.L485: - str r2, [r1, #-2020] - b .L472 -.L481: +.L500: + str r2, [r1, #-2016] + b .L487 +.L496: ldrh r2, [r3, #2] mov ip, #6 - ldr r1, [r1, #-2024] + ldr r1, [r1, #-2020] mul r2, ip, r2 strh r0, [r1, r2] @ movhi strh r0, [r3, #2] @ movhi -.L472: +.L487: mov r0, #0 add sp, sp, #20 ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L487: +.L502: .align 2 -.L486: +.L501: .word .LANCHOR0 .word .LANCHOR2 .word -1431655765 @@ -3909,17 +4027,17 @@ INSERT_DATA_LIST: stmfd sp!, {r3, lr} .save {r3, lr} bl insert_data_list - ldr r2, .L489 - ldr r3, .L489+4 + ldr r2, .L504 + ldr r3, .L504+4 ldrh r1, [r2, r3] add r1, r1, #1 strh r1, [r2, r3] @ movhi ldmfd sp!, {r3, pc} -.L490: +.L505: .align 2 -.L489: +.L504: .word .LANCHOR2 - .word -2008 + .word -2004 .fnend .size INSERT_DATA_LIST, .-INSERT_DATA_LIST .align 2 @@ -3933,69 +4051,69 @@ insert_free_list: .save {r4, r5, r6, r7, r8, r9, sl, lr} movw r6, #65535 cmp r0, r6 - beq .L492 - ldr r1, .L499 + beq .L507 + ldr r1, .L514 mov r5, #6 mul ip, r5, r0 mvn r3, #0 - ldr r4, [r1, #-2024] + ldr r4, [r1, #-2020] add r2, r4, ip strh r3, [r2, #2] @ movhi strh r3, [r4, ip] @ movhi - ldr r3, [r1, #-2004] + ldr r3, [r1, #-2000] cmp r3, #0 - beq .L498 -.L493: - ldr sl, [r1, #-2024] + beq .L513 +.L508: + ldr sl, [r1, #-2020] mov r8, r0, asl #1 - ldr r9, .L499+4 + ldr r9, .L514+4 rsb r1, sl, r3 - ldr r7, .L499+8 + ldr r7, .L514+8 mov r1, r1, asr #1 - ldr r7, [r7, #4048] + ldr r7, [r7, #4052] mul r1, r9, r1 mov r9, r5 ldrh r8, [r7, r8] uxth r1, r1 -.L496: +.L511: mov r5, r1, asl #1 ldrh r5, [r7, r5] cmp r5, r8 - bcs .L494 + bcs .L509 ldrh r5, [r3, #0] cmp r5, r6 streqh r1, [r2, #2] @ movhi streqh r0, [r3, #0] @ movhi - beq .L492 -.L495: + beq .L507 +.L510: mla r3, r9, r5, sl mov r1, r5 - b .L496 -.L494: + b .L511 +.L509: ldrh r5, [r3, #2] strh r5, [r2, #2] @ movhi strh r1, [r4, ip] @ movhi - ldr r1, .L499 - ldr ip, [r1, #-2004] + ldr r1, .L514 + ldr ip, [r1, #-2000] cmp r3, ip - bne .L497 + bne .L512 strh r0, [r3, #2] @ movhi -.L498: - str r2, [r1, #-2004] - b .L492 -.L497: +.L513: + str r2, [r1, #-2000] + b .L507 +.L512: ldrh r2, [r3, #2] mov ip, #6 - ldr r1, [r1, #-2024] + ldr r1, [r1, #-2020] mul r2, ip, r2 strh r0, [r1, r2] @ movhi strh r0, [r3, #2] @ movhi -.L492: +.L507: mov r0, #0 ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, pc} -.L500: +.L515: .align 2 -.L499: +.L514: .word .LANCHOR2 .word -1431655765 .word .LANCHOR0 @@ -4011,17 +4129,17 @@ INSERT_FREE_LIST: stmfd sp!, {r3, lr} .save {r3, lr} bl insert_free_list - ldr r2, .L502 - ldr r3, .L502+4 + ldr r2, .L517 + ldr r3, .L517+4 ldrh r1, [r2, r3] add r1, r1, #1 strh r1, [r2, r3] @ movhi ldmfd sp!, {r3, pc} -.L503: +.L518: .align 2 -.L502: +.L517: .word .LANCHOR2 - .word -2000 + .word -1996 .fnend .size INSERT_FREE_LIST, .-INSERT_FREE_LIST .align 2 @@ -4031,10 +4149,10 @@ List_remove_node: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr ip, .L509 + ldr ip, .L524 mov r2, #6 mul r1, r2, r1 - ldr r3, [ip, #-2024] + ldr r3, [ip, #-2020] stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} add r5, r3, r1 @@ -4042,7 +4160,7 @@ List_remove_node: movw r6, #65535 cmp r5, r4 ldrh r4, [r3, r1] - bne .L505 + bne .L520 cmp r4, r6 mlane r2, r2, r4, r3 moveq r2, #0 @@ -4050,33 +4168,33 @@ List_remove_node: strne r2, [r0, #0] mvnne r0, #0 strneh r0, [r2, #2] @ movhi - b .L507 -.L505: + b .L522 +.L520: cmp r4, r6 ldrh r0, [r5, #2] - bne .L508 + bne .L523 cmp r0, r4 mulne r2, r2, r0 mvnne r0, #0 strneh r0, [r3, r2] @ movhi - b .L507 -.L508: + b .L522 +.L523: mla r4, r2, r4, r3 strh r0, [r4, #2] @ movhi ldrh r6, [r5, #2] ldrh r4, [r3, r1] - ldr r0, [ip, #-2024] + ldr r0, [ip, #-2020] mul r2, r2, r6 strh r4, [r0, r2] @ movhi -.L507: +.L522: mvn r2, #0 mov r0, #0 strh r2, [r3, r1] @ movhi strh r2, [r5, #2] @ movhi ldmfd sp!, {r4, r5, r6, pc} -.L510: +.L525: .align 2 -.L509: +.L524: .word .LANCHOR2 .fnend .size List_remove_node, .-List_remove_node @@ -4091,25 +4209,25 @@ List_pop_index_node: .save {r4, lr} ldr r3, [r0, #0] cmp r3, #0 - beq .L516 - ldr r2, .L517 + beq .L531 + ldr r2, .L532 movw lr, #65535 mov ip, #6 - ldr r4, [r2, #-2024] - b .L513 -.L515: + ldr r4, [r2, #-2020] + b .L528 +.L530: mla r3, ip, r2, r4 sub r1, r1, #1 uxth r1, r1 -.L513: +.L528: cmp r1, #0 - beq .L514 + beq .L529 ldrh r2, [r3, #0] cmp r2, lr - bne .L515 -.L514: + bne .L530 +.L529: rsb r4, r4, r3 - ldr r3, .L517+4 + ldr r3, .L532+4 mov r4, r4, asr #1 mul r4, r3, r4 uxth r4, r4 @@ -4117,12 +4235,12 @@ List_pop_index_node: bl List_remove_node mov r0, r4 ldmfd sp!, {r4, pc} -.L516: +.L531: movw r0, #65535 ldmfd sp!, {r4, pc} -.L518: +.L533: .align 2 -.L517: +.L532: .word .LANCHOR2 .word -1431655765 .fnend @@ -4135,39 +4253,39 @@ List_get_gc_head_node: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r2, .L525 - ldr r3, [r2, #-2020] + ldr r2, .L540 + ldr r3, [r2, #-2016] cmp r3, #0 - beq .L524 - ldr r2, [r2, #-2024] + beq .L539 + ldr r2, [r2, #-2020] movw r1, #65535 mov ip, #6 - b .L521 -.L523: + b .L536 +.L538: mla r3, ip, r3, r2 sub r0, r0, #1 uxth r0, r0 -.L521: +.L536: cmp r0, #0 - beq .L522 + beq .L537 ldrh r3, [r3, #0] cmp r3, r1 - bne .L523 + bne .L538 mov r0, r1 bx lr -.L522: +.L537: rsb r3, r2, r3 - ldr r0, .L525+4 + ldr r0, .L540+4 mov r3, r3, asr #1 mul r0, r0, r3 uxth r0, r0 bx lr -.L524: +.L539: movw r0, #65535 bx lr -.L526: +.L541: .align 2 -.L525: +.L540: .word .LANCHOR2 .word -1431655765 .fnend @@ -4182,27 +4300,27 @@ List_update_data_list: stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} mov r4, r0 - ldr r3, .L534 - ldr r2, .L534+4 + ldr r3, .L549 + ldr r2, .L549+4 ldrh r2, [r3, r2] cmp r2, r0 - beq .L528 - ldr r2, .L534+8 + beq .L543 + ldr r2, .L549+8 ldrh r2, [r3, r2] cmp r2, r0 - beq .L528 - ldr r2, .L534+12 + beq .L543 + ldr r2, .L549+12 ldrh r2, [r3, r2] cmp r2, r0 - beq .L528 + beq .L543 mov r5, #6 - ldr r2, [r3, #-2024] + ldr r2, [r3, #-2020] mul r5, r5, r0 - ldr r0, [r3, #-2020] + ldr r0, [r3, #-2016] add r1, r2, r5 cmp r1, r0 - beq .L528 - ldr ip, [r3, #-2016] + beq .L543 + ldr ip, [r3, #-2012] mov r3, r4, asl #1 ldrh r0, [ip, r3] ldrh r3, [r1, #4] @@ -4212,14 +4330,14 @@ List_update_data_list: mvneq r0, #0 movw r1, #65535 cmp r3, r1 - bne .L530 + bne .L545 ldrh r1, [r2, r5] cmp r1, r3 - beq .L528 -.L530: + beq .L543 +.L545: mov r1, #6 mla r3, r1, r3, r2 - ldr r1, .L534+16 + ldr r1, .L549+16 rsb r2, r2, r3 mov r2, r2, asr #1 ldrh r3, [r3, #4] @@ -4231,30 +4349,29 @@ List_update_data_list: ldrh r2, [ip, r2] mulne r3, r3, r2 cmp r0, r3 - bcs .L528 - ldr r0, .L534+20 + bcs .L543 + ldr r5, .L549 mov r1, r4 + sub r0, r5, #2016 bl List_remove_node - ldr r5, .L534 - ldr r3, .L534+24 + ldr r3, .L549+20 mov r0, r4 ldrh r2, [r5, r3] sub r2, r2, #1 strh r2, [r5, r3] @ movhi bl INSERT_DATA_LIST -.L528: +.L543: mov r0, #0 ldmfd sp!, {r3, r4, r5, pc} -.L535: +.L550: .align 2 -.L534: +.L549: .word .LANCHOR2 - .word -1996 - .word -1948 - .word -1900 + .word -1992 + .word -1944 + .word -1896 .word -1431655765 - .word .LANCHOR2-2020 - .word -2008 + .word -2004 .fnend .size List_update_data_list, .-List_update_data_list .align 2 @@ -4270,13 +4387,13 @@ ftl_map_blk_alloc_new_blk: ldrh r2, [r0, #10] mov r5, #0 ldr r3, [r0, #12] - b .L537 -.L542: + b .L552 +.L557: mov r7, r3 add r3, r3, #2 ldrh r6, [r7, #0] cmp r6, #0 - bne .L538 + bne .L553 bl FtlFreeSysBlkQueueOut movw r3, #65533 sub r2, r0, #1 @@ -4284,15 +4401,15 @@ ftl_map_blk_alloc_new_blk: strh r0, [r7, #0] @ movhi uxth r2, r2 cmp r2, r3 - bls .L539 - ldr r2, .L543 - movw r3, #4062 - ldr r0, .L543+4 + bls .L554 + ldr r2, .L558 + movw r3, #4066 + ldr r0, .L558+4 ldrh r2, [r2, r3] bl printk -.L540: - b .L540 -.L539: +.L555: + b .L555 +.L554: ldr r3, [r4, #28] strh r6, [r4, #2] @ movhi add r3, r3, #1 @@ -4301,19 +4418,19 @@ ftl_map_blk_alloc_new_blk: strh r5, [r4, #0] @ movhi add r3, r3, #1 strh r3, [r4, #8] @ movhi - b .L541 -.L538: + b .L556 +.L553: add r5, r5, #1 uxth r5, r5 -.L537: +.L552: cmp r5, r2 - bne .L542 -.L541: + bne .L557 +.L556: mov r0, #0 ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L544: +.L559: .align 2 -.L543: +.L558: .word .LANCHOR0 .word .LC6 .fnend @@ -4325,18 +4442,18 @@ select_l2p_ram_region: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r2, .L557 - movw r3, #3954 + ldr r2, .L572 + movw r3, #3958 stmfd sp!, {r4, r5, r6, r7, lr} .save {r4, r5, r6, r7, lr} movw r1, #65535 ldrh r3, [r2, r3] - ldr r2, .L557+4 - ldr ip, [r2, #-1852] + ldr r2, .L572+4 + ldr ip, [r2, #-1848] mov r2, #0 mov r0, r2 - b .L546 -.L548: + b .L561 +.L563: add r2, r2, #12 add r4, ip, r2 ldrh r4, [r4, #-12] @@ -4344,62 +4461,62 @@ select_l2p_ram_region: ldmeqfd sp!, {r4, r5, r6, r7, pc} add r0, r0, #1 uxth r0, r0 -.L546: +.L561: cmp r0, r3 - bne .L548 + bne .L563 mov r1, #0 mov r0, r3 mov r5, #-2147483648 mov r2, r1 - b .L549 -.L551: + b .L564 +.L566: add r4, ip, r1 ldr r4, [r4, #4] cmp r4, #0 - blt .L550 + blt .L565 cmp r4, r5 movcc r5, r4 movcc r0, r2 -.L550: +.L565: add r2, r2, #1 add r1, r1, #12 uxth r2, r2 -.L549: +.L564: cmp r2, r3 - bne .L551 + bne .L566 cmp r0, r3 ldmccfd sp!, {r4, r5, r6, r7, pc} - ldr r2, .L557+8 + ldr r2, .L572+8 mov r0, r3 - ldr r1, .L557+4 + ldr r1, .L572+4 mvn r4, #0 ldrh r6, [r1, r2] mov r2, #0 mov r1, r2 - b .L552 -.L554: + b .L567 +.L569: add r5, ip, r2 ldr r5, [r5, #4] cmp r5, r4 - bcs .L553 + bcs .L568 ldrh r7, [ip, r2] cmp r7, r6 movne r4, r5 movne r0, r1 -.L553: +.L568: add r1, r1, #1 add r2, r2, #12 uxth r1, r1 -.L552: +.L567: cmp r1, r3 - bne .L554 + bne .L569 ldmfd sp!, {r4, r5, r6, r7, pc} -.L558: +.L573: .align 2 -.L557: +.L572: .word .LANCHOR0 .word .LANCHOR2 - .word -1848 + .word -1844 .fnend .size select_l2p_ram_region, .-select_l2p_ram_region .align 2 @@ -4409,8 +4526,8 @@ FtlUpdateVaildLpn: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L565 - ldr r2, .L565+4 + ldr r3, .L580 + ldr r2, .L580+4 stmfd sp!, {r4, r5, lr} .save {r4, r5, lr} ldrh r1, [r2, r3] @@ -4418,36 +4535,36 @@ FtlUpdateVaildLpn: add ip, r1, #1 mov r1, r3 strh ip, [r2, r3] @ movhi - bhi .L560 + bhi .L575 cmp r0, #0 ldmeqfd sp!, {r4, r5, pc} -.L560: - ldr r0, .L565+8 +.L575: + ldr r0, .L580+8 mov r3, #0 strh r3, [r2, r1] @ movhi - mov r1, #3856 - str r3, [r2, #-1844] + movw r1, #3860 + str r3, [r2, #-1840] movw ip, #65535 ldrh r4, [r0, r1] - ldr r1, [r2, #-2016] - ldr r2, .L565+4 - b .L562 -.L564: + ldr r1, [r2, #-2012] + ldr r2, .L580+4 + b .L577 +.L579: ldrh r0, [r1], #2 add r3, r3, #1 cmp r0, ip uxth r3, r3 - ldrne r5, [r2, #-1844] + ldrne r5, [r2, #-1840] addne r0, r0, r5 - strne r0, [r2, #-1844] -.L562: + strne r0, [r2, #-1840] +.L577: cmp r3, r4 - bne .L564 + bne .L579 ldmfd sp!, {r4, r5, pc} -.L566: +.L581: .align 2 -.L565: - .word -1846 +.L580: + .word -1842 .word .LANCHOR2 .word .LANCHOR0 .fnend @@ -4460,21 +4577,21 @@ ftl_set_blk_mode: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L571 + ldr r3, .L586 mov r2, r0, lsr #5 cmp r1, #0 and r0, r0, #31 uxth r2, r2 mov ip, #1 - ldr r3, [r3, #-1840] + ldr r3, [r3, #-1836] ldr r1, [r3, r2, asl #2] orrne r0, r1, ip, asl r0 biceq r0, r1, ip, asl r0 str r0, [r3, r2, asl #2] bx lr -.L572: +.L587: .align 2 -.L571: +.L586: .word .LANCHOR2 .fnend .size ftl_set_blk_mode, .-ftl_set_blk_mode @@ -4486,17 +4603,17 @@ ftl_get_blk_mode: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L574 + ldr r3, .L589 mov r2, r0, lsr #5 and r0, r0, #31 - ldr r3, [r3, #-1840] + ldr r3, [r3, #-1836] ldr r3, [r3, r2, asl #2] mov r0, r3, lsr r0 and r0, r0, #1 bx lr -.L575: +.L590: .align 2 -.L574: +.L589: .word .LANCHOR2 .fnend .size ftl_get_blk_mode, .-ftl_get_blk_mode @@ -4507,16 +4624,16 @@ ftl_sb_update_avl_pages: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr ip, .L583 + ldr ip, .L598 mov r3, #0 strh r3, [r0, #4] @ movhi - movw r3, #3848 + movw r3, #3852 stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} ldrh r3, [ip, r3] movw ip, #65535 - b .L577 -.L579: + b .L592 +.L594: add r4, r0, r2, asl #1 add r2, r2, #1 ldrh r4, [r4, #16] @@ -4525,18 +4642,18 @@ ftl_sb_update_avl_pages: ldrneh r4, [r0, #4] addne r4, r4, #1 strneh r4, [r0, #4] @ movhi -.L577: +.L592: cmp r2, r3 - bcc .L579 - ldr ip, .L583 - movw r2, #3916 + bcc .L594 + ldr ip, .L598 + movw r2, #3918 movw r4, #65535 mvn r1, r1 ldrh r5, [ip, r2] mov ip, r0 mov r2, #0 - b .L580 -.L582: + b .L595 +.L597: ldrh r6, [ip, #16] add r2, r2, #1 add ip, ip, #2 @@ -4546,13 +4663,13 @@ ftl_sb_update_avl_pages: addne r6, r5, r6 addne r6, r6, r1 strneh r6, [r0, #4] @ movhi -.L580: +.L595: cmp r2, r3 - bne .L582 + bne .L597 ldmfd sp!, {r4, r5, r6, pc} -.L584: +.L599: .align 2 -.L583: +.L598: .word .LANCHOR0 .fnend .size ftl_sb_update_avl_pages, .-ftl_sb_update_avl_pages @@ -4567,18 +4684,18 @@ make_superblock: .save {r4, r5, r6, r7, r8, r9, sl, lr} mov r4, r0 mov r5, #0 - ldr r6, .L591 + ldr r6, .L606 strh r5, [r0, #4] @ movhi - movw r8, #3848 + movw r8, #3852 strb r5, [r4, #7] mvn r7, #0 - b .L586 -.L588: + b .L601 +.L603: add r3, r6, r5 ldrh r1, [r4, #0] add sl, r5, #8 add r5, r5, #1 - ldrb r0, [r3, #3874] @ zero_extendqisi2 + ldrb r0, [r3, #3878] @ zero_extendqisi2 bl V2P_block mov sl, sl, asl #1 uxth r5, r5 @@ -4590,39 +4707,39 @@ make_superblock: ldreqb r3, [r4, #7] @ zero_extendqisi2 addeq r3, r3, #1 streqb r3, [r4, #7] -.L586: +.L601: ldrh r2, [r6, r8] - ldr r3, .L591 + ldr r3, .L606 cmp r2, r5 - bhi .L588 - movw r1, #3916 + bhi .L603 + movw r1, #3918 ldrb r2, [r4, #7] @ zero_extendqisi2 ldrh r1, [r3, r1] mul r2, r1, r2 strh r2, [r4, #4] @ movhi mov r2, #0 strb r2, [r4, #9] - ldr r2, [r3, #3840] + ldr r2, [r3, #3844] cmp r2, #0 - beq .L589 + beq .L604 ldrh r1, [r4, #0] - ldr r2, [r3, #4048] + ldr r2, [r3, #4052] mov r3, r1, asl #1 ldrh r3, [r2, r3] cmp r3, #79 movls r3, #1 strlsb r3, [r4, #9] -.L589: - ldr r3, .L591 +.L604: + ldr r3, .L606 mov r0, #0 ldrb r3, [r3, #852] @ zero_extendqisi2 cmp r3, #0 movne r3, #1 strneb r3, [r4, #9] ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, pc} -.L592: +.L607: .align 2 -.L591: +.L606: .word .LANCHOR0 .fnend .size make_superblock, .-make_superblock @@ -4638,15 +4755,15 @@ update_multiplier_value: mov r4, #0 mov r7, r0 mov r5, r4 - ldr r6, .L598 - movw sl, #3848 - movw r8, #3916 - b .L594 -.L596: + ldr r6, .L613 + movw sl, #3852 + movw r8, #3918 + b .L609 +.L611: add r3, r6, r5 mov r1, r7 add r5, r5, #1 - ldrb r0, [r3, #3874] @ zero_extendqisi2 + ldrb r0, [r3, #3878] @ zero_extendqisi2 bl V2P_block uxth r5, r5 bl FtlBbmIsBadBlock @@ -4654,27 +4771,27 @@ update_multiplier_value: ldreqh r3, [r6, r8] addeq r4, r4, r3 uxtheq r4, r4 -.L594: +.L609: ldrh r3, [r6, sl] cmp r3, r5 - bhi .L596 + bhi .L611 cmp r4, #0 - beq .L597 + beq .L612 mov r1, r4 mov r0, #32768 bl __aeabi_idiv uxth r4, r0 -.L597: - ldr r3, .L598+4 +.L612: + ldr r3, .L613+4 mov r2, #6 mov r0, #0 - ldr r3, [r3, #-2024] + ldr r3, [r3, #-2020] mla r7, r2, r7, r3 strh r4, [r7, #4] @ movhi ldmfd sp!, {r3, r4, r5, r6, r7, r8, sl, pc} -.L599: +.L614: .align 2 -.L598: +.L613: .word .LANCHOR0 .word .LANCHOR2 .fnend @@ -4687,24 +4804,24 @@ GetFreeBlockMinEraseCount: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L603 - ldr r0, [r3, #-2004] + ldr r3, .L618 + ldr r0, [r3, #-2000] cmp r0, #0 bxeq lr - ldr r3, [r3, #-2024] - ldr r2, .L603+4 + ldr r3, [r3, #-2020] + ldr r2, .L618+4 rsb r0, r3, r0 - ldr r3, .L603+8 + ldr r3, .L618+8 mov r0, r0, asr #1 - ldr r2, [r2, #4048] + ldr r2, [r2, #4052] mul r3, r3, r0 uxth r3, r3 mov r3, r3, asl #1 ldrh r0, [r2, r3] bx lr -.L604: +.L619: .align 2 -.L603: +.L618: .word .LANCHOR2 .word .LANCHOR0 .word -1431655765 @@ -4717,13 +4834,13 @@ GetFreeBlockMaxEraseCount: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r2, .L612 + ldr r2, .L627 stmfd sp!, {r4, r5, lr} .save {r4, r5, lr} - ldr r3, [r2, #-2004] + ldr r3, [r2, #-2000] cmp r3, #0 - beq .L611 - ldr r1, .L612+4 + beq .L626 + ldr r1, .L627+4 mov ip, #7 mov r5, #6 movw r4, #65535 @@ -4732,39 +4849,39 @@ GetFreeBlockMaxEraseCount: mov r1, r1, asr #3 cmp r0, r1 uxthgt r0, r1 - ldr r1, [r2, #-2024] - ldr r2, .L612+8 + ldr r1, [r2, #-2020] + ldr r2, .L627+8 rsb r3, r1, r3 mov r3, r3, asr #1 mul r3, r2, r3 mov r2, #0 uxth r3, r3 - b .L608 -.L610: + b .L623 +.L625: mul ip, r5, r3 ldrh ip, [r1, ip] cmp ip, r4 - beq .L609 + beq .L624 add r2, r2, #1 mov r3, ip uxth r2, r2 -.L608: +.L623: cmp r2, r0 - bne .L610 -.L609: - ldr r2, .L612+12 + bne .L625 +.L624: + ldr r2, .L627+12 mov r3, r3, asl #1 - ldr r2, [r2, #4048] + ldr r2, [r2, #4052] ldrh r0, [r2, r3] ldmfd sp!, {r4, r5, pc} -.L611: +.L626: mov r0, r3 ldmfd sp!, {r4, r5, pc} -.L613: +.L628: .align 2 -.L612: +.L627: .word .LANCHOR2 - .word -2000 + .word -1996 .word -1431655765 .word .LANCHOR0 .fnend @@ -4779,27 +4896,27 @@ FtlPrintInfo2buf: stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, lr} .save {r4, r5, r6, r7, r8, r9, sl, lr} mov sl, r0 - ldr r6, .L624 + ldr r6, .L639 add r4, sl, #12 .pad #32 sub sp, sp, #32 - ldr r1, .L624+4 + ldr r1, .L639+4 bl strcpy mov r0, r4 - ldr r1, .L624+8 - ldr r2, [r6, #3048] + ldr r1, .L639+8 + ldr r2, [r6, #3044] bl sprintf - ldr r1, .L624+12 - ldr r2, [r6, #3932] + ldr r1, .L639+12 + ldr r2, [r6, #3936] add r4, r4, r0 mov r0, r4 bl sprintf - ldr r3, .L624+16 - ldr r3, [r3, #3092] + ldr r3, .L639+16 + ldr r3, [r3, #3220] cmp r3, #1 add r4, r4, r0 - bne .L620 -.L615: + bne .L635 +.L630: add r0, sp, #16 add r1, sp, #20 add r2, sp, #24 @@ -4808,368 +4925,368 @@ FtlPrintInfo2buf: ldr r3, [sp, #24] ldr r2, [sp, #16] mov r0, r4 - ldr r1, .L624+20 + ldr r1, .L639+20 str r3, [sp, #0] ldr r3, [sp, #28] - ldr r5, .L624+24 - ldr r7, .L624+28 + ldr r5, .L639+24 + ldr r7, .L639+28 str r3, [sp, #4] ldr r3, [sp, #20] bl sprintf - ldr r1, .L624+32 - ldr r8, .L624+36 + ldr r1, .L639+32 + ldr r8, .L639+36 add r4, r4, r0 mov r0, r4 add r4, r4, #10 bl strcpy - ldr r1, .L624+40 - mov r0, r4 - ldr r2, [r6, #3976] - bl sprintf - ldr r1, .L624+44 - ldr r2, [r5, #-1844] - add r4, r4, r0 + ldr r1, .L639+40 mov r0, r4 + ldr r2, [r6, #3980] bl sprintf - ldr r1, .L624+48 - ldr r2, [r5, #-1836] + ldr r1, .L639+44 + ldr r2, [r5, #-1840] add r4, r4, r0 mov r0, r4 bl sprintf - ldr r1, .L624+52 + ldr r1, .L639+48 ldr r2, [r5, #-1832] add r4, r4, r0 mov r0, r4 bl sprintf - ldr r1, .L624+56 + ldr r1, .L639+52 ldr r2, [r5, #-1828] add r4, r4, r0 mov r0, r4 bl sprintf - ldr r1, .L624+60 + ldr r1, .L639+56 ldr r2, [r5, #-1824] add r4, r4, r0 mov r0, r4 bl sprintf - ldr r1, .L624+64 + ldr r1, .L639+60 ldr r2, [r5, #-1820] add r4, r4, r0 mov r0, r4 bl sprintf - ldr r1, .L624+68 + ldr r1, .L639+64 ldr r2, [r5, #-1816] add r4, r4, r0 mov r0, r4 bl sprintf + ldr r1, .L639+68 ldr r2, [r5, #-1812] - ldr r1, .L624+72 - mov r2, r2, lsr #11 add r4, r4, r0 mov r0, r4 bl sprintf ldr r2, [r5, #-1808] - ldr r1, .L624+76 + ldr r1, .L639+72 mov r2, r2, lsr #11 add r4, r4, r0 mov r0, r4 bl sprintf - ldr r1, .L624+80 ldr r2, [r5, #-1804] + ldr r1, .L639+76 + mov r2, r2, lsr #11 add r4, r4, r0 mov r0, r4 bl sprintf - ldr r1, .L624+84 + ldr r1, .L639+80 ldr r2, [r5, #-1800] add r4, r4, r0 mov r0, r4 bl sprintf + ldr r1, .L639+84 + ldr r2, [r5, #-1796] + add r4, r4, r0 + mov r0, r4 + bl sprintf add r4, r4, r0 bl FtlBbtCalcTotleCnt - movw r2, #3986 - ldr r1, .L624+88 + movw r2, #3990 + ldr r1, .L639+88 ldrh r2, [r6, r2] mov r3, r0 mov r0, r4 bl sprintf - ldr r1, .L624+92 + ldr r1, .L639+92 ldrh r2, [r5, r7] add r4, r4, r0 mov r0, r4 bl sprintf - ldr r1, .L624+96 - ldr r2, [r5, #-1796] - add r4, r4, r0 - mov r0, r4 - bl sprintf - ldr r1, .L624+100 + ldr r1, .L639+96 ldr r2, [r5, #-1792] add r4, r4, r0 mov r0, r4 bl sprintf - ldr r1, .L624+104 + ldr r1, .L639+100 ldr r2, [r5, #-1788] add r4, r4, r0 mov r0, r4 bl sprintf - ldr r1, .L624+108 - ldr r2, [r6, #4052] + ldr r1, .L639+104 + ldr r2, [r5, #-1784] add r4, r4, r0 mov r0, r4 bl sprintf - ldr r1, .L624+112 - ldr r2, [r5, #-1784] + ldr r1, .L639+108 + ldr r2, [r6, #4056] add r4, r4, r0 mov r0, r4 bl sprintf - ldr r1, .L624+116 + ldr r1, .L639+112 ldr r2, [r5, #-1780] add r4, r4, r0 mov r0, r4 bl sprintf - ldr r3, .L624+120 - ldr r1, .L624+124 + ldr r1, .L639+116 + ldr r2, [r5, #-1776] + add r4, r4, r0 + mov r0, r4 + bl sprintf + ldr r3, .L639+120 + ldr r1, .L639+124 ldrh r2, [r5, r3] add r4, r4, r0 mov r0, r4 bl sprintf - ldr r3, .L624+128 - ldr r1, .L624+132 + ldr r3, .L639+128 + ldr r1, .L639+132 ldrh r2, [r5, r3] add r4, r4, r0 mov r0, r4 bl sprintf - ldr r1, .L624+136 - ldr r2, [r6, #3956] + ldr r1, .L639+136 + ldr r2, [r6, #3960] add r4, r4, r0 mov r0, r4 bl sprintf - ldr r1, .L624+140 - ldr r2, [r6, #3948] + ldr r1, .L639+140 + ldr r2, [r6, #3952] add r4, r4, r0 mov r0, r4 bl sprintf - ldr r1, .L624+144 - ldr r2, [r6, #3844] + ldr r1, .L639+144 + ldr r2, [r6, #3848] add r4, r4, r0 mov r0, r4 bl sprintf - movw r3, #4062 + movw r3, #4066 ldrh r2, [r6, r3] - ldr r1, .L624+148 + ldr r1, .L639+148 add r4, r4, r0 mov r0, r4 bl sprintf - mov r3, #3856 + movw r3, #3860 ldrh r2, [r6, r3] - ldr r1, .L624+152 + ldr r1, .L639+152 add r4, r4, r0 mov r0, r4 bl sprintf - ldr r3, .L624+156 - ldr r1, .L624+160 + ldr r3, .L639+156 + ldr r1, .L639+160 ldrh r2, [r5, r3] add r4, r4, r0 mov r0, r4 bl sprintf - ldr r1, .L624+164 - ldr r2, [r6, #3860] + ldr r1, .L639+164 + ldr r2, [r6, #3864] add r4, r4, r0 mov r0, r4 bl sprintf - ldr r3, .L624+168 - ldr r1, .L624+172 + ldr r3, .L639+168 + ldr r1, .L639+172 ldrh r2, [r5, r3] add r4, r4, r0 mov r0, r4 bl sprintf - movw r3, #3980 + mov r3, #3984 ldrh r2, [r6, r3] - ldr r1, .L624+176 + ldr r1, .L639+176 add r4, r4, r0 mov r0, r4 bl sprintf - ldr r3, .L624+180 - ldr r1, .L624+184 + ldr r3, .L639+180 + ldr r1, .L639+184 ldrh r2, [r5, r3] add r4, r4, r0 mov r0, r4 bl sprintf - ldr r1, .L624+188 - ldrb r2, [r5, #-1990] @ zero_extendqisi2 + ldr r1, .L639+188 + ldrb r2, [r5, #-1986] @ zero_extendqisi2 add r4, r4, r0 mov r0, r4 bl sprintf ldrh r2, [r5, r8] - ldr r1, .L624+192 + ldr r1, .L639+192 add r4, r4, r0 mov r0, r4 bl sprintf - ldr r1, .L624+196 - ldrb r2, [r5, #-1988] @ zero_extendqisi2 + ldr r1, .L639+196 + ldrb r2, [r5, #-1984] @ zero_extendqisi2 add r4, r4, r0 mov r0, r4 bl sprintf - ldr r3, .L624+200 - ldr r1, .L624+204 + ldr r3, .L639+200 + ldr r1, .L639+204 ldrh r2, [r5, r3] add r4, r4, r0 mov r0, r4 bl sprintf ldrh r3, [r5, r8] - ldr r2, [r5, #-2016] + ldr r2, [r5, #-2012] add r8, r8, #48 - ldr r1, .L624+208 + ldr r1, .L639+208 mov r3, r3, asl #1 ldrh r2, [r2, r3] add r4, r4, r0 mov r0, r4 bl sprintf - ldr r3, .L624+212 - ldr r1, .L624+216 + ldr r3, .L639+212 + ldr r1, .L639+216 ldrh r2, [r5, r3] add r4, r4, r0 mov r0, r4 bl sprintf - ldr r1, .L624+220 - ldrb r2, [r5, #-1942] @ zero_extendqisi2 + ldr r1, .L639+220 + ldrb r2, [r5, #-1938] @ zero_extendqisi2 add r4, r4, r0 mov r0, r4 bl sprintf ldrh r2, [r5, r8] - ldr r1, .L624+224 + ldr r1, .L639+224 add r4, r4, r0 mov r0, r4 bl sprintf - ldr r1, .L624+228 - ldrb r2, [r5, #-1940] @ zero_extendqisi2 + ldr r1, .L639+228 + ldrb r2, [r5, #-1936] @ zero_extendqisi2 add r4, r4, r0 mov r0, r4 bl sprintf - ldr r3, .L624+232 - ldr r1, .L624+236 + ldr r3, .L639+232 + ldr r1, .L639+236 ldrh r2, [r5, r3] add r4, r4, r0 mov r0, r4 bl sprintf ldrh r3, [r5, r8] - ldr r2, [r5, #-2016] - add r8, r8, #188 - ldr r1, .L624+240 + ldr r2, [r5, #-2012] + add r8, r8, #192 + ldr r1, .L639+240 mov r3, r3, asl #1 ldrh r2, [r2, r3] add r4, r4, r0 mov r0, r4 bl sprintf - ldr r3, .L624+244 - ldr r1, .L624+248 + ldr r3, .L639+244 + ldr r1, .L639+248 ldrh r2, [r5, r3] add r4, r4, r0 mov r0, r4 bl sprintf - ldr r1, .L624+252 - ldrb r2, [r5, #-1894] @ zero_extendqisi2 + ldr r1, .L639+252 + ldrb r2, [r5, #-1890] @ zero_extendqisi2 add r4, r4, r0 mov r0, r4 bl sprintf - ldr r3, .L624+256 - ldr r1, .L624+260 + ldr r3, .L639+256 + ldr r1, .L639+260 ldrh r2, [r5, r3] add r4, r4, r0 mov r0, r4 bl sprintf - ldr r1, .L624+264 - ldrb r2, [r5, #-1892] @ zero_extendqisi2 + ldr r1, .L639+264 + ldrb r2, [r5, #-1888] @ zero_extendqisi2 add r4, r4, r0 mov r0, r4 bl sprintf - ldr r3, .L624+268 - ldr r1, .L624+272 + ldr r3, .L639+268 + ldr r1, .L639+272 ldrh r2, [r5, r3] add r4, r4, r0 mov r0, r4 bl sprintf - ldr r3, .L624+276 - ldr r1, .L624+280 + ldr r3, .L639+276 + ldr r1, .L639+280 ldrh r2, [r5, r3] add r4, r4, r0 mov r0, r4 bl sprintf - ldr r1, .L624+284 - ldrb r2, [r5, #-1754] @ zero_extendqisi2 + ldr r1, .L639+284 + ldrb r2, [r5, #-1746] @ zero_extendqisi2 add r4, r4, r0 mov r0, r4 bl sprintf - ldr r1, .L624+288 + ldr r1, .L639+288 ldrh r2, [r5, r8] add r4, r4, r0 mov r0, r4 bl sprintf - ldr r1, .L624+292 - ldrb r2, [r5, #-1752] @ zero_extendqisi2 + ldr r1, .L639+292 + ldrb r2, [r5, #-1744] @ zero_extendqisi2 add r4, r4, r0 mov r0, r4 bl sprintf - ldr r3, .L624+296 - ldr r1, .L624+300 + ldr r3, .L639+296 + ldr r1, .L639+300 ldrh r2, [r5, r3] add r4, r4, r0 mov r0, r4 bl sprintf - ldr r1, [r5, #-1624] - ldr r3, [r6, #3840] - ldr r2, [r5, #-1712] + ldr r1, [r5, #-1616] + ldr r3, [r6, #3844] + ldr r2, [r5, #-1704] str r1, [sp, #0] - ldr r1, [r5, #-1632] + ldr r1, [r5, #-1624] orr r2, r3, r2, asl #8 str r1, [sp, #4] - ldr r1, .L624+304 - ldr r3, [r5, #-1628] + ldr r1, .L639+304 + ldr r3, [r5, #-1620] add r4, r4, r0 mov r0, r4 bl sprintf - ldr r1, .L624+308 - ldr r2, [r5, #-1636] + ldr r1, .L639+308 + ldr r2, [r5, #-1628] add r4, r4, r0 mov r0, r4 bl sprintf - ldr r1, .L624+312 - ldr r2, [r5, #-1612] + ldr r1, .L639+312 + ldr r2, [r5, #-1604] add r4, r4, r0 mov r0, r4 bl sprintf - ldr r3, .L624+316 - ldr r1, .L624+320 + ldr r3, .L639+316 + ldr r1, .L639+320 ldrh r2, [r5, r3] add r4, r4, r0 mov r0, r4 bl sprintf - ldr r3, .L624+324 - ldr r1, .L624+328 + ldr r3, .L639+324 + ldr r1, .L639+328 ldrh r2, [r5, r3] add r4, r4, r0 mov r0, r4 bl sprintf - ldr r1, .L624+332 - ldr r2, [r5, #-1192] + ldr r1, .L639+332 + ldr r2, [r5, #-1184] add r4, r4, r0 mov r0, r4 bl sprintf - ldr r3, .L624+336 - ldr r1, .L624+340 + ldr r3, .L639+336 + ldr r1, .L639+340 ldrh r2, [r5, r3] add r4, r4, r0 mov r0, r4 bl sprintf add r4, r4, r0 bl GetFreeBlockMinEraseCount - ldr r1, .L624+344 + ldr r1, .L639+344 mov r2, r0 mov r0, r4 bl sprintf add r4, r4, r0 ldrh r0, [r5, r7] bl GetFreeBlockMaxEraseCount - ldr r1, .L624+348 + ldr r1, .L639+348 mov r2, r0 mov r0, r4 bl sprintf @@ -5177,90 +5294,90 @@ FtlPrintInfo2buf: movw r2, #65535 cmp r3, r2 add r4, r4, r0 - beq .L617 - ldr r2, [r5, #-2016] + beq .L632 + ldr r2, [r5, #-2012] mov r3, r3, asl #1 mov r0, r4 - ldr r1, .L624+352 + ldr r1, .L639+352 ldrh r2, [r2, r3] bl sprintf add r4, r4, r0 -.L617: +.L632: mov r0, #0 - ldr r6, .L624+24 + ldr r6, .L639+24 bl List_get_gc_head_node - ldr r8, .L624 + ldr r8, .L639 mov r5, #0 movw r9, #65535 uxth r3, r0 -.L619: +.L634: cmp r3, r9 - beq .L618 - ldr r1, [r6, #-2016] + beq .L633 + ldr r1, [r6, #-2012] mov r2, r3, asl #1 mov r7, #6 mov r0, r4 mul r7, r7, r3 ldrh r1, [r1, r2] str r1, [sp, #0] - ldr r1, [r6, #-2024] + ldr r1, [r6, #-2020] add r1, r1, r7 ldrh r1, [r1, #4] str r1, [sp, #4] - ldr r1, [r8, #4048] + ldr r1, [r8, #4052] ldrh r2, [r1, r2] - ldr r1, .L624+356 + ldr r1, .L639+356 str r2, [sp, #8] mov r2, r5 bl sprintf add r5, r5, #1 - ldr r3, [r6, #-2024] + ldr r3, [r6, #-2020] cmp r5, #16 ldrh r3, [r3, r7] add r4, r4, r0 - bne .L619 -.L618: - ldr r6, .L624+24 + bne .L634 +.L633: + ldr r6, .L639+24 mov r5, #0 - ldr r8, .L624 + ldr r8, .L639 movw r9, #65535 - ldr r2, [r6, #-2004] - ldr r3, [r6, #-2024] + ldr r2, [r6, #-2000] + ldr r3, [r6, #-2020] rsb r3, r3, r2 - ldr r2, .L624+360 + ldr r2, .L639+360 mov r3, r3, asr #1 mul r3, r2, r3 uxth r3, r3 -.L621: +.L636: cmp r3, r9 - beq .L620 + beq .L635 mov r7, #6 - ldr r2, [r6, #-2024] + ldr r2, [r6, #-2020] mul r7, r7, r3 mov r0, r4 add r2, r2, r7 ldrh r2, [r2, #4] str r2, [sp, #0] mov r2, r3, asl #1 - ldr r1, [r8, #4048] + ldr r1, [r8, #4052] ldrh r2, [r1, r2] - ldr r1, .L624+364 + ldr r1, .L639+364 str r2, [sp, #4] mov r2, r5 bl sprintf add r5, r5, #1 - ldr r3, [r6, #-2024] + ldr r3, [r6, #-2020] cmp r5, #4 ldrh r3, [r3, r7] add r4, r4, r0 - bne .L621 -.L620: + bne .L636 +.L635: rsb r0, sl, r4 add sp, sp, #32 ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, pc} -.L625: +.L640: .align 2 -.L624: +.L639: .word .LANCHOR0 .word .LC7 .word .LC8 @@ -5268,9 +5385,9 @@ FtlPrintInfo2buf: .word .LANCHOR1 .word .LC10 .word .LANCHOR2 - .word -2000 - .word .LC11 .word -1996 + .word .LC11 + .word -1992 .word .LC12 .word .LC13 .word .LC14 @@ -5291,61 +5408,61 @@ FtlPrintInfo2buf: .word .LC29 .word .LC30 .word .LC31 - .word -2042 + .word -2038 .word .LC32 - .word -2044 + .word -2040 .word .LC33 .word .LC34 .word .LC35 .word .LC36 .word .LC37 .word .LC38 - .word -1776 + .word -1772 .word .LC39 .word .LC40 - .word -1772 + .word -1768 .word .LC41 .word .LC42 - .word -1994 + .word -1990 .word .LC43 .word .LC44 .word .LC45 .word .LC46 - .word -1992 + .word -1988 .word .LC47 .word .LC48 - .word -1946 + .word -1942 .word .LC49 .word .LC50 .word .LC51 .word .LC52 - .word -1944 + .word -1940 .word .LC53 .word .LC54 - .word -1898 + .word -1894 .word .LC55 .word .LC56 - .word -1900 + .word -1896 .word .LC57 .word .LC58 - .word -1896 + .word -1892 .word .LC59 - .word -1758 + .word -1750 .word .LC60 .word .LC61 .word .LC62 .word .LC63 - .word -1756 + .word -1748 .word .LC64 .word .LC65 .word .LC66 .word .LC67 - .word -1196 + .word -1188 .word .LC68 - .word -1194 + .word -1186 .word .LC69 .word .LC70 - .word -1188 + .word -1180 .word .LC71 .word .LC72 .word .LC73 @@ -5365,8 +5482,8 @@ ftl_proc_ftl_read: stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} mov r4, r0 - ldr r1, .L627 - ldr r2, .L627+4 + ldr r1, .L642 + ldr r2, .L642+4 bl sprintf add r5, r4, r0 mov r0, r5 @@ -5374,9 +5491,9 @@ ftl_proc_ftl_read: add r0, r5, r0 rsb r0, r4, r0 ldmfd sp!, {r3, r4, r5, pc} -.L628: +.L643: .align 2 -.L627: +.L642: .word .LC77 .word .LC78 .fnend @@ -5388,85 +5505,85 @@ GetSwlReplaceBlock: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L654 + ldr r3, .L669 stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} .save {r4, r5, r6, r7, r8, r9, sl, fp, lr} .pad #20 sub sp, sp, #20 - ldr r1, [r3, #-1788] - ldr r2, [r3, #-1780] + ldr r1, [r3, #-1784] + ldr r2, [r3, #-1776] cmp r1, r2 - bcs .L630 - ldr r0, .L654+4 - mov r1, #3856 + bcs .L645 + ldr r0, .L669+4 + movw r1, #3860 mov r2, #0 - str r2, [r3, #-1796] + str r2, [r3, #-1792] ldrh r1, [r0, r1] - ldr r0, [r0, #4048] - b .L631 -.L632: + ldr r0, [r0, #4052] + b .L646 +.L647: ldrh lr, [r0], #2 add r2, r2, #1 - ldr ip, [r3, #-1796] + ldr ip, [r3, #-1792] add ip, lr, ip - str ip, [r3, #-1796] -.L631: + str ip, [r3, #-1792] +.L646: cmp r2, r1 - ldr r4, .L654 - bcc .L632 - ldr r5, [r4, #-1796] + ldr r4, .L669 + bcc .L647 + ldr r5, [r4, #-1792] mov r0, r5 bl __aeabi_uidiv - ldr r2, .L654+4 - movw r3, #3906 + ldr r2, .L669+4 + movw r3, #3910 ldrh r1, [r2, r3] - str r0, [r4, #-1788] - ldr r0, [r4, #-1792] + str r0, [r4, #-1784] + ldr r0, [r4, #-1788] rsb r0, r0, r5 bl __aeabi_uidiv - str r0, [r4, #-1796] - b .L633 -.L630: - ldr r2, [r3, #-1784] + str r0, [r4, #-1792] + b .L648 +.L645: + ldr r2, [r3, #-1780] cmp r1, r2 - bls .L633 + bls .L648 add r2, r2, #1 - mov ip, #3856 - str r2, [r3, #-1784] + movw ip, #3860 + str r2, [r3, #-1780] mov r3, #0 - ldr r2, .L654+4 - b .L634 -.L635: - ldr r0, [r2, #4048] + ldr r2, .L669+4 + b .L649 +.L650: + ldr r0, [r2, #4052] mov r1, r3, asl #1 add r3, r3, #1 ldrh r4, [r0, r1] add r4, r4, #1 strh r4, [r0, r1] @ movhi -.L634: +.L649: ldrh r1, [r2, ip] cmp r3, r1 - bcc .L635 -.L633: - ldr r3, .L654 - ldr r6, [r3, #-1780] - ldr r5, [r3, #-1788] + bcc .L650 +.L648: + ldr r3, .L669 + ldr r6, [r3, #-1776] + ldr r5, [r3, #-1784] add r2, r6, #256 cmp r2, r5 mov r2, r3 - bls .L636 - ldr r3, [r3, #-1784] + bls .L651 + ldr r3, [r3, #-1780] add r1, r6, #768 cmp r1, r3 - bls .L636 - ldr r3, .L654+4 - ldr r3, [r3, #3840] + bls .L651 + ldr r3, .L669+4 + ldr r3, [r3, #3844] cmp r3, #0 - beq .L653 + beq .L668 cmp r6, #40 - bhi .L653 -.L636: - ldr r3, .L654+8 + bhi .L668 +.L651: + ldr r3, .L669+8 ldrh r0, [r2, r3] add r0, r0, r0, asl #1 ubfx r0, r0, #2, #16 @@ -5474,108 +5591,108 @@ GetSwlReplaceBlock: add r3, r6, #64 cmp r0, r3 mov r8, r0 - bcs .L638 + bcs .L653 cmp r6, #40 - bhi .L653 -.L638: - ldr r1, .L654 - ldr r3, [r1, #-2020] + bhi .L668 +.L653: + ldr r1, .L669 + ldr r3, [r1, #-2016] cmp r3, #0 - beq .L653 - ldr r2, .L654+4 - mov r0, #3856 + beq .L668 + ldr r2, .L669+4 + movw r0, #3860 movw r7, #65535 mov r4, r7 mov fp, r7 ldrh sl, [r2, r0] - ldr r0, [r1, #-2024] - ldr r1, [r2, #4048] + ldr r0, [r1, #-2020] + ldr r1, [r2, #4052] mov r2, #0 - b .L639 -.L642: + b .L654 +.L657: add r2, r2, #1 uxth r2, r2 cmp r2, sl - bhi .L653 + bhi .L668 ldrh ip, [r3, #4] cmp ip, #0 - beq .L640 + beq .L655 rsb r3, r0, r3 - ldr ip, .L654+12 + ldr ip, .L669+12 mov r3, r3, asr #1 mul r3, ip, r3 uxth r3, r3 mov ip, r3, asl #1 ldrh ip, [r1, ip] cmp ip, r6 - bls .L650 + bls .L665 cmp ip, r7 movcc r7, ip movcc r4, r3 -.L640: +.L655: mov ip, #6 mla r3, ip, r9, r0 -.L639: +.L654: ldrh r9, [r3, #0] cmp r9, fp - bne .L642 - b .L641 -.L650: + bne .L657 + b .L656 +.L665: mov r4, r3 -.L641: +.L656: movw r3, #65535 cmp r4, r3 - beq .L637 + beq .L652 mov r9, r4, asl #1 ldrh sl, [r1, r9] cmp sl, r6 - bls .L643 + bls .L658 bl GetFreeBlockMinEraseCount cmp r0, r6 - ldrhi r3, .L654 - strhi r7, [r3, #-1780] -.L643: + ldrhi r3, .L669 + strhi r7, [r3, #-1776] +.L658: cmp sl, r5 - bcs .L653 + bcs .L668 add r3, sl, #128 cmp r8, r3 - ble .L653 + ble .L668 add r3, sl, #256 - ldr r6, .L654 + ldr r6, .L669 cmp r3, r5 - bcc .L644 - ldr r3, [r6, #-1784] + bcc .L659 + ldr r3, [r6, #-1780] add sl, sl, #768 cmp sl, r3 - bcs .L653 -.L644: - ldr r3, [r6, #-2016] + bcs .L668 +.L659: + ldr r3, [r6, #-2012] mov r1, r4 - ldr r0, .L654+16 + ldr r0, .L669+16 mov r2, r5 ldrh r3, [r3, r9] str r3, [sp, #0] - ldr r3, .L654+4 - ldr r3, [r3, #4048] + ldr r3, .L669+4 + ldr r3, [r3, #4052] ldrh r3, [r3, r9] stmib sp, {r3, r8} - ldr r3, [r6, #-1784] + ldr r3, [r6, #-1780] bl printk mov r3, #1 - str r3, [r6, #-1184] - b .L637 -.L653: + str r3, [r6, #-1176] + b .L652 +.L668: movw r4, #65535 -.L637: +.L652: mov r0, r4 add sp, sp, #20 ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L655: +.L670: .align 2 -.L654: +.L669: .word .LANCHOR2 .word .LANCHOR0 - .word -2000 + .word -1996 .word -1431655765 .word .LC79 .fnend @@ -5591,19 +5708,19 @@ free_data_superblock: cmp r0, r2 stmfd sp!, {r3, lr} .save {r3, lr} - beq .L657 - ldr r2, .L658 + beq .L672 + ldr r2, .L673 mov r3, r0, asl #1 mov r1, #0 - ldr r2, [r2, #-2016] + ldr r2, [r2, #-2012] strh r1, [r2, r3] @ movhi bl INSERT_FREE_LIST -.L657: +.L672: mov r0, #0 ldmfd sp!, {r3, pc} -.L659: +.L674: .align 2 -.L658: +.L673: .word .LANCHOR2 .fnend .size free_data_superblock, .-free_data_superblock @@ -5614,21 +5731,21 @@ FtlGcBufInit: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r2, .L668 + ldr r2, .L683 mov r3, #0 stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} .save {r4, r5, r6, r7, r8, r9, sl, fp, lr} - movw sl, #3848 - str r3, [r2, #-1180] + movw sl, #3852 + str r3, [r2, #-1172] mov r8, #12 - ldr r0, .L668+4 + ldr r0, .L683+4 mov r7, #1 - movw r6, #3926 - movw fp, #3928 - b .L661 -.L662: + movw r6, #3928 + movw fp, #3930 + b .L676 +.L677: mul r1, r8, r3 - ldr r4, [r2, #-1176] + ldr r4, [r2, #-1168] add ip, r4, r1 str r7, [ip, #8] ldrh ip, [r0, r6] @@ -5636,22 +5753,22 @@ FtlGcBufInit: add r5, ip, #3 cmp ip, #0 movlt ip, r5 - ldr r5, [r2, #-1172] + ldr r5, [r2, #-1164] bic ip, ip, #3 add ip, r5, ip str ip, [r4, r1] ldrh ip, [r0, fp] - ldr r9, [r2, #-1176] + ldr r9, [r2, #-1168] mul ip, ip, r3 add r4, r9, r1 add r5, ip, #3 cmp ip, #0 movlt ip, r5 - ldr r5, [r2, #-1168] + ldr r5, [r2, #-1160] bic ip, ip, #3 add ip, r5, ip str ip, [r4, #4] - ldr ip, [r2, #-1164] + ldr ip, [r2, #-1156] mov r5, #36 ldr r1, [r9, r1] mla ip, r5, r3, ip @@ -5660,14 +5777,14 @@ FtlGcBufInit: str r1, [ip, #8] ldr r1, [r4, #4] str r1, [ip, #12] -.L661: +.L676: ldrh r1, [r0, sl] cmp r3, r1 - bcc .L662 - b .L667 -.L664: + bcc .L677 + b .L682 +.L679: mul r2, r8, r1 - ldr r4, [r3, #-1176] + ldr r4, [r3, #-1168] add r0, r4, r2 str r7, [r0, #8] ldrh r0, [ip, r6] @@ -5675,11 +5792,11 @@ FtlGcBufInit: add sl, r0, #3 cmp r0, #0 movlt r0, sl - ldr sl, [r3, #-1172] + ldr sl, [r3, #-1164] bic r0, r0, #3 add r0, sl, r0 str r0, [r4, r2] - ldr r0, [r3, #-1176] + ldr r0, [r3, #-1168] add r0, r0, r2 ldrh r2, [ip, r5] mul r2, r2, r1 @@ -5688,26 +5805,26 @@ FtlGcBufInit: add r4, r2, #3 cmp r2, #0 movlt r2, r4 - ldr r4, [r3, #-1168] + ldr r4, [r3, #-1160] bic r2, r2, #3 add r2, r4, r2 str r2, [r0, #4] - b .L666 -.L667: - ldr r3, .L668 + b .L681 +.L682: + ldr r3, .L683 mov r8, #12 - ldr ip, .L668+4 + ldr ip, .L683+4 mov r7, #0 - movw r6, #3926 - movw r5, #3928 -.L666: - ldr r2, [r3, #-1160] + movw r6, #3928 + movw r5, #3930 +.L681: + ldr r2, [r3, #-1152] cmp r1, r2 - bcc .L664 + bcc .L679 ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L669: +.L684: .align 2 -.L668: +.L683: .word .LANCHOR2 .word .LANCHOR0 .fnend @@ -5719,42 +5836,42 @@ FtlGcBufFree: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L677 + ldr r3, .L692 stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} .save {r4, r5, r6, r7, r8, r9, sl, fp, lr} mov r5, #36 - ldr r6, [r3, #-1160] + ldr r6, [r3, #-1152] mov fp, #12 - ldr ip, [r3, #-1176] + ldr ip, [r3, #-1168] mov r3, #0 mov r4, r3 - b .L671 -.L674: + b .L686 +.L689: mul sl, fp, r2 add r8, ip, sl ldr r9, [ip, sl] ldr sl, [r7, #8] cmp r9, sl streq r4, [r8, #8] - beq .L673 -.L672: + beq .L688 +.L687: add r2, r2, #1 uxth r2, r2 -.L676: +.L691: cmp r2, r6 - bcc .L674 -.L673: + bcc .L689 +.L688: add r3, r3, #1 uxth r3, r3 -.L671: +.L686: cmp r3, r1 ldmcsfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} mla r7, r5, r3, r0 mov r2, #0 - b .L676 -.L678: + b .L691 +.L693: .align 2 -.L677: +.L692: .word .LANCHOR2 .fnend .size FtlGcBufFree, .-FtlGcBufFree @@ -5765,47 +5882,47 @@ FtlGcBufAlloc: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L686 + ldr r3, .L701 stmfd sp!, {r4, r5, r6, r7, r8, sl, lr} .save {r4, r5, r6, r7, r8, sl, lr} mov r6, #12 - ldr r8, [r3, #-1160] + ldr r8, [r3, #-1152] mov r5, #1 - ldr r7, [r3, #-1176] + ldr r7, [r3, #-1168] mov r4, #36 mov r3, #0 - b .L680 -.L683: + b .L695 +.L698: mla ip, r6, r2, r7 ldr sl, [ip, #8] cmp sl, #0 - bne .L681 + bne .L696 mla r2, r4, r3, r0 ldr sl, [ip, #0] str r5, [ip, #8] str sl, [r2, #8] ldr ip, [ip, #4] str ip, [r2, #12] - b .L682 -.L681: + b .L697 +.L696: add r2, r2, #1 uxth r2, r2 - b .L684 -.L685: + b .L699 +.L700: mov r2, #0 -.L684: +.L699: cmp r2, r8 - bcc .L683 -.L682: + bcc .L698 +.L697: add r3, r3, #1 uxth r3, r3 -.L680: +.L695: cmp r3, r1 - bcc .L685 + bcc .L700 ldmfd sp!, {r4, r5, r6, r7, r8, sl, pc} -.L687: +.L702: .align 2 -.L686: +.L701: .word .LANCHOR2 .fnend .size FtlGcBufAlloc, .-FtlGcBufAlloc @@ -5817,31 +5934,31 @@ IsBlkInGcList: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L693 - ldr r2, .L693+4 + ldr r3, .L708 + ldr r2, .L708+4 ldrh r1, [r3, r2] - ldr r2, [r3, #-1152] + ldr r2, [r3, #-1144] mov r3, #0 - b .L689 -.L691: + b .L704 +.L706: ldrh ip, [r2], #2 cmp ip, r0 - beq .L692 + beq .L707 add r3, r3, #1 uxth r3, r3 -.L689: +.L704: cmp r3, r1 - bne .L691 + bne .L706 mov r0, #0 bx lr -.L692: +.L707: mov r0, #1 bx lr -.L694: +.L709: .align 2 -.L693: +.L708: .word .LANCHOR2 - .word -1156 + .word -1148 .fnend .size IsBlkInGcList, .-IsBlkInGcList .align 2 @@ -5858,36 +5975,36 @@ FtlGcUpdatePage: mov r5, r1 mov r6, r2 bl P2V_block_in_plane - ldr r3, .L699 - ldr r2, .L699+4 + ldr r3, .L714 + ldr r2, .L714+4 ldrh ip, [r3, r2] - ldr r2, [r3, #-1152] + ldr r2, [r3, #-1144] mov r3, #0 mov r1, r2 - b .L696 -.L698: + b .L711 +.L713: ldrh r7, [r1], #2 cmp r7, r0 - beq .L697 + beq .L712 add r3, r3, #1 uxth r3, r3 -.L696: +.L711: cmp r3, ip - bne .L698 + bne .L713 mov r3, r3, asl #1 strh r0, [r2, r3] @ movhi - ldr r2, .L699 - ldr r3, .L699+4 + ldr r2, .L714 + ldr r3, .L714+4 ldrh r1, [r2, r3] add r1, r1, #1 strh r1, [r2, r3] @ movhi -.L697: - ldr r3, .L699 +.L712: + ldr r3, .L714 mov r0, #12 - ldr r2, .L699+8 + ldr r2, .L714+8 ldrh r1, [r3, r2] mul r1, r0, r1 - ldr r0, [r3, #-1148] + ldr r0, [r3, #-1140] add ip, r0, r1 stmib ip, {r5, r6} str r4, [r0, r1] @@ -5895,12 +6012,12 @@ FtlGcUpdatePage: add r1, r1, #1 strh r1, [r3, r2] @ movhi ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L700: +.L715: .align 2 -.L699: +.L714: .word .LANCHOR2 - .word -1156 - .word -1144 + .word -1148 + .word -1136 .fnend .size FtlGcUpdatePage, .-FtlGcUpdatePage .align 2 @@ -5914,49 +6031,49 @@ FtlGcRefreshOpenBlock: .save {r3, r4, r5, r6, r7, r8, sl, lr} mov r4, r0 mov r1, r4 - ldr r0, .L706 + ldr r0, .L721 bl printk - ldr r8, .L706+4 - ldr r3, .L706+8 + ldr r8, .L721+4 + ldr r3, .L721+8 ldrh sl, [r3, r8] cmp sl, r4 - beq .L702 - ldr r6, .L706+12 + beq .L717 + ldr r6, .L721+12 ldrh r7, [r3, r6] cmp r7, r4 - beq .L702 - ldr ip, .L706+16 + beq .L717 + ldr ip, .L721+16 ldrh r5, [r3, ip] cmp r5, r4 - beq .L702 - ldr r1, .L706+20 + beq .L717 + ldr r1, .L721+20 ldrh r0, [r3, r1] cmp r0, r4 - beq .L702 + beq .L717 movw r2, #65535 cmp sl, r2 streqh r4, [r3, r8] @ movhi - beq .L702 + beq .L717 cmp r7, r2 streqh r4, [r3, r6] @ movhi - beq .L702 + beq .L717 cmp r5, r2 streqh r4, [r3, ip] @ movhi - beq .L702 + beq .L717 cmp r0, r2 streqh r4, [r3, r1] @ movhi -.L702: +.L717: mov r0, #0 ldmfd sp!, {r3, r4, r5, r6, r7, r8, sl, pc} -.L707: +.L722: .align 2 -.L706: +.L721: .word .LC80 - .word -1142 + .word -1134 .word .LANCHOR2 - .word -1140 - .word -1138 - .word -1136 + .word -1132 + .word -1130 + .word -1128 .fnend .size FtlGcRefreshOpenBlock, .-FtlGcRefreshOpenBlock .align 2 @@ -5970,110 +6087,109 @@ FtlGcRefreshBlock: .save {r3, r4, r5, r6, r7, r8, sl, lr} mov r4, r0 mov r1, r4 - ldr r0, .L719 + ldr r0, .L734 bl printk - ldr r8, .L719+4 - ldr r3, .L719+8 + ldr r8, .L734+4 + ldr r3, .L734+8 ldrh sl, [r3, r8] cmp sl, r4 - beq .L716 - ldr r6, .L719+12 + beq .L731 + ldr r6, .L734+12 ldrh r7, [r3, r6] cmp r7, r4 - beq .L716 - ldr ip, .L719+16 + beq .L731 + ldr ip, .L734+16 ldrh r5, [r3, ip] cmp r5, r4 - beq .L716 - ldr r1, .L719+20 + beq .L731 + ldr r1, .L734+20 ldrh r0, [r3, r1] cmp r0, r4 - beq .L717 + beq .L732 movw r2, #65535 cmp sl, r2 streqh r4, [r3, r8] @ movhi - beq .L716 + beq .L731 cmp r7, r2 streqh r4, [r3, r6] @ movhi - beq .L716 + beq .L731 cmp r5, r2 streqh r4, [r3, ip] @ movhi - beq .L716 + beq .L731 cmp r0, r2 streqh r4, [r3, r1] @ movhi mvnne r0, #0 ldmnefd sp!, {r3, r4, r5, r6, r7, r8, sl, pc} -.L716: +.L731: mov r0, #0 ldmfd sp!, {r3, r4, r5, r6, r7, r8, sl, pc} -.L717: +.L732: mov r0, #0 ldmfd sp!, {r3, r4, r5, r6, r7, r8, sl, pc} -.L720: +.L735: .align 2 -.L719: +.L734: .word .LC80 - .word -1142 + .word -1134 .word .LANCHOR2 - .word -1140 - .word -1138 - .word -1136 + .word -1132 + .word -1130 + .word -1128 .fnend .size FtlGcRefreshBlock, .-FtlGcRefreshBlock .section .text.unlikely,"ax",%progbits .align 2 - .type decrement_vpc_count.part.18, %function -decrement_vpc_count.part.18: + .type decrement_vpc_count.part.20, %function +decrement_vpc_count.part.20: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} mov r6, r0, asl #1 - ldr r5, .L723 + ldr r5, .L738 mov r4, r0 mov r1, r4 - ldr r0, .L723+4 - ldr r3, [r5, #-2016] + ldr r0, .L738+4 + ldr r3, [r5, #-2012] ldrh r2, [r3, r6] bl printk - ldr r3, [r5, #-2016] + ldr r3, [r5, #-2012] mov r2, #32 - ldr r0, .L723+8 + sub r0, r5, #2000 mov r1, r4 strh r2, [r3, r6] @ movhi bl test_node_in_list cmp r0, #0 - beq .L722 + beq .L737 mov r1, r4 - ldr r0, .L723+8 + sub r0, r5, #2000 bl List_remove_node - ldr r3, .L723+12 + ldr r3, .L738+8 mov r0, r4 ldrh r2, [r5, r3] sub r2, r2, #1 strh r2, [r5, r3] @ movhi bl INSERT_DATA_LIST - ldr r3, [r5, #-2016] - ldr r0, .L723+16 + ldr r3, [r5, #-2012] + ldr r0, .L738+12 mov r1, r4 ldrh r2, [r3, r6] bl printk -.L722: +.L737: mov r0, r4 bl FtlGcRefreshBlock mov r0, #0 ldmfd sp!, {r4, r5, r6, pc} -.L724: +.L739: .align 2 -.L723: +.L738: .word .LANCHOR2 .word .LC81 - .word .LANCHOR2-2004 - .word -2000 + .word -1996 .word .LC82 .fnend - .size decrement_vpc_count.part.18, .-decrement_vpc_count.part.18 + .size decrement_vpc_count.part.20, .-decrement_vpc_count.part.20 .text .align 2 .global FtlGcMarkBadPhyBlk @@ -6086,60 +6202,60 @@ FtlGcMarkBadPhyBlk: .save {r3, r4, r5, r6, r7, lr} mov r4, r0 bl P2V_block_in_plane - ldr r7, .L730 + ldr r7, .L745 mov r2, r4 - ldr r6, .L730+4 + ldr r6, .L745+4 ldrh r1, [r7, r6] mov r5, r0 - ldr r0, .L730+8 + ldr r0, .L745+8 bl printk mov r0, r5 bl FtlGcRefreshBlock - ldr r3, .L730+12 - ldr r2, [r3, #3840] + ldr r3, .L745+12 + ldr r2, [r3, #3844] cmp r2, #0 - beq .L726 - ldr r3, [r3, #4048] + beq .L741 + ldr r3, [r3, #4052] mov r5, r5, asl #1 ldrh r2, [r3, r5] cmp r2, #39 subhi r2, r2, #40 strhih r2, [r3, r5] @ movhi -.L726: +.L741: ldrh r1, [r7, r6] mov r3, #0 - ldr r2, .L730+16 - b .L727 -.L729: + ldr r2, .L745+16 + b .L742 +.L744: ldrh r0, [r2, #2]! cmp r0, r4 - beq .L728 + beq .L743 add r3, r3, #1 uxth r3, r3 -.L727: +.L742: cmp r3, r1 - bne .L729 + bne .L744 cmp r3, #15 - bhi .L728 - ldr r2, .L730 - ldr r1, .L730+20 + bhi .L743 + ldr r2, .L745 + ldr r1, .L745+20 add r0, r2, r3, asl #1 add r3, r3, #1 strh r4, [r0, r1] @ movhi sub r1, r1, #2 strh r3, [r2, r1] @ movhi -.L728: +.L743: mov r0, #0 ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L731: +.L746: .align 2 -.L730: +.L745: .word .LANCHOR2 - .word -1134 + .word -1126 .word .LC83 .word .LANCHOR0 - .word .LANCHOR2-1134 - .word -1132 + .word .LANCHOR2-1126 + .word -1124 .fnend .size FtlGcMarkBadPhyBlk, .-FtlGcMarkBadPhyBlk .align 2 @@ -6151,24 +6267,24 @@ FtlGcReFreshBadBlk: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} - ldr r2, .L735 - ldr r3, .L735+4 + ldr r2, .L750 + ldr r3, .L750+4 ldrh r2, [r3, r2] cmp r2, #0 - beq .L733 - ldr r1, .L735+8 + beq .L748 + ldr r1, .L750+8 ldrh r0, [r3, r1] movw r1, #65535 cmp r0, r1 - bne .L733 - ldr r4, .L735+12 - ldr r5, .L735+4 + bne .L748 + ldr r4, .L750+12 + ldr r5, .L750+4 ldrh r1, [r3, r4] cmp r1, r2 movcs r2, #0 strcsh r2, [r3, r4] @ movhi ldrh r2, [r5, r4] - ldr r3, .L735+16 + ldr r3, .L750+16 add r2, r5, r2, asl #1 ldrh r0, [r2, r3] bl P2V_block_in_plane @@ -6176,17 +6292,17 @@ FtlGcReFreshBadBlk: ldrh r3, [r5, r4] add r3, r3, #1 strh r3, [r5, r4] @ movhi -.L733: +.L748: mov r0, #0 ldmfd sp!, {r3, r4, r5, pc} -.L736: +.L751: .align 2 -.L735: - .word -1134 +.L750: + .word -1126 .word .LANCHOR2 - .word -1142 - .word -1098 - .word -1132 + .word -1134 + .word -1090 + .word -1124 .fnend .size FtlGcReFreshBadBlk, .-FtlGcReFreshBadBlk .align 2 @@ -6200,9 +6316,9 @@ ftl_memset: stmfd sp!, {r4, lr} .save {r4, lr} mov r4, r0 - beq .L738 + beq .L753 bl memset -.L738: +.L753: mov r0, r4 ldmfd sp!, {r4, pc} .fnend @@ -6217,12 +6333,12 @@ FtlGcPageVarInit: stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} mov r3, #0 - ldr r4, .L740 - mov r5, #3920 - ldr r2, .L740+4 + ldr r4, .L755 + movw r5, #3922 + ldr r2, .L755+4 mov r1, #255 - ldr r6, .L740+8 - ldr r0, [r4, #-1152] + ldr r6, .L755+8 + ldr r0, [r4, #-1144] strh r3, [r4, r2] @ movhi add r2, r2, #12 strh r3, [r4, r2] @ movhi @@ -6231,17 +6347,17 @@ FtlGcPageVarInit: bl ftl_memset ldrh r3, [r6, r5] mov r2, #12 - ldr r0, [r4, #-1148] + ldr r0, [r4, #-1140] mov r1, #255 mul r2, r2, r3 bl ftl_memset ldmfd sp!, {r4, r5, r6, lr} b FtlGcBufInit -.L741: +.L756: .align 2 -.L740: +.L755: .word .LANCHOR2 - .word -1156 + .word -1148 .word .LANCHOR0 .fnend .size FtlGcPageVarInit, .-FtlGcPageVarInit @@ -6254,126 +6370,126 @@ SupperBlkListInit: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, sl, fp, lr} .save {r0, r1, r2, r4, r5, r6, r7, r8, r9, sl, fp, lr} - movw r3, #3858 - ldr r7, .L752 + movw r3, #3862 + ldr r7, .L767 mov r2, #6 - ldr r4, .L752+4 + ldr r4, .L767+4 mov r1, #0 mov r6, #0 ldrh r3, [r7, r3] mov sl, r6 - ldr r0, [r4, #-2024] + ldr r0, [r4, #-2020] mul r2, r2, r3 bl ftl_memset - ldr r3, .L752+8 - str r6, [r4, #-2004] - str r6, [r4, #-2020] + ldr r3, .L767+8 + str r6, [r4, #-2000] + str r6, [r4, #-2016] strh r6, [r4, r3] @ movhi add r3, r3, #8 - str r6, [r4, #-2012] + str r6, [r4, #-2008] strh r6, [r4, r3] @ movhi - add r3, r3, #904 + add r3, r3, #908 strh r6, [r4, r3] @ movhi mov r4, r6 - b .L743 -.L745: - add r2, r7, r2 - mov r1, fp + b .L758 +.L760: + add r1, r7, r1 add r9, r9, #1 - ldrb r0, [r2, #3874] @ zero_extendqisi2 - str r3, [sp, #4] + ldrb r0, [r1, #3878] @ zero_extendqisi2 + mov r1, r3 + stmia sp, {r2, r3} bl V2P_block bl FtlBbmIsBadBlock - ldr r3, [sp, #4] + ldmia sp, {r2, r3} uxth r9, r9 cmp r0, #0 - ldreqh r2, [r7, r3] - addeq r5, r5, r2 + ldreqh r1, [r7, r2] + addeq r5, r5, r1 uxtheq r5, r5 - b .L750 -.L751: + b .L765 +.L766: mov r5, #0 - uxth fp, r4 + uxth r3, r4 mov r9, r5 - movw r3, #3916 -.L750: - movw r0, #3848 - sxth r2, r9 - ldrh r1, [r7, r0] - cmp r2, r1 - blt .L745 + movw fp, #3852 + movw r2, #3918 +.L765: + ldrh r0, [r7, fp] + sxth r1, r9 + cmp r1, r0 + blt .L760 cmp r5, #0 - ldr r9, .L752+4 - beq .L746 + ldr r9, .L767+4 + beq .L761 sxth r1, r5 mov r0, #32768 bl __aeabi_idiv uxth r5, r0 - b .L747 -.L746: + b .L762 +.L761: sxth r3, r4 - ldr r2, [r9, #-2016] + ldr r2, [r9, #-2012] mvn r1, #0 mov r3, r3, asl #1 strh r1, [r2, r3] @ movhi -.L747: +.L762: sxth r1, r4 - ldr r0, [r9, #-2024] - ldr r3, .L752+4 + ldr r0, [r9, #-2020] + ldr r3, .L767+4 mov r2, r1, asl #1 add r1, r2, r1 add r1, r0, r1, asl #1 strh r5, [r1, #4] @ movhi - ldr r1, .L752+12 + ldr r1, .L767+12 ldrh r1, [r9, r1] cmp r8, r1 - beq .L748 - ldr r1, .L752+16 + beq .L763 + ldr r1, .L767+16 ldrh r1, [r3, r1] cmp r8, r1 - beq .L748 - ldr r1, .L752+20 + beq .L763 + ldr r1, .L767+20 ldrh r1, [r3, r1] cmp r8, r1 - beq .L748 - ldr r3, [r3, #-2016] + beq .L763 + ldr r3, [r3, #-2012] uxth r0, r4 ldrh r3, [r3, r2] cmp r3, #0 - bne .L749 + bne .L764 add r6, r6, #1 uxth r6, r6 bl INSERT_FREE_LIST - b .L748 -.L749: + b .L763 +.L764: add sl, sl, #1 uxth sl, sl bl INSERT_DATA_LIST -.L748: +.L763: add r4, r4, #1 uxth r4, r4 -.L743: - mov r3, #3856 +.L758: + movw r2, #3860 sxth r8, r4 - ldrh r3, [r7, r3] + ldrh r3, [r7, r2] cmp r8, r3 - blt .L751 - ldr r3, .L752+4 + blt .L766 + ldr r3, .L767+4 mov r0, #0 - ldr r2, .L752+8 + ldr r2, .L767+8 strh sl, [r3, r2] @ movhi add r2, r2, #8 strh r6, [r3, r2] @ movhi ldmfd sp!, {r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L753: +.L768: .align 2 -.L752: +.L767: .word .LANCHOR0 .word .LANCHOR2 - .word -2008 - .word -1996 - .word -1948 - .word -1900 + .word -2004 + .word -1992 + .word -1944 + .word -1896 .fnend .size SupperBlkListInit, .-SupperBlkListInit .align 2 @@ -6386,33 +6502,33 @@ FtlL2PDataInit: stmfd sp!, {r3, r4, r5, r6, r7, r8, sl, lr} .save {r3, r4, r5, r6, r7, r8, sl, lr} mov r1, #0 - ldr r4, .L757 - movw r6, #3926 - ldr r5, .L757+4 - movw r7, #3954 + ldr r4, .L772 + movw r6, #3928 + ldr r5, .L772+4 + movw r7, #3958 mov r8, #12 - ldr r2, [r4, #3944] - ldr r0, [r5, #-1092] + ldr r2, [r4, #3948] + ldr r0, [r5, #-1084] mov r2, r2, asl #1 bl ftl_memset ldrh r3, [r4, r6] ldrh r2, [r4, r7] mov r1, #255 - ldr r0, [r5, #-1088] + ldr r0, [r5, #-1080] mul r2, r2, r3 bl ftl_memset mov r2, #0 mov ip, r2 mvn r0, #0 - b .L755 -.L756: + b .L770 +.L771: mul r3, r8, r2 - ldr r1, [r5, #-1852] + ldr r1, [r5, #-1848] add sl, r1, r3 str ip, [sl, #4] strh r0, [r1, r3] @ movhi - ldr r1, [r5, #-1852] - ldr sl, [r5, #-1088] + ldr r1, [r5, #-1848] + ldr sl, [r5, #-1080] add r3, r1, r3 ldrh r1, [r4, r6] mul r1, r2, r1 @@ -6421,49 +6537,50 @@ FtlL2PDataInit: bic r1, r1, #3 add r1, sl, r1 str r1, [r3, #8] -.L755: +.L770: ldrh r3, [r4, r7] - ldr r1, .L757 + ldr r1, .L772 cmp r3, r2 - ldr r3, .L757+4 - bhi .L756 - ldr r0, .L757+8 + ldr r3, .L772+4 + bhi .L771 + ldr r0, .L772+8 mvn r2, #0 strh r2, [r3, r0] @ movhi sub r0, r0, #2 strh r2, [r3, r0] @ movhi - ldr r0, [r1, #3944] - ldr r2, .L757+12 + ldr r0, [r1, #3948] + ldr r2, .L772+12 strh r0, [r3, r2] @ movhi - sub r2, r2, #6 - ldr r0, .L757+16 + ldr r0, .L772+16 + ldr r2, .L772+20 strh r0, [r3, r2] @ movhi add r2, r2, #40 ldrh r0, [r3, r2] sub r2, r2, #36 strh r0, [r3, r2] @ movhi - mov r2, #3952 + movw r2, #3956 ldrh r1, [r1, r2] - ldr r2, .L757+20 + ldr r2, .L772+24 strh r1, [r3, r2] @ movhi - ldr r2, [r3, #-1036] - str r2, [r3, #-1072] - ldr r2, [r3, #-1032] - str r2, [r3, #-1068] - ldr r2, [r3, #-1092] - str r2, [r3, #-1064] ldr r2, [r3, #-1028] + str r2, [r3, #-1064] + ldr r2, [r3, #-1024] str r2, [r3, #-1060] + ldr r2, [r3, #-1084] + str r2, [r3, #-1056] + ldr r2, [r3, #-1020] + str r2, [r3, #-1052] ldmfd sp!, {r3, r4, r5, r6, r7, r8, sl, pc} -.L758: +.L773: .align 2 -.L757: +.L772: .word .LANCHOR0 .word .LANCHOR2 - .word -1082 .word -1074 + .word -1066 .word -3902 - .word -1078 + .word -1072 + .word -1070 .fnend .size FtlL2PDataInit, .-FtlL2PDataInit .align 2 @@ -6485,36 +6602,36 @@ ftl_free_no_use_map_blk: mov r0, r5 bl ftl_memset mov r3, #0 - b .L760 -.L764: + b .L775 +.L779: ldr r0, [r7, r3, asl #2] mov r2, #0 ubfx r0, r0, #10, #16 - b .L761 -.L763: + b .L776 +.L778: mov r1, r2, asl #1 ldrh ip, [r6, r1] cmp ip, r0 - bne .L762 + bne .L777 cmp r0, #0 ldrneh ip, [r5, r1] addne ip, ip, #1 strneh ip, [r5, r1] @ movhi -.L762: +.L777: add r2, r2, #1 uxth r2, r2 -.L761: +.L776: ldrh r1, [r4, #10] cmp r1, r2 - bhi .L763 + bhi .L778 add r3, r3, #1 uxth r3, r3 -.L760: +.L775: ldrh r2, [r4, #6] cmp r2, r3 - bhi .L764 - ldr r2, .L770 - movw r3, #3918 + bhi .L779 + ldr r2, .L785 + mov r3, #3920 mov r8, #0 mov r7, r8 ldrh r2, [r2, r3] @@ -6522,40 +6639,40 @@ ftl_free_no_use_map_blk: mov r3, r3, asl #1 strh r2, [r5, r3] @ movhi ldrh fp, [r5, #0] - b .L765 -.L768: + b .L780 +.L783: mov sl, r7, asl #1 ldrh r9, [r5, sl] cmp fp, r9 - bls .L766 + bls .L781 ldrh r3, [r6, sl] cmp r3, #0 movne r8, r7 movne fp, r9 -.L766: +.L781: cmp r9, #0 - bne .L767 + bne .L782 ldrh r0, [r6, sl] cmp r0, #0 - beq .L767 + beq .L782 mov r1, #1 bl FtlFreeSysBlkQueueIn strh r9, [r6, sl] @ movhi ldrh r3, [r4, #8] sub r3, r3, #1 strh r3, [r4, #8] @ movhi -.L767: +.L782: add r7, r7, #1 uxth r7, r7 -.L765: +.L780: ldrh r3, [r4, #10] cmp r3, r7 - bhi .L768 + bhi .L783 mov r0, r8 ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L771: +.L786: .align 2 -.L770: +.L785: .word .LANCHOR0 .fnend .size ftl_free_no_use_map_blk, .-ftl_free_no_use_map_blk @@ -6566,28 +6683,29 @@ FtlFreeSysBlkQueueInit: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L773 - movw r2, #4058 + ldr r3, .L788 + movw r2, #4062 stmfd sp!, {r4, lr} .save {r4, lr} mov r4, #0 strh r4, [r3, r2] @ movhi - add r2, r2, #2 - mov r1, r4 + mov r2, #4064 strh r4, [r3, r2] @ movhi add r2, r2, #2 + mov r1, r4 strh r4, [r3, r2] @ movhi - movw r2, #4056 + movw r2, #4060 strh r0, [r3, r2] @ movhi - add r0, r3, #4064 mov r2, #2048 + ldr r0, .L788+4 bl ftl_memset mov r0, r4 ldmfd sp!, {r4, pc} -.L774: +.L789: .align 2 -.L773: +.L788: .word .LANCHOR0 + .word .LANCHOR0+4068 .fnend .size FtlFreeSysBlkQueueInit, .-FtlFreeSysBlkQueueInit .align 2 @@ -6598,10 +6716,10 @@ FtlBbtMemInit: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L776 - movw r2, #3980 + ldr r3, .L791 + mov r2, #3984 mvn r1, #0 - ldr r0, .L776+4 + ldr r0, .L791+4 strh r1, [r3, r2] @ movhi add r2, r2, #6 mov r1, #0 @@ -6609,11 +6727,11 @@ FtlBbtMemInit: mov r1, #255 mov r2, #16 b ftl_memset -.L777: +.L792: .align 2 -.L776: +.L791: .word .LANCHOR0 - .word .LANCHOR0+3992 + .word .LANCHOR0+3996 .fnend .size FtlBbtMemInit, .-FtlBbtMemInit .align 2 @@ -6623,8 +6741,8 @@ FtlBbt2Bitmap: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L782 - ldr r2, .L782+4 + ldr r3, .L797 + ldr r2, .L797+4 stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} mov r5, r0 @@ -6637,7 +6755,7 @@ FtlBbt2Bitmap: mov r3, #0 movw ip, #65535 mov r0, #1 -.L780: +.L795: ldrh r2, [r5, r3] cmp r2, ip ldmeqfd sp!, {r4, r5, r6, pc} @@ -6648,12 +6766,12 @@ FtlBbt2Bitmap: ldr r6, [r4, r1, asl #2] orr r2, r6, r0, asl r2 str r2, [r4, r1, asl #2] - bne .L780 + bne .L795 ldmfd sp!, {r4, r5, r6, pc} -.L783: +.L798: .align 2 -.L782: - .word -1024 +.L797: + .word -1016 .word .LANCHOR2 .fnend .size FtlBbt2Bitmap, .-FtlBbt2Bitmap @@ -6667,55 +6785,55 @@ FtlVariablesInit: stmfd sp!, {r3, r4, r5, r6, r7, lr} .save {r3, r4, r5, r6, r7, lr} mvn r3, #0 - ldr r6, .L785 + ldr r6, .L800 mov r4, #0 - ldr r2, .L785+4 + ldr r2, .L800+4 mov r1, r4 - ldr r5, .L785+8 - movw r7, #3858 - str r3, [r6, #-1004] + ldr r5, .L800+8 + movw r7, #3862 + str r3, [r6, #-996] strh r3, [r6, r2] @ movhi - movw r3, #3962 + movw r3, #3966 strh r4, [r5, r3] @ movhi - mov r3, #3936 + movw r3, #3940 ldrh r2, [r5, r3] - ldr r0, [r5, #3964] - str r4, [r6, #-1020] - mov r2, r2, asl #1 + ldr r0, [r5, #3968] str r4, [r6, #-1012] - str r4, [r6, #-1008] - str r4, [r5, #3840] + mov r2, r2, asl #1 + str r4, [r6, #-1004] + str r4, [r6, #-1000] + str r4, [r5, #3844] bl ftl_memset ldrh r2, [r5, r7] mov r1, r4 - ldr r0, [r5, #4048] + ldr r0, [r5, #4052] mov r2, r2, asl #1 bl ftl_memset ldrh r2, [r5, r7] mov r1, r4 - ldr r0, [r6, #-1000] + ldr r0, [r6, #-992] mov r2, r2, asl #1 bl ftl_memset mov r1, r4 mov r2, #48 - ldr r0, .L785+12 + ldr r0, .L800+12 bl ftl_memset mov r1, r4 mov r2, #512 - ldr r0, .L785+16 + ldr r0, .L800+16 bl ftl_memset bl FtlGcBufInit bl FtlL2PDataInit mov r0, r4 ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L786: +.L801: .align 2 -.L785: +.L800: .word .LANCHOR2 - .word -1016 + .word -1008 .word .LANCHOR0 - .word .LANCHOR2-2072 - .word .LANCHOR2-1708 + .word .LANCHOR2-2068 + .word .LANCHOR2-1700 .fnend .size FtlVariablesInit, .-FtlVariablesInit .align 2 @@ -6728,162 +6846,162 @@ FtlMemInit: stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, lr} .save {r4, r5, r6, r7, r8, r9, sl, lr} mov r6, #0 - ldr r4, .L818 + ldr r4, .L833 mov r0, #1024 - ldr r3, .L818+4 + ldr r3, .L833+4 mov r7, #12 - ldr r2, .L818+8 - movw sl, #3848 - ldr r5, .L818+12 + ldr r2, .L833+8 + movw sl, #3852 + ldr r5, .L833+12 mov r8, #36 strh r6, [r4, r3] @ movhi movw r3, #65535 - str r3, [r4, #-988] + str r3, [r4, #-980] mvn r3, #0 strh r3, [r4, r2] @ movhi add r2, r2, #2 - str r6, [r4, #-996] + str r6, [r4, #-988] strh r3, [r4, r2] @ movhi add r2, r2, #2 - str r6, [r4, #-1712] + str r6, [r4, #-1704] strh r3, [r4, r2] @ movhi add r2, r2, #2 - str r6, [r4, #-1804] + str r6, [r4, #-1800] strh r3, [r4, r2] @ movhi mov r2, #32 - ldr r3, .L818+16 - str r6, [r4, #-1800] - str r6, [r4, #-1816] + ldr r3, .L833+16 + str r6, [r4, #-1796] + str r6, [r4, #-1812] strh r2, [r4, r3] @ movhi add r3, r3, #2 mov r2, #128 - str r6, [r4, #-1828] + str r6, [r4, #-1824] strh r2, [r4, r3] @ movhi add r3, r3, #6 - str r6, [r4, #-1832] + str r6, [r4, #-1828] strh r6, [r4, r3] @ movhi add r3, r3, #54 - str r6, [r4, #-1824] + str r6, [r4, #-1820] strh r6, [r4, r3] @ movhi add r3, r3, #158 - str r6, [r4, #-1820] + str r6, [r4, #-1816] strh r6, [r4, r3] @ movhi sub r3, r3, #122 - str r6, [r4, #-1836] + str r6, [r4, #-1832] strh r6, [r4, r3] @ movhi - movw r3, #3922 + movw r3, #3924 ldrh r1, [r5, r3] - str r6, [r4, #-1796] str r6, [r4, #-1792] - str r6, [r5, #4052] - str r6, [r4, #-1784] + str r6, [r4, #-1788] + str r6, [r5, #4056] str r6, [r4, #-1780] - str r6, [r4, #-992] - str r6, [r4, #-1184] + str r6, [r4, #-1776] str r6, [r4, #-984] - str r6, [r4, #-1192] - str r6, [r4, #-980] + str r6, [r4, #-1176] + str r6, [r4, #-976] + str r6, [r4, #-1184] + str r6, [r4, #-972] bl __aeabi_idiv - movw r3, #3848 + movw r3, #3852 ldrh r3, [r5, r3] - str r6, [r5, #3968] - mov r6, #3920 + str r6, [r5, #3972] + movw r6, #3922 mov r3, r3, asl #2 cmp r0, r3 - str r0, [r4, #-972] + str r0, [r4, #-964] ldrh r0, [r5, r6] - strhi r3, [r4, #-972] - ldr r4, .L818 + strhi r3, [r4, #-964] + ldr r4, .L833 mov r0, r0, asl #1 bl ftl_malloc - str r0, [r4, #-1152] + str r0, [r4, #-1144] ldrh r0, [r5, r6] mul r0, r7, r0 bl ftl_malloc ldrh r6, [r5, sl] mul r6, r8, r6 mov r9, r6, asl #3 - str r0, [r4, #-1148] + str r0, [r4, #-1140] mov r0, r9 bl ftl_malloc - str r0, [r4, #-968] + str r0, [r4, #-960] mov r0, r6 bl ftl_malloc - str r0, [r4, #-964] + str r0, [r4, #-956] mov r0, r9 bl ftl_malloc - str r0, [r4, #-960] + str r0, [r4, #-952] mov r0, r6 bl ftl_malloc - str r0, [r5, #4044] + str r0, [r5, #4048] mov r0, r6 bl ftl_malloc - str r0, [r4, #-1164] - ldr r0, [r4, #-972] + str r0, [r4, #-1156] + ldr r0, [r4, #-964] mul r0, r8, r0 bl ftl_malloc - movw r8, #3926 + movw r8, #3928 ldrh r3, [r5, sl] ldrh r6, [r5, r8] mov r3, r3, asl #1 add r3, r3, #1 - str r3, [r4, #-1160] - str r0, [r5, #3972] + str r3, [r4, #-1152] + str r0, [r5, #3976] mov r0, r6 bl ftl_malloc - str r0, [r4, #-956] + str r0, [r4, #-948] mov r0, r6 bl ftl_malloc - str r0, [r4, #-952] + str r0, [r4, #-944] mov r0, r6 bl ftl_malloc - str r0, [r4, #-948] - ldr r0, [r4, #-1160] + str r0, [r4, #-940] + ldr r0, [r4, #-1152] mul r0, r0, r6 bl ftl_malloc - str r0, [r4, #-1172] - ldr r0, [r4, #-972] + str r0, [r4, #-1164] + ldr r0, [r4, #-964] mul r0, r0, r6 bl ftl_malloc - str r0, [r4, #-944] + str r0, [r4, #-936] mov r0, r6 bl ftl_malloc - str r0, [r4, #-940] + str r0, [r4, #-932] mov r0, r6 bl ftl_malloc - movw r6, #3928 - str r0, [r4, #-936] - ldr r0, [r4, #-1160] + movw r6, #3930 + str r0, [r4, #-928] + ldr r0, [r4, #-1152] mul r0, r7, r0 bl ftl_malloc ldrh r3, [r5, r6] ldrh sl, [r5, sl] mul sl, sl, r3 - str r0, [r4, #-1176] + str r0, [r4, #-1168] mov r0, sl bl ftl_malloc - str r0, [r4, #-932] + str r0, [r4, #-924] mov r0, sl, asl #3 bl ftl_malloc ldrh r3, [r5, r6] - ldr sl, .L818+20 - str r0, [r4, #-928] - ldr r0, [r4, #-1160] + ldr sl, .L833+20 + str r0, [r4, #-920] + ldr r0, [r4, #-1152] mul r0, r0, r3 bl ftl_malloc ldrh r3, [r5, r6] - movw r6, #3858 - str r0, [r4, #-1168] - ldr r0, [r4, #-972] + movw r6, #3862 + str r0, [r4, #-1160] + ldr r0, [r4, #-964] mul r0, r0, r3 bl ftl_malloc - str r0, [r4, #-924] + str r0, [r4, #-916] ldrh r0, [r5, r6] mov r0, r0, asl #1 uxth r0, r0 strh r0, [r4, sl] @ movhi bl ftl_malloc - str r0, [r4, #-1000] + str r0, [r4, #-992] ldrh r0, [r4, sl] add r0, r0, #544 add r0, r0, #3 @@ -6893,261 +7011,261 @@ FtlMemInit: bl ftl_malloc ldrh sl, [r5, r6] mov sl, sl, asl #1 - str r0, [r4, #-916] + str r0, [r4, #-908] add r0, r0, #32 - str r0, [r5, #4048] + str r0, [r5, #4052] mov r0, sl bl ftl_malloc - str r0, [r4, #-912] + str r0, [r4, #-904] mov r0, sl bl ftl_malloc - ldr sl, [r5, #3944] + ldr sl, [r5, #3948] mov sl, sl, asl #1 - str r0, [r4, #-2016] + str r0, [r4, #-2012] mov r0, sl bl ftl_malloc - str r0, [r4, #-1036] + str r0, [r4, #-1028] mov r0, sl bl ftl_malloc - mov sl, #3936 - str r0, [r4, #-1092] + movw sl, #3940 + str r0, [r4, #-1084] ldrh r0, [r5, r6] mov r0, r0, lsr #3 add r0, r0, #4 bl ftl_malloc - str r0, [r4, #-1840] + str r0, [r4, #-1836] ldrh r0, [r5, sl] mov r0, r0, asl #1 bl ftl_malloc - str r0, [r5, #3964] + str r0, [r5, #3968] ldrh r0, [r5, sl] mov r0, r0, asl #1 bl ftl_malloc - str r0, [r4, #-908] + str r0, [r4, #-900] ldrh r0, [r5, sl] add sl, sl, #2 mov r0, r0, asl #2 bl ftl_malloc - str r0, [r4, #-904] + str r0, [r4, #-896] ldrh r0, [r5, sl] mov r0, r0, asl #2 bl ftl_malloc ldrh r2, [r5, sl] mov r1, #0 mov r2, r2, asl #2 - str r0, [r4, #-900] + str r0, [r4, #-892] bl ftl_memset - mov r3, #3952 + movw r3, #3956 ldrh sl, [r5, r3] mov sl, sl, asl #2 mov r0, sl bl ftl_malloc - str r0, [r4, #-1028] + str r0, [r4, #-1020] mov r0, sl bl ftl_malloc - movw sl, #3954 - str r0, [r4, #-896] - ldr r0, [r5, #3944] + movw sl, #3958 + str r0, [r4, #-888] + ldr r0, [r5, #3948] mov r0, r0, asl #2 bl ftl_malloc - str r0, [r4, #-1032] + str r0, [r4, #-1024] ldrh r0, [r5, sl] mul r0, r7, r0 bl ftl_malloc ldrh r3, [r5, sl] - movw r7, #3870 - str r0, [r4, #-1852] + movw r7, #3874 + str r0, [r4, #-1848] ldrh r0, [r5, r8] mul r0, r0, r3 bl ftl_malloc ldrh r3, [r5, r6] - ldr r6, .L818+24 - str r0, [r4, #-1088] + ldr r6, .L833+24 + str r0, [r4, #-1080] mov r0, #6 mul r0, r0, r3 bl ftl_malloc - movw r3, #3912 + movw r3, #3916 ldrh r3, [r5, r3] ldrh r2, [r5, r7] add r3, r3, #31 mov r3, r3, lsr #5 strh r3, [r4, r6] @ movhi mul r3, r2, r3 - str r0, [r4, #-2024] + str r0, [r4, #-2020] mov r0, r3, asl #2 bl ftl_malloc ldrh r1, [r4, r6] mov r3, #1 - ldr ip, .L818+12 + ldr ip, .L833+12 mov r1, r1, asl #2 mov r2, r1 - str r0, [r5, #4008] + str r0, [r5, #4012] ldrh r5, [r5, r7] - ldr r0, .L818+28 - b .L789 -.L790: - ldr r4, [ip, #4008] + ldr r0, .L833+28 + b .L804 +.L805: + ldr r4, [ip, #4012] add r3, r3, #1 add r4, r4, r2 add r2, r2, r1 str r4, [r0, #4]! -.L789: +.L804: cmp r3, r5 - bcc .L790 - ldr r0, .L818+32 + bcc .L805 + ldr r0, .L833+32 mov r2, #0 mov r1, r2 add r0, r0, r3, asl #2 - b .L791 -.L792: + b .L806 +.L807: add ip, r0, r2 add r3, r3, #1 add r2, r2, #4 str r1, [ip, #28] -.L791: +.L806: cmp r3, #7 - bls .L792 - ldr r3, .L818 - ldr r2, [r3, #-1036] + bls .L807 + ldr r3, .L833 + ldr r2, [r3, #-1028] cmp r2, #0 - beq .L817 -.L793: - ldr r2, [r3, #-1092] + beq .L832 +.L808: + ldr r2, [r3, #-1084] cmp r2, #0 - beq .L817 -.L795: - ldr r2, [r3, #-1028] + beq .L832 +.L810: + ldr r2, [r3, #-1020] cmp r2, #0 - beq .L817 -.L796: - ldr r2, [r3, #-1032] + beq .L832 +.L811: + ldr r2, [r3, #-1024] cmp r2, #0 - beq .L817 -.L797: - ldr r2, [r3, #-1852] + beq .L832 +.L812: + ldr r2, [r3, #-1848] cmp r2, #0 - beq .L817 -.L798: - ldr r2, [r3, #-1088] + beq .L832 +.L813: + ldr r2, [r3, #-1080] cmp r2, #0 - beq .L817 -.L799: - ldr r2, [r3, #-2024] + beq .L832 +.L814: + ldr r2, [r3, #-2020] cmp r2, #0 - beq .L817 -.L800: - ldr r2, .L818+12 - ldr r2, [r2, #4008] + beq .L832 +.L815: + ldr r2, .L833+12 + ldr r2, [r2, #4012] cmp r2, #0 - beq .L817 -.L801: - ldr r3, [r3, #-2016] + beq .L832 +.L816: + ldr r3, [r3, #-2012] cmp r3, #0 - beq .L817 -.L802: - ldr r3, .L818 - ldr r2, [r3, #-1152] - cmp r2, #0 - beq .L817 - ldr r2, [r3, #-1148] + beq .L832 +.L817: + ldr r3, .L833 + ldr r2, [r3, #-1144] cmp r2, #0 - beq .L817 -.L804: - ldr r2, [r3, #-968] + beq .L832 + ldr r2, [r3, #-1140] cmp r2, #0 - beq .L817 + beq .L832 +.L819: ldr r2, [r3, #-960] cmp r2, #0 - beq .L817 - ldr r2, .L818+12 - ldr r2, [r2, #4044] + beq .L832 + ldr r2, [r3, #-952] cmp r2, #0 - beq .L817 - ldr r2, [r3, #-1164] + beq .L832 + ldr r2, .L833+12 + ldr r2, [r2, #4048] cmp r2, #0 - beq .L817 - ldr r2, [r3, #-964] + beq .L832 + ldr r2, [r3, #-1156] cmp r2, #0 - beq .L817 -.L806: + beq .L832 ldr r2, [r3, #-956] cmp r2, #0 - beq .L817 - ldr r2, [r3, #-952] - cmp r2, #0 - beq .L817 - ldr r3, [r3, #-948] - cmp r3, #0 - beq .L817 - ldr r3, .L818 - ldr r2, [r3, #-1172] - cmp r2, #0 - beq .L817 - ldr r2, [r3, #-940] + beq .L832 +.L821: + ldr r2, [r3, #-948] cmp r2, #0 - beq .L817 - ldr r2, [r3, #-936] + beq .L832 + ldr r2, [r3, #-944] cmp r2, #0 - beq .L817 - ldr r2, [r3, #-1176] + beq .L832 + ldr r3, [r3, #-940] + cmp r3, #0 + beq .L832 + ldr r3, .L833 + ldr r2, [r3, #-1164] cmp r2, #0 - beq .L817 -.L808: + beq .L832 ldr r2, [r3, #-932] cmp r2, #0 - beq .L817 + beq .L832 ldr r2, [r3, #-928] cmp r2, #0 - beq .L817 + beq .L832 ldr r2, [r3, #-1168] cmp r2, #0 - beq .L817 -.L810: - ldr r2, .L818+12 - ldr r1, [r2, #4048] + beq .L832 +.L823: + ldr r2, [r3, #-924] + cmp r2, #0 + beq .L832 + ldr r2, [r3, #-920] + cmp r2, #0 + beq .L832 + ldr r2, [r3, #-1160] + cmp r2, #0 + beq .L832 +.L825: + ldr r2, .L833+12 + ldr r1, [r2, #4052] cmp r1, #0 - beq .L817 - ldr r3, [r3, #-1000] + beq .L832 + ldr r3, [r3, #-992] cmp r3, #0 - beq .L817 -.L812: - ldr r3, [r2, #3964] + beq .L832 +.L827: + ldr r3, [r2, #3968] cmp r3, #0 - beq .L817 -.L813: - ldr r3, .L818 - ldr r2, [r3, #-908] + beq .L832 +.L828: + ldr r3, .L833 + ldr r2, [r3, #-900] cmp r2, #0 - beq .L817 -.L814: - ldr r2, [r3, #-904] + beq .L832 +.L829: + ldr r2, [r3, #-896] cmp r2, #0 - beq .L817 -.L815: - ldr r3, [r3, #-900] + beq .L832 +.L830: + ldr r3, [r3, #-892] cmp r3, #0 - bne .L816 -.L817: - ldr r0, .L818+36 - ldr r1, .L818+40 + bne .L831 +.L832: + ldr r0, .L833+36 + ldr r1, .L833+40 bl printk mvn r0, #0 ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, pc} -.L816: +.L831: mov r0, #0 ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, pc} -.L819: +.L834: .align 2 -.L818: +.L833: .word .LANCHOR2 - .word -1096 - .word -1142 + .word -1088 + .word -1134 .word .LANCHOR0 - .word -1196 - .word -920 - .word -1024 - .word .LANCHOR0+4008 - .word .LANCHOR0+3980 + .word -1188 + .word -912 + .word -1016 + .word .LANCHOR0+4012 + .word .LANCHOR0+3984 .word .LC84 .word .LANCHOR3 .fnend @@ -7165,7 +7283,7 @@ ftl_read_flash_info: mov r2, #11 mov r4, r0 bl ftl_memset - ldr r3, .L823 + ldr r3, .L838 ldr r2, [r3, #3624] ldr r1, [r3, #856] ldrb r2, [r2, #9] @ zero_extendqisi2 @@ -7175,9 +7293,9 @@ ftl_read_flash_info: strb r2, [r4, #4] mov r2, r2, lsr #8 strb r2, [r4, #5] - ldrb r2, [r3, #3836] @ zero_extendqisi2 + ldrb r2, [r3, #3840] @ zero_extendqisi2 strb r2, [r4, #7] - ldr r2, [r3, #3956] + ldr r2, [r3, #3960] ubfx r0, r2, #8, #8 strb r0, [r4, #1] strb r2, [r4, #0] @@ -7196,22 +7314,22 @@ ftl_read_flash_info: strb r1, [r4, #10] strb r2, [r4, #9] mov r2, #1 - ldr r1, .L823+4 - b .L821 -.L822: + ldr r1, .L838+4 + b .L836 +.L837: ldrb r5, [r3, r1] @ zero_extendqisi2 add r3, r3, #1 ldrb ip, [r4, #10] @ zero_extendqisi2 orr ip, ip, r2, asl r5 strb ip, [r4, #10] -.L821: +.L836: uxtb ip, r3 cmp ip, r0 - bcc .L822 + bcc .L837 ldmfd sp!, {r3, r4, r5, pc} -.L824: +.L839: .align 2 -.L823: +.L838: .word .LANCHOR0 .word .LANCHOR0+3764 .fnend @@ -7223,50 +7341,40 @@ FlashDieInfoInit: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r1, .L837 - mov r2, #0 stmfd sp!, {r3, r4, r5, r6, r7, r8, sl, lr} .save {r3, r4, r5, r6, r7, r8, sl, lr} - ldr r3, .L837+4 - strb r2, [r1, #-892] - ldr r1, .L837+8 - strb r2, [r3, #3762] - movw r2, #2998 - ldrh r2, [r1, r2] - cmp r2, #256 - str r2, [r3, #856] - movhi r2, #512 - bhi .L836 - cmp r2, #128 - bls .L827 - mov r2, #256 -.L836: - str r2, [r3, #856] -.L827: - mov r1, #0 + mov r4, #0 + ldr r3, .L849 + mov r6, r4 + ldr r2, .L849+4 + ldr r5, .L849+8 + strb r4, [r3, #-884] + movw r3, #3126 + ldrh r0, [r2, r3] + add r7, r5, #2976 + strb r4, [r5, #3762] + bl FlashBlockAlignInit + mov r1, r4 mov r2, #8 - ldr r0, .L837+12 - mov r6, #0 + ldr r0, .L849+12 + mov r8, r7 bl ftl_memset - mov r1, #0 + mov r1, r4 mov r2, #32 - ldr r0, .L837+16 + ldr r0, .L849+16 bl ftl_memset - ldr r0, .L837+20 - mov r1, #0 + ldr r0, .L849+20 + mov r1, r4 mov r2, #128 bl ftl_memset - ldr r7, .L837+24 - ldr r5, .L837+4 - mov r8, r7 -.L829: +.L842: ldr r4, [r5, #3624] mov r1, r8 add r0, r4, #1 ldrb r2, [r4, #0] @ zero_extendqisi2 bl FlashMemCmp8 cmp r0, #0 - bne .L828 + bne .L841 ldrb r3, [r5, #3762] @ zero_extendqisi2 add r2, r5, r3, asl #2 str r0, [r2, #3588] @@ -7274,28 +7382,28 @@ FlashDieInfoInit: add r3, r3, #1 strb r3, [r5, #3762] strb r6, [r2, #3764] -.L828: +.L841: add r6, r6, #1 add r8, r8, #8 cmp r6, #4 - bne .L829 - ldr r5, .L837+4 - ldr r3, .L837 + bne .L842 + ldr r5, .L849+8 + ldr r3, .L849 ldrb r2, [r5, #3762] @ zero_extendqisi2 - strb r2, [r3, #-892] + strb r2, [r3, #-884] ldrb r3, [r4, #8] @ zero_extendqisi2 cmp r3, #2 - bne .L830 + bne .L843 add sl, r4, #1 mov r6, #0 mov r8, r5 -.L833: +.L846: mov r0, sl mov r1, r7 ldrb r2, [r4, #0] @ zero_extendqisi2 bl FlashMemCmp8 cmp r0, #0 - bne .L831 + bne .L844 ldrb r1, [r4, #13] @ zero_extendqisi2 ldr r0, [r5, #856] ldrb r3, [r5, #3762] @ zero_extendqisi2 @@ -7313,33 +7421,32 @@ FlashDieInfoInit: add r3, r3, #1 strb r3, [r8, #3762] strb r6, [r2, #3764] -.L831: +.L844: add r6, r6, #1 add r7, r7, #8 cmp r6, #4 - bne .L833 -.L830: - ldr r3, .L837+4 + bne .L846 +.L843: + ldr r3, .L849+8 ldrb r1, [r4, #13] @ zero_extendqisi2 - ldr r2, .L837 + ldr r2, .L849 ldrb r3, [r3, #3762] @ zero_extendqisi2 mul r1, r1, r3 ldrh r3, [r4, #14] mul r1, r3, r1 - ldr r3, .L837+28 + ldr r3, .L849+24 strh r1, [r2, r3] @ movhi ldmfd sp!, {r3, r4, r5, r6, r7, r8, sl, pc} -.L838: +.L850: .align 2 -.L837: +.L849: .word .LANCHOR2 - .word .LANCHOR0 .word .LANCHOR1 + .word .LANCHOR0 .word .LANCHOR0+3764 .word .LANCHOR0+3588 .word .LANCHOR0+3628 - .word .LANCHOR0+2980 - .word -890 + .word -882 .fnend .size FlashDieInfoInit, .-FlashDieInfoInit .align 2 @@ -7353,85 +7460,85 @@ BuildFlashLsbPageTable: stmfd sp!, {r4, lr} .save {r4, lr} mov r4, r1 - bne .L840 - ldr r3, .L879 -.L841: + bne .L852 + ldr r3, .L894 +.L853: strh r0, [r3, #2]! @ movhi add r0, r0, #1 uxth r0, r0 cmp r0, #256 - bne .L841 - b .L842 -.L840: + bne .L853 + b .L854 +.L852: cmp r0, #1 - bne .L843 - ldr r0, .L879+4 + bne .L855 + ldr r0, .L894+4 mov r2, #0 mov r3, r2 -.L846: +.L858: uxth r1, r3 cmp r1, #3 - bls .L844 + bls .L856 tst r3, #1 moveq r1, #2 movne r1, #3 rsb r1, r1, r2 uxth r1, r1 -.L844: +.L856: add r3, r3, #1 strh r1, [r2, r0] @ movhi cmp r3, #256 add r2, r2, #2 - bne .L846 - b .L842 -.L843: + bne .L858 + b .L854 +.L855: cmp r0, #2 - bne .L847 + bne .L859 mov r3, #0 - ldr r0, .L879 + ldr r0, .L894 movw r2, #65535 mov r1, r3 - b .L878 -.L850: + b .L893 +.L862: cmp r3, #1 movls r1, r3 movhi r1, r2 -.L878: +.L893: add r3, r3, #1 add r2, r2, #2 strh r1, [r0, #2]! @ movhi uxth r3, r3 uxth r2, r2 cmp r3, #256 - bne .L850 - b .L842 -.L847: + bne .L862 + b .L854 +.L859: cmp r0, #3 - bne .L851 - ldr r0, .L879+4 + bne .L863 + ldr r0, .L894+4 mov r2, #0 mov r3, r2 -.L854: +.L866: uxth r1, r3 cmp r1, #5 - bls .L852 + bls .L864 tst r3, #1 moveq r1, #4 movne r1, #5 rsb r1, r1, r2 uxth r1, r1 -.L852: +.L864: add r3, r3, #1 strh r1, [r2, r0] @ movhi cmp r3, #256 add r2, r2, #2 - bne .L854 - b .L842 -.L851: + bne .L866 + b .L854 +.L863: cmp r0, #4 mov r2, #0 - bne .L855 - ldr r3, .L879+8 + bne .L867 + ldr r3, .L894+8 movw r1, #3076 strh r2, [r3, r1] @ movhi movw r2, #3078 @@ -7447,7 +7554,7 @@ BuildFlashLsbPageTable: mov r1, #5 strh r0, [r3, r2] @ movhi add r2, r2, #2 - ldr r0, .L879+12 + ldr r0, .L894+12 strh r1, [r3, r2] @ movhi mov r2, #3088 mov r1, #7 @@ -7457,7 +7564,7 @@ BuildFlashLsbPageTable: strh r1, [r3, r2] @ movhi mov r2, #16 mov r3, r1 -.L857: +.L869: tst r3, #1 add r3, r3, #1 moveq r1, #6 @@ -7467,78 +7574,101 @@ BuildFlashLsbPageTable: add r2, r2, #2 strh r1, [r0, #2]! @ movhi uxth r2, r2 - bne .L857 - b .L842 -.L855: + bne .L869 + b .L854 +.L867: cmp r0, #5 - bne .L858 - ldr r1, .L879 + bne .L870 + ldr r1, .L894 mov r3, r2 -.L859: +.L871: strh r3, [r1, #2]! @ movhi add r3, r3, #1 uxth r3, r3 cmp r3, #16 - bne .L859 - ldr r2, .L879+16 -.L860: + bne .L871 + ldr r2, .L894+16 +.L872: strh r3, [r2, #2]! @ movhi add r3, r3, #2 uxth r3, r3 cmp r3, #496 - bne .L860 - b .L842 -.L858: + bne .L872 + b .L854 +.L870: cmp r0, #6 - bne .L842 - ldr r0, .L879 + bne .L873 + ldr r0, .L894 mov r3, r2 -.L863: +.L876: uxth r1, r3 cmp r1, #5 - bls .L861 + bls .L874 tst r3, #1 moveq r1, #10 movne r1, #12 rsb r1, r1, r2 uxth r1, r1 -.L861: +.L874: add r3, r3, #1 add r2, r2, #3 cmp r3, #256 strh r1, [r0, #2]! @ movhi uxth r2, r2 - bne .L863 -.L842: + bne .L876 + b .L854 +.L873: + cmp r0, #9 + bne .L854 + ldr r3, .L894+8 + movw r1, #3076 + strh r2, [r3, r1] @ movhi + movw r2, #3078 + mov r1, #1 + strh r1, [r3, r2] @ movhi + mov r1, #2 + add r2, r2, r1 + strh r1, [r3, r2] @ movhi + mov r3, #3 + ldr r2, .L894+20 + movw r1, #509 +.L877: + strh r3, [r2, #2]! @ movhi + add r3, r3, #2 + uxth r3, r3 + cmp r3, r1 + bne .L877 +.L854: mov r2, #1024 - ldr r0, .L879+20 + ldr r0, .L894+24 mov r1, #255 uxth r4, r4 bl ftl_memset - ldr r2, .L879 + ldr r2, .L894 mov r3, #0 - ldr r0, .L879+24 - b .L864 -.L865: + ldr r0, .L894+28 + b .L878 +.L879: ldrh r1, [r2, #2]! add r3, r3, #1 uxth r3, r3 add ip, r0, r1, asl #1 - sub ip, ip, #888 + sub ip, ip, #880 strh r1, [ip, #0] @ movhi -.L864: +.L878: cmp r3, r4 - bcc .L865 + bcc .L879 ldmfd sp!, {r4, pc} -.L880: +.L895: .align 2 -.L879: +.L894: .word .LANCHOR0+3074 .word .LANCHOR0+3076 .word .LANCHOR0 .word .LANCHOR0+3090 .word .LANCHOR0+3106 - .word .LANCHOR2-888 + .word .LANCHOR0+3080 + .word .LANCHOR2-880 .word .LANCHOR2 .fnend .size BuildFlashLsbPageTable, .-BuildFlashLsbPageTable @@ -7564,15 +7694,15 @@ ftl_memcpy32: stmfd sp!, {r4, lr} .save {r4, lr} mov ip, r3 - b .L883 -.L884: + b .L898 +.L899: ldr r4, [r1, r3] add ip, ip, #1 str r4, [r0, r3] add r3, r3, #4 -.L883: +.L898: cmp ip, r2 - bne .L884 + bne .L899 ldmfd sp!, {r4, pc} .fnend .size ftl_memcpy32, .-ftl_memcpy32 @@ -7588,36 +7718,6 @@ ftl_memcmp: .fnend .size ftl_memcmp, .-ftl_memcmp .align 2 - .global js_hash - .type js_hash, %function -js_hash: - .fnstart - @ args = 0, pretend = 0, frame = 0 - @ frame_needed = 0, uses_anonymous_args = 0 - mov r3, r0 - mov r2, #0 - stmfd sp!, {r4, lr} - .save {r4, lr} - ldr r0, .L889 - b .L887 -.L888: - mov ip, r0, asl #5 - ldrb r4, [r3, r2] @ zero_extendqisi2 - add ip, ip, r0, lsr #2 - add r2, r2, #1 - add ip, ip, r4 - eor r0, r0, ip -.L887: - cmp r2, r1 - bne .L888 - ldmfd sp!, {r4, pc} -.L890: - .align 2 -.L889: - .word 1204201446 - .fnend - .size js_hash, .-js_hash - .align 2 .global timer_get_time .type timer_get_time, %function timer_get_time: @@ -7625,12 +7725,12 @@ timer_get_time: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L892 + ldr r3, .L902 ldr r0, [r3, #0] b jiffies_to_msecs -.L893: +.L903: .align 2 -.L892: +.L902: .word jiffies .fnend .size timer_get_time, .-timer_get_time @@ -7644,19 +7744,19 @@ FlashSramLoadStore: stmfd sp!, {r4, lr} .save {r4, lr} cmp r2, #0 - ldr r4, .L897 + ldr r4, .L907 mov ip, r0 mov r2, r3 - ldr r4, [r4, #136] + ldr r4, [r4, #144] add r4, r4, #4096 add r1, r4, r1 movne r0, r1 movne r1, ip ldmfd sp!, {r4, lr} b memcpy -.L898: +.L908: .align 2 -.L897: +.L907: .word .LANCHOR2 .fnend .size FlashSramLoadStore, .-FlashSramLoadStore @@ -7701,12 +7801,12 @@ rk_ftl_get_capacity: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L903 - ldr r0, [r3, #3956] + ldr r3, .L913 + ldr r0, [r3, #3960] bx lr -.L904: +.L914: .align 2 -.L903: +.L913: .word .LANCHOR0 .fnend .size rk_ftl_get_capacity, .-rk_ftl_get_capacity @@ -7759,47 +7859,47 @@ rknand_print_hex: mov r7, r2 mov sl, r3 mov r4, r5 - b .L909 -.L915: + b .L919 +.L925: cmp r5, #0 - bne .L910 - ldr r0, .L917 + bne .L920 + ldr r0, .L927 mov r1, r8 mov r2, r6 mov r3, r4 bl printk -.L910: +.L920: cmp r7, #4 - ldreq r0, .L917+4 + ldreq r0, .L927+4 ldreq r1, [r6, r4, asl #2] - beq .L916 + beq .L926 cmp r7, #2 moveq r3, r4, asl #1 - ldreq r0, .L917+4 + ldreq r0, .L927+4 ldreqsh r1, [r6, r3] - ldrne r0, .L917+4 + ldrne r0, .L927+4 ldrneb r1, [r6, r4] @ zero_extendqisi2 -.L916: +.L926: add r5, r5, #1 bl printk cmp r5, #15 - bls .L914 - ldr r0, .L917+8 + bls .L924 + ldr r0, .L927+8 mov r5, #0 - ldr r1, .L917+12 + ldr r1, .L927+12 bl printk -.L914: +.L924: add r4, r4, #1 -.L909: +.L919: cmp r4, sl - bne .L915 - ldr r0, .L917+8 - ldr r1, .L917+12 + bne .L925 + ldr r0, .L927+8 + ldr r1, .L927+12 ldmfd sp!, {r3, r4, r5, r6, r7, r8, sl, lr} b printk -.L918: +.L928: .align 2 -.L917: +.L927: .word .LC85 .word .LC86 .word .LC77 @@ -7815,15 +7915,15 @@ NandcXferComp: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r0, r1, r4, r5, r6, lr} .save {r0, r1, r4, r5, r6, lr} - ldr r6, .L942 + ldr r6, .L952 add r0, r6, r0, asl #3 ldr r3, [r6, #3788] ldr r4, [r0, #864] cmp r3, #3 - bls .L936 + bls .L946 ldr r3, [r4, #16] tst r3, #4 - beq .L936 + beq .L946 mov r0, r4 bl wait_for_nandc_xfer_completed ldr r5, [r4, #16] @@ -7831,130 +7931,130 @@ NandcXferComp: ands r5, r5, #2 str r3, [sp, #0] movne r5, #0 - bne .L940 - b .L941 -.L926: + bne .L950 + b .L951 +.L936: ldr r3, [r6, #3788] cmp r3, #5 - bls .L923 + bls .L933 ldr r3, [r4, #0] str r3, [sp, #4] ldr r3, [sp, #4] tst r3, #8192 - beq .L923 + beq .L933 ldr r3, [sp, #4] tst r3, #131072 - bne .L924 -.L923: + bne .L934 +.L933: add r5, r5, #1 bic r3, r5, #-16777216 cmp r3, #0 - bne .L940 + bne .L950 ldr r2, [r4, #28] mov r1, r5 ldr r3, [sp, #0] ubfx r2, r2, #16, #5 - ldr r0, .L942+4 + ldr r0, .L952+4 ubfx r3, r3, #22, #6 bl printk - ldr r0, .L942+8 + ldr r0, .L952+8 mov r1, r4 mov r2, #4 mov r3, #512 bl rknand_print_hex -.L940: +.L950: ldr r2, [r4, #28] ldr r3, [sp, #0] ubfx r2, r2, #16, #5 ubfx r3, r3, #22, #6 cmp r2, r3 - blt .L926 -.L924: - ldr r4, .L942 - ldr r3, [r4, #3820] + blt .L936 +.L934: + ldr r4, .L952 + ldr r3, [r4, #3824] cmp r3, #0 - beq .L927 + beq .L937 ldr r1, [sp, #0] mov r2, #0 - ldr r0, [r4, #3812] + ldr r0, [r4, #3816] ubfx r1, r1, #22, #5 mov r1, r1, asl #10 bl rknand_dma_unmap_single ldr r1, [sp, #0] - ldr r0, [r4, #3816] + ldr r0, [r4, #3820] mov r2, #0 ubfx r1, r1, #22, #5 mov r1, r1, asl #7 bl rknand_dma_unmap_single - b .L927 -.L930: + b .L937 +.L940: ldr r3, [r4, #8] add r5, r5, #1 str r3, [sp, #0] bic r3, r5, #-16777216 cmp r3, #0 - bne .L941 + bne .L951 ldr r2, [sp, #0] mov r1, r5 ldr r3, [r4, #28] - ldr r0, .L942+12 + ldr r0, .L952+12 ubfx r3, r3, #16, #5 bl printk - ldr r0, .L942+8 + ldr r0, .L952+8 mov r1, r4 mov r2, #4 mov r3, #512 bl rknand_print_hex -.L941: +.L951: ldr r3, [sp, #0] tst r3, #1048576 - beq .L930 - ldr r6, .L942 - ldr r3, [r6, #3828] + beq .L940 + ldr r6, .L952 + ldr r3, [r6, #3832] cmp r3, #0 - beq .L931 + beq .L941 mov r0, r4 bl NandcSendDumpDataStart -.L931: - ldr r3, [r6, #3820] - ldr r5, .L942 +.L941: + ldr r3, [r6, #3824] + ldr r5, .L952 cmp r3, #0 - beq .L932 + beq .L942 ldr r1, [sp, #0] mov r2, #1 - ldr r0, [r5, #3812] + ldr r0, [r5, #3816] ubfx r1, r1, #22, #5 mov r1, r1, asl #10 bl rknand_dma_unmap_single ldr r1, [sp, #0] - ldr r0, [r5, #3816] + ldr r0, [r5, #3820] mov r2, #1 ubfx r1, r1, #22, #5 mov r1, r1, asl #7 bl rknand_dma_unmap_single -.L932: - ldr r3, .L942 - ldr r3, [r3, #3828] +.L942: + ldr r3, .L952 + ldr r3, [r3, #3832] cmp r3, #0 - beq .L927 + beq .L937 mov r0, r4 bl NandcSendDumpDataDone -.L927: - ldr r3, .L942 +.L937: + ldr r3, .L952 mov r2, #0 - str r2, [r3, #3820] - b .L919 -.L936: + str r2, [r3, #3824] + b .L929 +.L946: ldr r3, [r4, #8] str r3, [sp, #0] ldr r3, [sp, #0] tst r3, #1048576 - beq .L936 -.L919: + beq .L946 +.L929: ldmfd sp!, {r2, r3, r4, r5, r6, pc} -.L943: +.L953: .align 2 -.L942: +.L952: .word .LANCHOR0 .word .LC88 .word .LC89 @@ -7972,7 +8072,7 @@ NandcXferData: .save {r4, r5, r6, r7, r8, r9, sl, fp, lr} mov r4, r3 mov r9, r3 - ldr r3, .L982 + ldr r3, .L992 .pad #92 sub sp, sp, #92 tst r4, #63 @@ -7982,15 +8082,15 @@ NandcXferData: mov sl, r2 ldr r5, [sp, #128] ldr r6, [r3, #864] - bne .L945 + bne .L955 cmp r5, #0 - bne .L946 + bne .L956 add r0, sp, #24 mov r1, #255 mov r2, #64 add r5, sp, #24 bl ftl_memset -.L946: +.L956: mov r0, r7 mov r1, fp mov r2, sl @@ -8001,19 +8101,19 @@ NandcXferData: bl NandcXferComp cmp fp, #0 movne r4, #0 - bne .L947 - ldr r1, .L982 + bne .L957 + ldr r1, .L992 mov r0, sl, lsr #1 mov r3, fp mov r2, fp - ldr ip, [r1, #3832] + ldr ip, [r1, #3836] mov r4, r1 cmp ip, #24 movhi ip, #128 movls ip, #64 - b .L949 -.L950: - ldr r1, [r4, #3800] + b .L959 +.L960: + ldr r1, [r4, #3804] mov r3, r3, lsr #2 add r2, r2, #1 ldr r3, [r1, r3, asl #2] @@ -8026,29 +8126,29 @@ NandcXferData: strb r3, [r5, #3] add r5, r5, #4 mov r3, r7 -.L949: +.L959: cmp r2, r0 add r7, r3, ip - ldr r1, .L982 - bcc .L950 + ldr r1, .L992 + bcc .L960 mov r3, #0 - ldr r0, [r1, #3832] + ldr r0, [r1, #3836] mov sl, sl, lsr #2 ldr r1, [r1, #3788] mov r4, r3 - b .L951 -.L957: + b .L961 +.L967: add r2, r3, #8 ldr r2, [r6, r2, asl #2] str r2, [sp, #20] ldr r2, [sp, #20] tst r2, #4 - bne .L972 + bne .L982 ldr r2, [sp, #20] ands r2, r2, #32768 - bne .L972 + bne .L982 cmp r1, #5 - bls .L953 + bls .L963 ldr r7, [sp, #20] ldr ip, [sp, #20] ldr r5, [sp, #20] @@ -8067,10 +8167,10 @@ NandcXferData: ubfxls ip, ip, #16, #5 ubfxhi r2, r2, #27, #1 ubfxls r2, r2, #29, #1 - b .L980 -.L953: + b .L990 +.L963: cmp r1, #3 - bls .L955 + bls .L965 ldr r7, [sp, #20] ldr ip, [sp, #20] ldr r5, [sp, #20] @@ -8089,31 +8189,31 @@ NandcXferData: ubfxls ip, ip, #16, #5 ubfxhi r2, r2, #28, #1 ubfxls r2, r2, #30, #1 -.L980: +.L990: orr r2, ip, r2, asl #5 -.L955: +.L965: cmp r4, r2 movcc r4, r2 - b .L952 -.L972: + b .L962 +.L982: mvn r4, #0 -.L952: +.L962: add r3, r3, #1 -.L951: +.L961: cmp r3, sl - bcs .L947 + bcs .L957 cmp r0, #0 - bne .L957 -.L947: + bne .L967 +.L957: mov r3, #0 str r3, [r6, #16] - b .L958 -.L945: + b .L968 +.L955: cmp r1, #1 mov r8, #0 - bne .L978 - b .L959 -.L962: + bne .L988 + b .L969 +.L972: cmp r5, #0 and r4, r8, #3 mov r0, r6 @@ -8137,12 +8237,12 @@ NandcXferData: mov r0, r7 bl NandcXferComp add r9, r9, #1024 -.L959: +.L969: cmp r8, sl - bcc .L962 + bcc .L972 mov r4, #0 - b .L958 -.L978: + b .L968 +.L988: mov r1, r8 mov r2, #2 mov r3, r8 @@ -8154,15 +8254,15 @@ NandcXferData: mov ip, r8 mov fp, r6 mov r6, r5 - b .L981 -.L967: + b .L991 +.L977: mov r0, r7 bl NandcXferComp ldr r3, [fp, #32] add ip, r5, #2 cmp ip, sl str r3, [sp, #20] - bcs .L964 + bcs .L974 mov r3, #0 mov r0, r7 str r3, [sp, #0] @@ -8173,11 +8273,11 @@ NandcXferData: str ip, [sp, #8] bl NandcXferStart ldr ip, [sp, #8] -.L964: +.L974: ldr r3, [sp, #20] tst r3, #4 mvnne r4, #0 - bne .L965 + bne .L975 ldr r2, [sp, #20] ldr r3, [sp, #20] ubfx r2, r2, #3, #5 @@ -8185,7 +8285,7 @@ NandcXferData: orr r3, r2, r3, asl #5 cmp r4, r3 movcc r4, r3 -.L965: +.L975: cmp r6, #0 and r2, r8, #3 mov r0, fp @@ -8200,34 +8300,34 @@ NandcXferData: str r5, [sp, #0] bl NandcCopy1KB ldr ip, [sp, #8] -.L981: +.L991: cmp ip, sl mov r5, ip - bcc .L967 + bcc .L977 mov r6, fp ldr fp, [sp, #12] -.L958: - ldr r3, .L982 +.L968: + ldr r3, .L992 rsbs fp, fp, #1 movcc fp, #0 ldr r3, [r3, #3788] cmp r3, #5 movls fp, #0 cmp fp, #0 - beq .L968 + beq .L978 ldr r3, [r6, #0] and r2, r3, #139264 cmp r2, #139264 orreq r3, r3, #131072 streq r3, [r6, #0] mvneq r4, #0 -.L968: +.L978: mov r0, r4 add sp, sp, #92 ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L983: +.L993: .align 2 -.L982: +.L992: .word .LANCHOR0 .fnend .size NandcXferData, .-NandcXferData @@ -8241,23 +8341,23 @@ FlashProgPage: stmfd sp!, {r0, r1, r4, r5, r6, r7, r8, lr} .save {r0, r1, r4, r5, r6, r7, r8, lr} mov r8, r3 - ldr r3, .L987 + ldr r3, .L997 subs r4, r0, #0 mov r5, r1 mov r6, r2 - ldrb r7, [r3, #2997] @ zero_extendqisi2 - bne .L985 - ldr r3, .L987+4 + ldrb r7, [r3, #3125] @ zero_extendqisi2 + bne .L995 + ldr r3, .L997+4 ldrb r2, [r3, #853] @ zero_extendqisi2 ldr r1, [r3, #856] mul r2, r1, r2 cmp r5, r2 - bcs .L985 + bcs .L995 ldrb r3, [r3, #852] @ zero_extendqisi2 cmp r3, #0 subeq r7, r7, #2 movne r7, #4 -.L985: +.L995: mov r0, r4 bl NandcWaitFlashReady mov r0, r4 @@ -8284,9 +8384,9 @@ FlashProgPage: bl NandcFlashDeCs and r0, r5, #1 ldmfd sp!, {r2, r3, r4, r5, r6, r7, r8, pc} -.L988: +.L998: .align 2 -.L987: +.L997: .word .LANCHOR1 .word .LANCHOR0 .fnend @@ -8298,64 +8398,65 @@ FlashPageProgMsbFFData: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - stmfd sp!, {r3, r4, r5, r6, r7, r8, sl, lr} - .save {r3, r4, r5, r6, r7, r8, sl, lr} - mov r4, r2 - ldr r2, .L996 - mov r7, r1 - mov r8, r0 - ldrb r1, [r2, #928] @ zero_extendqisi2 - ldr r3, [r2, #3624] - cmp r1, #0 - ldrb r3, [r3, #19] @ zero_extendqisi2 - beq .L990 - ldr r1, [r2, #3776] - ldr r2, .L996+4 - cmp r1, r2 - ldmeqfd sp!, {r3, r4, r5, r6, r7, r8, sl, pc} -.L990: - sub r2, r3, #5 - uxtb r2, r2 - cmp r3, #68 - cmpne r2, #2 - bls .L993 - cmp r3, #35 - cmpne r3, #19 - beq .L993 - ldmfd sp!, {r3, r4, r5, r6, r7, r8, sl, pc} -.L994: - add r3, r5, r4, asl #1 - sub r3, r3, #888 - ldrh r3, [r3, #0] - cmp r3, sl - ldmnefd sp!, {r3, r4, r5, r6, r7, r8, sl, pc} - mov r1, #255 + ldr r3, .L1009 + stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, lr} + .save {r4, r5, r6, r7, r8, r9, sl, lr} + mov r5, r2 + ldr r2, [r3, #3624] + mov r9, r0 + mov sl, r1 + ldrb r4, [r2, #19] @ zero_extendqisi2 + ldrb r2, [r3, #3072] @ zero_extendqisi2 + cmp r2, #0 + beq .L1000 + ldr r3, [r3, #3776] + cmp r3, #0 + ldmnefd sp!, {r4, r5, r6, r7, r8, r9, sl, pc} +.L1000: + sub r3, r4, #5 + uxtb r3, r3 + cmp r4, #68 + cmpne r3, #3 + bls .L1003 + cmp r4, #35 + cmpne r4, #19 + beq .L1003 + ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, pc} +.L1006: + add r3, r6, r5, asl #1 + sub r3, r3, #880 + ldrh r2, [r3, #0] + movw r3, #65535 + cmp r2, r3 + ldmnefd sp!, {r4, r5, r6, r7, r8, r9, sl, pc} + cmp r4, #8 mov r2, #32768 - ldr r0, [r5, #140] + ldr r0, [r6, #148] + moveq r1, #0 + movne r1, #255 bl ftl_memset - add r1, r4, r7 - add r4, r4, #1 - mov r0, r8 - ldr r2, [r5, #140] - mov r3, #0 + ldr r2, [r8, #148] + add r1, r5, sl + add r5, r5, #1 + mov r0, r9 + mov r3, r2 + uxth r5, r5 bl FlashProgPage - uxth r4, r4 - b .L995 -.L993: - ldr r6, .L996 - movw sl, #65535 - ldr r5, .L996+8 -.L995: - ldr r3, [r6, #3624] + b .L1007 +.L1003: + ldr r6, .L1009+4 + ldr r7, .L1009 + mov r8, r6 +.L1007: + ldr r3, [r7, #3624] ldrh r3, [r3, #10] - cmp r3, r4 - bhi .L994 - ldmfd sp!, {r3, r4, r5, r6, r7, r8, sl, pc} -.L997: + cmp r3, r5 + bhi .L1006 + ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, pc} +.L1010: .align 2 -.L996: +.L1009: .word .LANCHOR0 - .word 1446522928 .word .LANCHOR2 .fnend .size FlashPageProgMsbFFData, .-FlashPageProgMsbFFData @@ -8369,19 +8470,19 @@ FlashReadRawPage: stmfd sp!, {r0, r1, r4, r5, r6, r7, r8, lr} .save {r0, r1, r4, r5, r6, r7, r8, lr} mov r8, r3 - ldr r3, .L1001 + ldr r3, .L1014 subs r4, r0, #0 mov r6, r1 mov r5, r2 - ldrb r7, [r3, #2997] @ zero_extendqisi2 - bne .L999 - ldr r3, .L1001+4 + ldrb r7, [r3, #3125] @ zero_extendqisi2 + bne .L1012 + ldr r3, .L1014+4 ldrb r2, [r3, #853] @ zero_extendqisi2 ldr r3, [r3, #856] mul r3, r3, r2 cmp r1, r3 movcc r7, #4 -.L999: +.L1012: mov r0, r4 bl NandcWaitFlashReady mov r0, r4 @@ -8402,9 +8503,9 @@ FlashReadRawPage: bl NandcFlashDeCs mov r0, r5 ldmfd sp!, {r2, r3, r4, r5, r6, r7, r8, pc} -.L1002: +.L1015: .align 2 -.L1001: +.L1014: .word .LANCHOR1 .word .LANCHOR0 .fnend @@ -8419,9 +8520,9 @@ HynixReadRetrial: stmfd sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, sl, fp, lr} .save {r0, r1, r2, r4, r5, r6, r7, r8, r9, sl, fp, lr} mov r7, r3 - ldr r3, .L1017 + ldr r3, .L1030 mov sl, r2 - ldr fp, .L1017 + ldr fp, .L1030 mov r6, r0 add r2, r3, r0 str r1, [sp, #4] @@ -8431,16 +8532,18 @@ HynixReadRetrial: mvn r5, #0 ldrb r4, [r2, #12] @ zero_extendqisi2 ldrb r3, [r3, #19] @ zero_extendqisi2 - cmp r3, #7 - ldreqb r4, [r2, #20] @ zero_extendqisi2 + sub r3, r3, #7 + uxtb r3, r3 + cmp r3, #1 + ldrlsb r4, [r2, #20] @ zero_extendqisi2 bl NandcWaitFlashReady mov ip, fp - b .L1005 -.L1010: + b .L1018 +.L1023: add r4, r4, #1 ldrb r1, [fp, #1] @ zero_extendqisi2 mov r0, r6 - ldr r2, .L1017+4 + ldr r2, .L1030+4 uxtb r4, r4 str ip, [sp, #0] cmp r4, r9 @@ -8454,33 +8557,35 @@ HynixReadRetrial: bl FlashReadRawPage ldr ip, [sp, #0] cmn r0, #1 - beq .L1007 - ldrb r3, [ip, #3836] @ zero_extendqisi2 + beq .L1020 + ldrb r3, [ip, #3840] @ zero_extendqisi2 cmn r5, #1 moveq r5, r0 add r3, r3, r3, asl #1 cmp r0, r3, lsr #2 - bcc .L1016 + bcc .L1029 mov r7, #0 mov sl, r7 -.L1007: +.L1020: add r8, r8, #1 -.L1005: +.L1018: cmp r8, r9 - bcc .L1010 - b .L1009 -.L1016: + bcc .L1023 + b .L1022 +.L1029: mov r5, r0 -.L1009: - ldr r3, .L1017 +.L1022: + ldr r3, .L1030 add r6, r3, r6 ldr r2, [r3, #3624] - ldrb r3, [r3, #3836] @ zero_extendqisi2 + ldrb r3, [r3, #3840] @ zero_extendqisi2 ldrb r2, [r2, #19] @ zero_extendqisi2 add r3, r3, r3, asl #1 - cmp r2, #7 - streqb r4, [r6, #20] - strneb r4, [r6, #12] + sub r2, r2, #7 + uxtb r2, r2 + cmp r2, #1 + strlsb r4, [r6, #20] + strhib r4, [r6, #12] adds r0, r5, #1 movne r0, #1 cmp r5, r3, lsr #2 @@ -8490,9 +8595,9 @@ HynixReadRetrial: moveq r0, r5 movne r0, #256 ldmfd sp!, {r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L1018: +.L1031: .align 2 -.L1017: +.L1030: .word .LANCHOR0 .word .LANCHOR0+4 .fnend @@ -8507,32 +8612,32 @@ MicronReadRetrial: stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} .save {r4, r5, r6, r7, r8, r9, sl, fp, lr} mov sl, r3 - ldr r3, .L1037 + ldr r3, .L1050 mov r9, r0 .pad #36 sub sp, sp, #36 - ldrb r0, [r3, #3836] @ zero_extendqisi2 - ldrb r3, [r3, #928] @ zero_extendqisi2 + ldrb r0, [r3, #3840] @ zero_extendqisi2 + ldrb r3, [r3, #3072] @ zero_extendqisi2 str r1, [sp, #24] cmp r3, #0 str r2, [sp, #20] addeq r0, r0, r0, asl #1 ubfxeq r0, r0, #2, #8 - beq .L1036 + beq .L1049 mov r1, #3 bl __aeabi_idiv uxtb r0, r0 -.L1036: -.L1021: +.L1049: +.L1034: mov r2, #0 - ldr r3, .L1037 + ldr r3, .L1050 mvn r4, #0 mov r6, r2 add r3, r3, r9, asl #3 str r0, [sp, #16] str r2, [sp, #12] str r3, [sp, #28] -.L1031: +.L1044: mov r0, r9 mov fp, #0 bl NandcWaitFlashReady @@ -8541,8 +8646,8 @@ MicronReadRetrial: ldr r8, [r2, #864] add r7, r7, #8 add r5, r8, r7, asl #8 - b .L1022 -.L1026: + b .L1035 +.L1039: mov r3, #239 mov r0, #200 str r3, [r5, #8] @@ -8562,27 +8667,27 @@ MicronReadRetrial: bl FlashReadRawPage ldr ip, [sp, #8] cmn r0, #1 - beq .L1023 + beq .L1036 cmn r4, #1 ldr r2, [sp, #16] moveq r4, r0 cmp r0, r2 - bcc .L1033 + bcc .L1046 mov sl, #0 str sl, [sp, #20] -.L1023: +.L1036: mov fp, ip -.L1022: - ldr r2, .L1037+4 - ldrb r3, [r2, #144] @ zero_extendqisi2 +.L1035: + ldr r2, .L1050+4 + ldrb r3, [r2, #152] @ zero_extendqisi2 cmp fp, r3 - bcc .L1026 - b .L1025 -.L1033: + bcc .L1039 + b .L1038 +.L1046: mov r4, r0 mov sl, #0 str sl, [sp, #20] -.L1025: +.L1038: mov r3, #239 mov r0, #200 str r3, [r5, #8] @@ -8606,46 +8711,46 @@ MicronReadRetrial: moveq r5, #1 cmn r4, #1 cmpne r4, #256 - bne .L1028 + bne .L1041 mov r3, fp - ldr r0, .L1037+8 + ldr r0, .L1050+8 mov r1, fp ldr r2, [sp, #24] str r4, [sp, #0] bl printk ldr r3, [sp, #12] cmp r3, #0 - bne .L1029 - ldr r2, .L1037 - ldrb r3, [r2, #928] @ zero_extendqisi2 + bne .L1042 + ldr r2, .L1050 + ldrb r3, [r2, #3072] @ zero_extendqisi2 cmp r3, #0 moveq r5, #0 andne r5, r5, #1 cmp r5, #0 - beq .L1030 + beq .L1043 mov r0, r9 mov r1, #3 bl micron_auto_read_calibration_config mov r3, #1 str r3, [sp, #12] - b .L1031 -.L1028: + b .L1044 +.L1041: ldr r2, [sp, #12] cmp r2, #0 - beq .L1030 -.L1029: + beq .L1043 +.L1042: mov r0, r9 mov r1, #0 bl micron_auto_read_calibration_config cmn r4, #1 movne r4, #256 -.L1030: +.L1043: mov r0, r4 add sp, sp, #36 ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L1038: +.L1051: .align 2 -.L1037: +.L1050: .word .LANCHOR0 .word .LANCHOR2 .word .LC91 @@ -8665,17 +8770,17 @@ SamsungReadRetrial: mov r6, r3 mov r9, r1 bl NandcWaitFlashReady - ldr ip, .L1048 + ldr ip, .L1061 mov r5, #1 mvn r4, #0 - ldr fp, .L1048+4 + ldr fp, .L1061+4 add r3, ip, r8, asl #3 ldrb sl, [r3, #868] @ zero_extendqisi2 ldr r2, [r3, #864] add sl, sl, #8 add sl, r2, sl, asl #8 - b .L1040 -.L1044: + b .L1053 +.L1057: mov r0, sl uxtb r1, r5 str ip, [sp, #4] @@ -8687,32 +8792,32 @@ SamsungReadRetrial: bl FlashReadRawPage ldr ip, [sp, #4] cmn r0, #1 - beq .L1041 - ldrb r3, [ip, #3836] @ zero_extendqisi2 + beq .L1054 + ldrb r3, [ip, #3840] @ zero_extendqisi2 cmn r4, #1 moveq r4, r0 add r3, r3, r3, asl #1 cmp r0, r3, lsr #2 - bcc .L1047 + bcc .L1060 mov r6, #0 mov r7, r6 -.L1041: +.L1054: add r5, r5, #1 -.L1040: - ldrb r3, [fp, #144] @ zero_extendqisi2 +.L1053: + ldrb r3, [fp, #152] @ zero_extendqisi2 add r3, r3, #1 cmp r5, r3 - bcc .L1044 - b .L1043 -.L1047: + bcc .L1057 + b .L1056 +.L1060: mov r4, r0 -.L1043: +.L1056: mov r0, sl mov r1, #0 bl SamsungSetRRPara - ldr r3, .L1048 + ldr r3, .L1061 adds r0, r4, #1 - ldrb r3, [r3, #3836] @ zero_extendqisi2 + ldrb r3, [r3, #3840] @ zero_extendqisi2 movne r0, #1 add r3, r3, r3, asl #1 cmp r4, r3, lsr #2 @@ -8722,9 +8827,9 @@ SamsungReadRetrial: moveq r0, r4 movne r0, #256 ldmfd sp!, {r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L1049: +.L1062: .align 2 -.L1048: +.L1061: .word .LANCHOR0 .word .LANCHOR2 .fnend @@ -8743,7 +8848,7 @@ ToshibaReadRetrial: mov r9, r2 mov r7, r3 bl NandcWaitFlashReady - ldr r3, .L1071 + ldr r3, .L1084 add r2, r3, r8, asl #3 ldr r1, [r2, #864] ldrb r4, [r2, #868] @ zero_extendqisi2 @@ -8754,53 +8859,53 @@ ToshibaReadRetrial: uxtb r2, r2 cmp r2, #1 movls sl, #0 - bls .L1051 + bls .L1064 ldrb sl, [r3, #3780] @ zero_extendqisi2 cmp sl, #0 - beq .L1052 + beq .L1065 mov r0, #0 mov sl, #1 bl NandcSetDdrMode -.L1052: +.L1065: mov r3, #92 str r3, [r4, #8] mov r3, #197 str r3, [r4, #8] -.L1051: +.L1064: mov r6, #1 mvn r5, #0 - ldr fp, .L1071 - b .L1053 -.L1062: + ldr fp, .L1084 + b .L1066 +.L1075: ldrb r3, [fp, #3761] @ zero_extendqisi2 mov r0, r4 uxtb r1, r6 sub r3, r3, #67 uxtb r3, r3 cmp r3, #1 - bhi .L1054 + bhi .L1067 bl SandiskSetRRPara - b .L1055 -.L1054: + b .L1068 +.L1067: bl ToshibaSetRRPara -.L1055: - ldr r2, .L1071 +.L1068: + ldr r2, .L1084 ldrb r3, [r2, #3761] @ zero_extendqisi2 cmp r3, #34 - bne .L1056 - ldr r2, .L1071+4 - ldrb r3, [r2, #144] @ zero_extendqisi2 + bne .L1069 + ldr r2, .L1084+4 + ldrb r3, [r2, #152] @ zero_extendqisi2 sub r3, r3, #3 cmp r6, r3 moveq r3, #179 streq r3, [r4, #8] -.L1056: +.L1069: cmp sl, #0 mov r3, #38 str r3, [r4, #8] mov r3, #93 str r3, [r4, #8] - beq .L1057 + beq .L1070 mov r0, #4 bl NandcSetDdrMode ldr r1, [sp, #4] @@ -8813,53 +8918,53 @@ ToshibaReadRetrial: str r3, [sp, #0] bl NandcSetDdrMode ldr r3, [sp, #0] - b .L1058 -.L1057: + b .L1071 +.L1070: mov r3, r7 mov r0, r8 ldr r1, [sp, #4] mov r2, r9 bl FlashReadRawPage mov r3, r0 -.L1058: +.L1071: cmn r3, #1 - beq .L1059 - ldrb r2, [fp, #3836] @ zero_extendqisi2 + beq .L1072 + ldrb r2, [fp, #3840] @ zero_extendqisi2 cmn r5, #1 moveq r5, r3 add r2, r2, r2, asl #1 cmp r3, r2, lsr #2 - bcc .L1070 + bcc .L1083 mov r7, #0 mov r9, r7 -.L1059: +.L1072: add r6, r6, #1 -.L1053: - ldr r2, .L1071+4 - ldrb r3, [r2, #144] @ zero_extendqisi2 +.L1066: + ldr r2, .L1084+4 + ldrb r3, [r2, #152] @ zero_extendqisi2 add r3, r3, #1 cmp r6, r3 - bcc .L1062 - b .L1061 -.L1070: + bcc .L1075 + b .L1074 +.L1083: mov r5, r3 -.L1061: - ldr r6, .L1071 +.L1074: + ldr r6, .L1084 mov r0, r4 mov r1, #0 ldrb r3, [r6, #3761] @ zero_extendqisi2 sub r3, r3, #67 uxtb r3, r3 cmp r3, #1 - bhi .L1063 + bhi .L1076 bl SandiskSetRRPara - b .L1064 -.L1063: + b .L1077 +.L1076: bl ToshibaSetRRPara -.L1064: +.L1077: mov r3, #255 str r3, [r4, #8] - ldrb r3, [r6, #3836] @ zero_extendqisi2 + ldrb r3, [r6, #3840] @ zero_extendqisi2 adds r2, r5, #1 mov r0, r8 movne r2, #1 @@ -8871,15 +8976,15 @@ ToshibaReadRetrial: movne r5, #256 bl NandcWaitFlashReady cmp sl, #0 - beq .L1066 + beq .L1079 mov r0, #4 bl NandcSetDdrMode -.L1066: +.L1079: mov r0, r5 ldmfd sp!, {r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L1072: +.L1085: .align 2 -.L1071: +.L1084: .word .LANCHOR0 .word .LANCHOR2 .fnend @@ -8894,22 +8999,22 @@ FlashSavePhyInfo: stmfd sp!, {r3, r4, r5, r6, r7, r8, sl, lr} .save {r3, r4, r5, r6, r7, r8, sl, lr} mov r6, #0 - ldr r5, .L1080 - ldr r7, .L1080+4 - ldr r8, .L1080+8 - ldr r3, [r5, #152] - ldrb r0, [r5, #156] @ zero_extendqisi2 - str r3, [r5, #148] + ldr r5, .L1093 + ldr r7, .L1093+4 + ldr r8, .L1093+8 + ldr r3, [r5, #160] + ldrb r0, [r5, #164] @ zero_extendqisi2 + str r3, [r5, #156] bl FlashBchSel mov r1, #0 mov r2, #2048 - ldr r0, [r5, #152] + ldr r0, [r5, #160] bl ftl_memset - ldr r3, [r5, #148] - ldr r1, .L1080+12 + ldr r3, [r5, #156] + add r1, r7, #2976 mov r2, #32 str r8, [r3, #0] - ldr r4, [r5, #148] + ldr r4, [r5, #156] ldrb r3, [r7, #3762] @ zero_extendqisi2 add r0, r4, #16 strh r3, [r4, #12] @ movhi @@ -8919,19 +9024,19 @@ FlashSavePhyInfo: str r3, [r4, #1076] bl memcpy add r0, r4, #80 - ldr r1, .L1080+16 + ldr r1, .L1093+12 mov r2, #8 bl memcpy add r0, r4, #96 - ldr r1, .L1080+20 + ldr r1, .L1093+16 mov r2, #32 bl memcpy - ldr r0, [r5, #148] - ldr r1, .L1080+24 + ldr r0, [r5, #156] + ldr r1, .L1093+20 mov r2, #32 add r0, r0, #160 bl memcpy - ldr r4, [r5, #148] + ldr r4, [r5, #156] add r1, r7, #896 mov r2, #32 add r0, r4, #192 @@ -8942,16 +9047,16 @@ FlashSavePhyInfo: bl memcpy add r0, r4, #12 movw r1, #2036 - bl JSHash + bl js_hash movw r3, #1592 str r3, [r4, #4] - ldr r3, [r5, #140] - str r3, [r5, #148] + ldr r3, [r5, #148] + str r3, [r5, #156] str r0, [r4, #8] mov r0, #0 bl flash_enter_slc_mode mov r4, r6 -.L1076: +.L1089: ldr r1, [r7, #856] mov r0, #0 mov r2, r0 @@ -8959,64 +9064,63 @@ FlashSavePhyInfo: bl FlashEraseBlock ldr r1, [r7, #856] mov r0, #0 - ldr r2, [r5, #152] + ldr r2, [r5, #160] mov r3, r0 mul r1, r1, r4 bl FlashProgPage ldr r1, [r7, #856] mov r0, #0 - ldr r2, [r5, #152] + ldr r2, [r5, #160] mov r3, r0 mul r1, r1, r4 add r1, r1, #1 bl FlashProgPage ldr r1, [r7, #856] mov r0, #0 - ldr r2, [r5, #140] + ldr r2, [r5, #148] mov r3, r0 mul r1, r1, r4 bl FlashReadRawPage cmn r0, #1 - beq .L1074 - ldr sl, [r5, #148] + beq .L1087 + ldr sl, [r5, #156] ldr r3, [sl, #0] cmp r3, r8 - bne .L1074 + bne .L1087 add r0, sl, #12 movw r1, #2036 - bl JSHash + bl js_hash ldr r3, [sl, #8] cmp r3, r0 - bne .L1074 + bne .L1087 add r3, r4, #1 - str r3, [r5, #160] + str r3, [r5, #168] ldr r3, [r7, #856] add r6, r6, #1 cmp r6, #1 mul r3, r3, r4 - str r3, [r5, #164] - bhi .L1075 -.L1074: + str r3, [r5, #172] + bhi .L1088 +.L1087: add r4, r4, #1 cmp r4, #4 - bne .L1076 -.L1075: + bne .L1089 +.L1088: mov r0, #0 bl flash_exit_slc_mode cmp r6, #0 mvneq r0, #0 movne r0, #0 ldmfd sp!, {r3, r4, r5, r6, r7, r8, sl, pc} -.L1081: +.L1094: .align 2 -.L1080: +.L1093: .word .LANCHOR2 .word .LANCHOR0 .word 1312902724 - .word .LANCHOR0+2980 .word .LANCHOR0+3764 .word .LANCHOR0+3588 - .word .LANCHOR1+2988 + .word .LANCHOR1+3116 .fnend .size FlashSavePhyInfo, .-FlashSavePhyInfo .align 2 @@ -9032,101 +9136,98 @@ FlashReadIdbDataRaw: sub sp, sp, #20 mov r2, #4 mov sl, r0 - ldr r1, .L1093 + ldr r1, .L1106 add r0, sp, #12 bl memcpy - ldr r3, .L1093+4 - ldrb r2, [r3, #3836] @ zero_extendqisi2 + ldr r3, .L1106+4 + ldrb r2, [r3, #3840] @ zero_extendqisi2 + ldr r3, [r3, #3776] + cmp r3, #0 str r2, [sp, #4] - ldr r2, [r3, #3776] - ldr r3, .L1093+8 - cmp r2, r3 - bne .L1083 + beq .L1096 mov r0, #0 bl flash_enter_slc_mode -.L1083: - ldr r7, .L1093+4 +.L1096: + ldr r7, .L1106+4 mov r0, sl mov r1, #0 mov r2, #2048 bl ftl_memset mvn r8, #0 mov r4, #2 - ldr r9, .L1093+12 + ldr r9, .L1106+8 mov fp, r7 - b .L1084 -.L1091: + b .L1097 +.L1104: mov r6, #0 -.L1086: +.L1099: add r3, sp, #12 - ldr r5, .L1093+12 + ldr r5, .L1106+8 ldrb r0, [r3, r6] @ zero_extendqisi2 bl FlashBchSel ldr r1, [r7, #856] mov r0, #0 - ldr r2, [r9, #152] + ldr r2, [r9, #160] mov r3, r0 mul r1, r1, r4 bl FlashReadRawPage cmn r0, #1 - bne .L1085 + bne .L1098 add r6, r6, #1 cmp r6, #4 - bne .L1086 - b .L1087 -.L1085: - ldr r3, [r5, #152] + bne .L1099 + b .L1100 +.L1098: + ldr r3, [r5, #160] ldr r2, [r3, #0] - ldr r3, .L1093+16 + ldr r3, .L1106+12 cmp r2, r3 - bne .L1087 + bne .L1100 add r3, sp, #16 - ldr r0, .L1093+20 + ldr r0, .L1106+16 add r6, r3, r6 ldrb r1, [r6, #-4] @ zero_extendqisi2 bl printk mov r0, sl - ldr r1, [r5, #152] + ldr r1, [r5, #160] mov r2, #2048 bl memcpy - ldr r3, [r5, #152] + ldr r3, [r5, #160] ldr r3, [r3, #512] strb r3, [fp, #853] - ldr r3, [r5, #160] + ldr r3, [r5, #168] cmp r3, r4 - bls .L1090 - str r4, [r5, #160] + bls .L1103 + str r4, [r5, #168] bl FlashSavePhyInfo mov r8, #0 -.L1087: +.L1100: add r4, r4, #1 -.L1084: +.L1097: ldrb r3, [r7, #853] @ zero_extendqisi2 cmp r4, r3 - bcc .L1091 - b .L1088 -.L1090: + bcc .L1104 + b .L1101 +.L1103: mov r8, #0 -.L1088: +.L1101: ldr r0, [sp, #4] bl FlashBchSel - ldr r3, .L1093+4 - ldr r2, [r3, #3776] - ldr r3, .L1093+8 - cmp r2, r3 - bne .L1089 + ldr r3, .L1106+4 + ldr r3, [r3, #3776] + cmp r3, #0 + beq .L1102 mov r0, #0 bl flash_exit_slc_mode -.L1089: +.L1102: mov r0, r8 add sp, sp, #20 ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L1094: +.L1107: .align 2 -.L1093: +.L1106: .word .LANCHOR3+11 .word .LANCHOR0 - .word 1446522928 .word .LANCHOR2 .word -52655045 .word .LC92 @@ -9142,121 +9243,122 @@ FlashLoadPhyInfo: stmfd sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, sl, fp, lr} .save {r0, r1, r2, r4, r5, r6, r7, r8, r9, sl, fp, lr} mov r2, #4 - ldr r1, .L1106 + ldr r1, .L1119 add r0, sp, #4 bl memcpy - ldr r5, .L1106+4 - ldr r2, .L1106+8 - movw r3, #2998 - mov r4, #0 + ldr r4, .L1119+4 + ldr r3, .L1119+8 + mov r5, #0 + mov r0, r5 mov r8, #4 - mov r0, r4 - str r4, [r5, #164] - ldrh r9, [r2, r3] + str r5, [r4, #172] mvn r6, #0 - ldr r3, [r5, #152] - ldr fp, .L1106+12 - str r3, [r5, #148] + ldr r9, [r3, #856] + ldr r3, [r4, #160] + ldr fp, .L1119+12 + str r3, [r4, #156] bl flash_enter_slc_mode - b .L1096 -.L1098: + b .L1109 +.L1111: add r3, sp, #4 ldrb r0, [r3, r7] @ zero_extendqisi2 bl FlashBchSel mov r0, #0 - mov r1, r4 - ldr r2, [r5, #152] + mov r1, r5 + ldr r2, [r4, #160] mov r3, r0 bl FlashReadRawPage cmn r0, #1 - bne .L1097 + bne .L1110 mov r0, #0 mov r1, sl - ldr r2, [r5, #152] + ldr r2, [r4, #160] mov r3, r0 bl FlashReadRawPage cmn r0, #1 - bne .L1097 + bne .L1110 add r7, r7, #1 cmp r7, #4 - beq .L1099 - b .L1098 -.L1097: - ldr r7, [r5, #148] + beq .L1112 + b .L1111 +.L1110: + ldr r7, [r4, #156] ldr r3, [r7, #0] cmp r3, fp - bne .L1099 + bne .L1112 cmp r6, #0 - bne .L1100 - ldr r2, .L1106+8 - movw r3, #2998 - mov r0, r4 - ldrh r1, [r2, r3] + bne .L1113 + ldr r3, .L1119+8 + mov r0, r5 + ldr r1, [r3, #856] bl __aeabi_uidiv - ldr r3, .L1106+4 + ldr r3, .L1119+4 add r0, r0, #1 - str r0, [r3, #160] + str r0, [r3, #168] mov r0, r6 - b .L1105 -.L1100: + b .L1118 +.L1113: add r0, r7, #12 movw r1, #2036 - bl JSHash + bl js_hash ldr r3, [r7, #8] cmp r3, r0 - bne .L1099 - ldr r6, .L1106+16 + bne .L1112 + ldr r6, .L1119+8 add r1, r7, #160 mov r2, #32 - ldr r0, .L1106+20 + ldr r0, .L1119+16 bl memcpy - add r0, r6, #896 add r1, r7, #192 + add r0, r6, #896 mov r2, #32 bl memcpy - mov r0, r6 add r1, r7, #224 + mov r0, r6 mov r2, #852 bl memcpy + ldr r2, .L1119+20 + movw r3, #3126 + ldrh r0, [r2, r3] + bl FlashBlockAlignInit + ldr r7, [r4, #156] + ldr r1, [r6, #856] + mov r0, r5 + str r5, [r4, #172] ldr r3, [r7, #1076] - ldr r2, .L1106+8 - mov r0, r4 - str r4, [r5, #164] strb r3, [r6, #3780] - movw r3, #2998 - ldrh r1, [r2, r3] mov r6, #0 bl __aeabi_uidiv add r0, r0, #1 - str r0, [r5, #160] + str r0, [r4, #168] cmp r0, #1 - moveq r3, #2 - streq r3, [r5, #160] + movls r3, #2 + strls r3, [r4, #168] ldrh r3, [r7, #14] - strb r3, [r5, #168] -.L1099: + strb r3, [r4, #176] +.L1112: subs r8, r8, #1 - add r4, r4, r9 - beq .L1103 -.L1096: - add sl, r4, #1 + add r5, r5, r9 + beq .L1116 +.L1109: + add sl, r5, #1 mov r7, #0 - b .L1098 -.L1103: + b .L1111 +.L1116: mov r0, r8 -.L1105: +.L1118: bl flash_exit_slc_mode mov r0, r6 ldmfd sp!, {r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L1107: +.L1120: .align 2 -.L1106: +.L1119: .word .LANCHOR3+11 .word .LANCHOR2 - .word .LANCHOR1 - .word 1312902724 .word .LANCHOR0 - .word .LANCHOR1+2988 + .word 1312902724 + .word .LANCHOR1+3116 + .word .LANCHOR1 .fnend .size FlashLoadPhyInfo, .-FlashLoadPhyInfo .align 2 @@ -9269,13 +9371,13 @@ FlashDdrTunningRead: stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} .save {r4, r5, r6, r7, r8, r9, sl, fp, lr} mov sl, r3 - ldr r4, .L1129 + ldr r4, .L1142 .pad #20 sub sp, sp, #20 mov fp, r0 mov r9, r2 str r1, [sp, #0] - ldr r3, [r4, #3012] + ldr r3, [r4, #3008] ldr r7, [r4, #3788] ldr r3, [r3, #304] cmp r7, #7 @@ -9285,7 +9387,7 @@ FlashDdrTunningRead: ldr r3, [sp, #56] cmp r3, #0 moveq r8, #1024 - beq .L1110 + beq .L1123 mov r0, #1 bl FlashSetInterfaceMode mov r0, #1 @@ -9303,37 +9405,37 @@ FlashDdrTunningRead: ldrb r0, [r4, #3772] @ zero_extendqisi2 bl NandcSetMode cmn r8, #1 - beq .L1111 - ldr r0, .L1129+4 + beq .L1124 + ldr r0, .L1142+4 mov r2, r8 ldr r1, [sp, #0] bl printk cmp r8, #9 - bhi .L1112 + bhi .L1125 add r4, r4, fp, asl #3 ldr r3, [r4, #864] ldr r2, [r3, #3840] ldr r2, [r3, #0] orr r2, r2, #131072 str r2, [r3, #0] -.L1112: - ldr r3, .L1129+8 - ldr r2, [r3, #172] +.L1125: + ldr r3, .L1142+8 + ldr r2, [r3, #180] add r2, r2, #1 - str r2, [r3, #172] + str r2, [r3, #180] cmp r2, #2048 movcs sl, #0 - strcs sl, [r3, #172] + strcs sl, [r3, #180] movcs r9, sl - bcc .L1111 -.L1110: + bcc .L1124 +.L1123: mov r4, #0 str fp, [sp, #4] mov r5, r4 mvn r6, #0 mov fp, r4 str r4, [sp, #8] -.L1117: +.L1130: uxtb r0, r7 bl NandcSetDdrPara mov r3, sl @@ -9343,79 +9445,79 @@ FlashDdrTunningRead: bl FlashReadRawPage add r3, r8, #1 cmp r0, r3 - bhi .L1113 + bhi .L1126 cmp r0, #2 - bhi .L1123 + bhi .L1136 add r5, r5, #1 cmp r5, #9 - bls .L1123 + bls .L1136 mov ip, fp rsb r4, r5, r7 ldr fp, [sp, #4] mov r8, r0 mov r6, #0 - b .L1115 -.L1113: + b .L1128 +.L1126: cmp fp, r5 - bcs .L1124 + bcs .L1137 cmp r5, #7 rsb r3, r5, r4 str r3, [sp, #8] - bhi .L1128 + bhi .L1141 mov fp, r5 - b .L1124 -.L1123: + b .L1137 +.L1136: mov r6, #0 mov r4, r7 mov r8, r0 mov sl, r6 mov r9, r6 - b .L1114 -.L1124: + b .L1127 +.L1137: mov r5, #0 -.L1114: +.L1127: add r7, r7, #2 cmp r7, #69 - bls .L1117 + bls .L1130 mov ip, fp ldr fp, [sp, #4] -.L1115: - cmp ip, r5 - bcc .L1118 - b .L1116 .L1128: + cmp ip, r5 + bcc .L1131 + b .L1129 +.L1141: ldr fp, [sp, #4] -.L1116: +.L1129: ldr r4, [sp, #8] -.L1118: +.L1131: cmp r4, #0 - beq .L1119 - ldr r0, .L1129+12 + beq .L1132 + ldr r0, .L1142+12 mov r1, r4 bl printk uxtb r0, r4 bl NandcSetDdrPara -.L1119: +.L1132: cmn r6, #1 - bne .L1111 - ldr r0, .L1129+16 + bne .L1124 + ldr r0, .L1142+16 mov r1, fp ldr r2, [sp, #0] bl printk ldr r3, [sp, #56] cmp r3, #0 moveq r8, r6 - beq .L1111 + beq .L1124 ldr r3, [sp, #12] ubfx r0, r3, #8, #8 bl NandcSetDdrPara -.L1111: +.L1124: mov r0, r8 add sp, sp, #20 ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L1130: +.L1143: .align 2 -.L1129: +.L1142: .word .LANCHOR0 .word .LC93 .word .LANCHOR2 @@ -9433,7 +9535,7 @@ FlashDdrParaScan: stmfd sp!, {r0, r1, r4, r5, r6, r7, r8, lr} .save {r0, r1, r4, r5, r6, r7, r8, lr} mov r7, r0 - ldr r5, .L1135 + ldr r5, .L1148 mov r4, #0 mov r6, r1 ldrb r0, [r5, #3772] @ zero_extendqisi2 @@ -9453,30 +9555,30 @@ FlashDdrParaScan: mov r0, r7 bl FlashReadRawPage cmn r0, #1 - beq .L1132 + beq .L1145 cmn r8, #1 - bne .L1133 -.L1132: + bne .L1146 +.L1145: ldrb r3, [r5, #3772] @ zero_extendqisi2 tst r3, #1 - beq .L1133 + beq .L1146 mov r0, #1 bl FlashSetInterfaceMode mov r0, #1 bl NandcSetMode - ldr r3, .L1135 + ldr r3, .L1148 mov r2, #0 strb r2, [r3, #3780] - b .L1134 -.L1133: + b .L1147 +.L1146: mov r3, #1 strb r3, [r5, #3780] -.L1134: +.L1147: mov r0, #0 ldmfd sp!, {r2, r3, r4, r5, r6, r7, r8, pc} -.L1136: +.L1149: .align 2 -.L1135: +.L1148: .word .LANCHOR0 .fnend .size FlashDdrParaScan, .-FlashDdrParaScan @@ -9496,11 +9598,11 @@ FlashReadPage: bl FlashReadRawPage cmn r0, #1 mov r4, r0 - bne .L1138 - ldr r7, .L1143 + bne .L1151 + ldr r7, .L1156 ldrb r9, [r7, #860] @ zero_extendqisi2 cmp r9, #0 - beq .L1139 + beq .L1152 mov r3, #0 mov r0, r5 strb r3, [r7, #860] @@ -9511,13 +9613,13 @@ FlashReadPage: strb r9, [r7, #860] cmn r0, #1 movne r4, r0 - bne .L1138 -.L1139: - ldr r7, .L1143 + bne .L1151 +.L1152: + ldr r7, .L1156 ldrb r3, [r7, #3780] @ zero_extendqisi2 cmp r3, #0 - beq .L1138 - ldr r3, [r7, #3012] + beq .L1151 + ldr r3, [r7, #3008] mov r0, r5 mov r1, r6 mov r2, r8 @@ -9528,22 +9630,22 @@ FlashReadPage: bl FlashDdrTunningRead cmn r0, #1 mov r4, r0 - beq .L1140 - ldrb r3, [r7, #3836] @ zero_extendqisi2 + beq .L1153 + ldrb r3, [r7, #3840] @ zero_extendqisi2 cmp r0, r3, lsr #1 - bls .L1138 -.L1140: + bls .L1151 +.L1153: ubfx r0, r9, #8, #8 bl NandcSetDdrPara -.L1138: - ldr r7, .L1143+4 - ldr ip, [r7, #176] +.L1151: + ldr r7, .L1156+4 + ldr ip, [r7, #184] adds r3, ip, #0 movne r3, #1 cmn r4, #1 movne r3, #0 cmp r3, #0 - beq .L1141 + beq .L1154 mov r1, r6 mov r2, r8 mov r3, sl @@ -9552,18 +9654,18 @@ FlashReadPage: mov r2, r5 mov r3, r6 mov r4, r0 - ldr r0, .L1143+8 + ldr r0, .L1156+8 mov r1, r4 bl printk cmn r4, #1 - bne .L1141 - ldr r3, .L1143 - ldrb r3, [r3, #928] @ zero_extendqisi2 + bne .L1154 + ldr r3, .L1156 + ldrb r3, [r3, #3072] @ zero_extendqisi2 cmp r3, #0 - beq .L1141 + beq .L1154 mov r0, r5 bl flash_enter_slc_mode - ldr ip, [r7, #176] + ldr ip, [r7, #184] mov r0, r5 mov r1, r6 mov r2, r8 @@ -9572,12 +9674,12 @@ FlashReadPage: mov r4, r0 mov r0, r5 bl flash_exit_slc_mode -.L1141: +.L1154: mov r0, r4 ldmfd sp!, {r2, r3, r4, r5, r6, r7, r8, r9, sl, pc} -.L1144: +.L1157: .align 2 -.L1143: +.L1156: .word .LANCHOR0 .word .LANCHOR2 .word .LC96 @@ -9590,19 +9692,19 @@ FlashReadSlc2KPages: .fnstart @ args = 0, pretend = 0, frame = 16 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L1158 + ldr r3, .L1171 stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} .save {r4, r5, r6, r7, r8, r9, sl, fp, lr} mov r8, r1 .pad #28 sub sp, sp, #28 mov fp, r2 - ldrb sl, [r3, #2997] @ zero_extendqisi2 + ldrb sl, [r3, #3125] @ zero_extendqisi2 mov r4, r0 mov r7, #0 - ldr r6, .L1158+4 - b .L1146 -.L1155: + ldr r6, .L1171+4 + b .L1159 +.L1168: rsb r3, r7, r8 add r2, sp, #20 mov r0, r4 @@ -9616,7 +9718,7 @@ FlashReadSlc2KPages: cmp r3, r2 mvncs r3, #0 strcs r3, [r4, #0] - bcs .L1148 + bcs .L1161 add r3, r6, r3 ldrb r5, [r3, #3764] @ zero_extendqisi2 mov r0, r5 @@ -9659,7 +9761,7 @@ FlashReadSlc2KPages: ldr r3, [sp, #12] cmp r3, r9 movcs r9, r3 - ldrb r3, [r6, #3836] @ zero_extendqisi2 + ldrb r3, [r6, #3840] @ zero_extendqisi2 adds r2, r9, #1 add r3, r3, r3, asl #1 movne r2, #1 @@ -9675,51 +9777,51 @@ FlashReadSlc2KPages: strne r3, [r4, #0] ldr r3, [r4, #12] cmp r3, #0 - beq .L1153 + beq .L1166 ldr r2, [r3, #12] cmn r2, #1 - bne .L1153 + bne .L1166 ldr r2, [r3, #8] cmn r2, #1 - bne .L1153 + bne .L1166 ldr r3, [r3, #0] cmn r3, #1 strne r2, [r4, #0] -.L1153: +.L1166: ldr r3, [r4, #0] cmn r3, #1 - bne .L1148 + bne .L1161 ldr r1, [r4, #4] - ldr r0, .L1158+8 - ldrb r2, [r6, #3836] @ zero_extendqisi2 + ldr r0, .L1171+8 + ldrb r2, [r6, #3840] @ zero_extendqisi2 bl printk ldr r1, [r4, #8] cmp r1, #0 - beq .L1154 - ldr r0, .L1158+12 + beq .L1167 + ldr r0, .L1171+12 mov r2, #4 mov r3, #8 bl rknand_print_hex -.L1154: +.L1167: ldr r1, [r4, #12] cmp r1, #0 - beq .L1148 + beq .L1161 mov r2, #4 - ldr r0, .L1158+16 + ldr r0, .L1171+16 mov r3, r2 bl rknand_print_hex -.L1148: +.L1161: add r7, r7, #1 add r4, r4, #36 -.L1146: +.L1159: cmp r7, r8 - bne .L1155 + bne .L1168 mov r0, #0 add sp, sp, #28 ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L1159: +.L1172: .align 2 -.L1158: +.L1171: .word .LANCHOR1 .word .LANCHOR0 .word .LC97 @@ -9734,32 +9836,32 @@ FlashReadPages: .fnstart @ args = 0, pretend = 0, frame = 40 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L1202 + ldr r3, .L1215 stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} .save {r4, r5, r6, r7, r8, r9, sl, fp, lr} .pad #52 sub sp, sp, #52 - ldrb r3, [r3, #2997] @ zero_extendqisi2 + ldrb r3, [r3, #3125] @ zero_extendqisi2 mov r9, r0 str r1, [sp, #28] str r2, [sp, #32] str r3, [sp, #24] - ldr r3, .L1202+4 + ldr r3, .L1215+4 ldrb r8, [r3, #852] @ zero_extendqisi2 ldrb ip, [r3, #860] @ zero_extendqisi2 cmp r8, #0 str ip, [sp, #36] moveq sl, r8 - beq .L1161 + beq .L1174 bl FlashReadSlc2KPages - b .L1162 -.L1189: + b .L1175 +.L1202: mov r3, #36 ldr ip, [sp, #28] mul r3, r3, sl add r2, sp, #44 ldr r1, [sp, #32] - ldr fp, .L1202+4 + ldr fp, .L1215+4 add r6, r9, r3 str r3, [sp, #16] rsb r3, sl, ip @@ -9776,12 +9878,12 @@ FlashReadPages: mvncs r3, #0 mov r7, r0 strcs r3, [r9, ip] - bcs .L1164 + bcs .L1177 add r3, fp, r3 ldrb r4, [r3, #3764] @ zero_extendqisi2 - ldr r3, .L1202+8 + ldr r3, .L1215+8 mov r0, r4 - ldrb r3, [r3, #180] @ zero_extendqisi2 + ldrb r3, [r3, #188] @ zero_extendqisi2 cmp r3, #0 moveq r7, #0 bl NandcWaitFlashReady @@ -9789,22 +9891,24 @@ FlashReadPages: ldrb r2, [r3, #19] @ zero_extendqisi2 sub r3, r2, #1 uxtb r3, r3 - cmp r3, #6 - bhi .L1166 + cmp r3, #7 + bhi .L1179 + sub r2, r2, #7 add r1, fp, r4 - cmp r2, #7 add fp, fp, r4 - ldr r2, .L1202+4 + uxtb r2, r2 ldrb r3, [r1, #12] @ zero_extendqisi2 - ldreqb r3, [r1, #20] @ zero_extendqisi2 + cmp r2, #1 + ldr r2, .L1215+4 + ldrlsb r3, [r1, #20] @ zero_extendqisi2 ldrb r1, [fp, #3756] @ zero_extendqisi2 cmp r1, r3 - beq .L1166 + beq .L1179 ldrb r1, [r2, #1] @ zero_extendqisi2 mov r0, r4 add r2, r2, #4 bl HynixSetRRPara -.L1166: +.L1179: mov r0, r4 mov r5, r5, lsr #31 bl NandcFlashCs @@ -9814,44 +9918,44 @@ FlashReadPages: orreq r5, r5, #1 str r5, [sp, #20] cmp r5, #0 - beq .L1168 - ldr r3, .L1202+4 - ldrb r3, [r3, #928] @ zero_extendqisi2 + beq .L1181 + ldr r3, .L1215+4 + ldrb r3, [r3, #3072] @ zero_extendqisi2 cmp r3, #0 - beq .L1168 + beq .L1181 bl flash_enter_slc_mode - b .L1169 -.L1168: + b .L1182 +.L1181: bl flash_exit_slc_mode -.L1169: - ldr fp, .L1202+4 -.L1201: +.L1182: + ldr fp, .L1215+4 +.L1214: ldr r1, [sp, #44] cmn r1, #1 cmpeq r4, #255 moveq r3, #0 movne r3, #1 moveq r7, r3 - beq .L1171 + beq .L1184 cmp r7, #0 - beq .L1172 + beq .L1185 ldr r2, [fp, #856] mov r0, r4 add r2, r1, r2 bl FlashReadDpCmd - b .L1173 -.L1172: + b .L1186 +.L1185: mov r0, r4 bl FlashReadCmd -.L1173: +.L1186: mov r0, r4 bl NandcWaitFlashReady cmp r7, #0 - beq .L1171 + beq .L1184 mov r0, r4 ldr r1, [sp, #44] bl FlashReadDpDataOutCmd -.L1171: +.L1184: ldr r3, [r6, #12] mov r0, r4 ldr r2, [sp, #24] @@ -9868,12 +9972,12 @@ FlashReadPages: movne r2, #0 movne r7, #0 strneb r2, [fp, #860] - bne .L1201 -.L1174: + bne .L1214 +.L1187: cmp r7, #0 mov r5, r0 - beq .L1175 - ldr r3, .L1202+4 + beq .L1188 + ldr r3, .L1215+4 mov r0, r4 ldr r1, [r3, #856] ldr r3, [sp, #44] @@ -9894,18 +9998,18 @@ FlashReadPages: cmn r0, #1 mov r8, r0 moveq r7, #0 -.L1175: +.L1188: mov r0, r4 - ldr fp, .L1202+4 + ldr fp, .L1215+4 bl NandcFlashDeCs ldr ip, [sp, #36] cmn r5, #1 strb ip, [fp, #860] - bne .L1179 + bne .L1192 ldrb r3, [fp, #3780] @ zero_extendqisi2 cmp r3, #0 - beq .L1177 - ldr r3, [fp, #3012] + beq .L1190 + ldr r3, [fp, #3008] mov r0, r4 ldr r1, [sp, #44] ldr r7, [r3, #304] @@ -9916,96 +10020,96 @@ FlashReadPages: bl FlashDdrTunningRead cmn r0, #1 mov r5, r0 - beq .L1178 - ldrb r3, [fp, #3836] @ zero_extendqisi2 + beq .L1191 + ldrb r3, [fp, #3840] @ zero_extendqisi2 cmp r0, r3, lsr #1 - bls .L1195 -.L1178: + bls .L1208 +.L1191: ubfx r0, r7, #8, #8 bl NandcSetDdrPara cmn r5, #1 - bne .L1195 -.L1177: - ldr r3, .L1202+8 + bne .L1208 +.L1190: + ldr r3, .L1215+8 mov r0, r4 ldr r1, [sp, #44] ldr r2, [r6, #8] - ldr r7, [r3, #176] + ldr r7, [r3, #184] ldr r3, [r6, #12] cmp r7, #0 - beq .L1180 + beq .L1193 blx r7 cmn r0, #1 mov r5, r0 - bne .L1197 - ldr r2, .L1202+4 + bne .L1210 + ldr r2, .L1215+4 ldr r3, [r2, #3624] ldrb r3, [r3, #19] @ zero_extendqisi2 sub r3, r3, #1 uxtb r3, r3 - cmp r3, #6 - bhi .L1182 + cmp r3, #7 + bhi .L1195 ldrb r1, [r2, #1] @ zero_extendqisi2 mov r0, r4 add r2, r2, #4 mov r3, #0 bl HynixSetRRPara -.L1182: +.L1195: ldr r1, [sp, #44] mov r0, r4 ldr r2, [r6, #8] ldr r3, [r6, #12] bl FlashReadRawPage - ldr r7, .L1202+4 + ldr r7, .L1215+4 ldr r1, [r6, #4] - ldrb r2, [r7, #3836] @ zero_extendqisi2 + ldrb r2, [r7, #3840] @ zero_extendqisi2 mov r5, r0 - ldr r0, .L1202+12 + ldr r0, .L1215+12 mov r3, r5 bl printk cmn r5, #1 - bne .L1197 - ldrb r7, [r7, #928] @ zero_extendqisi2 + bne .L1210 + ldrb r7, [r7, #3072] @ zero_extendqisi2 cmp r7, #0 - beq .L1181 + beq .L1194 ldr ip, [sp, #20] mov r0, r4 cmp ip, #0 - beq .L1183 + beq .L1196 bl flash_enter_slc_mode - b .L1184 -.L1183: + b .L1197 +.L1196: bl flash_exit_slc_mode -.L1184: - ldr r3, .L1202+8 +.L1197: + ldr r3, .L1215+8 mov r0, r4 ldr r1, [sp, #44] ldr r2, [r6, #8] - ldr ip, [r3, #176] + ldr ip, [r3, #184] ldr r3, [r6, #12] blx ip mov r5, r0 - b .L1197 -.L1180: + b .L1210 +.L1193: bl FlashReadRawPage mov r5, r0 - b .L1181 -.L1195: + b .L1194 +.L1208: mov r7, #0 -.L1179: - ldr r3, .L1202+4 - ldrb r3, [r3, #3836] @ zero_extendqisi2 +.L1192: + ldr r3, .L1215+4 + ldrb r3, [r3, #3840] @ zero_extendqisi2 add r3, r3, r3, asl #1 cmp r5, r3, lsr #2 - bls .L1181 - ldr r3, .L1202+8 - ldr r3, [r3, #176] + bls .L1194 + ldr r3, .L1215+8 + ldr r3, [r3, #184] cmp r3, #0 moveq r5, #256 - b .L1181 -.L1197: + b .L1194 +.L1210: mov r7, #0 -.L1181: +.L1194: ldr ip, [sp, #16] cmp r5, #256 cmnne r5, #1 @@ -10015,32 +10119,32 @@ FlashReadPages: ldr ip, [sp, #16] ldr r3, [r9, ip] cmn r3, #1 - bne .L1186 - ldr r2, .L1202+4 + bne .L1199 + ldr r2, .L1215+4 ldr r1, [r6, #4] - ldr r0, .L1202+16 - ldrb r2, [r2, #3836] @ zero_extendqisi2 + ldr r0, .L1215+16 + ldrb r2, [r2, #3840] @ zero_extendqisi2 bl printk ldr r1, [r6, #12] cmp r1, #0 - beq .L1186 + beq .L1199 mov r2, #4 - ldr r0, .L1202+20 + ldr r0, .L1215+20 mov r3, r2 bl rknand_print_hex -.L1186: +.L1199: cmp r7, #0 - beq .L1187 - ldr r3, .L1202+4 - ldrb r3, [r3, #3836] @ zero_extendqisi2 + beq .L1200 + ldr r3, .L1215+4 + ldrb r3, [r3, #3840] @ zero_extendqisi2 add r3, r3, r3, asl #1 cmp r8, r3, lsr #2 - bls .L1188 - ldr r3, .L1202+8 - ldr r3, [r3, #176] + bls .L1201 + ldr r3, .L1215+8 + ldr r3, [r3, #184] cmp r3, #0 moveq r8, #256 -.L1188: +.L1201: add r3, sl, #1 mov r2, #36 cmp r8, #256 @@ -10049,30 +10153,30 @@ FlashReadPages: movne r2, #0 str r8, [r9, r3] strne r2, [r9, r3] -.L1187: +.L1200: ldr ip, [sp, #20] add sl, sl, r7 cmp ip, #0 - beq .L1164 - ldr r3, .L1202+4 - ldrb r3, [r3, #928] @ zero_extendqisi2 + beq .L1177 + ldr r3, .L1215+4 + ldrb r3, [r3, #3072] @ zero_extendqisi2 cmp r3, #0 - beq .L1164 + beq .L1177 mov r0, r4 bl flash_exit_slc_mode -.L1164: +.L1177: add sl, sl, #1 -.L1161: +.L1174: ldr ip, [sp, #28] cmp sl, ip - bcc .L1189 + bcc .L1202 mov r0, #0 -.L1162: +.L1175: add sp, sp, #52 ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L1203: +.L1216: .align 2 -.L1202: +.L1215: .word .LANCHOR1 .word .LANCHOR0 .word .LANCHOR2 @@ -10082,224 +10186,6 @@ FlashReadPages: .fnend .size FlashReadPages, .-FlashReadPages .align 2 - .global FtlGcScanTempBlk - .type FtlGcScanTempBlk, %function -FtlGcScanTempBlk: - .fnstart - @ args = 0, pretend = 0, frame = 24 - @ frame_needed = 0, uses_anonymous_args = 0 - ldr r2, .L1229 - movw r3, #3096 - stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} - .save {r4, r5, r6, r7, r8, r9, sl, fp, lr} - .pad #28 - sub sp, sp, #28 - ldrh r4, [r2, r3] - movw r3, #65535 - mov r5, r0 - str r1, [sp, #20] - cmp r4, r3 - beq .L1225 - cmp r4, #0 - bne .L1205 - b .L1206 -.L1225: - mov r4, #0 -.L1205: - ldr r2, .L1229+4 - movw r3, #3916 - ldr fp, [sp, #20] - ldrh r3, [r2, r3] - cmp fp, r3 - bne .L1207 -.L1206: - bl FtlGcPageVarInit -.L1207: - mov r7, #0 - movw r8, #65535 - mov sl, r7 - mvn r3, #0 - str r3, [sp, #16] -.L1220: - ldrh r3, [r5, #0] - strb sl, [r5, #8] - cmp r3, r8 - beq .L1226 -.L1209: -.L1227: - ldr r3, .L1229+4 - movw r2, #3848 - ldrh r9, [r3, r2] - ldr r2, .L1229+8 - ldr lr, [r2, #-968] - ldr ip, [r2, #-1168] - movw r2, #3928 - ldrh r2, [r3, r2] - mov r3, #0 - mov r6, r3 - str r2, [sp, #12] - mov r2, r5 - b .L1210 -.L1212: - ldrh r0, [r2, #16] - cmp r0, r8 - beq .L1211 - mov fp, #36 - orr r0, r4, r0, asl #10 - mla r1, fp, r6, lr - ldr fp, [sp, #12] - stmib r1, {r0, sl} - mul r0, fp, r6 - add r6, r6, #1 - uxth r6, r6 - add fp, r0, #3 - cmp r0, #0 - movlt r0, fp - bic r0, r0, #3 - add r0, ip, r0 - str r0, [r1, #12] -.L1211: - add r3, r3, #1 - add r2, r2, #2 - uxth r3, r3 -.L1210: - cmp r3, r9 - bne .L1212 - ldr r9, .L1229+8 - mov r1, r6 - mov r2, #0 - ldr r0, [r9, #-968] - bl FlashReadPages - mov r3, #36 - mul r3, r3, r6 - mov r6, #0 - str r3, [sp, #12] - b .L1213 -.L1221: - ldr r1, [r9, #-968] - add r3, r1, r6 - ldr fp, [r3, #4] - stmib sp, {r1, r3} - ubfx r0, fp, #10, #16 - bl P2V_plane - ldr r1, [sp, #4] - ldr r3, [sp, #8] - ldr r1, [r1, r6] - cmp r1, #0 - mov r2, r0 - bne .L1214 - ldr r3, [r3, #12] - add r6, r6, #36 - ldrh r1, [r3, #0] - cmp r1, r8 - ldreq r3, .L1229+8 - moveq r1, #1 - streq r1, [r3, #-1008] - beq .L1208 -.L1215: - ldr r0, [r3, #12] - mov r1, fp - ldr r2, [r3, #8] - bl FtlGcUpdatePage - b .L1213 -.L1214: - mov r2, fp - ldr r0, .L1229+12 - ldrh r1, [r5, #0] - bl printk - ldr r3, .L1229+4 - ldr r2, [r3, #3840] - cmp r2, #0 - bne .L1216 - ldrb r2, [r3, #928] @ zero_extendqisi2 - cmp r2, #0 - beq .L1217 -.L1216: - ldrh r1, [r5, #0] - ldr r2, [r3, #4048] - mov r3, r1, asl #1 - ldrh r3, [r2, r3] - cmp r3, #159 - bls .L1218 -.L1217: - ldr r3, .L1229+8 - ldr r3, [r3, #-968] - ldr r3, [r3, r6] - cmn r3, #1 - bne .L1219 -.L1218: - ldr r3, .L1229+8 - ldr r3, [r3, #-968] - add r6, r3, r6 - ldr r6, [r6, #4] - str r6, [sp, #16] -.L1219: - ldr r2, .L1229+8 - mov r4, #0 - ldrh r3, [r5, #0] - ldr r2, [r2, #-2016] - mov r3, r3, asl #1 - strh sl, [r2, r3] @ movhi - ldrh r0, [r5, #0] - bl INSERT_FREE_LIST - mvn r3, #0 - strh r3, [r5, #0] @ movhi - bl FtlGcPageVarInit - b .L1220 -.L1213: - ldr r3, [sp, #12] - cmp r6, r3 - bne .L1221 - ldr fp, [sp, #20] - add r7, r7, #1 - add r4, r4, #1 - cmp r7, fp - uxth r4, r4 - bcc .L1222 - ldr r2, .L1229 - movw r3, #3096 - ldrh r1, [r2, r3] - cmp r1, r8 - beq .L1222 - add r1, r1, r7 - strh r1, [r2, r3] @ movhi - ldr r2, .L1229+4 - add r3, r3, #820 - ldrh r3, [r2, r3] - cmp r3, r4 - bhi .L1223 -.L1222: - ldr r2, .L1229+4 - movw r3, #3916 - ldrh r3, [r2, r3] - cmp r3, r4 - bhi .L1227 -.L1226: - mov r2, #0 -.L1208: - ldr r1, .L1229 - movw r3, #3096 - mvn r0, #0 - strh r4, [r5, #2] @ movhi - strb r2, [r5, #6] - strh r0, [r1, r3] @ movhi - mov r0, r5 - mov r1, r4 - bl ftl_sb_update_avl_pages -.L1223: - ldr r0, [sp, #16] - add sp, sp, #28 - ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L1230: - .align 2 -.L1229: - .word .LANCHOR1 - .word .LANCHOR0 - .word .LANCHOR2 - .word .LC101 - .fnend - .size FtlGcScanTempBlk, .-FtlGcScanTempBlk - .align 2 .global FtlScanAllBlock .type FtlScanAllBlock, %function FtlScanAllBlock: @@ -10310,47 +10196,47 @@ FtlScanAllBlock: .save {r4, r5, r6, r7, r8, r9, sl, fp, lr} .pad #84 sub sp, sp, #84 - ldr r0, .L1241 + ldr r0, .L1227 mov r5, #0 - ldr r1, .L1241+4 + ldr r1, .L1227+4 bl printk - ldr r7, .L1241+8 - b .L1232 -.L1240: + ldr r7, .L1227+8 + b .L1218 +.L1226: add r4, sp, #80 mov r0, r5 - ldr r6, .L1241+12 + ldr r6, .L1227+12 mov r9, #36 strh r5, [r4, #-48]! @ movhi bl ftl_get_blk_mode mov r2, r5, asl #1 - ldr ip, [r6, #-2016] + ldr ip, [r6, #-2012] mov r1, r5 ldrh r2, [ip, r2] mov r3, r0 - ldr r0, .L1241+16 + ldr r0, .L1227+16 bl printk mov r0, r4 bl make_superblock - movw r3, #3848 + movw r3, #3852 ldrh sl, [r7, r3] - add r3, r3, #78 + add r3, r3, #76 add r0, r4, #14 mov r4, #0 ldrh r3, [r7, r3] - ldr r8, [r6, #-968] - ldr lr, [r6, #-1172] + ldr r8, [r6, #-960] + ldr lr, [r6, #-1164] str r3, [sp, #28] - movw r3, #3928 + movw r3, #3930 ldrh ip, [r7, r3] mov r3, r4 - ldr r6, [r6, #-1168] - b .L1233 -.L1235: + ldr r6, [r6, #-1160] + b .L1219 +.L1221: ldrh r1, [r0, #2]! movw r2, #65535 cmp r1, r2 - beq .L1234 + beq .L1220 mla r2, r9, r4, r8 ldr fp, [sp, #28] mov r1, r1, asl #10 @@ -10371,22 +10257,22 @@ FtlScanAllBlock: bic r1, r1, #3 add r1, r6, r1 str r1, [r2, #12] -.L1234: +.L1220: add r3, r3, #1 uxth r3, r3 -.L1233: +.L1219: cmp r3, sl - bne .L1235 - ldr sl, .L1241+12 + bne .L1221 + ldr sl, .L1227+12 mov r1, r4 mov r2, #0 mov r6, #0 mov r8, r6 - ldr r0, [sl, #-968] + ldr r0, [sl, #-960] bl FlashReadPages - b .L1236 -.L1237: - ldr r2, [sl, #-968] + b .L1222 +.L1223: + ldr r2, [sl, #-960] add r8, r8, #1 ldrh r1, [sp, #32] add r3, r2, r6 @@ -10405,25 +10291,25 @@ FtlScanAllBlock: str r0, [sp, #16] ldr r0, [ip, #4] str r0, [sp, #20] - ldr r0, .L1241+20 + ldr r0, .L1227+20 ldr r2, [r2, r6] add r6, r6, #36 ldr r3, [r3, #4] bl printk -.L1236: +.L1222: cmp r8, r4 - ldr r9, .L1241+12 - bne .L1237 - ldr r0, [r9, #-968] + ldr r9, .L1227+12 + bne .L1223 + ldr r0, [r9, #-960] mov r1, r4 mov r2, #1 mov r6, #0 bl FlashReadPages mov r8, r6 mov sl, r9 - b .L1238 -.L1239: - ldr r2, [sl, #-968] + b .L1224 +.L1225: + ldr r2, [sl, #-960] add r8, r8, #1 ldrh r1, [sp, #32] add r3, r2, r6 @@ -10442,34 +10328,34 @@ FtlScanAllBlock: str r0, [sp, #16] ldr r0, [ip, #4] str r0, [sp, #20] - ldr r0, .L1241+24 + ldr r0, .L1227+24 ldr r2, [r2, r6] add r6, r6, #36 ldr r3, [r3, #4] bl printk -.L1238: +.L1224: cmp r8, r4 - bne .L1239 + bne .L1225 add r5, r5, #1 uxth r5, r5 -.L1232: - movw r3, #3858 +.L1218: + movw r3, #3862 ldrh r3, [r7, r3] cmp r3, r5 - bhi .L1240 + bhi .L1226 mov r0, #0 add sp, sp, #84 ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L1242: +.L1228: .align 2 -.L1241: - .word .LC102 +.L1227: + .word .LC101 .word .LANCHOR3+15 .word .LANCHOR0 .word .LANCHOR2 + .word .LC102 .word .LC103 .word .LC104 - .word .LC105 .fnend .size FtlScanAllBlock, .-FtlScanAllBlock .align 2 @@ -10486,17 +10372,17 @@ FtlDumpBlockInfo: sub sp, sp, #84 mov r7, r1 bl P2V_block_in_plane - ldr r5, .L1254 - ldr r1, .L1254+4 - movw r6, #3916 + ldr r5, .L1240 + ldr r1, .L1240+4 + movw r6, #3918 ldrh r9, [r5, r6] mov r4, r0 - ldr r0, .L1254+8 + ldr r0, .L1240+8 bl printk - ldr r3, .L1254+12 + ldr r3, .L1240+12 mov r1, r4 - ldr r0, .L1254+16 - ldr r2, [r3, #-2016] + ldr r0, .L1240+16 + ldr r2, [r3, #-2012] mov r3, r4, asl #1 ldrh r2, [r2, r3] bl printk @@ -10504,47 +10390,47 @@ FtlDumpBlockInfo: strh r4, [r0, #-48]! @ movhi bl make_superblock rsbs r7, r7, #1 - ldrb r3, [r5, #928] @ zero_extendqisi2 + ldrb r3, [r5, #3072] @ zero_extendqisi2 movcc r7, #0 cmp r3, #0 moveq r7, #0 cmp r7, #0 - beq .L1244 + beq .L1230 mov r0, r4 bl ftl_get_blk_mode cmp r0, #1 mov r7, r0 - movweq r3, #3918 + moveq r3, #3920 ldreqh r9, [r5, r3] -.L1244: +.L1230: ldrh r3, [r5, r6] mov r1, r7 - ldr r0, .L1254+20 + ldr r0, .L1240+20 mov r2, r9 bl printk mov r6, #0 -.L1245: - ldr r3, .L1254 - movw r2, #3848 - movw r1, #3926 +.L1231: + ldr r3, .L1240 + movw r2, #3852 + movw r1, #3928 mov r4, #0 add r0, sp, #46 ldrh sl, [r3, r2] - ldr r2, .L1254+12 + ldr r2, .L1240+12 ldrh lr, [r3, r1] - ldr r8, [r2, #-968] - ldr r5, [r2, #-1172] - ldr ip, [r2, #-1168] - movw r2, #3928 + ldr r8, [r2, #-960] + ldr r5, [r2, #-1164] + ldr ip, [r2, #-1160] + movw r2, #3930 ldrh r2, [r3, r2] mov r3, r4 str r2, [sp, #28] - b .L1246 -.L1248: + b .L1232 +.L1234: ldrh r1, [r0, #2]! movw r2, #65535 cmp r1, r2 - beq .L1247 + beq .L1233 mov fp, #36 orr r1, r6, r1, asl #10 mla r2, fp, r4, r8 @@ -10566,22 +10452,22 @@ FtlDumpBlockInfo: bic r1, r1, #3 add r1, ip, r1 str r1, [r2, #12] -.L1247: +.L1233: add r3, r3, #1 uxth r3, r3 -.L1246: +.L1232: cmp r3, sl - bne .L1248 - ldr r8, .L1254+12 + bne .L1234 + ldr r8, .L1240+12 mov r1, r4 mov r2, r7 mov r5, #0 mov sl, r5 - ldr r0, [r8, #-968] + ldr r0, [r8, #-960] bl FlashReadPages - b .L1249 -.L1250: - ldr r2, [r8, #-968] + b .L1235 +.L1236: + ldr r2, [r8, #-960] add sl, sl, #1 ldrh r1, [sp, #32] add r3, r2, r5 @@ -10600,32 +10486,32 @@ FtlDumpBlockInfo: str r0, [sp, #16] ldr r0, [ip, #4] str r0, [sp, #20] - ldr r0, .L1254+24 + ldr r0, .L1240+24 ldr r2, [r2, r5] add r5, r5, #36 ldr r3, [r3, #4] bl printk -.L1249: +.L1235: cmp sl, r4 - bne .L1250 + bne .L1236 add r6, r6, #1 uxth r6, r6 cmp r6, r9 - bne .L1245 -.L1251: + bne .L1231 +.L1237: mov r0, #0 add sp, sp, #84 ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L1255: +.L1241: .align 2 -.L1254: +.L1240: .word .LANCHOR0 .word .LANCHOR3+31 - .word .LC102 + .word .LC101 .word .LANCHOR2 + .word .LC105 .word .LC106 .word .LC107 - .word .LC108 .fnend .size FtlDumpBlockInfo, .-FtlDumpBlockInfo .align 2 @@ -10638,59 +10524,59 @@ FtlScanSysBlk: stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} .save {r4, r5, r6, r7, r8, r9, sl, fp, lr} mov r6, #0 - ldr r5, .L1314 + ldr r5, .L1300 .pad #28 sub sp, sp, #28 - ldr r4, .L1314+4 + ldr r4, .L1300+4 mov r1, r6 - ldr r3, .L1314+8 - mov r7, #3936 - ldr r2, [r5, #3944] - ldr r0, [r4, #-1032] + ldr r3, .L1300+8 + movw r7, #3940 + ldr r2, [r5, #3948] + ldr r0, [r4, #-1024] mov sl, r4 strh r6, [r4, r3] @ movhi - movw r3, #3962 + movw r3, #3966 strh r6, [r5, r3] @ movhi mov r2, r2, asl #2 bl ftl_memset - ldr r2, [r5, #3944] + ldr r2, [r5, #3948] mov r1, r6 - ldr r0, [r4, #-1036] + ldr r0, [r4, #-1028] mov r2, r2, asl #1 bl ftl_memset ldrh r2, [r5, r7] mov r1, r6 - ldr r0, [r4, #-904] + ldr r0, [r4, #-896] mov r2, r2, asl #2 bl ftl_memset ldrh r2, [r5, r7] mov r1, r6 - ldr r0, [r5, #3964] + ldr r0, [r5, #3968] mov r2, r2, asl #1 bl ftl_memset - ldr r0, .L1314+12 + ldr r0, .L1300+12 mov r1, #255 - mov r2, #12 + mov r2, #16 bl ftl_memset - mov r3, #3856 + movw r3, #3860 ldrh r3, [r5, r3] str r3, [sp, #8] - b .L1257 -.L1259: + b .L1243 +.L1245: add r3, r6, r5 ldr r1, [sp, #8] - ldrb r0, [r3, #3874] @ zero_extendqisi2 + ldrb r0, [r3, #3878] @ zero_extendqisi2 bl V2P_block str r0, [sp, #0] bl FtlBbmIsBadBlock ldr r3, [sp, #0] cmp r0, #0 - bne .L1258 - ldr r2, [r4, #-968] + bne .L1244 + ldr r2, [r4, #-960] mov r3, r3, asl #10 mla r2, r9, r7, r2 str r3, [r2, #4] - ldr r3, [r4, #-1172] + ldr r3, [r4, #-1164] str r3, [r2, #8] ldrh r3, [r6, r8] mul r3, r3, r7 @@ -10699,45 +10585,45 @@ FtlScanSysBlk: add r1, r3, #3 cmp r3, #0 movlt r3, r1 - ldr r1, [r4, #-1168] + ldr r1, [r4, #-1160] bic r3, r3, #3 add r3, r1, r3 str r3, [r2, #12] -.L1258: +.L1244: add r5, r5, #1 uxth r5, r5 - b .L1292 -.L1305: + b .L1278 +.L1291: mov r7, #0 - movw fp, #3848 + movw fp, #3852 mov r5, r7 mov r9, #36 - movw r8, #3928 -.L1292: + movw r8, #3930 +.L1278: ldrh r3, [r6, fp] cmp r3, r5 - bhi .L1259 + bhi .L1245 cmp r7, #0 - beq .L1260 - ldr r0, [r4, #-968] + beq .L1246 + ldr r0, [r4, #-960] mov r1, r7 mov r2, #1 mov fp, r7 bl FlashReadPages mov r8, #0 str r8, [sp, #12] -.L1291: - ldr r3, [r4, #-968] +.L1277: + ldr r3, [r4, #-960] add r2, r3, r8 ldr r3, [r3, r8] ldr r6, [r2, #4] cmn r3, #1 ldr r5, [r2, #12] ubfx r6, r6, #10, #16 - bne .L1261 + bne .L1247 mov r7, #16 -.L1263: - ldr r0, [r4, #-968] +.L1249: + ldr r0, [r4, #-960] mov r1, #1 mov r2, r1 add r0, r0, r8 @@ -10748,58 +10634,58 @@ FtlScanSysBlk: ldrh r3, [r5, #0] movw r1, #65535 cmp r3, r1 - ldreq r3, [sl, #-968] + ldreq r3, [sl, #-960] mvneq r2, #0 streq r2, [r3, r8] - beq .L1261 -.L1262: - ldr r3, [r4, #-968] + beq .L1247 +.L1248: + ldr r3, [r4, #-960] ldr r3, [r3, r8] cmn r3, #1 - bne .L1261 + bne .L1247 sub r7, r7, #1 uxth r7, r7 cmp r7, #0 - bne .L1263 -.L1261: - ldr r3, [r4, #-968] + bne .L1249 +.L1247: + ldr r3, [r4, #-960] ldr r3, [r3, r8] cmn r3, #1 - beq .L1264 - ldr r2, [r4, #-1804] + beq .L1250 + ldr r2, [r4, #-1800] ldr r3, [r5, #4] cmn r2, #1 - beq .L1265 + beq .L1251 cmp r2, r3 - bhi .L1266 -.L1265: + bhi .L1252 +.L1251: cmn r3, #1 addne r3, r3, #1 - strne r3, [sl, #-1804] -.L1266: + strne r3, [sl, #-1800] +.L1252: ldrh r3, [r5, #0] movw r2, #61604 cmp r3, r2 - beq .L1269 - bhi .L1272 + beq .L1255 + bhi .L1258 movw r2, #61574 cmp r3, r2 - bne .L1267 - b .L1312 -.L1272: + bne .L1253 + b .L1298 +.L1258: movw r2, #61634 cmp r3, r2 - beq .L1270 + beq .L1256 movw r2, #65535 cmp r3, r2 - bne .L1267 - b .L1313 -.L1270: - ldr r3, .L1314 + bne .L1253 + b .L1299 +.L1256: + ldr r3, .L1300 mov r9, r6 - ldr r1, .L1314+8 - ldr ip, [r4, #-1032] - ldr r0, [r3, #3944] + ldr r1, .L1300+8 + ldr ip, [r4, #-1024] + ldr r0, [r3, #3948] ldrh r1, [r4, r1] uxth r2, r0 sub r3, r2, #1 @@ -10808,29 +10694,29 @@ FtlScanSysBlk: uxth r3, r3 sxth r2, r2 str r2, [sp, #4] - b .L1273 -.L1279: + b .L1259 +.L1265: mov r6, r2, asl #2 ldr r7, [r5, #4] str r6, [sp, #16] ldr r6, [ip, r2, asl #2] cmp r7, r6 - bls .L1274 + bls .L1260 ldr ip, [ip, #0] mov r6, r9 cmp ip, #0 - bne .L1275 + bne .L1261 cmp r1, r0 addne r1, r1, #1 - ldrne r0, .L1314+8 + ldrne r0, .L1300+8 strneh r1, [r4, r0] @ movhi -.L1275: +.L1261: mov r0, #0 sxth r9, r3 str r3, [sp, #4] - b .L1276 -.L1277: - ldr r7, [r4, #-1032] + b .L1262 +.L1263: + ldr r7, [r4, #-1024] add ip, r1, #1 add r0, r0, #1 ldr r3, [r7, ip, asl #2] @@ -10838,90 +10724,90 @@ FtlScanSysBlk: uxth r0, r0 str r3, [r7, r1, asl #2] mov r1, r1, asl #1 - ldr r7, [r4, #-1036] + ldr r7, [r4, #-1028] ldrh ip, [r7, ip] strh ip, [r7, r1] @ movhi -.L1276: +.L1262: sxth r1, r0 cmp r1, r9 - bne .L1277 - ldr r1, [sl, #-1032] + bne .L1263 + ldr r1, [sl, #-1024] mov r2, r2, asl #1 ldr r0, [r5, #4] ldr ip, [sp, #16] ldr r3, [sp, #4] str r0, [r1, ip] - ldr r1, [sl, #-1036] + ldr r1, [sl, #-1028] strh r6, [r1, r2] @ movhi - b .L1278 -.L1274: + b .L1264 +.L1260: sub r3, r3, #1 uxth r3, r3 -.L1273: +.L1259: ldr r6, [sp, #4] sxth r2, r3 cmp r2, r6 - bgt .L1279 + bgt .L1265 mov r6, r9 -.L1278: +.L1264: sxth r3, r3 cmp r3, #0 - blt .L1267 - ldr r2, .L1314+8 - ldr r0, .L1314 + blt .L1253 + ldr r2, .L1300+8 + ldr r0, .L1300 ldrh r1, [r4, r2] - ldr r0, [r0, #3944] + ldr r0, [r0, #3948] rsb r0, r1, r0 sub r0, r0, #1 sxth r0, r0 cmp r3, r0 - bgt .L1267 + bgt .L1253 add r1, r1, #1 strh r1, [r4, r2] @ movhi - ldr r2, [r4, #-1032] + ldr r2, [r4, #-1024] ldr r1, [r5, #4] str r1, [r2, r3, asl #2] mov r3, r3, asl #1 - ldr r2, [r4, #-1036] - b .L1309 -.L1312: - ldr r1, .L1314 - mov r3, #3936 - movw ip, #3962 + ldr r2, [r4, #-1028] + b .L1295 +.L1298: + ldr r1, .L1300 + movw r3, #3940 + movw ip, #3966 mov r9, r6 ldrh r0, [r1, r3] ldrh r1, [r1, ip] sub r2, r0, #1 - ldr ip, [r4, #-904] + ldr ip, [r4, #-896] uxth r3, r2 rsb r2, r1, r2 str r2, [sp, #4] - b .L1280 -.L1286: + b .L1266 +.L1272: mov r6, r2, asl #2 ldr r7, [r5, #4] str r6, [sp, #16] ldr r6, [ip, r2, asl #2] cmp r7, r6 - bls .L1281 + bls .L1267 ldr ip, [ip, #0] mov r6, r9 cmp ip, #0 - bne .L1282 + bne .L1268 cmp r1, r0 addne r1, r1, #1 - ldrne ip, .L1314 - movwne r0, #3962 + ldrne ip, .L1300 + movwne r0, #3966 strneh r1, [ip, r0] @ movhi -.L1282: +.L1268: sxth ip, r3 mov r0, #0 str ip, [sp, #20] - ldr r9, .L1314 + ldr r9, .L1300 str r3, [sp, #4] - b .L1283 -.L1284: - ldr r7, [r4, #-904] + b .L1269 +.L1270: + ldr r7, [r4, #-896] add ip, r1, #1 add r0, r0, #1 ldr r3, [r7, ip, asl #2] @@ -10929,142 +10815,142 @@ FtlScanSysBlk: uxth r0, r0 str r3, [r7, r1, asl #2] mov r1, r1, asl #1 - ldr r7, [r9, #3964] + ldr r7, [r9, #3968] ldrh ip, [r7, ip] strh ip, [r7, r1] @ movhi -.L1283: +.L1269: ldr ip, [sp, #20] sxth r1, r0 cmp r1, ip - bne .L1284 - ldr r1, [sl, #-904] + bne .L1270 + ldr r1, [sl, #-896] mov r2, r2, asl #1 ldr r0, [r5, #4] ldr ip, [sp, #16] ldr r3, [sp, #4] str r0, [r1, ip] - ldr r1, .L1314 - ldr r1, [r1, #3964] + ldr r1, .L1300 + ldr r1, [r1, #3968] strh r6, [r1, r2] @ movhi - b .L1285 -.L1281: + b .L1271 +.L1267: sub r3, r3, #1 uxth r3, r3 -.L1280: +.L1266: ldr r6, [sp, #4] sxth r2, r3 cmp r2, r6 - bgt .L1286 + bgt .L1272 mov r6, r9 -.L1285: +.L1271: sxth r3, r3 cmp r3, #0 - blt .L1267 - ldr r2, .L1314 - mov ip, #3936 - movw r1, #3962 + blt .L1253 + ldr r2, .L1300 + movw ip, #3940 + movw r1, #3966 ldrh ip, [r2, ip] ldrh r0, [r2, r1] sub ip, ip, #1 rsb ip, r0, ip sxth ip, ip cmp r3, ip - bgt .L1267 + bgt .L1253 add r0, r0, #1 strh r0, [r2, r1] @ movhi ldr r0, [r5, #4] - ldr r1, [r4, #-904] + ldr r1, [r4, #-896] str r0, [r1, r3, asl #2] mov r3, r3, asl #1 - ldr r2, [r2, #3964] -.L1309: + ldr r2, [r2, #3968] +.L1295: strh r6, [r2, r3] @ movhi - b .L1267 -.L1269: - ldr r3, .L1314+16 + b .L1253 +.L1255: + ldr r3, .L1300+16 movw ip, #65535 ldrh r2, [r4, r3] cmp r2, ip streqh r6, [r4, r3] @ movhi - beq .L1310 - ldr r3, .L1314+20 + beq .L1296 + ldr r3, .L1300+20 movw r1, #65535 ldrh r0, [r4, r3] cmp r0, r1 - beq .L1288 + beq .L1274 mov r1, #1 bl FtlFreeSysBlkQueueIn -.L1288: +.L1274: ldr r3, [r5, #4] - ldr r2, [sl, #-1764] + ldr r2, [sl, #-1760] cmp r2, r3 - ldr r3, .L1314+20 + ldr r3, .L1300+20 strcsh r6, [r4, r3] @ movhi - bcs .L1267 - ldr r2, .L1314+16 + bcs .L1253 + ldr r2, .L1300+16 ldrh r1, [r4, r2] strh r6, [r4, r2] @ movhi strh r1, [r4, r3] @ movhi -.L1310: +.L1296: ldr r3, [r5, #4] - str r3, [r4, #-1764] - b .L1267 -.L1313: + str r3, [r4, #-1760] + b .L1253 +.L1299: mov r0, r6 - b .L1311 -.L1264: - ldr r3, .L1314 + b .L1297 +.L1250: + ldr r3, .L1300 mov r0, r6 - ldrb r1, [r3, #928] @ zero_extendqisi2 + ldrb r1, [r3, #3072] @ zero_extendqisi2 cmp r1, #0 - beq .L1290 -.L1311: + beq .L1276 +.L1297: mov r1, #0 -.L1290: +.L1276: bl FtlFreeSysBlkQueueIn -.L1267: +.L1253: ldr r6, [sp, #12] add r8, r8, #36 add r3, r6, #1 uxth r3, r3 str r3, [sp, #12] cmp r3, fp - bne .L1291 -.L1260: + bne .L1277 +.L1246: ldr ip, [sp, #8] add r3, ip, #1 uxth r3, r3 str r3, [sp, #8] -.L1257: - ldr r6, .L1314 - movw r3, #3858 +.L1243: + ldr r6, .L1300 + movw r3, #3862 ldr ip, [sp, #8] ldrh r3, [r6, r3] cmp r3, ip - bhi .L1305 - ldr r1, .L1314+4 - ldr r2, [r1, #-1036] + bhi .L1291 + ldr r1, .L1300+4 + ldr r2, [r1, #-1028] ldrh r3, [r2, #0] cmp r3, #0 - bne .L1293 - ldr r0, .L1314+8 + bne .L1279 + ldr r0, .L1300+8 ldrh r1, [r1, r0] cmp r1, #0 - ldrne r0, [r6, #3944] - bne .L1294 - b .L1293 -.L1298: + ldrne r0, [r6, #3948] + bne .L1280 + b .L1279 +.L1284: mov r1, r1, asl #1 ldrh r1, [r2, r1] cmp r1, #0 - beq .L1295 - ldr r7, .L1314 + beq .L1281 + ldr r7, .L1300 sxth r6, r3 - ldr r1, .L1314+4 + ldr r1, .L1300+4 mov r5, #0 - b .L1296 -.L1297: - ldr ip, [r1, #-1036] + b .L1282 +.L1283: + ldr ip, [r1, #-1028] mov r0, r2, asl #1 rsb r4, r6, r2 add r3, r3, #1 @@ -11072,49 +10958,49 @@ FtlScanSysBlk: mov r8, r4, asl #1 uxth r3, r3 strh sl, [ip, r8] @ movhi - ldr ip, [r1, #-1032] + ldr ip, [r1, #-1024] ldr r2, [ip, r2, asl #2] str r2, [ip, r4, asl #2] - ldr r2, [r1, #-1036] + ldr r2, [r1, #-1028] strh r5, [r2, r0] @ movhi -.L1296: - ldr r0, [r7, #3944] +.L1282: + ldr r0, [r7, #3948] sxth r2, r3 cmp r2, r0 - bcc .L1297 - b .L1293 -.L1295: + bcc .L1283 + b .L1279 +.L1281: add r3, r3, #1 uxth r3, r3 -.L1294: +.L1280: sxth r1, r3 cmp r1, r0 - bcc .L1298 -.L1293: - ldr r2, .L1314 - ldr r1, [r2, #3964] + bcc .L1284 +.L1279: + ldr r2, .L1300 + ldr r1, [r2, #3968] ldrh r3, [r1, #0] cmp r3, #0 - bne .L1299 - movw r0, #3962 + bne .L1285 + movw r0, #3966 ldrh r0, [r2, r0] cmp r0, #0 - movne r0, #3936 + movwne r0, #3940 ldrneh r2, [r2, r0] - bne .L1300 - b .L1299 -.L1304: + bne .L1286 + b .L1285 +.L1290: mov ip, r0, asl #1 ldrh ip, [r1, ip] cmp ip, #0 - beq .L1301 - ldr r1, .L1314 - mov r8, #3936 - ldr r7, .L1314+4 + beq .L1287 + ldr r1, .L1300 + movw r8, #3940 + ldr r7, .L1300+4 mov r6, #0 - b .L1302 -.L1303: - ldr r4, [r1, #3964] + b .L1288 +.L1289: + ldr r4, [r1, #3968] mov ip, r2, asl #1 rsb r5, r0, r2 add r3, r3, #1 @@ -11122,37 +11008,37 @@ FtlScanSysBlk: mov sl, r5, asl #1 uxth r3, r3 strh r9, [r4, sl] @ movhi - ldr r4, [r7, #-904] + ldr r4, [r7, #-896] ldr r2, [r4, r2, asl #2] str r2, [r4, r5, asl #2] - ldr r2, [r1, #3964] + ldr r2, [r1, #3968] strh r6, [r2, ip] @ movhi -.L1302: +.L1288: ldrh ip, [r1, r8] sxth r2, r3 cmp r2, ip - blt .L1303 - b .L1299 -.L1301: + blt .L1289 + b .L1285 +.L1287: add r3, r3, #1 uxth r3, r3 -.L1300: +.L1286: sxth r0, r3 cmp r0, r2 - blt .L1304 -.L1299: + blt .L1290 +.L1285: mov r0, #0 add sp, sp, #28 ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L1315: +.L1301: .align 2 -.L1314: +.L1300: .word .LANCHOR0 .word .LANCHOR2 - .word -1040 - .word .LANCHOR2-1772 - .word -1772 + .word -1032 + .word .LANCHOR2-1768 .word -1768 + .word -1764 .fnend .size FtlScanSysBlk, .-FtlScanSysBlk .align 2 @@ -11163,11 +11049,11 @@ FtlGetLastWrittenPage: @ args = 0, pretend = 0, frame = 104 @ frame_needed = 0, uses_anonymous_args = 0 cmp r1, #1 - ldr r3, .L1327 + ldr r3, .L1313 stmfd sp!, {r4, r5, r6, r7, r8, sl, lr} .save {r4, r5, r6, r7, r8, sl, lr} - movweq r2, #3918 - movwne r2, #3916 + moveq r2, #3920 + movwne r2, #3918 .pad #108 sub sp, sp, #108 ldrh r4, [r3, r2] @@ -11189,9 +11075,9 @@ FtlGetLastWrittenPage: bl FlashReadPages ldr r3, [sp, #40] cmn r3, #1 - bne .L1320 - b .L1325 -.L1323: + bne .L1306 + b .L1311 +.L1309: add r6, r6, r3 mov r0, r7 mov r1, #1 @@ -11204,30 +11090,30 @@ FtlGetLastWrittenPage: bl FlashReadPages ldr r3, [sp, #40] cmn r3, #1 - bne .L1321 + bne .L1307 ldr r3, [sp, #44] cmn r3, #1 - bne .L1321 + bne .L1307 ldr r3, [sp, #4] cmn r3, #1 subne r4, r6, #1 uxthne r4, r4 - bne .L1325 -.L1321: + bne .L1311 +.L1307: add r6, r6, #1 uxth r8, r6 -.L1325: +.L1311: sxth r6, r8 sxth r3, r4 cmp r6, r3 - ble .L1323 -.L1320: + ble .L1309 +.L1306: sxth r0, r4 add sp, sp, #108 ldmfd sp!, {r4, r5, r6, r7, r8, sl, pc} -.L1328: +.L1314: .align 2 -.L1327: +.L1313: .word .LANCHOR0 .fnend .size FtlGetLastWrittenPage, .-FtlGetLastWrittenPage @@ -11238,141 +11124,166 @@ FtlLoadSysInfo: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - stmfd sp!, {r3, r4, r5, r6, r7, lr} - .save {r3, r4, r5, r6, r7, lr} + stmfd sp!, {r3, r4, r5, r6, r7, r8, sl, lr} + .save {r3, r4, r5, r6, r7, r8, sl, lr} mov r1, #0 - ldr r4, .L1345 - ldr r2, .L1345+4 - ldr r7, .L1345+8 - ldr r3, [r4, #-956] - ldr r0, [r4, #-2016] - str r3, [r4, #192] - ldr r3, [r4, #-932] - str r3, [r4, #196] - mov r3, #3856 - ldrh r2, [r2, r3] + ldr r4, .L1335 + ldr r6, .L1335+4 + ldr r7, .L1335+8 + ldr r3, [r4, #-948] + ldr r0, [r4, #-2012] + str r3, [r4, #200] + ldr r3, [r4, #-924] + str r3, [r4, #204] + movw r3, #3860 + ldrh r2, [r6, r3] mov r2, r2, asl #1 bl ftl_memset ldrh r0, [r4, r7] movw r3, #65535 cmp r0, r3 - beq .L1343 + beq .L1332 mov r1, #1 - mov r5, #0 bl FtlGetLastWrittenPage - ldr r3, .L1345+12 - add r2, r0, #1 - mov r6, r0 + ldr r3, .L1335+12 + ldrh r7, [r4, r7] + uxth r5, r0 + add r2, r5, #1 strh r2, [r4, r3] @ movhi - b .L1331 -.L1334: - ldrh r2, [r4, r7] + b .L1334 +.L1323: + sxth r8, r7 mov r1, #1 - ldr r0, .L1345+16 - orr r3, r3, r2, asl #10 - str r3, [r4, #188] - ldr r3, [r4, #-956] + ldr r0, .L1335+16 mov r2, r1 - str r3, [r4, #192] + orr r3, r3, r8, asl #10 + str r3, [r4, #196] + ldr r3, [r4, #-948] + str r3, [r4, #200] bl FlashReadPages - ldr r3, [r4, #184] + ldrb r3, [r6, #852] @ zero_extendqisi2 + cmp r3, #0 + beq .L1318 + ldr r3, [r4, #204] + ldr sl, [r3, #12] + cmp sl, #0 + beq .L1318 + movw r3, #3928 + ldr r0, [r4, #200] + ldrh r1, [r6, r3] + bl js_hash + cmp sl, r0 + beq .L1318 + cmp r5, #0 + bne .L1319 + ldr r3, .L1335+20 + ldrh r3, [r4, r3] + cmp r8, r3 + uxthne r7, r3 + movne r3, #3920 + ldrneh r5, [r6, r3] + bne .L1321 +.L1319: + mvn r3, #0 + str r3, [r4, #192] +.L1318: + ldr r3, [r4, #192] cmn r3, #1 - beq .L1332 - ldr r3, [r4, #-956] + beq .L1321 + ldr r3, [r4, #-948] ldr r2, [r3, #0] - ldr r3, .L1345+20 + ldr r3, .L1335+24 cmp r2, r3 - bne .L1332 - ldr r3, [r4, #-932] + bne .L1321 + ldr r3, [r4, #-924] ldrh r2, [r3, #0] movw r3, #61604 cmp r2, r3 - beq .L1333 -.L1332: + beq .L1322 +.L1321: sub r5, r5, #1 uxth r5, r5 -.L1331: - add r3, r5, r6 - sxth r3, r3 +.L1334: + sxth r3, r5 cmp r3, #0 - bge .L1334 -.L1333: - ldr r4, .L1345 + bge .L1323 +.L1322: + ldr r4, .L1335 mov r2, #48 - ldr r5, .L1345+4 - mov r6, #3856 - ldr r0, .L1345+24 - ldr r7, [r4, #192] + ldr r5, .L1335+4 + movw r6, #3860 + ldr r0, .L1335+28 + ldr r7, [r4, #200] mov r1, r7 bl memcpy ldrh r2, [r5, r6] add r1, r7, #48 - ldr r0, [r4, #-2016] + ldr r0, [r4, #-2012] mov r2, r2, asl #1 bl memcpy ldrh r1, [r5, r6] - ldr r3, [r4, #192] - ldr r0, [r4, #-1840] + ldr r3, [r4, #200] + ldr r0, [r4, #-1836] mov r2, r1, lsr #3 add r1, r1, #24 add r2, r2, #4 mov r1, r1, lsr #1 add r1, r3, r1, asl #2 bl memcpy - movw r3, #3960 + movw r3, #3964 ldrh r3, [r5, r3] cmp r3, #0 - beq .L1335 + beq .L1324 ldrh r3, [r5, r6] - mov r2, #3952 + movw r2, #3956 ldrh r2, [r5, r2] - ldr r0, [r4, #-896] + ldr r0, [r4, #-888] mov r1, r3, lsr #3 add r1, r1, r3, asl #1 - ldr r3, [r4, #192] + ldr r3, [r4, #200] add r1, r1, #52 mov r2, r2, asl #2 ubfx r1, r1, #2, #14 add r1, r3, r1, asl #2 bl memcpy -.L1335: - ldr r4, .L1345 - ldr r3, .L1345+20 - ldr r2, [r4, #-2072] +.L1324: + ldr r4, .L1335 + ldr r3, .L1335+24 + ldr r2, [r4, #-2068] cmp r2, r3 - bne .L1343 - ldr r3, .L1345+28 - movw r1, #3870 - ldrb r0, [r4, #-2062] @ zero_extendqisi2 + bne .L1332 + ldr r3, .L1335+32 + movw r1, #3874 + ldrb r0, [r4, #-2058] @ zero_extendqisi2 ldrh r2, [r4, r3] - ldr r3, .L1345+32 + ldr r3, .L1335+36 strh r2, [r4, r3] @ movhi - ldr r3, .L1345+4 + ldr r3, .L1335+4 ldrh r1, [r3, r1] cmp r0, r1 - bne .L1343 - movw r1, #3916 - movw r0, #3922 + bne .L1332 + movw r1, #3918 + movw r0, #3924 ldrh r1, [r3, r1] movw r5, #65535 ldrh r0, [r3, r0] - str r2, [r4, #220] + str r2, [r4, #228] mul r1, r2, r1 - str r1, [r3, #3976] + str r1, [r3, #3980] mul r1, r0, r1 - ldr r0, [r3, #3860] - str r1, [r3, #3956] - movw r1, #3986 + ldr r0, [r3, #3864] + str r1, [r3, #3960] + movw r1, #3990 ldrh r1, [r3, r1] rsb r0, r1, r0 rsb r0, r2, r0 - movw r2, #3848 + movw r2, #3852 ldrh r1, [r3, r2] bl __aeabi_uidiv - ldr r3, .L1345+36 - ldr r1, .L1345+40 + ldr r3, .L1335+40 + ldr r1, .L1335+44 strh r0, [r4, r3] @ movhi - ldr r3, .L1345+44 + ldr r3, .L1335+48 ldrh r2, [r4, r3] add r3, r3, #62 strh r2, [r4, r3] @ movhi @@ -11380,125 +11291,126 @@ FtlLoadSysInfo: ldrh r3, [r4, r3] mov r0, r3, lsr #6 and r3, r3, #63 - strb r3, [r4, #-1990] - ldrb r3, [r4, #-2061] @ zero_extendqisi2 + strb r3, [r4, #-1986] + ldrb r3, [r4, #-2057] @ zero_extendqisi2 strh r0, [r4, r1] @ movhi mvn r1, #0 - ldr r0, .L1345+48 - strb r3, [r4, #-1988] - ldr r3, .L1345+52 + ldr r0, .L1335+52 + strb r3, [r4, #-1984] + ldr r3, .L1335+56 strh r1, [r4, r3] @ movhi mov r3, #0 - ldr r1, .L1345+56 + ldr r1, .L1335+60 strh r3, [r4, r0] @ movhi - strb r3, [r4, #-1754] + strb r3, [r4, #-1746] ldrh r0, [r4, r1] add r1, r1, #106 - strb r3, [r4, #-1752] - str r3, [r4, #-1816] + strb r3, [r4, #-1744] + str r3, [r4, #-1812] strh r0, [r4, r1] @ movhi - sub r1, r1, #104 - ldr r0, .L1345+60 + ldr r1, .L1335+64 + ldr r0, .L1335+68 ldrh r1, [r4, r1] mov ip, r1, lsr #6 and r1, r1, #63 - strb r1, [r4, #-1942] - ldrb r1, [r4, #-2060] @ zero_extendqisi2 + strb r1, [r4, #-1938] + ldrb r1, [r4, #-2056] @ zero_extendqisi2 strh ip, [r4, r0] @ movhi - strb r1, [r4, #-1940] - ldr r1, .L1345+64 + strb r1, [r4, #-1936] + ldr r1, .L1335+72 ldrh r0, [r4, r1] add r1, r1, #150 strh r0, [r4, r1] @ movhi - ldr r1, .L1345+68 - ldr r0, .L1345+72 + sub r1, r1, #148 + ldr r0, .L1335+76 ldrh r1, [r4, r1] mov ip, r1, lsr #6 and r1, r1, #63 - strb r1, [r4, #-1894] - ldrb r1, [r4, #-2059] @ zero_extendqisi2 + strb r1, [r4, #-1890] + ldrb r1, [r4, #-2055] @ zero_extendqisi2 strh ip, [r4, r0] @ movhi - strb r1, [r4, #-1892] - str r3, [r4, #-1828] - ldr r1, [r4, #-2040] - str r3, [r4, #-1836] - str r3, [r4, #-1820] - str r3, [r4, #-1792] - str r3, [r4, #-1784] + strb r1, [r4, #-1888] str r3, [r4, #-1824] - ldr r3, [r4, #-2032] - str r1, [r4, #-1796] - ldr r1, [r4, #-1804] - cmp r3, r1 - strhi r3, [r4, #-1804] - ldr r4, .L1345 - ldr r3, [r4, #-2036] + ldr r1, [r4, #-2036] + str r3, [r4, #-1832] + str r3, [r4, #-1816] + str r3, [r4, #-1788] + str r3, [r4, #-1780] + str r3, [r4, #-1820] + ldr r3, [r4, #-2028] + str r1, [r4, #-1792] ldr r1, [r4, #-1800] cmp r3, r1 strhi r3, [r4, #-1800] + ldr r4, .L1335 + ldr r3, [r4, #-2032] + ldr r1, [r4, #-1796] + cmp r3, r1 + strhi r3, [r4, #-1796] cmp r2, r5 - beq .L1338 - ldr r0, .L1345+76 + beq .L1327 + ldr r0, .L1335+80 bl make_superblock -.L1338: - ldr r3, .L1345+80 +.L1327: + ldr r3, .L1335+84 ldrh r3, [r4, r3] cmp r3, r5 - beq .L1339 - ldr r0, .L1345+84 + beq .L1328 + ldr r0, .L1335+88 bl make_superblock -.L1339: - ldr r5, .L1345 +.L1328: + ldr r5, .L1335 movw r4, #65535 - ldr r3, .L1345+88 + ldr r3, .L1335+92 ldrh r3, [r5, r3] cmp r3, r4 - beq .L1340 - ldr r0, .L1345+92 + beq .L1329 + ldr r0, .L1335+96 bl make_superblock -.L1340: - ldr r3, .L1345+52 +.L1329: + ldr r3, .L1335+56 ldrh r3, [r5, r3] cmp r3, r4 - beq .L1344 - ldr r0, .L1345+96 + beq .L1333 + ldr r0, .L1335+100 bl make_superblock mov r0, #0 - ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L1343: + ldmfd sp!, {r3, r4, r5, r6, r7, r8, sl, pc} +.L1332: mvn r0, #0 - ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L1344: + ldmfd sp!, {r3, r4, r5, r6, r7, r8, sl, pc} +.L1333: mov r0, #0 - ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L1346: + ldmfd sp!, {r3, r4, r5, r6, r7, r8, sl, pc} +.L1336: .align 2 -.L1345: +.L1335: .word .LANCHOR2 .word .LANCHOR0 - .word -1772 - .word -1770 - .word .LANCHOR2+184 - .word 1179929683 - .word .LANCHOR2-2072 - .word -2064 + .word -1768 .word -1766 - .word -1776 - .word -1994 - .word -2058 - .word -1758 - .word -1760 + .word .LANCHOR2+192 + .word -1764 + .word 1179929683 + .word .LANCHOR2-2068 + .word -2060 + .word -1762 + .word -1772 + .word -1990 .word -2054 - .word -1946 + .word -1750 + .word -1752 .word -2050 .word -2048 - .word -1898 - .word .LANCHOR2-1996 - .word -1948 - .word .LANCHOR2-1948 - .word -1900 - .word .LANCHOR2-1900 - .word .LANCHOR2-1760 + .word -1942 + .word -2046 + .word -1894 + .word .LANCHOR2-1992 + .word -1944 + .word .LANCHOR2-1944 + .word -1896 + .word .LANCHOR2-1896 + .word .LANCHOR2-1752 .fnend .size FtlLoadSysInfo, .-FtlLoadSysInfo .align 2 @@ -11510,187 +11422,187 @@ FtlLoadBbt: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r4, r5, r6, r7, r8, lr} .save {r4, r5, r6, r7, r8, lr} - ldr r6, .L1363 - ldr r8, .L1363+4 - ldr r3, [r6, #-956] + ldr r6, .L1353 + ldr r8, .L1353+4 + ldr r3, [r6, #-948] mov r7, r6 - ldr r4, [r6, #-932] - str r3, [r6, #192] - str r4, [r6, #196] + ldr r4, [r6, #-924] + str r3, [r6, #200] + str r4, [r6, #204] bl FtlBbtMemInit - movw r3, #3912 + movw r3, #3916 ldrh r5, [r8, r3] sub r5, r5, #1 uxth r5, r5 - b .L1348 -.L1352: + b .L1338 +.L1342: mov r1, #1 mov r3, r5, asl #10 - ldr r0, .L1363+8 + ldr r0, .L1353+8 mov r2, r1 - str r3, [r6, #188] + str r3, [r6, #196] bl FlashReadPages - ldr r3, [r6, #184] + ldr r3, [r6, #192] cmn r3, #1 - bne .L1349 - ldr r3, [r6, #188] + bne .L1339 + ldr r3, [r6, #196] mov r1, #1 - ldr r0, .L1363+8 + ldr r0, .L1353+8 mov r2, r1 add r3, r3, #1 - str r3, [r6, #188] + str r3, [r6, #196] bl FlashReadPages -.L1349: - ldr r3, [r7, #184] +.L1339: + ldr r3, [r7, #192] cmn r3, #1 - beq .L1350 + beq .L1340 ldrh r2, [r4, #0] movw r3, #61649 cmp r2, r3 - bne .L1350 - ldr r3, .L1363+4 - movw r2, #3980 + bne .L1340 + ldr r3, .L1353+4 + mov r2, #3984 strh r5, [r3, r2] @ movhi ldr r2, [r4, #4] - str r2, [r3, #3988] - mov r2, #3984 + str r2, [r3, #3992] + movw r2, #3988 ldrh r1, [r4, #8] strh r1, [r3, r2] @ movhi - b .L1351 -.L1350: + b .L1341 +.L1340: sub r5, r5, #1 uxth r5, r5 -.L1348: - movw r3, #3912 +.L1338: + movw r3, #3916 ldrh r3, [r8, r3] sub r3, r3, #48 cmp r5, r3 - bgt .L1352 -.L1351: - ldr r5, .L1363+4 - movw r8, #3980 + bgt .L1342 +.L1341: + ldr r5, .L1353+4 + mov r8, #3984 movw r3, #65535 ldrh r2, [r5, r8] cmp r2, r3 - beq .L1362 - mov r6, #3984 + beq .L1352 + movw r6, #3988 ldrh r2, [r5, r6] cmp r2, r3 - beq .L1354 - ldr r7, .L1363 + beq .L1344 + ldr r7, .L1353 mov r1, #1 mov r2, r2, asl #10 - add r0, r7, #184 - str r2, [r7, #188] + add r0, r7, #192 + str r2, [r7, #196] mov r2, r1 bl FlashReadPages - ldr r3, [r7, #184] + ldr r3, [r7, #192] cmn r3, #1 - beq .L1354 + beq .L1344 ldrh r2, [r4, #0] movw r3, #61649 cmp r2, r3 - bne .L1354 + bne .L1344 ldr r3, [r4, #4] - ldr r2, [r5, #3988] + ldr r2, [r5, #3992] cmp r3, r2 - strhi r3, [r5, #3988] + strhi r3, [r5, #3992] ldrhih r2, [r5, r6] ldrhih r3, [r4, #8] strhih r2, [r5, r8] @ movhi strhih r3, [r5, r6] @ movhi -.L1354: - ldr r8, .L1363+4 - movw r3, #3980 +.L1344: + ldr r8, .L1353+4 + mov r3, #3984 mov r1, #1 mov r6, #0 - ldr r5, .L1363 + ldr r5, .L1353 ldrh r0, [r8, r3] bl FtlGetLastWrittenPage - movw r3, #3982 + movw r3, #3986 add r2, r0, #1 mov r7, r0 strh r2, [r8, r3] @ movhi - b .L1355 -.L1358: - movw r2, #3980 + b .L1345 +.L1348: + mov r2, #3984 mov r1, #1 ldrh r2, [r8, r2] - ldr r0, .L1363+8 + ldr r0, .L1353+8 orr r3, r3, r2, asl #10 - str r3, [r5, #188] - ldr r3, [r5, #-956] + str r3, [r5, #196] + ldr r3, [r5, #-948] mov r2, r1 - str r3, [r5, #192] + str r3, [r5, #200] bl FlashReadPages - ldr r3, [r5, #184] + ldr r3, [r5, #192] cmn r3, #1 - beq .L1356 + beq .L1346 ldrh r2, [r4, #0] movw r3, #61649 cmp r2, r3 - beq .L1357 -.L1356: + beq .L1347 +.L1346: sub r6, r6, #1 uxth r6, r6 -.L1355: +.L1345: add r3, r6, r7 sxth r3, r3 cmp r3, #0 - bge .L1358 -.L1357: - ldr r3, .L1363+4 - movw r2, #3986 + bge .L1348 +.L1347: + ldr r3, .L1353+4 + movw r2, #3990 ldrh r1, [r4, #10] ldrh r0, [r4, #12] strh r1, [r3, r2] @ movhi movw r2, #65535 cmp r0, r2 - beq .L1359 - ldr r2, [r3, #3844] + beq .L1349 + ldr r2, [r3, #3848] cmp r0, r2 - beq .L1359 - movw r1, #3858 + beq .L1349 + movw r1, #3862 ldrh r3, [r3, r1] mov r3, r3, lsr #2 cmp r2, r3 - bcs .L1359 + bcs .L1349 cmp r0, r3 - bcs .L1359 + bcs .L1349 bl FtlSysBlkNumInit -.L1359: - ldr r6, .L1363+12 +.L1349: + ldr r6, .L1353+12 mov r4, #0 - ldr r8, .L1363+4 - movw r7, #3870 - ldr r5, .L1363 - b .L1360 -.L1361: - ldr r3, .L1363+16 - ldr r1, [r5, #192] + ldr r8, .L1353+4 + movw r7, #3874 + ldr r5, .L1353 + b .L1350 +.L1351: + ldr r3, .L1353+16 + ldr r1, [r5, #200] ldr r0, [r6, #4]! ldrh r2, [r5, r3] mov r2, r2, asl #2 mla r1, r4, r2, r1 bl memcpy add r4, r4, #1 -.L1360: +.L1350: ldrh r3, [r8, r7] cmp r4, r3 - bcc .L1361 + bcc .L1351 mov r0, #0 ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L1362: +.L1352: mvn r0, #0 ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L1364: +.L1354: .align 2 -.L1363: +.L1353: .word .LANCHOR2 .word .LANCHOR0 - .word .LANCHOR2+184 - .word .LANCHOR0+4004 - .word -1024 + .word .LANCHOR2+192 + .word .LANCHOR0+4008 + .word -1016 .fnend .size FtlLoadBbt, .-FtlLoadBbt .align 2 @@ -11703,63 +11615,63 @@ FtlLoadFactoryBbt: stmfd sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr} .save {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr} mov r5, #0 - ldr r3, .L1372 - movw fp, #3870 - ldr r7, .L1372+4 - ldr r6, .L1372+8 - ldr r2, [r3, #-956] - ldr r8, [r3, #-932] - str r2, [r3, #192] - str r8, [r3, #196] - b .L1366 -.L1371: - movw r9, #3912 + ldr r3, .L1362 + movw fp, #3874 + ldr r7, .L1362+4 + ldr r6, .L1362+8 + ldr r2, [r3, #-948] + ldr r8, [r3, #-924] + str r2, [r3, #200] + str r8, [r3, #204] + b .L1356 +.L1361: + movw r9, #3916 mvn r3, #0 ldrh r4, [r6, r9] strh r3, [r7], #2 @ movhi add r4, r4, r3 - ldr sl, .L1372 + ldr sl, .L1362 uxth r4, r4 - b .L1367 -.L1370: + b .L1357 +.L1360: mla r3, r3, r5, r4 mov r1, #1 - ldr r0, .L1372+12 + ldr r0, .L1362+12 mov r2, r1 mov r3, r3, asl #10 - str r3, [sl, #188] + str r3, [sl, #196] bl FlashReadPages - ldr r3, [sl, #184] + ldr r3, [sl, #192] cmn r3, #1 - beq .L1368 + beq .L1358 ldrh r2, [r8, #0] movw r3, #61664 cmp r2, r3 streqh r4, [r7, #-2] @ movhi - beq .L1369 -.L1368: + beq .L1359 +.L1358: sub r4, r4, #1 uxth r4, r4 -.L1367: +.L1357: ldrh r3, [r6, r9] sub r2, r3, #16 cmp r4, r2 - bgt .L1370 -.L1369: + bgt .L1360 +.L1359: add r5, r5, #1 -.L1366: +.L1356: ldrh r3, [r6, fp] cmp r5, r3 - bcc .L1371 + bcc .L1361 mov r0, #0 ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L1373: +.L1363: .align 2 -.L1372: +.L1362: .word .LANCHOR2 - .word .LANCHOR0+3992 + .word .LANCHOR0+3996 .word .LANCHOR0 - .word .LANCHOR2+184 + .word .LANCHOR2+192 .fnend .size FtlLoadFactoryBbt, .-FtlLoadFactoryBbt .align 2 @@ -11777,13 +11689,13 @@ FlashProgSlc2KPages: mov r9, r2 str r3, [sp, #12] mov r4, r0 - ldr r3, .L1393 + ldr r3, .L1383 mov r6, r0 mov r8, #0 - ldr r7, .L1393+4 - ldrb fp, [r3, #2997] @ zero_extendqisi2 - b .L1375 -.L1382: + ldr r7, .L1383+4 + ldrb fp, [r3, #3125] @ zero_extendqisi2 + b .L1365 +.L1372: rsb r3, r8, sl add r2, sp, #20 mov r0, r6 @@ -11797,7 +11709,7 @@ FlashProgSlc2KPages: cmp r3, r2 mvncs r3, #0 strcs r3, [r6, #0] - bcs .L1377 + bcs .L1367 add r3, r7, r3 ldrb r5, [r3, #3764] @ zero_extendqisi2 mov r0, r5 @@ -11856,27 +11768,27 @@ FlashProgSlc2KPages: mvnne r3, #0 strne r3, [r6, #0] bl NandcFlashDeCs -.L1377: +.L1367: add r8, r8, #1 add r6, r6, #36 -.L1375: +.L1365: cmp r8, sl - bne .L1382 + bne .L1372 ldr r3, [sp, #12] cmp r3, #0 movne r6, #0 - ldrne r5, .L1393+8 - bne .L1383 - b .L1384 -.L1389: + ldrne r5, .L1383+8 + bne .L1373 + b .L1374 +.L1379: ldr r3, [r4, #0] cmn r3, #1 - bne .L1385 + bne .L1375 ldr r1, [r4, #4] - ldr r0, .L1393+12 + ldr r0, .L1383+12 bl printk - b .L1386 -.L1385: + b .L1376 +.L1375: rsb r3, r6, sl mov r1, r9 add r2, sp, #20 @@ -11885,12 +11797,12 @@ FlashProgSlc2KPages: str r3, [sp, #0] add r3, sp, #24 bl LogAddr2PhyAddr - ldr r2, [r5, #224] + ldr r2, [r5, #232] mov r3, #0 mov lr, r4 add ip, sp, #28 str r3, [r2, #0] - ldr r2, [r5, #228] + ldr r2, [r5, #236] str r3, [r2, #0] ldmia lr!, {r0, r1, r2, r3} stmia ip!, {r0, r1, r2, r3} @@ -11901,66 +11813,66 @@ FlashProgSlc2KPages: mov r1, #1 mov r2, r9 str r3, [ip, #0] - ldr r3, [r5, #224] + ldr r3, [r5, #232] str r3, [sp, #36] - ldr r3, [r5, #228] + ldr r3, [r5, #236] str r3, [sp, #40] bl FlashReadPages ldr r7, [sp, #28] cmn r7, #1 - bne .L1387 - ldr r0, .L1393+16 + bne .L1377 + ldr r0, .L1383+16 ldr r1, [r4, #4] bl printk str r7, [r4, #0] -.L1387: +.L1377: ldr r3, [r4, #12] cmp r3, #0 - beq .L1388 + beq .L1378 ldr r2, [r3, #0] - ldr r3, [r5, #228] + ldr r3, [r5, #236] ldr r3, [r3, #0] cmp r2, r3 - beq .L1388 - ldr r0, .L1393+20 + beq .L1378 + ldr r0, .L1383+20 ldr r1, [r4, #4] bl printk mvn r3, #0 str r3, [r4, #0] -.L1388: +.L1378: ldr r3, [r4, #8] cmp r3, #0 - beq .L1386 + beq .L1376 ldr r2, [r3, #0] - ldr r3, [r5, #224] + ldr r3, [r5, #232] ldr r3, [r3, #0] cmp r2, r3 - beq .L1386 - ldr r0, .L1393+24 + beq .L1376 + ldr r0, .L1383+24 ldr r1, [r4, #4] bl printk mvn r3, #0 str r3, [r4, #0] -.L1386: +.L1376: add r6, r6, #1 add r4, r4, #36 -.L1383: +.L1373: cmp r6, sl - bne .L1389 -.L1384: + bne .L1379 +.L1374: mov r0, #0 add sp, sp, #68 ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L1394: +.L1384: .align 2 -.L1393: +.L1383: .word .LANCHOR1 .word .LANCHOR0 .word .LANCHOR2 + .word .LC108 .word .LC109 .word .LC110 .word .LC111 - .word .LC112 .fnend .size FlashProgSlc2KPages, .-FlashProgSlc2KPages .align 2 @@ -11974,7 +11886,7 @@ FlashProgPages: .save {r4, r5, r6, r7, r8, r9, sl, fp, lr} .pad #76 sub sp, sp, #76 - ldr r5, .L1423 + ldr r5, .L1413 mov r9, r0 str r1, [sp, #8] mov sl, r2 @@ -11985,13 +11897,13 @@ FlashProgPages: cmp r6, #0 moveq fp, r5 str ip, [sp, #20] - ldr ip, .L1423+4 - ldrb ip, [ip, #2997] @ zero_extendqisi2 + ldr ip, .L1413+4 + ldrb ip, [ip, #3125] @ zero_extendqisi2 str ip, [sp, #12] - beq .L1396 + beq .L1386 bl FlashProgSlc2KPages - b .L1397 -.L1410: + b .L1387 +.L1400: mov r4, #36 ldr r2, [sp, #8] mul r4, r4, r6 @@ -12010,22 +11922,22 @@ FlashProgPages: mvncs r3, #0 strcs r3, [r9, r4] mov r8, r0 - bcs .L1399 - ldrb r1, [r5, #3837] @ zero_extendqisi2 + bcs .L1389 + ldrb r1, [r5, #3841] @ zero_extendqisi2 add r2, fp, r2, asl #4 cmp r1, #0 ldr r2, [r2, #3636] moveq r8, #0 cmp r2, #0 - beq .L1401 + beq .L1391 cmp r3, #1 - bne .L1402 - ldr r0, [r5, #3012] + bne .L1392 + ldr r0, [r5, #3008] bl NandcIqrWaitFlashReady -.L1402: +.L1392: ldrb r0, [sp, #32] @ zero_extendqisi2 bl FlashWaitCmdDone -.L1401: +.L1391: ldr r2, [sp, #32] mov r1, #0 cmp r8, #0 @@ -12045,10 +11957,10 @@ FlashProgPages: cmp r3, #1 strb r4, [r2, #3628] mov r0, r4 - bne .L1404 + bne .L1394 bl NandcWaitFlashReady - b .L1405 -.L1404: + b .L1395 +.L1394: bl NandcFlashCs ldr r3, [sp, #32] mov r0, r4 @@ -12060,34 +11972,34 @@ FlashProgPages: bl FlashWaitReadyEN mov r0, r4 bl NandcFlashDeCs -.L1405: +.L1395: ldr r2, [sp, #20] sub r3, r2, #1 - cmp r3, #6 - bhi .L1406 + cmp r3, #7 + bhi .L1396 add r3, r5, r4 ldrb r3, [r3, #3756] @ zero_extendqisi2 cmp r3, #0 - beq .L1406 + beq .L1396 mov r0, r4 ldrb r1, [r5, #1] @ zero_extendqisi2 - ldr r2, .L1423+8 + ldr r2, .L1413+8 mov r3, #0 bl HynixSetRRPara -.L1406: +.L1396: mov r0, r4 bl NandcFlashCs cmp sl, #1 mov r0, r4 - bne .L1407 - ldrb r3, [r5, #928] @ zero_extendqisi2 + bne .L1397 + ldrb r3, [r5, #3072] @ zero_extendqisi2 cmp r3, #0 - beq .L1407 + beq .L1397 bl flash_enter_slc_mode - b .L1408 -.L1407: + b .L1398 +.L1397: bl flash_exit_slc_mode -.L1408: +.L1398: mov r0, r4 ldr r1, [sp, #28] bl FlashProgFirstCmd @@ -12099,7 +12011,7 @@ FlashProgPages: ldr r3, [r7, #8] bl NandcXferData cmp r8, #0 - beq .L1409 + beq .L1399 mov r0, r4 ldr r1, [sp, #28] bl FlashProgDpFirstCmd @@ -12126,58 +12038,58 @@ FlashProgPages: ldr r2, [sp, #12] ldr r3, [r3, #8] bl NandcXferData -.L1409: +.L1399: mov r0, r4 ldr r1, [sp, #28] bl FlashProgSecondCmd mov r0, r4 bl NandcFlashDeCs add r6, r6, r8 -.L1399: +.L1389: add r6, r6, #1 -.L1396: +.L1386: ldr r3, [sp, #8] cmp r6, r3 - bcc .L1410 - ldr r5, .L1423 + bcc .L1400 + ldr r5, .L1413 mov r4, #0 - ldr r6, .L1423+12 - ldr r0, [r5, #3012] + ldr r6, .L1413+12 + ldr r0, [r5, #3008] bl NandcIqrWaitFlashReady - b .L1411 -.L1413: + b .L1401 +.L1403: uxtb r0, r4 bl FlashWaitCmdDone cmp sl, #1 - bne .L1412 - ldrb r3, [r5, #928] @ zero_extendqisi2 + bne .L1402 + ldrb r3, [r5, #3072] @ zero_extendqisi2 cmp r3, #0 - beq .L1412 + beq .L1402 ldrb r0, [r6, r4, asl #4] @ zero_extendqisi2 bl flash_exit_slc_mode -.L1412: +.L1402: add r4, r4, #1 -.L1411: +.L1401: ldrb r3, [r5, #3762] @ zero_extendqisi2 cmp r4, r3 - bcc .L1413 + bcc .L1403 ldr r2, [sp, #16] cmp r2, #0 ldreq r0, [sp, #16] - beq .L1397 + beq .L1387 mov r5, #0 - ldr r4, .L1423+16 + ldr r4, .L1413+16 ldr r6, [sp, #8] - b .L1414 -.L1419: + b .L1404 +.L1409: ldr r3, [r9, #0] cmn r3, #1 - bne .L1415 + bne .L1405 ldr r1, [r9, #4] - ldr r0, .L1423+20 + ldr r0, .L1413+20 bl printk - b .L1416 -.L1415: + b .L1406 +.L1405: rsb r3, r5, r6 mov r1, sl add r2, sp, #28 @@ -12186,12 +12098,12 @@ FlashProgPages: str r3, [sp, #0] add r3, sp, #32 bl LogAddr2PhyAddr - ldr r2, [r4, #224] + ldr r2, [r4, #232] mov r3, #0 mov lr, r9 add ip, sp, #36 str r3, [r2, #0] - ldr r2, [r4, #228] + ldr r2, [r4, #236] str r3, [r2, #0] ldmia lr!, {r0, r1, r2, r3} stmia ip!, {r0, r1, r2, r3} @@ -12202,271 +12114,271 @@ FlashProgPages: mov r1, #1 mov r2, sl str r3, [ip, #0] - ldr r3, [r4, #224] + ldr r3, [r4, #232] str r3, [sp, #44] - ldr r3, [r4, #228] + ldr r3, [r4, #236] str r3, [sp, #48] bl FlashReadPages ldr r7, [sp, #36] cmn r7, #1 - bne .L1417 - ldr r0, .L1423+24 + bne .L1407 + ldr r0, .L1413+24 ldr r1, [r9, #4] bl printk str r7, [r9, #0] -.L1417: +.L1407: ldr r3, [r9, #12] cmp r3, #0 - beq .L1418 + beq .L1408 ldr r2, [r3, #0] - ldr r3, [r4, #228] + ldr r3, [r4, #236] ldr r3, [r3, #0] cmp r2, r3 - beq .L1418 - ldr r0, .L1423+28 + beq .L1408 + ldr r0, .L1413+28 ldr r1, [r9, #4] bl printk mvn r3, #0 str r3, [r9, #0] -.L1418: +.L1408: ldr r3, [r9, #8] cmp r3, #0 - beq .L1416 + beq .L1406 ldr r2, [r3, #0] - ldr r3, [r4, #224] + ldr r3, [r4, #232] ldr r3, [r3, #0] cmp r2, r3 - beq .L1416 - ldr r0, .L1423+32 + beq .L1406 + ldr r0, .L1413+32 ldr r1, [r9, #4] bl printk mvn r3, #0 str r3, [r9, #0] -.L1416: +.L1406: add r5, r5, #1 add r9, r9, #36 -.L1414: +.L1404: cmp r5, r6 - bne .L1419 + bne .L1409 mov r0, #0 -.L1397: +.L1387: add sp, sp, #76 ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L1424: +.L1414: .align 2 -.L1423: +.L1413: .word .LANCHOR0 .word .LANCHOR1 .word .LANCHOR0+4 .word .LANCHOR0+3628 .word .LANCHOR2 + .word .LC108 .word .LC109 .word .LC110 .word .LC111 - .word .LC112 .fnend .size FlashProgPages, .-FlashProgPages .align 2 - .type FtlVpcTblFlush.part.14, %function -FtlVpcTblFlush.part.14: + .type FtlVpcTblFlush.part.16, %function +FtlVpcTblFlush.part.16: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, r4, r5, r6, r7, r8, sl, lr} .save {r3, r4, r5, r6, r7, r8, sl, lr} mov r1, #255 - ldr r4, .L1437 - mov r7, #3856 - ldr r6, .L1437+4 - ldr r3, [r4, #-956] - ldr r5, [r4, #-932] - str r3, [r4, #192] - ldr r3, .L1437+8 - str r5, [r4, #196] + ldr r4, .L1427 + movw r7, #3860 + ldr r6, .L1427+4 + ldr r3, [r4, #-948] + ldr r5, [r4, #-924] + str r3, [r4, #200] + ldr r3, .L1427+8 + str r5, [r4, #204] ldrh r3, [r4, r3] strh r3, [r5, #2] @ movhi - ldr r3, .L1437+12 + ldr r3, .L1427+12 strh r3, [r5, #0] @ movhi - ldr r3, [r4, #-1764] + ldr r3, [r4, #-1760] str r3, [r5, #4] mov r3, #0 str r3, [r5, #8] str r3, [r5, #12] - ldr r3, .L1437+16 - str r3, [r4, #-2072] - ldr r3, .L1437+20 + ldr r3, .L1427+16 str r3, [r4, #-2068] - ldr r3, .L1437+24 + ldr r3, .L1427+20 + str r3, [r4, #-2064] + ldr r3, .L1427+24 ldrh r2, [r4, r3] - ldr r3, .L1437+28 + ldr r3, .L1427+28 strh r2, [r4, r3] @ movhi - movw r3, #3870 + movw r3, #3874 ldrh r3, [r6, r3] - strb r3, [r4, #-2062] - ldr r3, .L1437+32 + strb r3, [r4, #-2058] + ldr r3, .L1427+32 ldrh r2, [r4, r3] sub r3, r3, #62 strh r2, [r4, r3] @ movhi add r3, r3, #64 ldrh r2, [r4, r3] - ldrb r3, [r4, #-1990] @ zero_extendqisi2 + ldrb r3, [r4, #-1986] @ zero_extendqisi2 orr r2, r3, r2, asl #6 - ldr r3, .L1437+36 + ldr r3, .L1427+36 strh r2, [r4, r3] @ movhi - ldrb r3, [r4, #-1988] @ zero_extendqisi2 - strb r3, [r4, #-2061] - ldr r3, .L1437+40 + ldrb r3, [r4, #-1984] @ zero_extendqisi2 + strb r3, [r4, #-2057] + ldr r3, .L1427+40 ldrh r2, [r4, r3] sub r3, r3, #106 strh r2, [r4, r3] @ movhi add r3, r3, #108 ldrh r2, [r4, r3] - ldrb r3, [r4, #-1942] @ zero_extendqisi2 + ldrb r3, [r4, #-1938] @ zero_extendqisi2 orr r2, r3, r2, asl #6 - ldr r3, .L1437+44 + ldr r3, .L1427+44 strh r2, [r4, r3] @ movhi - ldrb r3, [r4, #-1940] @ zero_extendqisi2 - strb r3, [r4, #-2060] - ldr r3, .L1437+48 + ldrb r3, [r4, #-1936] @ zero_extendqisi2 + strb r3, [r4, #-2056] + ldr r3, .L1427+48 ldrh r2, [r4, r3] sub r3, r3, #150 strh r2, [r4, r3] @ movhi add r3, r3, #152 - ldr r0, [r4, #192] + ldr r0, [r4, #200] ldrh r2, [r4, r3] - ldrb r3, [r4, #-1894] @ zero_extendqisi2 + ldrb r3, [r4, #-1890] @ zero_extendqisi2 orr r2, r3, r2, asl #6 - ldr r3, .L1437+52 + ldr r3, .L1427+52 strh r2, [r4, r3] @ movhi - ldrb r3, [r4, #-1892] @ zero_extendqisi2 - strb r3, [r4, #-2059] + ldrb r3, [r4, #-1888] @ zero_extendqisi2 + strb r3, [r4, #-2055] + ldr r3, [r4, #-1792] + str r3, [r4, #-2036] + ldr r3, [r4, #-1800] + str r3, [r4, #-2028] ldr r3, [r4, #-1796] - str r3, [r4, #-2040] - ldr r3, [r4, #-1804] str r3, [r4, #-2032] - ldr r3, [r4, #-1800] - str r3, [r4, #-2036] - ldr r3, .L1437+56 + ldr r3, .L1427+56 ldrh r2, [r4, r3] - ldr r3, .L1437+60 + ldr r3, .L1427+60 strh r2, [r4, r3] @ movhi - add r3, r3, #888 + add r3, r3, #892 ldrh r2, [r4, r3] - ldr r3, .L1437+64 + ldr r3, .L1427+64 strh r2, [r4, r3] @ movhi - add r3, r3, #5952 + movw r3, #3928 ldrh r2, [r6, r3] bl ftl_memset - ldr r1, .L1437+68 + ldr r1, .L1427+68 mov r2, #48 - ldr r0, [r4, #192] + ldr r0, [r4, #200] bl memcpy ldrh r2, [r6, r7] - ldr r0, [r4, #192] - ldr r1, [r4, #-2016] + ldr r0, [r4, #200] + ldr r1, [r4, #-2012] mov r2, r2, asl #1 add r0, r0, #48 bl memcpy ldrh r2, [r6, r7] - ldr r3, [r4, #192] + ldr r3, [r4, #200] add r0, r2, #24 - ldr r1, [r4, #-1840] + ldr r1, [r4, #-1836] mov r2, r2, lsr #3 mov r0, r0, lsr #1 add r2, r2, #4 add r0, r3, r0, asl #2 bl memcpy - movw r3, #3960 + movw r3, #3964 ldrh r3, [r6, r3] cmp r3, #0 - beq .L1426 + beq .L1416 ldrh r3, [r6, r7] - ldr r1, [r4, #192] + ldr r1, [r4, #200] mov r0, r3, lsr #3 add r0, r0, r3, asl #1 - mov r3, #3952 + movw r3, #3956 add r0, r0, #52 ldrh r2, [r6, r3] ubfx r0, r0, #2, #14 mov r2, r2, asl #2 add r0, r1, r0, asl #2 - ldr r1, [r4, #-1028] + ldr r1, [r4, #-1020] bl memcpy -.L1426: +.L1416: mov r0, #0 - ldr r4, .L1437 + ldr r4, .L1427 bl FtlUpdateVaildLpn - ldr sl, .L1437+8 - ldr r6, .L1437+72 + ldr sl, .L1427+8 + ldr r6, .L1427+72 mov r7, #0 movw r8, #65535 -.L1436: - ldr r3, [r4, #-956] +.L1426: + ldr r3, [r4, #-948] ldrh r2, [r4, sl] - ldr r0, .L1437+4 - str r3, [r4, #192] - ldr r3, [r4, #-932] - str r3, [r4, #196] + ldr r0, .L1427+4 + str r3, [r4, #200] + ldr r3, [r4, #-924] + str r3, [r4, #204] ldrh r3, [r4, r6] orr r1, r3, r2, asl #10 - str r1, [r4, #188] - movw r1, #3918 + str r1, [r4, #196] + mov r1, #3920 ldrh r1, [r0, r1] sub r1, r1, #1 cmp r3, r1 - blt .L1428 - ldr r3, .L1437+76 + blt .L1418 + ldr r3, .L1427+76 ldrh r8, [r4, r3] strh r2, [r4, r3] @ movhi mov r3, #0 strh r3, [r4, r6] @ movhi bl FtlFreeSysBlkQueueOut - ldr r3, [r4, #-1804] + ldr r3, [r4, #-1800] add r2, r3, #1 - str r2, [r4, #-1804] - str r3, [r4, #-1764] + str r2, [r4, #-1800] + str r3, [r4, #-1760] mov r2, r0, asl #10 strh r0, [r4, sl] @ movhi - str r2, [r4, #188] + str r2, [r4, #196] str r3, [r5, #4] strh r0, [r5, #2] @ movhi -.L1428: +.L1418: mov r1, #1 - ldr r0, .L1437+80 + ldr r0, .L1427+80 mov r2, r1 mov r3, r1 bl FlashProgPages ldrh r3, [r4, r6] - ldr r2, [r4, #184] + ldr r2, [r4, #192] add r3, r3, #1 cmn r2, #1 uxth r3, r3 strh r3, [r4, r6] @ movhi - bne .L1429 + bne .L1419 cmp r3, #1 add r7, r7, #1 - ldreq r2, .L1437+4 - movweq r3, #3918 + ldreq r2, .L1427+4 + moveq r3, #3920 uxth r7, r7 ldreqh r3, [r2, r3] subeq r3, r3, #1 streqh r3, [r4, r6] @ movhi cmp r7, #3 - bls .L1436 - ldr r3, .L1437 + bls .L1426 + ldr r3, .L1427 mov r2, r7 - ldr r0, .L1437+84 - ldr r1, [r3, #188] + ldr r0, .L1427+84 + ldr r1, [r3, #196] bl printk - ldr r3, .L1437+4 + ldr r3, .L1427+4 mov r2, #1 - str r2, [r3, #4040] + str r2, [r3, #4044] ldmfd sp!, {r3, r4, r5, r6, r7, r8, sl, pc} -.L1429: +.L1419: cmp r3, #1 - beq .L1436 + beq .L1426 cmp r2, #256 - beq .L1436 + beq .L1426 movw r3, #65535 cmp r8, r3 ldmeqfd sp!, {r3, r4, r5, r6, r7, r8, sl, pc} @@ -12474,33 +12386,33 @@ FtlVpcTblFlush.part.14: mov r1, #1 bl FtlFreeSysBlkQueueIn ldmfd sp!, {r3, r4, r5, r6, r7, r8, sl, pc} -.L1438: +.L1428: .align 2 -.L1437: +.L1427: .word .LANCHOR2 .word .LANCHOR0 - .word -1772 + .word -1768 .word -3932 .word 1179929683 - .word 1342177360 - .word -1766 - .word -2064 - .word -1996 - .word -2056 - .word -1948 + .word 1342177363 + .word -1762 + .word -2060 + .word -1992 .word -2052 - .word -1900 + .word -1944 .word -2048 - .word -1142 - .word -2028 - .word -2026 - .word .LANCHOR2-2072 - .word -1770 - .word -1768 - .word .LANCHOR2+184 - .word .LC113 + .word -1896 + .word -2044 + .word -1134 + .word -2024 + .word -2022 + .word .LANCHOR2-2068 + .word -1766 + .word -1764 + .word .LANCHOR2+192 + .word .LC112 .fnend - .size FtlVpcTblFlush.part.14, .-FtlVpcTblFlush.part.14 + .size FtlVpcTblFlush.part.16, .-FtlVpcTblFlush.part.16 .align 2 .global FtlVpcTblFlush .type FtlVpcTblFlush, %function @@ -12510,116 +12422,116 @@ FtlVpcTblFlush: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, lr} .save {r3, lr} - ldr r3, .L1441 - ldr r3, [r3, #4040] + ldr r3, .L1431 + ldr r3, [r3, #4044] cmp r3, #0 - bne .L1440 - bl FtlVpcTblFlush.part.14 -.L1440: + bne .L1430 + bl FtlVpcTblFlush.part.16 +.L1430: mov r0, #0 ldmfd sp!, {r3, pc} -.L1442: +.L1432: .align 2 -.L1441: +.L1431: .word .LANCHOR0 .fnend .size FtlVpcTblFlush, .-FtlVpcTblFlush .section .text.unlikely .align 2 - .type FtlBbmTblFlush.part.16, %function -FtlBbmTblFlush.part.16: + .type FtlBbmTblFlush.part.18, %function +FtlBbmTblFlush.part.18: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, sl, fp, lr} .save {r0, r1, r2, r4, r5, r6, r7, r8, r9, sl, fp, lr} mov r1, #0 - ldr r7, .L1456 + ldr r7, .L1446 mov r5, #0 - ldr sl, .L1456+4 - movw r9, #3870 - ldr r8, .L1456+8 - ldr r3, [r7, #-932] - ldr r0, [r7, #-956] - str r3, [r7, #196] - movw r3, #3926 - str r0, [r7, #192] + ldr sl, .L1446+4 + movw r9, #3874 + ldr r8, .L1446+8 + ldr r3, [r7, #-924] + ldr r0, [r7, #-948] + str r3, [r7, #204] + movw r3, #3928 + str r0, [r7, #200] ldrh r2, [sl, r3] bl ftl_memset - b .L1444 -.L1445: - ldr r3, .L1456+12 + b .L1434 +.L1435: + ldr r3, .L1446+12 ldr r1, [r8, #4]! ldrh r2, [r7, r3] - ldr r3, [r7, #192] + ldr r3, [r7, #200] mul r0, r2, r5 mov r2, r2, asl #2 add r5, r5, #1 add r0, r3, r0, asl #2 bl memcpy -.L1444: +.L1434: ldrh r3, [sl, r9] - ldr r4, .L1456+4 + ldr r4, .L1446+4 cmp r5, r3 - ldr r6, .L1456 - blt .L1445 - ldr r5, [r6, #196] + ldr r6, .L1446 + blt .L1435 + ldr r5, [r6, #204] mov r1, #255 mov r2, #16 mov r7, #0 mov fp, r7 mov r0, r5 bl ftl_memset - ldr r3, .L1456+16 + ldr r3, .L1446+16 strh r3, [r5, #0] @ movhi - ldr r3, [r4, #3988] + ldr r3, [r4, #3992] str r3, [r5, #4] - movw r3, #3980 + mov r3, #3984 ldrh r3, [r4, r3] strh r3, [r5, #2] @ movhi - mov r3, #3984 + movw r3, #3988 ldrh r3, [r4, r3] strh r3, [r5, #8] @ movhi - movw r3, #3986 + movw r3, #3990 ldrh r3, [r4, r3] strh r3, [r5, #10] @ movhi - ldr r3, [r4, #3844] + ldr r3, [r4, #3848] strh r3, [r5, #12] @ movhi - b .L1454 -.L1451: + b .L1444 +.L1441: mov fp, #1 -.L1454: - ldr r3, [r6, #-956] - movw r8, #3980 - ldr r4, .L1456+4 +.L1444: + ldr r3, [r6, #-948] + mov r8, #3984 + ldr r4, .L1446+4 mov r1, #0 - movw sl, #3982 - str r1, [r6, #184] - str r3, [r6, #192] - mov r9, #3984 - ldr r3, [r6, #-932] + movw sl, #3986 + str r1, [r6, #192] + str r3, [r6, #200] + movw r9, #3988 + ldr r3, [r6, #-924] ldrh r1, [r4, r8] ldrh r2, [r4, sl] - str r3, [r6, #196] + str r3, [r6, #204] ldrh r0, [r5, #10] orr r3, r2, r1, asl #10 - str r3, [r6, #188] + str r3, [r6, #196] ldrh r3, [r4, r9] str r0, [sp, #0] - ldr r0, .L1456+20 + ldr r0, .L1446+20 bl printk - movw r3, #3918 + mov r3, #3920 ldrh r3, [r4, r3] ldrh r2, [r4, sl] sub r3, r3, #1 cmp r2, r3 - blt .L1447 - ldr r3, [r4, #3988] + blt .L1437 + ldr r3, [r4, #3992] mov r1, #0 @ movhi ldrh r2, [r4, r8] add r3, r3, #1 - ldr r0, [r4, #4044] - str r3, [r4, #3988] + ldr r0, [r4, #4048] + str r3, [r4, #3992] str r3, [r5, #4] ldrh r3, [r4, r9] strh r1, [r4, sl] @ movhi @@ -12629,56 +12541,56 @@ FtlBbmTblFlush.part.16: mov r2, r1 strh r3, [r4, r8] @ movhi mov r3, r3, asl #10 - str r3, [r6, #188] + str r3, [r6, #196] str r3, [r0, #4] bl FlashEraseBlocks -.L1447: - ldr r4, .L1456 +.L1437: + ldr r4, .L1446 mov r1, #1 - ldr r8, .L1456+4 + ldr r8, .L1446+4 mov r2, r1 mov r3, r1 - add r0, r4, #184 + add r0, r4, #192 bl FlashProgPages - movw r3, #3982 + movw r3, #3986 ldrh r2, [r8, r3] add r2, r2, #1 strh r2, [r8, r3] @ movhi - ldr r3, [r6, #184] + ldr r3, [r6, #192] cmn r3, #1 - bne .L1448 + bne .L1438 add r7, r7, #1 - ldr r0, .L1456+24 - ldr r1, [r6, #188] + ldr r0, .L1446+24 + ldr r1, [r6, #196] uxth r7, r7 bl printk cmp r7, #3 - bls .L1454 - ldr r0, .L1456+28 + bls .L1444 + ldr r0, .L1446+28 mov r2, r7 - ldr r1, [r4, #188] + ldr r1, [r4, #196] bl printk mov r3, #1 - str r3, [r8, #4040] - b .L1455 -.L1448: + str r3, [r8, #4044] + b .L1445 +.L1438: cmp fp, #0 - beq .L1451 -.L1455: + beq .L1441 +.L1445: ldmfd sp!, {r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L1457: +.L1447: .align 2 -.L1456: +.L1446: .word .LANCHOR2 .word .LANCHOR0 - .word .LANCHOR0+4004 - .word -1024 + .word .LANCHOR0+4008 + .word -1016 .word -3887 + .word .LC113 .word .LC114 .word .LC115 - .word .LC116 .fnend - .size FtlBbmTblFlush.part.16, .-FtlBbmTblFlush.part.16 + .size FtlBbmTblFlush.part.18, .-FtlBbmTblFlush.part.18 .text .align 2 .global FtlBbmTblFlush @@ -12689,17 +12601,17 @@ FtlBbmTblFlush: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, lr} .save {r3, lr} - ldr r3, .L1460 - ldr r3, [r3, #4040] + ldr r3, .L1450 + ldr r3, [r3, #4044] cmp r3, #0 - bne .L1459 - bl FtlBbmTblFlush.part.16 -.L1459: + bne .L1449 + bl FtlBbmTblFlush.part.18 +.L1449: mov r0, #0 ldmfd sp!, {r3, pc} -.L1461: +.L1451: .align 2 -.L1460: +.L1450: .word .LANCHOR0 .fnend .size FtlBbmTblFlush, .-FtlBbmTblFlush @@ -12713,79 +12625,79 @@ FtlGcFreeBadSuperBlk: stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, lr} .save {r4, r5, r6, r7, r8, r9, sl, lr} mov r9, r0 - ldr r4, .L1472 - ldr r3, .L1472+4 + ldr r4, .L1462 + ldr r3, .L1462+4 ldrh r3, [r4, r3] cmp r3, #0 movne r6, #0 movne sl, r4 - bne .L1463 - b .L1464 -.L1470: + bne .L1453 + b .L1454 +.L1460: add r3, r3, r6 mov r1, r9 mov r5, #0 - ldr r7, .L1472+4 - ldrb r0, [r3, #3874] @ zero_extendqisi2 + ldr r7, .L1462+4 + ldrb r0, [r3, #3878] @ zero_extendqisi2 bl V2P_block mov r8, r0 - b .L1465 -.L1469: + b .L1455 +.L1459: add r3, r4, r5, asl #1 sub r3, r3, #1120 - sub r3, r3, #12 + sub r3, r3, #4 ldrh r3, [r3, #0] cmp r3, r8 - bne .L1466 + bne .L1456 mov r1, r8 - ldr r0, .L1472+8 + ldr r0, .L1462+8 bl printk mov r0, r8 bl FtlBbmMapBadBlock bl FtlBbmTblFlush ldrh r1, [r4, r7] mov r3, r5 - b .L1467 -.L1468: + b .L1457 +.L1458: add r0, r3, #1 add r3, r4, r3, asl #1 sub r3, r3, #1120 add r2, r4, r0, asl #1 sub r2, r2, #1120 - sub r2, r2, #12 + sub r2, r2, #4 ldrh r2, [r2, #0] - strh r2, [r3, #-12] @ movhi + strh r2, [r3, #-4] @ movhi uxth r3, r0 -.L1467: +.L1457: cmp r3, r1 - bcc .L1468 + bcc .L1458 sub r1, r1, #1 strh r1, [sl, r7] @ movhi -.L1466: +.L1456: add r5, r5, #1 uxth r5, r5 -.L1465: +.L1455: ldrh r3, [r4, r7] cmp r3, r5 - bhi .L1469 + bhi .L1459 add r6, r6, #1 uxth r6, r6 -.L1463: - ldr r3, .L1472+12 - movw r2, #3848 +.L1453: + ldr r3, .L1462+12 + movw r2, #3852 ldrh r2, [r3, r2] cmp r2, r6 - bhi .L1470 + bhi .L1460 bl FtlGcReFreshBadBlk -.L1464: +.L1454: mov r0, #0 ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, pc} -.L1473: +.L1463: .align 2 -.L1472: +.L1462: .word .LANCHOR2 - .word -1134 - .word .LC117 + .word -1126 + .word .LC116 .word .LANCHOR0 .fnend .size FtlGcFreeBadSuperBlk, .-FtlGcFreeBadSuperBlk @@ -12799,36 +12711,36 @@ update_vpc_list: stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} mov r2, r0, asl #1 - ldr r3, .L1482 + ldr r3, .L1472 mov r4, r0 - ldr r1, [r3, #-2016] + ldr r1, [r3, #-2012] ldrh r2, [r1, r2] cmp r2, #0 - bne .L1475 - ldr r1, .L1482+4 + bne .L1465 + ldr r1, .L1472+4 ldrh r0, [r3, r1] cmp r0, r4 mvneq r2, #0 streqh r2, [r3, r1] @ movhi - beq .L1477 - ldr r1, .L1482+8 + beq .L1467 + ldr r1, .L1472+8 ldrh r1, [r3, r1] cmp r1, r4 - beq .L1478 - ldr r1, .L1482+12 + beq .L1468 + ldr r1, .L1472+12 ldrh r1, [r3, r1] cmp r1, r4 - beq .L1478 - ldr r1, .L1482+16 + beq .L1468 + ldr r1, .L1472+16 ldrh r3, [r3, r1] cmp r3, r4 - beq .L1478 -.L1477: + beq .L1468 +.L1467: + ldr r5, .L1472 mov r1, r4 - ldr r0, .L1482+20 + sub r0, r5, #2016 bl List_remove_node - ldr r5, .L1482 - ldr r3, .L1482+24 + ldr r3, .L1472+20 mov r0, r4 ldrh r2, [r5, r3] sub r2, r2, #1 @@ -12837,23 +12749,22 @@ update_vpc_list: mov r0, r4 bl FtlGcFreeBadSuperBlk mov r2, #1 - b .L1478 -.L1475: + b .L1468 +.L1465: bl List_update_data_list mov r2, #0 -.L1478: +.L1468: mov r0, r2 ldmfd sp!, {r3, r4, r5, pc} -.L1483: +.L1473: .align 2 -.L1482: +.L1472: .word .LANCHOR2 - .word -1760 - .word -1996 - .word -1948 - .word -1900 - .word .LANCHOR2-2020 - .word -2008 + .word -1752 + .word -1992 + .word -1944 + .word -1896 + .word -2004 .fnend .size update_vpc_list, .-update_vpc_list .align 2 @@ -12868,41 +12779,41 @@ decrement_vpc_count: stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} mov r4, r0 - beq .L1485 - ldr r2, .L1490 + beq .L1475 + ldr r2, .L1480 mov r3, r0, asl #1 - ldr r2, [r2, #-2016] + ldr r2, [r2, #-2012] ldrh r1, [r2, r3] cmp r1, #0 subne r1, r1, #1 strneh r1, [r2, r3] @ movhi - bne .L1485 + bne .L1475 ldmfd sp!, {r4, r5, r6, lr} - b decrement_vpc_count.part.18 -.L1485: - ldr r6, .L1490 + b decrement_vpc_count.part.20 +.L1475: + ldr r6, .L1480 movw r3, #65535 - ldr r5, .L1490+4 + ldr r5, .L1480+4 ldrh r0, [r6, r5] cmp r0, r3 streqh r4, [r6, r5] @ movhi moveq r0, #0 ldmeqfd sp!, {r4, r5, r6, pc} cmp r0, r4 - beq .L1489 + beq .L1479 bl update_vpc_list strh r4, [r6, r5] @ movhi adds r0, r0, #0 movne r0, #1 ldmfd sp!, {r4, r5, r6, pc} -.L1489: +.L1479: mov r0, #0 ldmfd sp!, {r4, r5, r6, pc} -.L1491: +.L1481: .align 2 -.L1490: +.L1480: .word .LANCHOR2 - .word -1016 + .word -1008 .fnend .size decrement_vpc_count, .-decrement_vpc_count .align 2 @@ -12919,14 +12830,14 @@ get_new_active_ppa: mov r4, r0 ldrb r3, [r0, #6] @ zero_extendqisi2 movw r6, #65535 - ldr r5, .L1504 - ldr r7, .L1504+4 + ldr r5, .L1494 + ldr r7, .L1494+4 add r3, r0, r3, asl #1 ldrh r3, [r3, #16] - b .L1493 -.L1494: + b .L1483 +.L1484: ldrb r3, [r4, #6] @ zero_extendqisi2 - movw r2, #3848 + movw r2, #3852 ldrh r2, [r5, r2] add r3, r3, #1 uxtb r3, r3 @@ -12940,28 +12851,28 @@ get_new_active_ppa: ldrb r3, [r4, #6] @ zero_extendqisi2 add r3, r4, r3, asl #1 ldrh r3, [r3, #16] -.L1493: +.L1483: cmp r3, r6 - beq .L1494 + beq .L1484 ldrb r2, [r4, #8] @ zero_extendqisi2 cmp r2, #1 - bne .L1496 - ldrb r2, [r5, #928] @ zero_extendqisi2 + bne .L1486 + ldrb r2, [r5, #3072] @ zero_extendqisi2 cmp r2, #0 - bne .L1496 + bne .L1486 ldrh r2, [r4, #2] add r2, r7, r2, asl #1 - sub r2, r2, #888 + sub r2, r2, #880 ldrh r2, [r2, #0] cmp r2, r6 - bne .L1496 + bne .L1486 ldrh r3, [r4, #4] ldrh r0, [r4, #0] sub r3, r3, #1 strh r3, [r4, #4] @ movhi bl decrement_vpc_count - b .L1494 -.L1496: + b .L1484 +.L1486: ldrh r6, [r4, #2] movw r5, #65535 mov r7, r5 @@ -12969,12 +12880,12 @@ get_new_active_ppa: ldrh r3, [r4, #4] sub r3, r3, #1 strh r3, [r4, #4] @ movhi -.L1501: - ldr r2, .L1504 - movw r3, #3848 +.L1491: + ldr r2, .L1494 + movw r3, #3852 ldrh r2, [r2, r3] ldrb r3, [r4, #6] @ zero_extendqisi2 -.L1498: +.L1488: add r3, r3, #1 uxtb r3, r3 cmp r3, r2 @@ -12985,39 +12896,39 @@ get_new_active_ppa: add r1, r4, r3, asl #1 ldrh r1, [r1, #16] cmp r1, r5 - beq .L1498 + beq .L1488 strb r3, [r4, #6] ldrb r3, [r4, #8] @ zero_extendqisi2 cmp r3, #1 - bne .L1499 - ldr r3, .L1504 - ldrb r2, [r3, #928] @ zero_extendqisi2 + bne .L1489 + ldr r3, .L1494 + ldrb r2, [r3, #3072] @ zero_extendqisi2 cmp r2, #0 ldrh r2, [r4, #2] - bne .L1502 - ldr r3, .L1504+4 + bne .L1492 + ldr r3, .L1494+4 add r2, r3, r2, asl #1 - sub r2, r2, #888 + sub r2, r2, #880 ldrh r3, [r2, #0] cmp r3, r7 - bne .L1499 + bne .L1489 ldrh r3, [r4, #4] cmp r3, #0 - beq .L1499 + beq .L1489 sub r3, r3, #1 ldrh r0, [r4, #0] strh r3, [r4, #4] @ movhi bl decrement_vpc_count - b .L1501 -.L1502: - movw r1, #3918 + b .L1491 +.L1492: + mov r1, #3920 ldrh r1, [r3, r1] cmp r2, r1 - bcc .L1499 - ldr r1, .L1504+4 + bcc .L1489 + ldr r1, .L1494+4 ldrh r2, [r4, #0] ldrh r0, [r4, #4] - ldr r1, [r1, #-2016] + ldr r1, [r1, #-2012] mov r2, r2, asl #1 ldrh ip, [r1, r2] rsb r0, r0, ip @@ -13025,23 +12936,23 @@ get_new_active_ppa: mov r2, #0 strh r2, [r4, #4] @ movhi mov r1, r2 @ movhi - movw r2, #3916 + movw r2, #3918 ldrh r3, [r3, r2] strb r1, [r4, #6] strh r3, [r4, #2] @ movhi -.L1499: +.L1489: mov r0, r6 ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L1505: +.L1495: .align 2 -.L1504: +.L1494: .word .LANCHOR0 .word .LANCHOR2 .fnend .size get_new_active_ppa, .-get_new_active_ppa .align 2 - .type FtlSlcSuperblockCheck.part.19, %function -FtlSlcSuperblockCheck.part.19: + .type FtlSlcSuperblockCheck.part.21, %function +FtlSlcSuperblockCheck.part.21: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @@ -13050,14 +12961,14 @@ FtlSlcSuperblockCheck.part.19: mov r4, r0 ldrb r3, [r0, #6] @ zero_extendqisi2 movw r6, #65535 - ldr r5, .L1512 - ldr r7, .L1512+4 + ldr r5, .L1502 + ldr r7, .L1502+4 add r3, r0, r3, asl #1 ldrh r3, [r3, #16] - b .L1507 -.L1508: + b .L1497 +.L1498: ldrb r3, [r4, #6] @ zero_extendqisi2 - movw r2, #3848 + movw r2, #3852 ldrh r2, [r5, r2] add r3, r3, #1 uxtb r3, r3 @@ -13071,21 +12982,21 @@ FtlSlcSuperblockCheck.part.19: ldrb r3, [r4, #6] @ zero_extendqisi2 add r3, r4, r3, asl #1 ldrh r3, [r3, #16] -.L1507: +.L1497: cmp r3, r6 - beq .L1508 + beq .L1498 ldrb r2, [r4, #8] @ zero_extendqisi2 cmp r2, #1 - bne .L1510 - ldrb r3, [r5, #928] @ zero_extendqisi2 + bne .L1500 + ldrb r3, [r5, #3072] @ zero_extendqisi2 cmp r3, #0 - bne .L1510 + bne .L1500 ldrh r3, [r4, #2] add r3, r7, r3, asl #1 - sub r3, r3, #888 + sub r3, r3, #880 ldrh r3, [r3, #0] cmp r3, r6 - bne .L1510 + bne .L1500 ldrh r3, [r4, #4] ldrh r0, [r4, #0] sub r3, r3, #1 @@ -13093,28 +13004,28 @@ FtlSlcSuperblockCheck.part.19: bl decrement_vpc_count ldrh r3, [r4, #4] cmp r3, #0 - bne .L1508 + bne .L1498 ldrh r2, [r4, #2] strb r3, [r4, #6] add r2, r2, #1 strh r2, [r4, #2] @ movhi ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L1510: - ldr r3, .L1512 - ldrb r1, [r3, #928] @ zero_extendqisi2 +.L1500: + ldr r3, .L1502 + ldrb r1, [r3, #3072] @ zero_extendqisi2 cmp r1, #0 ldmeqfd sp!, {r3, r4, r5, r6, r7, pc} cmp r2, #1 ldmnefd sp!, {r3, r4, r5, r6, r7, pc} - movw r2, #3918 + mov r2, #3920 ldrh r1, [r4, #2] ldrh r2, [r3, r2] cmp r1, r2 ldmccfd sp!, {r3, r4, r5, r6, r7, pc} - ldr r1, .L1512+4 + ldr r1, .L1502+4 ldrh r2, [r4, #0] ldrh r0, [r4, #4] - ldr r1, [r1, #-2016] + ldr r1, [r1, #-2012] mov r2, r2, asl #1 ldrh ip, [r1, r2] rsb r0, r0, ip @@ -13122,18 +13033,18 @@ FtlSlcSuperblockCheck.part.19: mov r2, #0 strh r2, [r4, #4] @ movhi mov r1, r2 @ movhi - movw r2, #3916 + movw r2, #3918 ldrh r3, [r3, r2] strb r1, [r4, #6] strh r3, [r4, #2] @ movhi ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L1513: +.L1503: .align 2 -.L1512: +.L1502: .word .LANCHOR0 .word .LANCHOR2 .fnend - .size FtlSlcSuperblockCheck.part.19, .-FtlSlcSuperblockCheck.part.19 + .size FtlSlcSuperblockCheck.part.21, .-FtlSlcSuperblockCheck.part.21 .align 2 .global FtlSlcSuperblockCheck .type FtlSlcSuperblockCheck, %function @@ -13149,12 +13060,12 @@ FtlSlcSuperblockCheck: movw r3, #65535 cmp r2, r3 bxeq lr - b FtlSlcSuperblockCheck.part.19 + b FtlSlcSuperblockCheck.part.21 .fnend .size FtlSlcSuperblockCheck, .-FtlSlcSuperblockCheck .align 2 - .type allocate_data_superblock.part.20, %function -allocate_data_superblock.part.20: + .type allocate_data_superblock.part.22, %function +allocate_data_superblock.part.22: .fnstart @ args = 0, pretend = 0, frame = 24 @ frame_needed = 0, uses_anonymous_args = 0 @@ -13162,94 +13073,94 @@ allocate_data_superblock.part.20: .save {r4, r5, r6, r7, r8, r9, sl, fp, lr} .pad #28 sub sp, sp, #28 - ldr r6, .L1555 + ldr r6, .L1545 mov r4, r0 - ldr r5, .L1555+4 + ldr r5, .L1545+4 mov sl, r6 -.L1550: - ldr r3, .L1555+8 +.L1540: + ldr r3, .L1545+8 cmp r4, r3 - bne .L1518 - ldr r3, .L1555+12 + bne .L1508 + ldr r3, .L1545+12 ldrh r2, [r5, r3] - ldr r3, [r5, #-1184] + ldr r3, [r5, #-1176] mov r1, r2, lsr #1 mul ip, r3, r2 add r0, r1, #1 add r0, r0, ip, lsr #2 - ldr ip, [r6, #3840] + ldr ip, [r6, #3844] cmp ip, #0 uxth r0, r0 - beq .L1542 - ldr ip, [r5, #-1780] + beq .L1532 + ldr ip, [r5, #-1776] cmp ip, #39 - bhi .L1542 + bhi .L1532 cmp ip, #2 - bls .L1547 + bls .L1537 tst r2, #1 - beq .L1519 + beq .L1509 cmp r3, #0 moveq r1, r3 - beq .L1520 - b .L1519 -.L1518: + beq .L1510 + b .L1509 +.L1508: ldrb r3, [r4, #8] @ zero_extendqisi2 cmp r3, #1 - bne .L1547 - movw r3, #3868 + bne .L1537 + mov r3, #3872 ldrh r3, [r6, r3] cmp r3, #1 - beq .L1547 - ldrb r3, [r6, #928] @ zero_extendqisi2 + beq .L1537 + ldrb r3, [r6, #3072] @ zero_extendqisi2 cmp r3, #0 - bne .L1547 - sub r3, r3, #2000 - ldr r2, [r6, #3840] + bne .L1537 + ldr r3, .L1545+12 + ldr r2, [r6, #3844] ldrh r3, [r5, r3] cmp r2, #0 mov r1, r3, lsr #3 - beq .L1519 - ldr r2, [r5, #-1780] + beq .L1509 + ldr r2, [r5, #-1776] cmp r2, #1 movls r1, #7 mulls r1, r1, r3 movls r1, r1, lsr #3 - b .L1519 -.L1542: + b .L1509 +.L1532: mov r1, r0 -.L1519: +.L1509: cmp r1, #0 subne r1, r1, #1 uxthne r1, r1 - b .L1520 -.L1547: + b .L1510 +.L1537: mov r1, #0 -.L1520: +.L1510: ldrb r2, [r4, #8] @ zero_extendqisi2 - ldr r0, .L1555+16 + ldr r0, .L1545+16 bl List_pop_index_node - ldr r3, .L1555+12 + ldr r3, .L1545+12 ldrh r2, [r5, r3] sub r2, r2, #1 strh r2, [r5, r3] @ movhi - mov r3, #3856 + movw r3, #3860 ldrh r3, [r6, r3] uxth r9, r0 cmp r3, r9 - bls .L1550 - ldr r3, [r5, #-2016] + bls .L1540 + ldr r3, [r5, #-2012] mov r7, r9, asl #1 ldrh r8, [r3, r7] cmp r8, #0 - bne .L1550 + bne .L1540 strh r9, [r4, #0] @ movhi mov r0, r4 bl make_superblock ldrb r3, [r4, #7] @ zero_extendqisi2 cmp r3, #0 - beq .L1551 - movw r3, #3848 - ldr ip, [r6, #4044] + beq .L1541 + movw r3, #3852 + ldr ip, [r6, #4048] ldrh r3, [r6, r3] mov r1, r4 str r4, [sp, #16] @@ -13258,14 +13169,14 @@ allocate_data_superblock.part.20: stmia sp, {r4, ip} str r3, [sp, #20] mov r3, ip - b .L1523 -.L1525: + b .L1513 +.L1515: str r0, [r3, #8] movw r4, #65535 str r0, [r3, #12] ldrh lr, [r1, #16] cmp lr, r4 - beq .L1524 + beq .L1514 ldr r4, [sp, #4] mov ip, #36 mov lr, lr, asl #10 @@ -13273,101 +13184,101 @@ allocate_data_superblock.part.20: add r8, r8, #1 uxth r8, r8 str lr, [fp, #4] -.L1524: +.L1514: add r2, r2, #1 add r3, r3, #36 add r1, r1, #2 uxth r2, r2 -.L1523: +.L1513: ldr fp, [sp, #20] cmp r2, fp - bne .L1525 - ldr r3, [r6, #3840] + bne .L1515 + ldr r3, [r6, #3844] ldr r4, [sp, #0] cmp r3, #0 - beq .L1526 - ldr r3, .L1555+20 + beq .L1516 + ldr r3, .L1545+20 cmp r4, r3 - bne .L1526 - ldr r3, [r6, #4048] + bne .L1516 + ldr r3, [r6, #4052] ldrh r3, [r3, r7] cmp r3, #40 movhi r3, #0 - strhib r3, [r5, #-1988] -.L1526: + strhib r3, [r5, #-1984] +.L1516: ldrb r3, [r4, #8] @ zero_extendqisi2 cmp r3, #0 - ldr r3, [sl, #4048] + ldr r3, [sl, #4052] ldrh r2, [r3, r7] - bne .L1527 + bne .L1517 cmp r2, #0 mov r0, r9 - movwne r1, #3906 + movwne r1, #3910 moveq r2, #2 ldrneh r1, [r6, r1] addne r2, r2, r1 strh r2, [r3, r7] @ movhi - ldr r3, [r5, #-1796] + ldr r3, [r5, #-1792] mov r1, #0 add r3, r3, #1 - str r3, [r5, #-1796] - b .L1553 -.L1527: + str r3, [r5, #-1792] + b .L1543 +.L1517: add r2, r2, #1 strh r2, [r3, r7] @ movhi - ldr r3, [r5, #-1792] + ldr r3, [r5, #-1788] mov r0, r9 mov r1, #1 add r3, r3, #1 - str r3, [r5, #-1792] -.L1553: + str r3, [r5, #-1788] +.L1543: bl ftl_set_blk_mode - ldr r3, [r6, #4048] - ldr fp, .L1555+4 - ldr r2, [r5, #-1784] + ldr r3, [r6, #4052] + ldr fp, .L1545+4 + ldr r2, [r5, #-1780] ldrh r3, [r3, r7] - ldr r0, [fp, #-1796] + ldr r0, [fp, #-1792] cmp r3, r2 - strhi r3, [r5, #-1784] - movw r3, #3906 + strhi r3, [r5, #-1780] + movw r3, #3910 ldrh r2, [sl, r3] - ldr r3, [fp, #-1792] + ldr r3, [fp, #-1788] mla r0, r0, r2, r3 - mov r3, #3856 + movw r3, #3860 ldrh r1, [sl, r3] bl __aeabi_uidiv - ldr r3, [fp, #-916] + ldr r3, [fp, #-908] ldr r2, [r3, #16] add r2, r2, #1 str r2, [r3, #16] - ldr r3, [sl, #4044] + ldr r3, [sl, #4048] mov r2, #0 - str r0, [fp, #-1788] - b .L1532 -.L1533: + str r0, [fp, #-1784] + b .L1522 +.L1523: add r2, r2, #1 ldr r1, [r3, #-32] uxth r2, r2 bic r1, r1, #1020 bic r1, r1, #3 str r1, [r3, #-32] -.L1532: +.L1522: cmp r2, r8 add r3, r3, #36 - bne .L1533 - ldrb r3, [r6, #928] @ zero_extendqisi2 + bne .L1523 + ldrb r3, [r6, #3072] @ zero_extendqisi2 cmp r3, #0 - beq .L1534 + beq .L1524 ldrb r3, [r4, #8] @ zero_extendqisi2 mov r2, r8 - ldr r0, [r6, #4044] + ldr r0, [r6, #4048] cmp r3, #1 moveq r1, #0 movne r1, #1 bl FlashEraseBlocks -.L1534: +.L1524: mov r2, r8 - ldr r0, [sl, #4044] + ldr r0, [sl, #4048] ldrb r1, [r4, #8] @ zero_extendqisi2 bl FlashEraseBlocks mov r2, #36 @@ -13378,13 +13289,13 @@ allocate_data_superblock.part.20: mov r9, r2 mov r2, r7 mov r7, r4 - b .L1536 -.L1538: - ldr r0, [r6, #4044] + b .L1526 +.L1528: + ldr r0, [r6, #4048] add r1, r0, r8 ldr r4, [r0, r8] cmn r4, #1 - bne .L1537 + bne .L1527 ldr r0, [r1, #4] add fp, fp, #1 str r2, [sp, #8] @@ -13398,64 +13309,64 @@ allocate_data_superblock.part.20: strb r1, [r7, #7] ldr r3, [sp, #12] ldr r2, [sp, #8] -.L1537: +.L1527: ldr r4, [sp, #16] add r8, r8, #36 add r4, r4, #2 str r4, [sp, #16] -.L1536: +.L1526: cmp r8, r9 - bne .L1538 + bne .L1528 cmp fp, #0 mov r4, r7 mov r9, r3 mov r7, r2 - beq .L1539 + beq .L1529 mov r0, r3 bl update_multiplier_value bl FtlBbmTblFlush -.L1539: +.L1529: ldrb r3, [r4, #7] @ zero_extendqisi2 cmp r3, #0 - bne .L1540 -.L1551: - ldr r3, [r5, #-2016] + bne .L1530 +.L1541: + ldr r3, [r5, #-2012] mvn r2, #0 strh r2, [r3, r7] @ movhi - b .L1550 -.L1540: - ldr r1, .L1555 - movw r2, #3916 + b .L1540 +.L1530: + ldr r1, .L1545 + movw r2, #3918 ldrh r2, [r1, r2] strh r9, [r4, #0] @ movhi mul r2, r2, r3 mov r3, #0 strh r3, [r4, #2] @ movhi strb r3, [r4, #6] - ldr r3, .L1555+4 + ldr r3, .L1545+4 uxth r2, r2 strh r2, [r4, #4] @ movhi - ldr r1, [r3, #-1804] + ldr r1, [r3, #-1800] str r1, [r4, #12] add r1, r1, #1 - str r1, [r3, #-1804] + str r1, [r3, #-1800] ldrh r0, [r4, #0] - ldr r1, [r3, #-2016] + ldr r1, [r3, #-2012] mov r3, r0, asl #1 strh r2, [r1, r3] @ movhi add sp, sp, #28 ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L1556: +.L1546: .align 2 -.L1555: +.L1545: .word .LANCHOR0 .word .LANCHOR2 - .word .LANCHOR2-1900 - .word -2000 - .word .LANCHOR2-2004 - .word .LANCHOR2-1996 + .word .LANCHOR2-1896 + .word -1996 + .word .LANCHOR2-2000 + .word .LANCHOR2-1992 .fnend - .size allocate_data_superblock.part.20, .-allocate_data_superblock.part.20 + .size allocate_data_superblock.part.22, .-allocate_data_superblock.part.22 .align 2 .global allocate_data_superblock .type allocate_data_superblock, %function @@ -13465,17 +13376,17 @@ allocate_data_superblock: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, lr} .save {r3, lr} - ldr r3, .L1559 - ldr r3, [r3, #4040] + ldr r3, .L1549 + ldr r3, [r3, #4044] cmp r3, #0 - bne .L1558 - bl allocate_data_superblock.part.20 -.L1558: + bne .L1548 + bl allocate_data_superblock.part.22 +.L1548: mov r0, #0 ldmfd sp!, {r3, pc} -.L1560: +.L1550: .align 2 -.L1559: +.L1549: .word .LANCHOR0 .fnend .size allocate_data_superblock, .-allocate_data_superblock @@ -13486,33 +13397,33 @@ FtlSuperblockPowerLostFix: .fnstart @ args = 0, pretend = 0, frame = 40 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r2, .L1571 + ldr r2, .L1561 stmfd sp!, {r4, r5, r6, r7, r8, sl, lr} .save {r4, r5, r6, r7, r8, sl, lr} mov r4, r0 - ldr r3, [r2, #4040] + ldr r3, [r2, #4044] .pad #44 sub sp, sp, #44 cmp r3, #0 - bne .L1561 - ldrb r7, [r2, #928] @ zero_extendqisi2 + bne .L1551 + ldrb r7, [r2, #3072] @ zero_extendqisi2 cmp r7, #0 - beq .L1570 + beq .L1560 ldrb r7, [r0, #8] @ zero_extendqisi2 cmp r7, #1 ldreqh r8, [r0, #4] - beq .L1563 + beq .L1553 mov r7, r3 -.L1570: +.L1560: mov r8, #12 -.L1563: - ldr r6, .L1571+4 +.L1553: + ldr r6, .L1561+4 mvn r3, #0 str r3, [sp, #20] mov sl, #0 movw r2, #61589 - ldr r5, [r6, #-932] - ldr r3, [r6, #-956] + ldr r5, [r6, #-924] + ldr r3, [r6, #-948] str r5, [sp, #16] str r3, [sp, #12] mvn r3, #2 @@ -13522,22 +13433,22 @@ FtlSuperblockPowerLostFix: ldrh r3, [r4, #0] strh sl, [r5, #0] @ movhi strh r3, [r5, #2] @ movhi - ldr r3, [r6, #-956] + ldr r3, [r6, #-948] str r2, [r3, #0] - ldr r2, .L1571+8 - ldr r3, [r6, #-956] + ldr r2, .L1561+8 + ldr r3, [r6, #-948] str r2, [r3, #4] - b .L1564 -.L1567: + b .L1554 +.L1557: ldrh r3, [r4, #4] cmp r3, #0 - beq .L1565 + beq .L1555 mov r0, r4 bl get_new_active_ppa cmn r0, #1 str r0, [sp, #8] - beq .L1565 - ldr r3, [r6, #-1800] + beq .L1555 + ldr r3, [r6, #-1796] mov r1, #1 mov r2, r7 add r0, sp, #4 @@ -13546,36 +13457,36 @@ FtlSuperblockPowerLostFix: add r3, r3, #1 cmn r3, #1 moveq r3, sl - str r3, [r6, #-1800] + str r3, [r6, #-1796] mov r3, #0 bl FlashProgPages ldrh r0, [r4, #0] bl decrement_vpc_count -.L1564: +.L1554: cmp r8, #0 - bne .L1567 -.L1565: - ldr r2, .L1571+4 + bne .L1557 +.L1555: + ldr r2, .L1561+4 ldrh r3, [r4, #0] ldrh r1, [r4, #4] - ldr r2, [r2, #-2016] + ldr r2, [r2, #-2012] mov r3, r3, asl #1 ldrh r0, [r2, r3] rsb r1, r1, r0 strh r1, [r2, r3] @ movhi - ldr r2, .L1571 - movw r3, #3916 + ldr r2, .L1561 + movw r3, #3918 ldrh r3, [r2, r3] strh r3, [r4, #2] @ movhi mov r3, #0 strb r3, [r4, #6] strh r3, [r4, #4] @ movhi -.L1561: +.L1551: add sp, sp, #44 ldmfd sp!, {r4, r5, r6, r7, r8, sl, pc} -.L1572: +.L1562: .align 2 -.L1571: +.L1561: .word .LANCHOR0 .word .LANCHOR2 .word 305419896 @@ -13591,48 +13502,48 @@ FtlLowFormatEraseBlock: stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} .save {r4, r5, r6, r7, r8, r9, sl, fp, lr} mov sl, r1 - ldr r8, .L1603 + ldr r8, .L1593 .pad #28 sub sp, sp, #28 str r0, [sp, #8] - ldr r6, [r8, #4040] - ldrb r1, [r8, #3837] @ zero_extendqisi2 + ldr r6, [r8, #4044] + ldrb r1, [r8, #3841] @ zero_extendqisi2 cmp r6, #0 str r1, [sp, #16] movne r4, #0 - bne .L1574 - ldrb r2, [r8, #928] @ zero_extendqisi2 + bne .L1564 + ldrb r2, [r8, #3072] @ zero_extendqisi2 mov r5, r6 - ldr fp, .L1603+4 + ldr fp, .L1593+4 mov r4, r6 mov r9, #36 str r2, [sp, #4] - str r0, [fp, #-980] - b .L1575 -.L1579: + str r0, [fp, #-972] + b .L1565 +.L1569: mul r3, r9, r6 - ldr r2, [r8, #4044] + ldr r2, [r8, #4048] mov r1, #0 str r1, [r2, r3] add r3, r8, r6 ldr r1, [sp, #8] - ldrb r0, [r3, #3874] @ zero_extendqisi2 + ldrb r0, [r3, #3878] @ zero_extendqisi2 bl V2P_block cmp sl, #0 mov r7, r0 - beq .L1576 + beq .L1566 bl IsBlkInVendorPart cmp r0, #0 - bne .L1577 -.L1576: + bne .L1567 +.L1566: mov r0, r7 bl FtlBbmIsBadBlock cmp r0, #0 addne r4, r4, #1 uxthne r4, r4 - bne .L1577 - movw r1, #3928 - ldr r3, [r8, #4044] + bne .L1567 + movw r1, #3930 + ldr r3, [r8, #4048] ldrh r2, [r8, r1] mov r7, r7, asl #10 mla r3, r9, r5, r3 @@ -13643,110 +13554,110 @@ FtlLowFormatEraseBlock: cmp r2, #0 str r7, [r3, #4] movlt r2, r1 - ldr r1, [fp, #-928] + ldr r1, [fp, #-920] bic r2, r2, #3 str r0, [r3, #8] add r2, r1, r2 str r2, [r3, #12] -.L1577: +.L1567: add r6, r6, #1 uxth r6, r6 -.L1575: - movw r2, #3848 - ldr r7, .L1603 +.L1565: + movw r2, #3852 + ldr r7, .L1593 ldrh r3, [r8, r2] cmp r3, r6 - bhi .L1579 + bhi .L1569 cmp r5, #0 - beq .L1574 + beq .L1564 ldr r3, [sp, #4] mov r8, #0 - ldr r0, [r7, #4044] + ldr r0, [r7, #4048] mov r2, r5 adds r6, r3, #0 - strb r8, [r7, #3837] + strb r8, [r7, #3841] mov r9, r8 movne r6, #1 mov r1, r6 bl FlashEraseBlocks ldr r1, [sp, #16] - strb r1, [r7, #3837] -.L1582: - ldr r3, [r7, #4044] + strb r1, [r7, #3841] +.L1572: + ldr r3, [r7, #4048] add r2, r3, r8 ldr r3, [r3, r8] cmn r3, #1 - bne .L1581 + bne .L1571 ldr r0, [r2, #4] add r4, r4, #1 ubfx r0, r0, #10, #16 uxth r4, r4 bl FtlBbmMapBadBlock -.L1581: +.L1571: add r9, r9, #1 add r8, r8, #36 uxth r9, r9 cmp r9, r5 - bne .L1582 + bne .L1572 cmp sl, #0 - beq .L1596 - ldr r3, .L1603 - movw r2, #3918 + beq .L1586 + ldr r3, .L1593 + mov r2, #3920 ldrh r2, [r3, r2] - ldrb r3, [r3, #928] @ zero_extendqisi2 + ldrb r3, [r3, #3072] @ zero_extendqisi2 cmp r3, #0 str r2, [sp, #12] moveq r2, r2, lsr #2 streq r2, [sp, #4] moveq r6, #1 - beq .L1583 - b .L1602 -.L1596: + beq .L1573 + b .L1592 +.L1586: mov r3, #6 mov r1, #1 str r3, [sp, #4] str r1, [sp, #12] - b .L1583 -.L1602: + b .L1573 +.L1592: mov r6, #1 str r6, [sp, #4] -.L1583: - ldr r7, .L1603 +.L1573: + ldr r7, .L1593 mov r8, #0 -.L1591: +.L1581: mov r9, #0 - ldr fp, .L1603+4 + ldr fp, .L1593+4 mov r5, r9 - b .L1584 -.L1587: + b .L1574 +.L1577: mov r1, #36 - ldr r2, [r7, #4044] + ldr r2, [r7, #4048] mul r3, r1, r9 mov r1, #0 str r1, [r2, r3] add r3, r7, r9 ldr r1, [sp, #8] - ldrb r0, [r3, #3874] @ zero_extendqisi2 + ldrb r0, [r3, #3878] @ zero_extendqisi2 bl V2P_block cmp sl, #0 str r0, [sp, #20] - beq .L1585 + beq .L1575 bl IsBlkInVendorPart cmp r0, #0 - bne .L1586 -.L1585: + bne .L1576 +.L1575: ldr r0, [sp, #20] bl FtlBbmIsBadBlock cmp r0, #0 - bne .L1586 - ldr r3, [r7, #4044] + bne .L1576 + ldr r3, [r7, #4048] mov r2, #36 ldr r1, [sp, #20] mla r3, r2, r5, r3 add r2, r8, r1, asl #10 - movw r1, #3928 + movw r1, #3930 str r2, [r3, #4] - ldr r2, [fp, #-940] + ldr r2, [fp, #-932] str r2, [r3, #8] ldrh r2, [r7, r1] mul r2, r2, r5 @@ -13755,25 +13666,25 @@ FtlLowFormatEraseBlock: add r1, r2, #3 cmp r2, #0 movlt r2, r1 - ldr r1, [fp, #-936] + ldr r1, [fp, #-928] bic r2, r2, #3 add r2, r1, r2 str r2, [r3, #12] -.L1586: +.L1576: add r9, r9, #1 uxth r9, r9 -.L1584: - movw r2, #3848 - ldr ip, .L1603 +.L1574: + movw r2, #3852 + ldr ip, .L1593 ldrh r3, [r7, r2] cmp r3, r9 - bhi .L1587 + bhi .L1577 cmp r5, #0 - beq .L1574 - ldr r0, [ip, #4044] + beq .L1564 + ldr r0, [ip, #4048] mov r3, #0 mov r1, r5 - strb r3, [ip, #3837] + strb r3, [ip, #3841] mov r2, r6 mov r3, #1 str ip, [sp, #0] @@ -13782,51 +13693,51 @@ FtlLowFormatEraseBlock: mov r9, #0 ldr r1, [sp, #16] mov fp, r9 - strb r1, [ip, #3837] -.L1590: - ldr r3, [r7, #4044] + strb r1, [ip, #3841] +.L1580: + ldr r3, [r7, #4048] add r2, r3, r9 ldr r3, [r3, r9] cmp r3, #0 - beq .L1589 + beq .L1579 ldr r0, [r2, #4] add r4, r4, #1 ubfx r0, r0, #10, #16 uxth r4, r4 bl FtlBbmMapBadBlock -.L1589: +.L1579: add fp, fp, #1 add r9, r9, #36 uxth fp, fp cmp fp, r5 - bne .L1590 + bne .L1580 ldr r2, [sp, #4] ldr r3, [sp, #12] add r8, r8, r2 uxth r8, r8 cmp r8, r3 - bcc .L1591 - ldr r9, .L1603 + bcc .L1581 + ldr r9, .L1593 mov r7, #0 mov r8, r7 -.L1593: +.L1583: cmp sl, #0 - beq .L1592 - ldr r3, [r9, #4044] + beq .L1582 + ldr r3, [r9, #4048] add r2, r3, r7 ldr r3, [r3, r7] cmp r3, #0 - bne .L1592 + bne .L1582 ldr r0, [r2, #4] mov r1, #1 ubfx r0, r0, #10, #16 bl FtlFreeSysBlkQueueIn -.L1592: +.L1582: add r8, r8, #1 add r7, r7, #36 uxth r8, r8 cmp r8, r5 - bne .L1593 + bne .L1583 ldr r1, [sp, #8] cmp r1, #63 movhi r3, #0 @@ -13835,45 +13746,45 @@ FtlLowFormatEraseBlock: moveq sl, r3 orrne sl, r3, #1 cmp sl, #0 - beq .L1574 - ldr r3, .L1603 + beq .L1564 + ldr r3, .L1593 mov r1, r6 mov r2, r8 - ldr r0, [r3, #4044] + ldr r0, [r3, #4048] bl FlashEraseBlocks -.L1574: +.L1564: mov r0, r4 add sp, sp, #28 ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L1604: +.L1594: .align 2 -.L1603: +.L1593: .word .LANCHOR0 .word .LANCHOR2 .fnend .size FtlLowFormatEraseBlock, .-FtlLowFormatEraseBlock .align 2 - .type FlashTestBlk.part.24, %function -FlashTestBlk.part.24: + .type FlashTestBlk.part.26, %function +FlashTestBlk.part.26: .fnstart @ args = 0, pretend = 0, frame = 104 @ frame_needed = 0, uses_anonymous_args = 0 -.L1606: +.L1596: stmfd sp!, {r4, r5, lr} .save {r4, r5, lr} .pad #108 sub sp, sp, #108 - ldr r4, .L1608 + ldr r4, .L1598 mov r5, r0 mov r1, #165 add r0, sp, #40 mov r2, #32 str r0, [sp, #16] - ldr r3, [r4, #140] + ldr r3, [r4, #148] mov r5, r5, asl #10 str r3, [sp, #12] bl ftl_memset - ldr r0, [r4, #140] + ldr r0, [r4, #148] mov r1, #90 mov r2, #8 bl ftl_memset @@ -13897,12 +13808,12 @@ FlashTestBlk.part.24: mov r0, r4 add sp, sp, #108 ldmfd sp!, {r4, r5, pc} -.L1609: +.L1599: .align 2 -.L1608: +.L1598: .word .LANCHOR2 .fnend - .size FlashTestBlk.part.24, .-FlashTestBlk.part.24 + .size FlashTestBlk.part.26, .-FlashTestBlk.part.26 .align 2 .global FlashTestBlk .type FlashTestBlk, %function @@ -13911,17 +13822,17 @@ FlashTestBlk: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L1612 - ldr r3, [r3, #160] + ldr r3, .L1602 + ldr r3, [r3, #168] cmp r0, r3 - bcc .L1611 - b FlashTestBlk.part.24 -.L1611: + bcc .L1601 + b FlashTestBlk.part.26 +.L1601: mov r0, #0 bx lr -.L1613: +.L1603: .align 2 -.L1612: +.L1602: .word .LANCHOR2 .fnend .size FlashTestBlk, .-FlashTestBlk @@ -13932,9 +13843,9 @@ FlashMakeFactorBbt: .fnstart @ args = 0, pretend = 0, frame = 72 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L1642 - movw r1, #3062 - movw r2, #3060 + ldr r3, .L1632 + movw r1, #3058 + mov r2, #3056 stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} .save {r4, r5, r6, r7, r8, r9, sl, fp, lr} .pad #76 @@ -13943,13 +13854,13 @@ FlashMakeFactorBbt: mov r5, #0 ldrh fp, [r3, r1] mov r1, #1 - ldr r4, .L1642+4 + ldr r4, .L1632+4 mul fp, fp, r2 ldr r2, [r3, #3624] - ldr r0, [r4, #232] + ldr r0, [r4, #240] ldrb r2, [r2, #24] @ zero_extendqisi2 str r0, [sp, #28] - ldr r0, .L1642+8 + ldr r0, .L1632+8 uxth fp, fp str r2, [sp, #12] ldr r2, [r3, #856] @@ -13961,25 +13872,25 @@ FlashMakeFactorBbt: uxtheq r3, r3 streq r3, [sp, #8] bl printk - ldr r0, [r4, #232] + ldr r0, [r4, #240] mov r2, #4096 mov r1, #0 bl ftl_memset sub r3, fp, #1 mov r2, fp, lsr #4 - ldr r4, .L1642 + ldr r4, .L1632 uxth r3, r3 str r2, [sp, #20] str r3, [sp, #24] - b .L1616 -.L1638: - ldr r3, .L1642+4 + b .L1606 +.L1628: + ldr r3, .L1632+4 add r2, r3, r5, asl #1 - ldrh r6, [r2, #236] + ldrh r6, [r2, #244] cmp r6, #0 - bne .L1617 - movw r2, #3068 - ldr r0, [r3, #152] + bne .L1607 + movw r2, #3064 + ldr r0, [r3, #160] ldrh r2, [r4, r2] mov r1, r6 mov r8, r6 @@ -13989,14 +13900,14 @@ FlashMakeFactorBbt: bl ftl_memset add r3, r4, r5 ldrb r9, [r3, #3764] @ zero_extendqisi2 - b .L1618 -.L1626: + b .L1608 +.L1616: mvn r3, #0 strb r3, [sp, #34] strb r3, [sp, #35] ldr r3, [sp, #12] tst r3, #1 - beq .L1619 + beq .L1609 ldr r3, [sl, #3588] add r2, sp, #34 mov r0, r9 @@ -14007,7 +13918,7 @@ FlashMakeFactorBbt: ldrb r2, [r4, #852] @ zero_extendqisi2 ldr r3, [sp, #4] cmp r2, #1 - bne .L1619 + bne .L1609 ldr r1, [r4, #856] add r2, sp, #35 mov r0, r9 @@ -14017,10 +13928,10 @@ FlashMakeFactorBbt: ldrb r2, [sp, #35] @ zero_extendqisi2 and r3, r2, r3 strb r3, [sp, #34] -.L1619: +.L1609: ldr r0, [sp, #12] tst r0, #2 - beq .L1620 + beq .L1610 ldr r3, [r4, #3624] mov r0, r9 add r2, sp, #35 @@ -14030,42 +13941,42 @@ FlashMakeFactorBbt: add r1, r1, r3 add r1, r1, r6 bl FlashReadSpare -.L1620: +.L1610: ldr r3, [r4, #3624] ldrb r3, [r3, #7] @ zero_extendqisi2 cmp r3, #1 cmpne r3, #8 ldrb r3, [sp, #34] @ zero_extendqisi2 - bne .L1621 + bne .L1611 cmp r3, #0 - beq .L1640 + beq .L1630 ldrb r0, [sp, #35] @ zero_extendqisi2 rsbs r0, r0, #1 movcc r0, #0 - b .L1622 -.L1621: + b .L1612 +.L1611: cmp r3, #255 - bne .L1640 + bne .L1630 ldrb r0, [sp, #35] @ zero_extendqisi2 subs r0, r0, #255 movne r0, #1 - b .L1622 -.L1640: + b .L1612 +.L1630: mov r0, #1 -.L1622: +.L1612: ldr r2, [sp, #12] tst r2, #4 - beq .L1623 + beq .L1613 ldr r1, [sl, #3588] mov r0, r9 add r1, r6, r1 bl SandiskProgTestBadBlock -.L1623: +.L1613: cmp r0, #0 - beq .L1624 + beq .L1614 mov r1, r5 mov r2, r8 - ldr r0, .L1642+12 + ldr r0, .L1632+12 add r7, r7, #1 bl printk ldr r3, [sp, #16] @@ -14073,8 +13984,8 @@ FlashMakeFactorBbt: mov ip, #1 uxth r7, r7 mov r2, r3, lsr #5 - ldr r3, .L1642+4 - ldr r3, [r3, #152] + ldr r3, .L1632+4 + ldr r3, [r3, #160] ldr r1, [r3, r2, asl #2] orr r1, r1, ip, asl r0 ldr r0, [sp, #20] @@ -14082,18 +13993,18 @@ FlashMakeFactorBbt: ldrb r3, [r4, #3762] @ zero_extendqisi2 mul r3, r3, r0 cmp r7, r3 - bgt .L1625 -.L1624: + bgt .L1615 +.L1614: ldr r2, [sp, #8] add r8, r8, #1 add r6, r6, r2 -.L1618: +.L1608: uxth r3, r8 str r3, [sp, #16] cmp r3, fp - bcc .L1626 -.L1625: - ldr r0, .L1642+16 + bcc .L1616 +.L1615: + ldr r0, .L1632+16 mov r1, r5 mov r2, r7 bl printk @@ -14101,31 +14012,31 @@ FlashMakeFactorBbt: ldr r0, [sp, #20] mul r3, r3, r0 cmp r7, r3 - blt .L1627 - movw r3, #3068 + blt .L1617 + movw r3, #3064 mov r1, #0 ldrh r2, [r4, r3] - ldr r3, .L1642+4 + ldr r3, .L1632+4 mov r2, r2, asl #9 - ldr r0, [r3, #152] + ldr r0, [r3, #160] bl ftl_memset -.L1627: +.L1617: cmp r5, #0 - bne .L1628 - ldr sl, .L1642+4 + bne .L1618 + ldr sl, .L1632+4 mov r8, r5 mov r7, r5 - ldrh r9, [sl, #160] - b .L1629 -.L1631: + ldrh r9, [sl, #168] + b .L1619 +.L1621: mov r0, r6 bl FlashTestBlk cmp r0, #0 - beq .L1630 + beq .L1620 mov r1, r6 - ldr r0, .L1642+20 + ldr r0, .L1632+20 bl printk - ldr r3, [sl, #152] + ldr r3, [sl, #160] mov r2, r6, lsr #5 mov r0, #1 add r7, r7, r0 @@ -14134,86 +14045,86 @@ FlashMakeFactorBbt: uxth r7, r7 orr r6, r1, r0, asl r6 str r6, [r3, r2, asl #2] -.L1630: +.L1620: add r8, r8, #1 uxth r8, r8 -.L1629: +.L1619: add r6, r8, r9 ldrb r3, [r4, #853] @ zero_extendqisi2 uxth r6, r6 cmp r3, r6 - bhi .L1631 + bhi .L1621 ldr r6, [sp, #24] sub r9, fp, #50 - ldr sl, .L1642+4 + ldr sl, .L1632+4 mov r8, #1 - b .L1632 -.L1634: + b .L1622 +.L1624: mov r0, r6 bl FlashTestBlk cmp r0, #0 - beq .L1633 + beq .L1623 mov r1, r6 - ldr r0, .L1642+20 + ldr r0, .L1632+20 bl printk - ldr r3, [sl, #152] + ldr r3, [sl, #160] mov r2, r6, lsr #5 and r0, r6, #31 ldr r1, [r3, r2, asl #2] orr r1, r1, r8, asl r0 str r1, [r3, r2, asl #2] -.L1633: +.L1623: sub r6, r6, #1 uxth r6, r6 -.L1632: +.L1622: cmp r6, r9 - bgt .L1634 - ldr r3, .L1642+4 + bgt .L1624 + ldr r3, .L1632+4 ldrb r1, [r4, #853] @ zero_extendqisi2 - ldr r2, [r3, #160] + ldr r2, [r3, #168] rsb r2, r2, r1 cmp r7, r2 - bcc .L1628 - movw r2, #3068 - ldr r0, [r3, #152] + bcc .L1618 + movw r2, #3064 + ldr r0, [r3, #160] ldrh r2, [r4, r2] mov r1, #0 mov r2, r2, asl #9 bl ftl_memset -.L1628: +.L1618: mul r8, fp, r5 - ldr r7, .L1642+4 + ldr r7, .L1632+4 ldr r6, [sp, #24] ldr r9, [sp, #28] add sl, r7, r5, asl #1 -.L1635: - ldr r0, .L1642+24 +.L1625: + ldr r0, .L1632+24 mov r1, r5 mov r2, r6 bl printk - ldr r3, [r7, #152] - b .L1636 -.L1637: + ldr r3, [r7, #160] + b .L1626 +.L1627: sub r6, r6, #1 uxth r6, r6 -.L1636: +.L1626: mov r1, r6, lsr #5 and r2, r6, #31 ldr r1, [r3, r1, asl #2] mov r2, r1, lsr r2 ands r2, r2, #1 - bne .L1637 - ldr r3, .L1642+28 + bne .L1627 + ldr r3, .L1632+28 mov r1, #1 - strh r6, [sl, #236] @ movhi + strh r6, [sl, #244] @ movhi add r0, sp, #36 strh r6, [r9, #2] @ movhi strh r3, [r9, #0] @ movhi - ldr r3, [r7, #152] + ldr r3, [r7, #160] strh r2, [r9, #8] @ movhi mov r2, r1 str r3, [sp, #44] - ldr r3, [r7, #232] + ldr r3, [r7, #240] str r3, [sp, #48] add r3, r6, r8 mov r3, r3, asl #10 @@ -14228,26 +14139,26 @@ FlashMakeFactorBbt: cmp r3, #0 subne r6, r6, #1 uxthne r6, r6 - bne .L1635 -.L1617: + bne .L1625 +.L1607: add r5, r5, #1 uxtb r5, r5 -.L1616: +.L1606: ldrb r3, [r4, #3762] @ zero_extendqisi2 cmp r3, r5 - bhi .L1638 + bhi .L1628 add sp, sp, #76 ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L1643: +.L1633: .align 2 -.L1642: +.L1632: .word .LANCHOR0 .word .LANCHOR2 + .word .LC117 .word .LC118 .word .LC119 .word .LC120 .word .LC121 - .word .LC122 .word -3872 .fnend .size FlashMakeFactorBbt, .-FlashMakeFactorBbt @@ -14268,106 +14179,106 @@ ftl_map_blk_gc: ldrh r2, [r4, #8] sub r3, r3, #4 cmp r2, r3 - blt .L1645 + blt .L1635 uxth r0, r0 mov r0, r0, asl #1 ldrh r8, [r5, r0] cmp r8, #0 - beq .L1645 + beq .L1635 ldr r3, [r4, #32] cmp r3, #0 - bne .L1645 + bne .L1635 mov r2, #1 - ldr r1, .L1653 + ldr r1, .L1643 str r2, [r4, #32] strh r3, [r5, r0] @ movhi ldrh r3, [r4, #8] ldrh r2, [r4, #2] sub r3, r3, #1 strh r3, [r4, #8] @ movhi - movw r3, #3918 + mov r3, #3920 ldrh r3, [r1, r3] cmp r2, r3 - bcc .L1646 + bcc .L1636 mov r0, r4 bl ftl_map_blk_alloc_new_blk -.L1646: +.L1636: mov r5, #0 - ldr r6, .L1653+4 - b .L1647 -.L1652: + ldr r6, .L1643+4 + b .L1637 +.L1642: ldr r3, [sl, r5, asl #2] add r9, sl, r5, asl #2 cmp r8, r3, lsr #10 - bne .L1648 - ldr r3, [r6, #-952] + bne .L1638 + ldr r3, [r6, #-944] mov r1, #1 - ldr r7, [r6, #-932] + ldr r7, [r6, #-924] mov r2, r1 - ldr r0, .L1653+8 - str r3, [r6, #192] - str r7, [r6, #196] + ldr r0, .L1643+8 + str r3, [r6, #200] + str r7, [r6, #204] ldr r3, [sl, r5, asl #2] - str r3, [r6, #188] + str r3, [r6, #196] bl FlashReadPages - ldr r3, [r6, #184] + ldr r3, [r6, #192] cmn r3, #1 - beq .L1649 + beq .L1639 ldrh r3, [r7, #8] cmp r3, r5 - bne .L1649 + bne .L1639 ldrh r2, [r7, #0] ldrh r3, [r4, #4] cmp r2, r3 - beq .L1650 -.L1649: + beq .L1640 +.L1639: mov r3, #0 str r3, [r9, #0] - ldr r3, .L1653+4 + ldr r3, .L1643+4 ldrh r2, [r7, #8] - ldr r0, .L1653+12 - ldr r1, [r3, #188] + ldr r0, .L1643+12 + ldr r1, [r3, #196] bl printk - ldr r3, .L1653 + ldr r3, .L1643 mov r2, #1 - str r2, [r3, #4040] - b .L1651 -.L1650: + str r2, [r3, #4044] + b .L1641 +.L1640: mov r0, r4 mov r1, r5 - ldr r2, [r6, #192] + ldr r2, [r6, #200] bl FtlMapWritePage -.L1648: +.L1638: add r5, r5, #1 uxth r5, r5 -.L1647: +.L1637: ldrh r3, [r4, #6] cmp r3, r5 - bhi .L1652 + bhi .L1642 mov r0, r8 mov r1, #1 bl FtlFreeSysBlkQueueIn mov r3, #0 str r3, [r4, #32] -.L1645: - ldr r1, .L1653 - movw r3, #3918 +.L1635: + ldr r1, .L1643 + mov r3, #3920 ldrh r2, [r4, #2] ldrh r3, [r1, r3] cmp r2, r3 - bcc .L1651 + bcc .L1641 mov r0, r4 bl ftl_map_blk_alloc_new_blk -.L1651: +.L1641: mov r0, #0 ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, pc} -.L1654: +.L1644: .align 2 -.L1653: +.L1643: .word .LANCHOR0 .word .LANCHOR2 - .word .LANCHOR2+184 - .word .LC123 + .word .LANCHOR2+192 + .word .LC122 .fnend .size ftl_map_blk_gc, .-ftl_map_blk_gc .align 2 @@ -14377,78 +14288,89 @@ Ftl_write_map_blk_to_last_page: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L1661 - stmfd sp!, {r4, r5, r6, r7, r8, lr} - .save {r4, r5, r6, r7, r8, lr} + stmfd sp!, {r3, r4, r5, r6, r7, r8, sl, lr} + .save {r3, r4, r5, r6, r7, r8, sl, lr} mov r4, r0 - ldr r6, [r3, #4040] + ldr r3, .L1652 ldr r5, [r0, #12] - cmp r6, #0 - ldr r8, [r0, #24] - bne .L1656 + ldr sl, [r0, #24] + ldr r7, [r3, #4044] + cmp r7, #0 + bne .L1646 ldrh r2, [r0, #0] movw r1, #65535 cmp r2, r1 - bne .L1657 + bne .L1647 ldrh r3, [r0, #8] add r3, r3, #1 strh r3, [r0, #8] @ movhi bl FtlFreeSysBlkQueueOut strh r0, [r5, #0] @ movhi ldr r3, [r4, #28] - strh r6, [r4, #2] @ movhi + strh r7, [r4, #2] @ movhi add r3, r3, #1 - strh r6, [r4, #0] @ movhi + strh r7, [r4, #0] @ movhi str r3, [r4, #28] - b .L1656 -.L1657: + b .L1646 +.L1647: mov r2, r2, asl #1 - ldr r1, [r0, #28] - ldrh r7, [r5, r2] - ldr r5, .L1661+4 + mov r1, #255 + ldrh r8, [r5, r2] + ldr r5, .L1652+4 ldrh r2, [r0, #2] - orr r2, r2, r7, asl #10 - str r2, [r5, #188] - ldr r2, [r5, #-956] - str r2, [r5, #192] - ldr r2, [r5, #-932] + orr r2, r2, r8, asl #10 str r2, [r5, #196] - str r1, [r2, #4] - ldr r1, .L1661+8 - strh r1, [r2, #8] @ movhi - ldrh r1, [r0, #4] - strh r7, [r2, #2] @ movhi - strh r1, [r2, #0] @ movhi - movw r2, #3918 + ldr r2, [r5, #-948] + ldr r6, [r5, #-924] + str r2, [r5, #200] + ldr r2, [r0, #28] + str r6, [r5, #204] + str r2, [r6, #4] + ldr r2, .L1652+8 + strh r2, [r6, #8] @ movhi + ldrh r2, [r0, #4] + strh r8, [r6, #2] @ movhi + strh r2, [r6, #0] @ movhi + mov r2, #3920 ldrh r2, [r3, r2] - mov r1, #255 - ldr r0, [r5, #-956] + ldr r0, [r5, #-948] mov r2, r2, asl #3 bl ftl_memset - mov r3, r6 - b .L1658 -.L1660: - ldr r2, [r8, r3, asl #2] - cmp r7, r2, lsr #10 - bne .L1659 - add r6, r6, #1 - ldr r2, [r5, #-956] - uxth r6, r6 - str r3, [r2, r6, asl #3] - ldr r2, [r5, #-956] - ldr r1, [r8, r3, asl #2] - add r2, r2, r6, asl #3 + mov r3, r7 + b .L1648 +.L1650: + ldr r2, [sl, r3, asl #2] + cmp r8, r2, lsr #10 + bne .L1649 + add r7, r7, #1 + ldr r2, [r5, #-948] + uxth r7, r7 + str r3, [r2, r7, asl #3] + ldr r2, [r5, #-948] + ldr r1, [sl, r3, asl #2] + add r2, r2, r7, asl #3 str r1, [r2, #4] -.L1659: +.L1649: add r3, r3, #1 uxth r3, r3 -.L1658: +.L1648: ldrh r2, [r4, #6] cmp r2, r3 - bhi .L1660 + bhi .L1650 + ldr r3, .L1652 + ldrb r2, [r3, #852] @ zero_extendqisi2 + cmp r2, #0 + beq .L1651 + ldr r2, .L1652+4 + ldr r0, [r2, #200] + movw r2, #3928 + ldrh r1, [r3, r2] + bl js_hash + str r0, [r6, #12] +.L1651: mov r1, #1 mov r3, #0 - ldr r0, .L1661+12 + ldr r0, .L1652+12 mov r2, r1 bl FlashProgPages ldrh r3, [r4, #2] @@ -14456,16 +14378,16 @@ Ftl_write_map_blk_to_last_page: add r3, r3, #1 strh r3, [r4, #2] @ movhi bl ftl_map_blk_gc -.L1656: +.L1646: mov r0, #0 - ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L1662: + ldmfd sp!, {r3, r4, r5, r6, r7, r8, sl, pc} +.L1653: .align 2 -.L1661: +.L1652: .word .LANCHOR0 .word .LANCHOR2 .word -1291 - .word .LANCHOR2+184 + .word .LANCHOR2+192 .fnend .size Ftl_write_map_blk_to_last_page, .-Ftl_write_map_blk_to_last_page .align 2 @@ -14478,116 +14400,126 @@ FtlMapWritePage: stmfd sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr} .save {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr} mov r4, r0 - ldr r8, .L1677 + ldr r5, .L1669 mov sl, r1 - ldr r5, .L1677+4 + ldr r6, .L1669+4 mov r9, r2 - mov r6, #0 - mov fp, r8 -.L1676: - ldr r3, [r5, #-1820] + mov r7, #0 +.L1668: + ldr r3, [r5, #-1816] add r3, r3, #1 - str r3, [r5, #-1820] - movw r3, #3918 + str r3, [r5, #-1816] + mov r3, #3920 ldrh r2, [r4, #2] - ldrh r3, [r8, r3] + ldrh r3, [r6, r3] sub r3, r3, #1 cmp r2, r3 - bge .L1665 + bge .L1656 ldrh r2, [r4, #0] movw r3, #65535 cmp r2, r3 - bne .L1666 -.L1665: + bne .L1657 +.L1656: mov r0, r4 bl Ftl_write_map_blk_to_last_page -.L1666: - ldr r1, [fp, #4040] +.L1657: + ldr r3, .L1669+4 + ldr r1, [r3, #4044] cmp r1, #0 - bne .L1667 + bne .L1658 ldrh r3, [r4, #0] ldr r2, [r4, #12] - ldr r0, [r5, #-932] + ldr r0, [r5, #-924] mov r3, r3, asl #1 - ldrh r7, [r2, r3] + ldrh r8, [r2, r3] mov r2, #16 ldrh r3, [r4, #2] - str r9, [r5, #192] - orr r3, r3, r7, asl #10 - str r0, [r5, #196] - str r3, [r5, #188] + str r9, [r5, #200] + orr r3, r3, r8, asl #10 + str r0, [r5, #204] + str r3, [r5, #196] bl ftl_memset - ldr r3, [r5, #196] + ldr r3, [r4, #28] + ldr fp, [r5, #204] + str r3, [fp, #4] + strh sl, [fp, #8] @ movhi + ldrh r3, [r4, #4] + strh r8, [fp, #2] @ movhi + strh r3, [fp, #0] @ movhi + ldrb r3, [r6, #852] @ zero_extendqisi2 + cmp r3, #0 + beq .L1659 + movw r3, #3928 + ldr r0, [r5, #200] + ldrh r1, [r6, r3] + bl js_hash + str r0, [fp, #12] +.L1659: mov r1, #1 - ldr r2, [r4, #28] - ldr r0, .L1677+8 - strh sl, [r3, #8] @ movhi - str r2, [r3, #4] - ldrh r2, [r4, #4] - strh r7, [r3, #2] @ movhi - strh r2, [r3, #0] @ movhi + ldr r0, .L1669+8 mov r2, r1 mov r3, r1 bl FlashProgPages ldrh r2, [r4, #2] + ldr r3, .L1669 add r2, r2, #1 uxth r2, r2 strh r2, [r4, #2] @ movhi - ldr r3, [r5, #184] + ldr r3, [r3, #192] cmn r3, #1 - bne .L1668 - ldr r0, .L1677+12 - add r6, r6, #1 - ldr r1, [r5, #188] + bne .L1660 + ldr r0, .L1669+12 + add r7, r7, #1 + ldr r1, [r5, #196] bl printk ldrh r3, [r4, #2] - uxth r6, r6 + uxth r7, r7 cmp r3, #2 - movwls r3, #3918 - ldrlsh r3, [r8, r3] + movls r3, #3920 + ldrlsh r3, [r6, r3] subls r3, r3, #1 strlsh r3, [r4, #2] @ movhi - cmp r6, #3 - bls .L1676 - ldr r3, .L1677+4 - mov r2, r6 - ldr r0, .L1677+16 - ldr r1, [r3, #188] + cmp r7, #3 + bls .L1668 + ldr r3, .L1669 + mov r2, r7 + ldr r0, .L1669+16 + ldr r1, [r3, #196] bl printk - ldr r3, .L1677 + ldr r3, .L1669+4 mov r2, #1 - str r2, [r3, #4040] - b .L1667 -.L1668: + str r2, [r3, #4044] + b .L1658 +.L1660: cmp r3, #0 - strneh r7, [r4, #40] @ movhi + strneh r8, [r4, #40] @ movhi cmp r2, #1 - beq .L1672 + beq .L1664 cmp r3, #256 - beq .L1672 + beq .L1664 ldr r3, [r4, #36] cmp r3, #0 - beq .L1673 -.L1672: + beq .L1665 +.L1664: mov r3, #0 str r3, [r4, #36] - b .L1676 -.L1673: - ldr r3, .L1677+4 - ldr r2, [r3, #188] + b .L1668 +.L1665: + ldr r3, .L1669 + ldr r2, [r3, #196] ldr r3, [r4, #24] str r2, [r3, sl, asl #2] -.L1667: +.L1658: mov r0, #0 ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L1678: +.L1670: .align 2 -.L1677: - .word .LANCHOR0 +.L1669: .word .LANCHOR2 - .word .LANCHOR2+184 + .word .LANCHOR0 + .word .LANCHOR2+192 + .word .LC123 .word .LC124 - .word .LC125 .fnend .size FtlMapWritePage, .-FtlMapWritePage .align 2 @@ -14600,26 +14532,26 @@ flush_l2p_region: stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} mov r4, #12 - ldr r5, .L1680 + ldr r5, .L1672 mul r4, r4, r0 - ldr r0, .L1680+4 - ldr r2, [r5, #-1852] + ldr r0, .L1672+4 + ldr r2, [r5, #-1848] add r3, r2, r4 ldrh r1, [r2, r4] ldr r2, [r3, #8] bl FtlMapWritePage - ldr r3, [r5, #-1852] + ldr r3, [r5, #-1848] mov r0, #0 add r4, r3, r4 ldr r3, [r4, #4] bic r3, r3, #-2147483648 str r3, [r4, #4] ldmfd sp!, {r3, r4, r5, pc} -.L1681: +.L1673: .align 2 -.L1680: +.L1672: .word .LANCHOR2 - .word .LANCHOR2-1084 + .word .LANCHOR2-1076 .fnend .size flush_l2p_region, .-flush_l2p_region .align 2 @@ -14639,40 +14571,40 @@ FtlMapBlkWriteDumpData: ldmeqfd sp!, {r4, r5, r6, pc} mov r3, #0 str r3, [r0, #36] - ldr r3, .L1686 - ldr r1, [r3, #4040] + ldr r3, .L1678 + ldr r1, [r3, #4044] cmp r1, #0 ldmnefd sp!, {r4, r5, r6, pc} - ldr r5, .L1686+4 + ldr r5, .L1678+4 sub r6, r6, #1 uxth r6, r6 - ldr r0, [r5, #-952] - ldr r1, [r5, #-932] - str r0, [r5, #192] - str r1, [r5, #196] + ldr r0, [r5, #-944] + ldr r1, [r5, #-924] + str r0, [r5, #200] + str r1, [r5, #204] ldr r2, [r2, r6, asl #2] cmp r2, #0 - str r2, [r5, #188] - beq .L1684 + str r2, [r5, #196] + beq .L1676 mov r1, #1 - add r0, r5, #184 + add r0, r5, #192 mov r2, r1 bl FlashReadPages - b .L1685 -.L1684: - movw r2, #3926 + b .L1677 +.L1676: + movw r2, #3928 mov r1, #255 ldrh r2, [r3, r2] bl ftl_memset -.L1685: +.L1677: mov r0, r4 mov r1, r6 - ldr r2, [r5, #192] + ldr r2, [r5, #200] ldmfd sp!, {r4, r5, r6, lr} b FtlMapWritePage -.L1687: +.L1679: .align 2 -.L1686: +.L1678: .word .LANCHOR0 .word .LANCHOR2 .fnend @@ -14684,14 +14616,14 @@ FtlVendorPartRead: .fnstart @ args = 0, pretend = 0, frame = 48 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L1699 + ldr r3, .L1691 stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} .save {r4, r5, r6, r7, r8, r9, sl, fp, lr} mov r9, r2 - movw r2, #3924 + movw r2, #3926 mov r5, r1 ldrh r7, [r3, r2] - movw r2, #3910 + movw r2, #3914 ldrh r2, [r3, r2] add r1, r1, r0 .pad #52 @@ -14699,20 +14631,20 @@ FtlVendorPartRead: mov r8, r0 cmp r1, r2 mvnhi fp, #0 - bhi .L1689 + bhi .L1681 mov r7, r0, lsr r7 mov fp, #0 - ldr r6, .L1699+4 + ldr r6, .L1691+4 mov r2, r7, asl #2 str r2, [sp, #0] - b .L1690 -.L1696: - ldr r3, [r6, #-900] + b .L1682 +.L1688: + ldr r3, [r6, #-892] mov r0, r8 ldr r2, [sp, #0] ldr sl, [r3, r2] - movw r3, #3922 - ldr r2, .L1699 + movw r3, #3924 + ldr r2, .L1691 ldrh r4, [r2, r3] mov r1, r4 bl __aeabi_uidivmod @@ -14723,12 +14655,12 @@ FtlVendorPartRead: cmp r4, r5 uxthhi r4, r5 cmp sl, #0 - beq .L1692 - ldr r2, .L1699+4 + beq .L1684 + ldr r2, .L1691+4 mov r1, #1 add r0, sp, #12 str sl, [sp, #16] - ldr r3, [r2, #-948] + ldr r3, [r2, #-940] mov r2, r1 str r3, [sp, #20] mov r3, #0 @@ -14737,31 +14669,31 @@ FtlVendorPartRead: ldr r3, [sp, #12] cmn r3, #1 moveq fp, r3 - ldr r3, [r6, #184] + ldr r3, [r6, #192] cmp r3, #256 - bne .L1694 + bne .L1686 mov r1, r7 mov r2, sl - ldr r0, .L1699+8 + ldr r0, .L1691+8 bl printk - ldr r0, .L1699+12 + ldr r0, .L1691+12 mov r1, r7 - ldr r2, [r6, #-948] + ldr r2, [r6, #-940] bl FtlMapWritePage -.L1694: +.L1686: ldr r3, [sp, #4] mov r0, r9 - ldr r1, [r6, #-948] + ldr r1, [r6, #-940] mov r2, r4, asl #9 add r1, r1, r3, asl #9 bl memcpy - b .L1695 -.L1692: + b .L1687 +.L1684: mov r0, r9 mov r1, sl mov r2, r4, asl #9 bl ftl_memset -.L1695: +.L1687: ldr r3, [sp, #0] add r7, r7, #1 rsb r5, r4, r5 @@ -14769,20 +14701,20 @@ FtlVendorPartRead: add r9, r9, r4, asl #9 add r3, r3, #4 str r3, [sp, #0] -.L1690: +.L1682: cmp r5, #0 - bne .L1696 -.L1689: + bne .L1688 +.L1681: mov r0, fp add sp, sp, #52 ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L1700: +.L1692: .align 2 -.L1699: +.L1691: .word .LANCHOR0 .word .LANCHOR2 - .word .LC126 - .word .LANCHOR2+252 + .word .LC125 + .word .LANCHOR2+260 .fnend .size FtlVendorPartRead, .-FtlVendorPartRead .align 2 @@ -14795,86 +14727,86 @@ Ftl_load_ext_data: stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} mov r0, #0 - ldr r5, .L1705 + ldr r5, .L1697 mov r1, #1 - ldr r2, .L1705+4 + ldr r2, .L1697+4 bl FtlVendorPartRead - ldr r4, .L1705+8 - ldr r3, [r5, #-1708] + ldr r4, .L1697+8 + ldr r3, [r5, #-1700] cmp r3, r4 - beq .L1702 - ldr r0, .L1705+4 + beq .L1694 + ldr r0, .L1697+4 mov r1, #0 mov r2, #512 bl ftl_memset - str r4, [r5, #-1708] -.L1702: - ldr r2, [r5, #-1708] - ldr r3, .L1705 + str r4, [r5, #-1700] +.L1694: + ldr r2, [r5, #-1700] + ldr r3, .L1697 cmp r2, r4 - bne .L1703 - ldr r2, [r3, #-1620] - ldr r1, [r3, #-1676] - str r2, [r3, #-1812] - ldr r2, [r3, #-1616] + bne .L1695 + ldr r2, [r3, #-1612] + ldr r1, [r3, #-1668] str r2, [r3, #-1808] - ldr r2, [r3, #-1700] - str r2, [r3, #-1816] - ldr r2, [r3, #-1696] - str r2, [r3, #-1828] + ldr r2, [r3, #-1608] + str r2, [r3, #-1804] ldr r2, [r3, #-1692] - str r2, [r3, #-1836] + str r2, [r3, #-1812] ldr r2, [r3, #-1688] - str r2, [r3, #-1820] + str r2, [r3, #-1824] + ldr r2, [r3, #-1684] + str r2, [r3, #-1832] ldr r2, [r3, #-1680] - str r2, [r3, #-1792] - ldr r2, .L1705+12 - str r1, [r2, #4052] + str r2, [r3, #-1816] ldr r2, [r3, #-1672] - str r2, [r3, #-1832] - ldr r2, [r3, #-1668] - str r2, [r3, #-1824] + str r2, [r3, #-1788] + ldr r2, .L1697+12 + str r1, [r2, #4056] ldr r2, [r3, #-1664] - str r2, [r3, #-1784] + str r2, [r3, #-1828] ldr r2, [r3, #-1660] + str r2, [r3, #-1820] + ldr r2, [r3, #-1656] str r2, [r3, #-1780] - ldr r2, [r3, #-1648] - str r2, [r3, #-1712] -.L1703: - ldr r4, .L1705 + ldr r2, [r3, #-1652] + str r2, [r3, #-1776] + ldr r2, [r3, #-1640] + str r2, [r3, #-1704] +.L1695: + ldr r4, .L1697 mov r3, #0 - ldr r5, .L1705+12 - str r3, [r4, #-996] - ldr r2, [r4, #-1640] - ldr r3, .L1705+16 + ldr r5, .L1697+12 + str r3, [r4, #-988] + ldr r2, [r4, #-1632] + ldr r3, .L1697+16 cmp r2, r3 - bne .L1704 + bne .L1696 mov r3, #1 - ldr r0, .L1705+20 - str r3, [r5, #3840] - ldr r1, .L1705+24 + ldr r0, .L1697+20 + str r3, [r5, #3844] + ldr r1, .L1697+24 bl printk -.L1704: - movw r3, #3906 - ldr r0, [r4, #-1796] +.L1696: + movw r3, #3910 + ldr r0, [r4, #-1792] ldrh r2, [r5, r3] - ldr r3, [r4, #-1792] + ldr r3, [r4, #-1788] mla r0, r0, r2, r3 - mov r3, #3856 + movw r3, #3860 ldrh r1, [r5, r3] bl __aeabi_uidiv - str r0, [r4, #-1788] + str r0, [r4, #-1784] ldmfd sp!, {r3, r4, r5, pc} -.L1706: +.L1698: .align 2 -.L1705: +.L1697: .word .LANCHOR2 - .word .LANCHOR2-1708 + .word .LANCHOR2-1700 .word 1179929683 .word .LANCHOR0 .word 305432421 .word .LC77 - .word .LC127 + .word .LC126 .fnend .size Ftl_load_ext_data, .-Ftl_load_ext_data .align 2 @@ -14887,34 +14819,34 @@ FtlLoadEctTbl: stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} mov r0, #64 - ldr r4, .L1709 - ldr r5, .L1709+4 - ldr r2, [r4, #-916] + ldr r4, .L1701 + ldr r5, .L1701+4 + ldr r2, [r4, #-908] ldrh r1, [r4, r5] bl FtlVendorPartRead - ldr r3, [r4, #-916] + ldr r3, [r4, #-908] ldr r2, [r3, #0] - ldr r3, .L1709+8 + ldr r3, .L1701+8 cmp r2, r3 - beq .L1708 - ldr r1, .L1709+12 - ldr r0, .L1709+16 + beq .L1700 + ldr r1, .L1701+12 + ldr r0, .L1701+16 bl printk ldrh r2, [r4, r5] - ldr r0, [r4, #-916] + ldr r0, [r4, #-908] mov r1, #0 mov r2, r2, asl #9 bl ftl_memset -.L1708: +.L1700: mov r0, #0 ldmfd sp!, {r3, r4, r5, pc} -.L1710: +.L1702: .align 2 -.L1709: +.L1701: .word .LANCHOR2 - .word -920 + .word -912 .word 1112818501 - .word .LC128 + .word .LC127 .word .LC77 .fnend .size FtlLoadEctTbl, .-FtlLoadEctTbl @@ -14925,14 +14857,14 @@ FtlVendorPartWrite: .fnstart @ args = 0, pretend = 0, frame = 56 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L1721 + ldr r3, .L1713 stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} .save {r4, r5, r6, r7, r8, r9, sl, fp, lr} mov r9, r2 - movw r2, #3924 + movw r2, #3926 mov r4, r1 ldrh r8, [r3, r2] - movw r2, #3910 + movw r2, #3914 ldrh r2, [r3, r2] add r1, r1, r0 .pad #60 @@ -14940,26 +14872,26 @@ FtlVendorPartWrite: mov r6, r0 cmp r1, r2 mvnhi r7, #0 - bhi .L1712 + bhi .L1704 mov r8, r0, lsr r8 mov r7, #0 - ldr sl, .L1721+4 + ldr sl, .L1713+4 mov ip, r8, asl #2 str ip, [sp, #8] - b .L1713 -.L1718: - ldr r1, .L1721 - movw r2, #3922 + b .L1705 +.L1710: + ldr r1, .L1713 + movw r2, #3924 ldr ip, [sp, #8] mov r0, r6 - ldr r3, [sl, #-900] + ldr r3, [sl, #-892] ldrh fp, [r1, r2] ldr r3, [r3, ip] mov r1, fp str r3, [sp, #4] bl __aeabi_uidivmod ldr r3, [sp, #4] - ldr r2, .L1721+4 + ldr r2, .L1713+4 uxth r1, r1 str r1, [sp, #12] rsb r5, r1, fp @@ -14967,30 +14899,30 @@ FtlVendorPartWrite: cmp r5, r4 uxthhi r5, r4 cmp r3, #0 - beq .L1715 + beq .L1707 cmp r5, fp - beq .L1715 + beq .L1707 str r3, [sp, #24] mov r1, #1 - ldr r3, [r2, #-948] + ldr r3, [r2, #-940] add r0, sp, #20 mov r2, r1 str r3, [sp, #28] mov r3, #0 str r3, [sp, #32] bl FlashReadPages - b .L1716 -.L1715: - ldr ip, .L1721 - movw r3, #3926 - ldr r0, [r2, #-948] + b .L1708 +.L1707: + ldr ip, .L1713 + movw r3, #3928 + ldr r0, [r2, #-940] mov r1, #0 ldrh r2, [ip, r3] bl ftl_memset -.L1716: +.L1708: ldr r3, [sp, #12] mov fp, r5, asl #9 - ldr r0, [sl, #-948] + ldr r0, [sl, #-940] mov r1, r9 mov r2, fp rsb r4, r5, r4 @@ -14998,9 +14930,9 @@ FtlVendorPartWrite: add r6, r6, r5 bl memcpy mov r1, r8 - ldr r0, .L1721+8 + ldr r0, .L1713+8 add r8, r8, #1 - ldr r2, [sl, #-948] + ldr r2, [sl, #-940] add r9, r9, fp bl FtlMapWritePage ldr ip, [sp, #8] @@ -15008,19 +14940,19 @@ FtlVendorPartWrite: str ip, [sp, #8] cmn r0, #1 moveq r7, r0 -.L1713: +.L1705: cmp r4, #0 - bne .L1718 -.L1712: + bne .L1710 +.L1704: mov r0, r7 add sp, sp, #60 ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L1722: +.L1714: .align 2 -.L1721: +.L1713: .word .LANCHOR0 .word .LANCHOR2 - .word .LANCHOR2+252 + .word .LANCHOR2+260 .fnend .size FtlVendorPartWrite, .-FtlVendorPartWrite .align 2 @@ -15031,54 +14963,54 @@ Ftl_save_ext_data: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L1725 - ldr r2, .L1725+4 - ldr r1, [r3, #-1708] + ldr r3, .L1717 + ldr r2, .L1717+4 + ldr r1, [r3, #-1700] cmp r1, r2 bxne lr - ldr r2, .L1725+8 + ldr r2, .L1717+8 mov r0, #0 mov r1, #1 - str r2, [r3, #-1704] - ldr r2, [r3, #-1812] - str r2, [r3, #-1620] - ldr r2, [r3, #-1808] - str r2, [r3, #-1616] - ldr r2, [r3, #-1816] - str r2, [r3, #-1700] - ldr r2, [r3, #-1828] str r2, [r3, #-1696] - ldr r2, [r3, #-1836] + ldr r2, [r3, #-1808] + str r2, [r3, #-1612] + ldr r2, [r3, #-1804] + str r2, [r3, #-1608] + ldr r2, [r3, #-1812] str r2, [r3, #-1692] - ldr r2, [r3, #-1820] + ldr r2, [r3, #-1824] str r2, [r3, #-1688] - ldr r2, [r3, #-1792] - str r2, [r3, #-1680] - ldr r2, .L1725+12 - ldr r2, [r2, #4052] - str r2, [r3, #-1676] ldr r2, [r3, #-1832] + str r2, [r3, #-1684] + ldr r2, [r3, #-1816] + str r2, [r3, #-1680] + ldr r2, [r3, #-1788] str r2, [r3, #-1672] - ldr r2, [r3, #-1824] + ldr r2, .L1717+12 + ldr r2, [r2, #4056] str r2, [r3, #-1668] - ldr r2, [r3, #-1784] + ldr r2, [r3, #-1828] str r2, [r3, #-1664] - ldr r2, [r3, #-1780] + ldr r2, [r3, #-1820] str r2, [r3, #-1660] - ldr r2, [r3, #-1712] - str r2, [r3, #-1648] - ldr r2, [r3, #-996] - str r2, [r3, #-1644] - ldr r2, .L1725+16 + ldr r2, [r3, #-1780] + str r2, [r3, #-1656] + ldr r2, [r3, #-1776] + str r2, [r3, #-1652] + ldr r2, [r3, #-1704] + str r2, [r3, #-1640] + ldr r2, [r3, #-988] + str r2, [r3, #-1636] + ldr r2, .L1717+16 b FtlVendorPartWrite -.L1726: +.L1718: .align 2 -.L1725: +.L1717: .word .LANCHOR2 .word 1179929683 - .word 1342177360 + .word 1342177363 .word .LANCHOR0 - .word .LANCHOR2-1708 + .word .LANCHOR2-1700 .fnend .size Ftl_save_ext_data, .-Ftl_save_ext_data .align 2 @@ -15090,42 +15022,42 @@ FtlEctTblFlush: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, lr} .save {r3, lr} - ldr r3, .L1734 - ldr r1, .L1734+4 - ldr r3, [r3, #3840] + ldr r3, .L1726 + ldr r1, .L1726+4 + ldr r3, [r3, #3844] cmp r3, #0 moveq r2, #32 - beq .L1728 - ldr r2, [r1, #-1780] + beq .L1720 + ldr r2, [r1, #-1776] cmp r2, #39 movls r2, #4 movhi r2, #32 -.L1728: - mov r3, #296 +.L1720: + mov r3, #304 ldrh r1, [r1, r3] cmp r1, #31 addls r1, r1, #1 - ldrls r2, .L1734+4 + ldrls r2, .L1726+4 strlsh r1, [r2, r3] @ movhi movls r2, #1 cmp r0, #0 - ldr r3, .L1734+4 - bne .L1730 - ldr r1, [r3, #-916] + ldr r3, .L1726+4 + bne .L1722 + ldr r1, [r3, #-908] ldr r0, [r1, #20] ldr r1, [r1, #16] add r2, r2, r0 cmp r1, r2 - bcc .L1731 -.L1730: - ldr r2, [r3, #-916] + bcc .L1723 +.L1722: + ldr r2, [r3, #-908] mov r0, #64 ldr r1, [r2, #16] str r1, [r2, #20] - ldr r1, .L1734+8 + ldr r1, .L1726+8 str r1, [r2, #0] - ldr r1, .L1734+12 - ldr r2, [r3, #-916] + ldr r1, .L1726+12 + ldr r2, [r3, #-908] ldrh r1, [r3, r1] mov r3, r1, asl #9 str r3, [r2, #12] @@ -15136,16 +15068,16 @@ FtlEctTblFlush: str r3, [r2, #4] bl FtlVendorPartWrite bl Ftl_save_ext_data -.L1731: +.L1723: mov r0, #0 ldmfd sp!, {r3, pc} -.L1735: +.L1727: .align 2 -.L1734: +.L1726: .word .LANCHOR0 .word .LANCHOR2 .word 1112818501 - .word -920 + .word -912 .fnend .size FtlEctTblFlush, .-FtlEctTblFlush .align 2 @@ -15159,195 +15091,230 @@ FtlMapTblRecovery: .save {r4, r5, r6, r7, r8, r9, sl, fp, lr} .pad #28 sub sp, sp, #28 - ldr r3, [r0, #16] + ldr r3, [r0, #12] mov r4, r0 - ldr r7, [r0, #24] + ldrh sl, [r0, #6] mov r1, #0 - ldrh r8, [r0, #6] - mov fp, #0 + ldr r9, [r0, #24] + str r3, [sp, #4] + ldr r3, [r0, #16] + mov r2, sl, asl #2 + ldr r7, .L1750 str r3, [sp, #16] ldrh r3, [r0, #8] - mov sl, r7 - ldr r9, [r0, #12] - mov r2, r8, asl #2 - mov r0, r7 + mov r0, r9 str r3, [sp, #8] bl ftl_memset - ldr r3, .L1756 - str fp, [r4, #32] - str fp, [r4, #28] - ldr r2, [r3, #-956] - ldr r5, [r3, #-932] - str r2, [r3, #192] - str r5, [r3, #196] + ldr r3, .L1750+4 + ldr r2, [r3, #-948] + ldr r5, [r3, #-924] + str r2, [r3, #200] + mov r2, #1 + str r5, [r3, #204] mvn r3, #0 strh r3, [r4, #0] @ movhi strh r3, [r4, #2] @ movhi - mov r3, #1 - str r3, [r4, #36] + mov r3, #0 + str r3, [r4, #32] + str r3, [r4, #28] + str r3, [sp, #0] ldr r3, [sp, #8] + str r2, [r4, #36] sub r3, r3, #1 str r3, [sp, #12] - ldr r3, .L1756+4 - b .L1737 -.L1750: - ldr r0, [sp, #12] - cmp r2, r0 - mov r2, r2, asl #1 - bne .L1738 - ldrh r0, [r9, r2] + b .L1729 +.L1744: + ldr r1, [sp, #12] + cmp r3, r1 + mov r3, r3, asl #1 + bne .L1730 + ldr r1, [sp, #4] + mov r7, #0 + ldr r2, [sp, #4] + ldr r6, .L1750+4 + ldrh r0, [r1, r3] mov r1, #1 - add r3, r9, r2 - str r3, [sp, #8] + add r2, r2, r3 + str r2, [sp, #8] bl FtlGetLastWrittenPage ldr r1, [sp, #12] ldr r2, [sp, #16] - mov r7, sl - strh fp, [r4, #0] @ movhi - mov sl, #0 - ldr r6, .L1756 uxth r0, r0 add r3, r0, #1 strh r3, [r4, #2] @ movhi + ldr r3, [sp, #0] + sxth r8, r0 + add r8, r8, #1 + strh r3, [r4, #0] @ movhi ldr r3, [r2, r1, asl #2] - sxth r9, r0 - add r9, r9, #1 str r3, [r4, #28] - b .L1739 -.L1741: - ldr r0, [sp, #8] + b .L1731 +.L1734: + ldr r1, [sp, #8] + ldr r0, .L1750+8 + ldrh r2, [r1, #0] mov r1, #1 - ldrh r2, [r0, #0] - ldr r0, .L1756+8 orr r3, r3, r2, asl #10 mov r2, r1 - str r3, [r6, #188] + str r3, [r6, #196] bl FlashReadPages - ldr r3, [r6, #184] + ldr r3, .L1750 + ldrb r2, [r3, #852] @ zero_extendqisi2 + cmp r2, #0 + beq .L1732 + ldr r2, [r6, #204] + ldr fp, [r2, #12] + cmp fp, #0 + beq .L1732 + movw r2, #3928 + ldr r0, [r6, #200] + ldrh r1, [r3, r2] + bl js_hash + cmp fp, r0 + mvnne r3, #0 + strne r3, [r6, #192] +.L1732: + ldr r3, [r6, #192] cmn r3, #1 - beq .L1740 + beq .L1733 ldrh r3, [r5, #8] - cmp r3, r8 - bcs .L1740 + cmp r3, sl + bcs .L1733 ldrh r2, [r4, #4] ldrh r1, [r5, #0] cmp r1, r2 - ldreq r2, [r6, #188] - streq r2, [r7, r3, asl #2] -.L1740: - add sl, sl, #1 - uxth sl, sl -.L1739: - sxth r3, sl - cmp r3, r9 - blt .L1741 - b .L1742 -.L1738: - ldr r6, .L1756 - movw r7, #3918 - add r0, r6, #184 - ldr r1, [r6, #-956] - str r1, [r6, #192] - add r1, r9, r2 - str r1, [sp, #20] - ldrh r1, [r9, r2] - ldrh r2, [r3, r7] - sub r2, r2, #1 - orr r2, r2, r1, asl #10 - mov r1, #1 - str r2, [r6, #188] - mov r2, r1 - str r3, [sp, #4] - bl FlashReadPages - ldr r2, [r6, #184] - ldr r3, [sp, #4] - cmn r2, #1 - beq .L1753 - ldrh r1, [r5, #0] - ldrh r2, [r4, #4] - cmp r1, r2 - bne .L1753 - ldrh r1, [r5, #8] - movw r2, #64245 - cmp r1, r2 - bne .L1753 - b .L1754 -.L1746: - ldr r0, [r6, #-956] - mov ip, r1, asl #3 - add r2, r2, #1 - ldr r1, [r0, r1, asl #3] - uxth r2, r2 - uxth r1, r1 - cmp r1, r8 - addcc r0, r0, ip - ldrcc r0, [r0, #4] - strcc r0, [sl, r1, asl #2] - b .L1744 -.L1754: - mov r2, #0 -.L1744: - ldrh r0, [r3, r7] - sxth r1, r2 - sub r0, r0, #1 - cmp r1, r0 - blt .L1746 - b .L1747 -.L1749: - ldr r0, [sp, #20] - ldrh r1, [r0, #0] - ldr r0, .L1756+8 - orr r2, r2, r1, asl #10 + ldreq r2, [r6, #196] + streq r2, [r9, r3, asl #2] +.L1733: + add r7, r7, #1 + uxth r7, r7 +.L1731: + sxth r3, r7 + cmp r3, r8 + blt .L1734 + b .L1735 +.L1730: + ldr r6, .L1750+4 + mov r8, #3920 + ldr r1, [sp, #4] + add r0, r6, #192 + ldr r2, [r6, #-948] + str r2, [r6, #200] + ldr r2, [sp, #4] + add r2, r2, r3 + str r2, [sp, #20] + ldrh r2, [r1, r3] mov r1, #1 - str r2, [r7, #188] + ldrh r3, [r7, r8] + sub r3, r3, #1 + orr r3, r3, r2, asl #10 mov r2, r1 - str r3, [sp, #4] + str r3, [r6, #196] bl FlashReadPages - ldr r2, [r7, #184] - ldr r3, [sp, #4] - cmn r2, #1 - beq .L1748 + ldr r3, [r6, #192] + cmn r3, #1 + beq .L1747 + ldrh r2, [r5, #0] + ldrh r3, [r4, #4] + cmp r2, r3 + bne .L1747 ldrh r2, [r5, #8] - cmp r2, r8 - bcs .L1748 - ldrh r1, [r4, #4] - ldrh r0, [r5, #0] - cmp r0, r1 - ldreq r1, [r7, #188] - streq r1, [sl, r2, asl #2] + movw r3, #64245 + cmp r2, r3 + bne .L1747 + b .L1748 +.L1739: + ldr r1, [r6, #-948] + mov r0, r2, asl #3 + add r3, r3, #1 + ldr r2, [r1, r2, asl #3] + uxth r3, r3 + uxth r2, r2 + cmp r2, sl + addcc r1, r1, r0 + ldrcc r1, [r1, #4] + strcc r1, [r9, r2, asl #2] + b .L1737 .L1748: - add r6, r6, #1 - uxth r6, r6 - b .L1755 -.L1753: - ldr r7, .L1756 - mov r6, #0 -.L1755: - movw r1, #3918 - sxth r2, r6 - ldrh r1, [r3, r1] - cmp r2, r1 - blt .L1749 -.L1747: - add fp, fp, #1 - uxth fp, fp + mov r3, #0 .L1737: - ldr r1, [sp, #8] - sxth r2, fp + ldrh r1, [r7, r8] + sxth r2, r3 + sub r1, r1, #1 cmp r2, r1 - blt .L1750 + blt .L1739 + b .L1740 +.L1743: + ldr r1, [sp, #20] + ldr r0, .L1750+8 + ldrh r2, [r1, #0] + mov r1, #1 + orr r3, r3, r2, asl #10 + mov r2, r1 + str r3, [r6, #196] + bl FlashReadPages + ldrb r3, [r7, #852] @ zero_extendqisi2 + cmp r3, #0 + beq .L1741 + ldr r3, [r6, #204] + ldr fp, [r3, #12] + cmp fp, #0 + beq .L1741 + movw r3, #3928 + ldr r0, [r6, #200] + ldrh r1, [r7, r3] + bl js_hash + cmp fp, r0 + mvnne r3, #0 + strne r3, [r6, #192] +.L1741: + ldr r3, [r6, #192] + cmn r3, #1 + beq .L1742 + ldrh r3, [r5, #8] + cmp r3, sl + bcs .L1742 + ldrh r2, [r4, #4] + ldrh r1, [r5, #0] + cmp r1, r2 + ldreq r2, [r6, #196] + streq r2, [r9, r3, asl #2] .L1742: + add r8, r8, #1 + uxth r8, r8 + b .L1749 +.L1747: + ldr r6, .L1750+4 + mov r8, #0 +.L1749: + mov r2, #3920 + sxth r3, r8 + ldrh r2, [r7, r2] + cmp r3, r2 + blt .L1743 +.L1740: + ldr r2, [sp, #0] + add r3, r2, #1 + uxth r3, r3 + str r3, [sp, #0] +.L1729: + ldr r1, [sp, #0] + ldr r2, [sp, #8] + sxth r3, r1 + cmp r3, r2 + blt .L1744 +.L1735: mov r0, r4 bl ftl_free_no_use_map_blk - ldr r1, .L1756+4 - movw r3, #3918 + ldr r1, .L1750 + mov r3, #3920 ldrh r2, [r4, #2] ldrh r3, [r1, r3] cmp r2, r3 - bne .L1751 + bne .L1745 mov r0, r4 bl ftl_map_blk_alloc_new_blk -.L1751: +.L1745: mov r0, r4 bl ftl_map_blk_gc mov r0, r4 @@ -15355,12 +15322,12 @@ FtlMapTblRecovery: mov r0, #0 add sp, sp, #28 ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L1757: +.L1751: .align 2 -.L1756: - .word .LANCHOR2 +.L1750: .word .LANCHOR0 - .word .LANCHOR2+184 + .word .LANCHOR2 + .word .LANCHOR2+192 .fnend .size FtlMapTblRecovery, .-FtlMapTblRecovery .align 2 @@ -15373,14 +15340,14 @@ FtlLoadMapInfo: stmfd sp!, {r3, lr} .save {r3, lr} bl FtlL2PDataInit - ldr r0, .L1759 + ldr r0, .L1753 bl FtlMapTblRecovery mov r0, #0 ldmfd sp!, {r3, pc} -.L1760: +.L1754: .align 2 -.L1759: - .word .LANCHOR2-1084 +.L1753: + .word .LANCHOR2-1076 .fnend .size FtlLoadMapInfo, .-FtlLoadMapInfo .align 2 @@ -15392,38 +15359,38 @@ FtlLoadVonderInfo: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, lr} .save {r3, lr} - mov r2, #3936 - ldr r3, .L1762 - ldr r0, .L1762+4 + movw r2, #3940 + ldr r3, .L1756 + ldr r0, .L1756+4 ldrh r1, [r3, r2] - movw r2, #262 + movw r2, #270 strh r1, [r0, r2] @ movhi - mov r2, #256 - ldr r1, .L1762+8 + mov r2, #264 + ldr r1, .L1756+8 strh r1, [r0, r2] @ movhi - movw r2, #3962 + movw r2, #3966 ldrh r1, [r3, r2] - mov r2, #260 + mov r2, #268 strh r1, [r0, r2] @ movhi - movw r2, #3938 + movw r2, #3942 ldrh r1, [r3, r2] - sub r2, r2, #3680 - ldr r3, [r3, #3964] + movw r2, #266 + ldr r3, [r3, #3968] strh r1, [r0, r2] @ movhi - str r3, [r0, #264] - ldr r3, [r0, #-904] - str r3, [r0, #268] - ldr r3, [r0, #-908] str r3, [r0, #272] - ldr r3, [r0, #-900] + ldr r3, [r0, #-896] str r3, [r0, #276] - add r0, r0, #252 + ldr r3, [r0, #-900] + str r3, [r0, #280] + ldr r3, [r0, #-892] + str r3, [r0, #284] + add r0, r0, #260 bl FtlMapTblRecovery mov r0, #0 ldmfd sp!, {r3, pc} -.L1763: +.L1757: .align 2 -.L1762: +.L1756: .word .LANCHOR0 .word .LANCHOR2 .word -3962 @@ -15438,22 +15405,22 @@ FlashLoadFactorBbt: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} .save {r4, r5, r6, r7, r8, r9, sl, fp, lr} - movw r2, #3062 - ldr r9, .L1773 - movw r3, #3060 - ldr r4, .L1773+4 + movw r2, #3058 + ldr r9, .L1767 + mov r3, #3056 + ldr r4, .L1767+4 .pad #52 sub sp, sp, #52 mov r1, #0 mvn r7, #0 ldrh r3, [r9, r3] - add r0, r4, #236 + add r0, r4, #244 ldrh r8, [r9, r2] mov r2, #16 mov r6, #0 mul r8, r8, r3 bl ftl_memset - ldr r3, [r4, #232] + ldr r3, [r4, #240] str r6, [sp, #20] mov r4, r6 str r3, [sp, #24] @@ -15461,14 +15428,14 @@ FlashLoadFactorBbt: add r3, r8, r7 uxth r3, r3 str r3, [sp, #4] - b .L1765 -.L1771: + b .L1759 +.L1765: ldr r5, [sp, #4] sub r3, r8, #12 mul fp, r8, r4 - ldr sl, .L1773+4 - b .L1766 -.L1769: + ldr sl, .L1767+4 + b .L1760 +.L1763: add r2, fp, r5 mov r1, #1 add r0, sp, #12 @@ -15480,47 +15447,47 @@ FlashLoadFactorBbt: ldr r2, [sp, #12] ldr r3, [sp, #0] cmn r2, #1 - beq .L1767 - ldr r2, [sl, #232] + beq .L1761 + ldr r2, [sl, #240] ldrh r1, [r2, #0] movw r2, #61664 cmp r1, r2 - bne .L1767 - ldr r0, .L1773+8 + bne .L1761 + ldr r0, .L1767+8 mov r1, r4 mov r2, r5 add r6, r6, #1 bl printk - ldr r3, .L1773+4 + ldr r3, .L1767+4 uxth r6, r6 add r3, r3, r4, asl #1 - strh r5, [r3, #236] @ movhi - b .L1768 -.L1767: + strh r5, [r3, #244] @ movhi + b .L1762 +.L1761: sub r5, r5, #1 uxth r5, r5 -.L1766: +.L1760: cmp r5, r3 - bgt .L1769 -.L1768: + bgt .L1763 +.L1762: ldrb r3, [r9, #3762] @ zero_extendqisi2 add r4, r4, #1 cmp r3, r6 uxtb r4, r4 moveq r7, #0 -.L1765: +.L1759: ldrb r3, [r9, #3762] @ zero_extendqisi2 cmp r3, r4 - bhi .L1771 + bhi .L1765 mov r0, r7 add sp, sp, #52 ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L1774: +.L1768: .align 2 -.L1773: +.L1767: .word .LANCHOR0 .word .LANCHOR2 - .word .LC129 + .word .LC128 .fnend .size FlashLoadFactorBbt, .-FlashLoadFactorBbt .align 2 @@ -15532,27 +15499,27 @@ dump_map_info: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} .save {r4, r5, r6, r7, r8, r9, sl, fp, lr} - mov r3, #3856 - ldr r5, .L1788 + movw r3, #3860 + ldr r5, .L1782 .pad #36 sub sp, sp, #36 ldrh r6, [r5, r3] - b .L1776 -.L1778: + b .L1770 +.L1772: add r3, r5, r7 mov r1, r6 - ldrb r0, [r3, #3874] @ zero_extendqisi2 + ldrb r0, [r3, #3878] @ zero_extendqisi2 bl V2P_block str r0, [sp, #28] bl FtlBbmIsBadBlock ldr r3, [sp, #28] cmp r0, #0 - bne .L1777 - ldr r2, [r8, #-968] + bne .L1771 + ldr r2, [r8, #-960] mov r3, r3, asl #10 mla r2, r9, r4, r2 str r3, [r2, #4] - ldr r3, [r8, #-1172] + ldr r3, [r8, #-1164] str r3, [r2, #8] ldrh r3, [r5, sl] mul r3, r3, r4 @@ -15561,36 +15528,36 @@ dump_map_info: add r1, r3, #3 cmp r3, #0 movlt r3, r1 - ldr r1, [r8, #-1168] + ldr r1, [r8, #-1160] bic r3, r3, #3 add r3, r1, r3 str r3, [r2, #12] -.L1777: +.L1771: add r7, r7, #1 uxth r7, r7 - b .L1781 -.L1786: - ldr r8, .L1788+4 + b .L1775 +.L1780: + ldr r8, .L1782+4 mov r4, #0 mov r7, r4 - movw fp, #3848 + movw fp, #3852 mov r9, #36 - movw sl, #3928 -.L1781: + movw sl, #3930 +.L1775: ldrh r3, [r5, fp] cmp r3, r7 - bhi .L1778 + bhi .L1772 cmp r4, #0 - beq .L1779 - ldr sl, .L1788+4 + beq .L1773 + ldr sl, .L1782+4 mov r1, r4 mov r2, #1 mov r7, #0 mov r8, r7 - ldr r0, [sl, #-968] + ldr r0, [sl, #-960] bl FlashReadPages -.L1780: - ldr r1, [sl, #-968] +.L1774: + ldr r1, [sl, #-960] add r8, r8, #1 add r1, r1, r7 uxth r8, r8 @@ -15607,39 +15574,39 @@ dump_map_info: ldr r0, [r1, #0] str r0, [sp, #12] ldr r1, [r1, #4] - ldr r0, .L1788+8 + ldr r0, .L1782+8 str r1, [sp, #16] ubfx r1, r2, #10, #16 ldr r3, [r3, #0] bl printk cmp r8, r4 - bne .L1780 -.L1779: + bne .L1774 +.L1773: add r6, r6, #1 uxth r6, r6 -.L1776: - movw r2, #3858 +.L1770: + movw r2, #3862 ldrh r3, [r5, r2] cmp r3, r6 - bhi .L1786 + bhi .L1780 mov r5, #0 - ldr r4, .L1788+4 - ldr r8, .L1788 - b .L1782 -.L1783: - ldr r2, [r4, #-1036] + ldr r4, .L1782+4 + ldr sl, .L1782+12 + b .L1776 +.L1777: + ldr r2, [r4, #-1028] mov r1, #1 - ldr r0, .L1788+12 + ldr r0, .L1782+16 add r6, r6, #1 ldrh r2, [r2, r7] uxth r6, r6 orr r3, r3, r2, asl #10 mov r2, r1 - str r3, [r4, #188] + str r3, [r4, #196] bl FlashReadPages - ldr r3, [r4, #196] - ldr r1, [r4, #-1036] - ldr r2, [r4, #192] + ldr r3, [r4, #204] + ldr r1, [r4, #-1028] + ldr r2, [r4, #200] ldr r0, [r3, #0] ldrh r1, [r1, r7] str r0, [sp, #0] @@ -15648,64 +15615,64 @@ dump_map_info: ldr r0, [r3, #8] str r0, [sp, #8] ldr r3, [r3, #12] - ldr r0, .L1788+16 + ldr r0, .L1782+20 str r3, [sp, #12] ldr r3, [r2, #0] str r3, [sp, #16] ldr r3, [r2, #4] str r3, [sp, #20] - ldr r2, [r4, #184] - ldr r3, [r4, #188] + ldr r2, [r4, #192] + ldr r3, [r4, #196] bl printk -.L1785: - movw r2, #3918 +.L1779: + mov r2, #3920 sxth r3, r6 ldrh r2, [r8, r2] cmp r3, r2 - blt .L1783 + blt .L1777 add r5, r5, #1 uxth r5, r5 -.L1782: - ldr r3, .L1788+20 +.L1776: + ldrh r3, [r4, sl] sxth r7, r5 - ldr r6, .L1788+4 - ldrh r3, [r4, r3] + ldr r6, .L1782+4 cmp r7, r3 movlt r7, r7, asl #1 movlt r6, #0 - blt .L1785 -.L1784: - ldr r4, .L1788 - mov r5, #3952 - ldr r1, [r6, #-1036] + ldrlt r8, .L1782 + blt .L1779 +.L1778: + ldr r4, .L1782 + movw r5, #3956 + ldr r1, [r6, #-1028] mov r2, #2 - ldr r0, .L1788+24 - ldr r3, [r4, #3944] + ldr r0, .L1782+24 + ldr r3, [r4, #3948] bl rknand_print_hex - ldr r1, [r6, #-1028] + ldr r1, [r6, #-1020] ldrh r3, [r4, r5] mov r2, #4 - ldr r0, .L1788+28 + ldr r0, .L1782+28 bl rknand_print_hex - ldr r0, .L1788+32 - ldr r1, [r6, #-896] + ldr r0, .L1782+32 + ldr r1, [r6, #-888] mov r2, #4 ldrh r3, [r4, r5] add sp, sp, #36 ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} b rknand_print_hex -.L1789: +.L1783: .align 2 -.L1788: +.L1782: .word .LANCHOR0 .word .LANCHOR2 + .word .LC129 + .word -1032 + .word .LANCHOR2+192 + .word .LC107 .word .LC130 - .word .LANCHOR2+184 - .word .LC108 - .word -1040 .word .LC131 .word .LC132 - .word .LC133 .fnend .size dump_map_info, .-dump_map_info .align 2 @@ -15718,27 +15685,27 @@ FtlDumpSysBlock: stmfd sp!, {r4, r5, r6, r7, r8, lr} .save {r4, r5, r6, r7, r8, lr} mov r6, r0 - ldr r4, .L1794 + ldr r4, .L1788 .pad #24 sub sp, sp, #24 mov r7, r0, asl #10 mov r5, #0 - ldr r8, .L1794+4 - ldr r3, [r4, #-956] - str r3, [r4, #192] - ldr r3, [r4, #-932] - str r3, [r4, #196] - b .L1791 -.L1793: + ldr r8, .L1788+4 + ldr r3, [r4, #-948] + str r3, [r4, #200] + ldr r3, [r4, #-924] + str r3, [r4, #204] + b .L1785 +.L1787: mov r1, #1 - ldr r0, .L1794+8 + ldr r0, .L1788+8 mov r2, r1 orr r3, r3, r7 - str r3, [r4, #188] + str r3, [r4, #196] bl FlashReadPages - ldr r3, [r4, #196] + ldr r3, [r4, #204] mov r1, r6 - ldr r0, .L1794+12 + ldr r0, .L1788+12 ldr r2, [r3, #0] str r2, [sp, #0] ldr r2, [r3, #4] @@ -15746,41 +15713,41 @@ FtlDumpSysBlock: ldr r2, [r3, #8] str r2, [sp, #8] ldr r3, [r3, #12] - ldr r2, [r4, #184] + ldr r2, [r4, #192] str r3, [sp, #12] - ldr r3, [r4, #192] + ldr r3, [r4, #200] ldr r3, [r3, #0] str r3, [sp, #16] - ldr r3, [r4, #188] - bl printk ldr r3, [r4, #196] + bl printk + ldr r3, [r4, #204] ldr r3, [r3, #0] cmn r3, #1 - beq .L1792 - ldr r0, .L1794+16 + beq .L1786 + ldr r0, .L1788+16 mov r2, #4 - ldr r1, [r4, #-956] + ldr r1, [r4, #-948] mov r3, #768 bl rknand_print_hex -.L1792: +.L1786: add r5, r5, #1 uxth r5, r5 -.L1791: - movw r2, #3918 +.L1785: + mov r2, #3920 sxth r3, r5 ldrh r2, [r8, r2] cmp r3, r2 - blt .L1793 + blt .L1787 add sp, sp, #24 ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L1795: +.L1789: .align 2 -.L1794: +.L1788: .word .LANCHOR2 .word .LANCHOR0 - .word .LANCHOR2+184 + .word .LANCHOR2+192 + .word .LC133 .word .LC134 - .word .LC135 .fnend .size FtlDumpSysBlock, .-FtlDumpSysBlock .align 2 @@ -15790,31 +15757,31 @@ FlashReadFacBbtData: .fnstart @ args = 0, pretend = 0, frame = 40 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L1806 + ldr r3, .L1800 stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, lr} .save {r4, r5, r6, r7, r8, r9, sl, lr} mov r6, r1 mov r9, r2 - movw r1, #3062 - movw r2, #3060 + movw r1, #3058 + mov r2, #3056 ldrh r8, [r3, r1] ldrh r2, [r3, r2] .pad #40 sub sp, sp, #40 - ldr r7, .L1806+4 + ldr r7, .L1800+4 mov r4, r0 mul r8, r8, r2 - ldr r3, [r7, #152] + ldr r3, [r7, #160] str r3, [sp, #12] - ldr r3, [r7, #232] + ldr r3, [r7, #240] uxth r8, r8 sub r5, r8, #1 mul sl, r8, r6 str r3, [sp, #16] uxth r5, r5 sub r8, r8, #16 - b .L1797 -.L1803: + b .L1791 +.L1797: mov r1, #1 add r3, r5, sl add r0, sp, #4 @@ -15824,22 +15791,22 @@ FlashReadFacBbtData: bl FlashReadPages ldr r3, [sp, #4] cmn r3, #1 - beq .L1798 - ldr r3, [r7, #232] + beq .L1792 + ldr r3, [r7, #240] ldrh r2, [r3, #0] movw r3, #61664 cmp r2, r3 - bne .L1798 + bne .L1792 cmp r4, #0 moveq r0, r4 - beq .L1799 + beq .L1793 cmp r6, #0 - ldreq r3, .L1806+4 + ldreq r3, .L1800+4 moveq r0, #1 - beq .L1800 - b .L1801 -.L1802: - ldr r2, [r3, #152] + beq .L1794 + b .L1795 +.L1796: + ldr r2, [r3, #160] ubfx r1, r6, #5, #16 and lr, r6, #31 add r6, r6, #1 @@ -15847,39 +15814,39 @@ FlashReadFacBbtData: uxth r6, r6 orr ip, ip, r0, asl lr str ip, [r2, r1, asl #2] -.L1800: - ldr r2, [r3, #160] +.L1794: + ldr r2, [r3, #168] cmp r6, r2 - bcc .L1802 -.L1801: - ldr r3, .L1806+4 + bcc .L1796 +.L1795: + ldr r3, .L1800+4 mov r2, r9 mov r0, r4 - ldr r1, [r3, #152] + ldr r1, [r3, #160] bl memcpy mov r2, #4 - ldr r0, .L1806+8 + ldr r0, .L1800+8 mov r1, r4 mov r3, r2 bl rknand_print_hex mov r0, #0 - b .L1799 -.L1798: + b .L1793 +.L1792: sub r5, r5, #1 uxth r5, r5 -.L1797: +.L1791: cmp r5, r8 - bgt .L1803 + bgt .L1797 mvn r0, #0 -.L1799: +.L1793: add sp, sp, #40 ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, pc} -.L1807: +.L1801: .align 2 -.L1806: +.L1800: .word .LANCHOR0 .word .LANCHOR2 - .word .LC136 + .word .LC135 .fnend .size FlashReadFacBbtData, .-FlashReadFacBbtData .align 2 @@ -15889,30 +15856,30 @@ FlashGetBadBlockList: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L1815 + ldr r3, .L1809 stmfd sp!, {r4, r5, r6, r7, r8, lr} .save {r4, r5, r6, r7, r8, lr} mov r5, r0 ldr r3, [r3, #3624] - ldr r6, .L1815+4 + ldr r6, .L1809+4 ldrb r2, [r3, #13] @ zero_extendqisi2 ldrh r4, [r3, #14] - ldr r0, [r6, #140] + ldr r0, [r6, #148] mul r4, r4, r2 uxth r4, r4 add r2, r4, #7 mov r2, r2, lsr #3 bl FlashReadFacBbtData cmn r0, #1 - beq .L1814 + beq .L1808 mov r2, #0 mov r0, r4, lsr #4 mov r3, r2 sub r4, r4, #1 mov r1, #1 - b .L1810 -.L1812: - ldr ip, [r6, #140] + b .L1804 +.L1806: + ldr ip, [r6, #148] mov r8, r2, lsr #5 and r7, r2, #31 ldr ip, [ip, r8, asl #2] @@ -15922,24 +15889,24 @@ FlashGetBadBlockList: uxthne r3, r3 strneh r2, [r5, ip] @ movhi cmp r3, r0 - bcs .L1814 + bcs .L1808 add r2, r2, #1 uxth r2, r2 -.L1810: +.L1804: cmp r2, r4 - blt .L1812 - b .L1809 -.L1814: + blt .L1806 + b .L1803 +.L1808: mov r3, #0 -.L1809: +.L1803: mov r3, r3, asl #1 mvn r2, #0 mov r0, #0 strh r2, [r5, r3] @ movhi ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L1816: +.L1810: .align 2 -.L1815: +.L1809: .word .LANCHOR0 .word .LANCHOR2 .fnend @@ -15953,65 +15920,65 @@ FtlMakeBbt: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr} .save {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr} - ldr r6, .L1835 - ldr r5, [r6, #4040] + ldr r6, .L1829 + ldr r5, [r6, #4044] cmp r5, #0 - bne .L1818 - ldr r8, .L1835+4 + bne .L1812 + add r8, r6, #3984 bl FtlBbtMemInit - ldr r4, .L1835+8 - bl FtlLoadFactoryBbt add sl, r8, #12 - b .L1819 -.L1825: + bl FtlLoadFactoryBbt + ldr r4, .L1829+4 + b .L1813 +.L1819: ldrh r3, [sl], #2 movw r2, #65535 - ldr r0, [r4, #-956] - movw fp, #3912 - ldr r9, [r4, #-932] + ldr r0, [r4, #-948] + movw fp, #3916 + ldr r9, [r4, #-924] cmp r3, r2 - str r0, [r4, #192] - str r9, [r4, #196] - beq .L1820 + str r0, [r4, #200] + str r9, [r4, #204] + beq .L1814 ldrh r7, [r6, fp] mov r1, #1 mov r2, r1 - ldr r0, .L1835+12 + ldr r0, .L1829+8 mla r7, r7, r5, r3 mov r3, r7, asl #10 - str r3, [r4, #188] + str r3, [r4, #196] bl FlashReadPages ldrh r2, [r6, fp] ldr r0, [r8, #28] add r2, r2, #7 - ldr r1, [r4, #192] + ldr r1, [r4, #200] mov r2, r2, lsr #3 bl memcpy - b .L1821 -.L1820: + b .L1815 +.L1814: mov r1, r5 bl FlashGetBadBlockList - ldr r0, [r4, #192] + ldr r0, [r4, #200] ldr r1, [r8, #28] bl FtlBbt2Bitmap ldrh fp, [r6, fp] -.L1823: +.L1817: sub fp, fp, #1 uxth fp, fp -.L1834: - movw r7, #3912 +.L1828: + movw r7, #3916 ldrh r0, [r6, r7] mla r0, r0, r5, fp uxth r0, r0 bl FtlBbmIsBadBlock cmp r0, #1 - beq .L1823 + beq .L1817 mov r1, #0 mov r2, #16 strh fp, [sl, #-2] @ movhi - ldr r0, [r4, #-932] + ldr r0, [r4, #-924] bl ftl_memset - ldr r3, .L1835+16 + ldr r3, .L1829+12 strh r3, [r9, #0] @ movhi mov r3, #0 str r3, [r9, #4] @@ -16020,100 +15987,100 @@ FtlMakeBbt: strh r3, [r9, #2] @ movhi ldrh r3, [sl, #-2] ldr r1, [r8, #28] - ldr r0, [r4, #192] + ldr r0, [r4, #200] mla r7, r7, r5, r3 mov r3, r7, asl #10 - str r3, [r4, #188] - ldr r3, .L1835+20 + str r3, [r4, #196] + ldr r3, .L1829+16 ldrh r2, [r4, r3] mov r2, r2, asl #2 bl memcpy mov r1, #1 mov r2, r1 - ldr r0, .L1835+12 + ldr r0, .L1829+8 bl FlashEraseBlocks mov r1, #1 mov r3, r1 - ldr r0, .L1835+12 + ldr r0, .L1829+8 mov r2, r1 bl FlashProgPages - ldr r3, [r4, #184] + ldr r3, [r4, #192] cmn r3, #1 - bne .L1821 + bne .L1815 uxth r0, r7 bl FtlBbmMapBadBlock - b .L1834 -.L1821: + b .L1828 +.L1815: uxth r0, r7 add r5, r5, #1 bl FtlBbmMapBadBlock add r8, r8, #4 -.L1819: - movw r3, #3870 +.L1813: + movw r3, #3874 ldrh r3, [r6, r3] cmp r5, r3 - bcc .L1825 + bcc .L1819 mov r4, #0 - ldr r7, .L1835 - movw r6, #3930 - b .L1826 -.L1827: + ldr r7, .L1829 + movw r6, #3932 + b .L1820 +.L1821: mov r0, r4 add r4, r4, #1 bl FtlBbmMapBadBlock uxth r4, r4 -.L1826: +.L1820: ldrh r3, [r7, r6] - ldr r5, .L1835 + ldr r5, .L1829 cmp r3, r4 - bhi .L1827 - movw r7, #3992 - movw r6, #3980 + bhi .L1821 + movw r7, #3996 + movw r6, #65535 ldrh r4, [r5, r7] sub r4, r4, #1 uxth r4, r4 - b .L1828 -.L1833: + b .L1822 +.L1827: mov r0, r4 bl FtlBbmIsBadBlock cmp r0, #1 - beq .L1829 + beq .L1823 mov r0, r4 bl FlashTestBlk cmp r0, #0 - beq .L1830 + beq .L1824 mov r0, r4 bl FtlBbmMapBadBlock - b .L1829 -.L1830: - ldrh r2, [r5, r6] - movw r3, #65535 - cmp r2, r3 - streqh r4, [r5, r6] @ movhi -.L1831: - ldrne r2, .L1835 - movne r3, #3984 + b .L1823 +.L1824: + mov r3, #3984 + ldrh r2, [r5, r3] + cmp r2, r6 + streqh r4, [r5, r3] @ movhi +.L1825: + ldrne r2, .L1829 + movwne r3, #3988 strneh r4, [r2, r3] @ movhi - bne .L1832 -.L1829: + bne .L1826 +.L1823: sub r4, r4, #1 uxth r4, r4 -.L1828: +.L1822: ldrh r3, [r5, r7] sub r3, r3, #48 cmp r4, r3 - bgt .L1833 -.L1832: - ldr r4, .L1835 - movw r6, #3980 - mov r5, #3984 + bgt .L1827 +.L1826: + ldr r4, .L1829 + mov r6, #3984 + movw r5, #3988 mov r7, #0 - movw r8, #3982 + movw r8, #3986 mov r2, #2 - ldr r0, [r4, #4044] + ldr r0, [r4, #4048] mov r1, #1 ldrh r3, [r4, r6] - str r7, [r4, #3988] + str r7, [r4, #3992] strh r7, [r4, r8] @ movhi mov r3, r3, asl #10 str r3, [r0, #4] @@ -16126,27 +16093,26 @@ FtlMakeBbt: ldrh r0, [r4, r5] bl FtlBbmMapBadBlock bl FtlBbmTblFlush - ldr r3, [r4, #3988] + ldr r3, [r4, #3992] ldrh r2, [r4, r5] add r3, r3, #1 - str r3, [r4, #3988] + str r3, [r4, #3992] ldrh r3, [r4, r6] strh r7, [r4, r8] @ movhi strh r2, [r4, r6] @ movhi strh r3, [r4, r5] @ movhi bl FtlBbmTblFlush -.L1818: +.L1812: mov r0, #0 ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L1836: +.L1830: .align 2 -.L1835: +.L1829: .word .LANCHOR0 - .word .LANCHOR0+3980 .word .LANCHOR2 - .word .LANCHOR2+184 + .word .LANCHOR2+192 .word -3872 - .word -1024 + .word -1016 .fnend .size FtlMakeBbt, .-FtlMakeBbt .align 2 @@ -16158,97 +16124,97 @@ ftl_load_l2p_region: stmfd sp!, {r3, r4, r5, r6, r7, lr} .save {r3, r4, r5, r6, r7, lr} mov r5, r0 - ldr r4, .L1842 + ldr r4, .L1836 mov r6, #12 - ldr r3, [r4, #-1028] + ldr r3, [r4, #-1020] ldr r7, [r3, r0, asl #2] cmp r7, #0 - bne .L1838 + bne .L1832 mul r6, r6, r1 - ldr r3, [r4, #-1852] - ldr r2, .L1842+4 + ldr r3, [r4, #-1848] + ldr r2, .L1836+4 mov r1, #255 add r3, r3, r6 ldr r0, [r3, #8] - movw r3, #3926 + movw r3, #3928 ldrh r2, [r2, r3] bl ftl_memset - ldr r3, [r4, #-1852] + ldr r3, [r4, #-1848] strh r5, [r3, r6] @ movhi - ldr r3, [r4, #-1852] + ldr r3, [r4, #-1848] add r6, r3, r6 str r7, [r6, #4] - b .L1839 -.L1838: + b .L1833 +.L1832: mul r6, r6, r1 - ldr r3, [r4, #-1852] + ldr r3, [r4, #-1848] mov r1, #1 - add r0, r4, #184 + add r0, r4, #192 mov r2, r1 - str r7, [r4, #188] + str r7, [r4, #196] add r3, r3, r6 ldr r3, [r3, #8] - str r3, [r4, #192] - ldr r3, [r4, #-932] - str r3, [r4, #196] + str r3, [r4, #200] + ldr r3, [r4, #-924] + str r3, [r4, #204] bl FlashReadPages - ldr r3, [r4, #196] + ldr r3, [r4, #204] ldrh r3, [r3, #8] cmp r3, r5 - beq .L1840 + beq .L1834 mov r2, r7 mov r1, r5 - ldr r0, .L1842+8 + ldr r0, .L1836+8 bl printk - ldr r7, .L1842+4 + ldr r7, .L1836+4 mov r2, #4 - ldr r0, .L1842+12 + ldr r0, .L1836+12 mov r3, r2 - ldr r1, [r4, #196] + ldr r1, [r4, #204] bl rknand_print_hex - mov r3, #3952 + movw r3, #3956 ldrh r3, [r7, r3] mov r2, #4 - ldr r0, .L1842+16 - ldr r1, [r4, #-1028] + ldr r0, .L1836+16 + ldr r1, [r4, #-1020] bl rknand_print_hex mov r3, #1 - str r3, [r7, #4040] - b .L1841 -.L1840: - ldr r3, [r4, #184] + str r3, [r7, #4044] + b .L1835 +.L1834: + ldr r3, [r4, #192] cmp r3, #256 - bne .L1841 + bne .L1835 mov r1, r5 mov r2, r7 - ldr r0, .L1842+20 + ldr r0, .L1836+20 bl printk - ldr r3, [r4, #-1852] - ldr r0, .L1842+24 + ldr r3, [r4, #-1848] + ldr r0, .L1836+24 mov r1, r5 add r3, r3, r6 ldr r2, [r3, #8] bl FtlMapWritePage -.L1841: - ldr r3, .L1842 +.L1835: + ldr r3, .L1836 mov r1, #0 - ldr r3, [r3, #-1852] + ldr r3, [r3, #-1848] add r2, r3, r6 str r1, [r2, #4] strh r5, [r3, r6] @ movhi -.L1839: +.L1833: mov r0, #0 ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L1843: +.L1837: .align 2 -.L1842: +.L1836: .word .LANCHOR2 .word .LANCHOR0 - .word .LC137 + .word .LC136 .word .LC99 + .word .LC137 .word .LC138 - .word .LC139 - .word .LANCHOR2-1084 + .word .LANCHOR2-1076 .fnend .size ftl_load_l2p_region, .-ftl_load_l2p_region .align 2 @@ -16258,103 +16224,116 @@ log2phys: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - stmfd sp!, {r3, r4, r5, r6, r7, r8, sl, lr} - .save {r3, r4, r5, r6, r7, r8, sl, lr} - mov r8, r2 - ldr r3, .L1853 - movw r2, #3924 - mov r4, r1 - ldrh r7, [r3, r2] - mvn r2, #0 - add r7, r7, #7 - mov r6, r0, lsr r7 - bic r7, r0, r2, asl r7 - movw r2, #3954 - ldrh r2, [r3, r2] - uxth r6, r6 - ldr r3, .L1853+4 + ldr r3, .L1851 + stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, lr} + .save {r4, r5, r6, r7, r8, r9, sl, lr} + mov sl, r2 + movw r2, #3926 + mov r4, r0 + ldrh r8, [r3, r2] + mov r5, r1 + ldr r2, [r3, #3980] + add r8, r8, #7 + mov r7, r0, lsr r8 + cmp r0, r2 uxth r7, r7 - ldr sl, [r3, #-1852] + bcs .L1839 + movw r2, #3958 + ldrh r2, [r3, r2] + ldr r3, .L1851+4 + ldr r9, [r3, #-1848] mov r3, #0 - mov r5, r3 - b .L1845 -.L1851: + mov r6, r3 + b .L1840 +.L1839: + cmp sl, #0 + mvn r0, #0 + streq r0, [r1, #0] + ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, pc} +.L1846: add r3, r3, #12 - add r1, sl, r3 + add r1, r9, r3 ldrh r1, [r1, #-12] - cmp r1, r6 - bne .L1846 -.L1847: - cmp r8, #0 - ldr r3, .L1853+4 + cmp r1, r7 + bne .L1842 +.L1843: + mvn r3, #0 + cmp sl, #0 + bic r4, r4, r3, asl r8 mov r2, #12 - bne .L1848 - ldr r3, [r3, #-1852] - mla r2, r2, r5, r3 + ldr r3, .L1851+4 + uxth r4, r4 + bne .L1844 + ldr r3, [r3, #-1848] + mla r2, r2, r6, r3 ldr r3, [r2, #8] - ldr r3, [r3, r7, asl #2] - str r3, [r4, #0] - b .L1849 -.L1848: - mul r2, r2, r5 - ldr r1, [r3, #-1852] - ldr r0, [r4, #0] + ldr r3, [r3, r4, asl #2] + str r3, [r5, #0] + b .L1845 +.L1844: + mul r2, r2, r6 + ldr r1, [r3, #-1848] + ldr r0, [r5, #0] add r1, r1, r2 ldr r1, [r1, #8] - str r0, [r1, r7, asl #2] - ldr r1, [r3, #-1852] + str r0, [r1, r4, asl #2] + ldr r1, [r3, #-1848] add r2, r1, r2 ldr r1, [r2, #4] orr r1, r1, #-2147483648 str r1, [r2, #4] - ldr r2, .L1853+8 - strh r6, [r3, r2] @ movhi -.L1849: - ldr r3, .L1853+4 + ldr r2, .L1851+8 + strh r7, [r3, r2] @ movhi +.L1845: + ldr r3, .L1851+4 mov r2, #12 - mov r0, #0 - ldr r3, [r3, #-1852] - mla r5, r2, r5, r3 - ldr r3, [r5, #4] + ldr r3, [r3, #-1848] + mla r6, r2, r6, r3 + ldr r3, [r6, #4] cmn r3, #1 addne r3, r3, #1 - strne r3, [r5, #4] - ldmfd sp!, {r3, r4, r5, r6, r7, r8, sl, pc} -.L1846: - add r5, r5, #1 - uxth r5, r5 -.L1845: - cmp r5, r2 - bne .L1851 + strne r3, [r6, #4] + movne r0, #0 + ldmnefd sp!, {r4, r5, r6, r7, r8, r9, sl, pc} + b .L1850 +.L1842: + add r6, r6, #1 + uxth r6, r6 +.L1840: + cmp r6, r2 + bne .L1846 bl select_l2p_ram_region mov r3, #12 mul r3, r3, r0 - mov r5, r0 - add r2, sl, r3 - ldrh r1, [sl, r3] + mov r6, r0 + add r2, r9, r3 + ldrh r1, [r9, r3] movw r3, #65535 cmp r1, r3 - beq .L1852 + beq .L1847 ldr r3, [r2, #4] cmp r3, #0 - bge .L1852 + bge .L1847 bl flush_l2p_region -.L1852: - mov r0, r6 - mov r1, r5 +.L1847: + mov r0, r7 + mov r1, r6 bl ftl_load_l2p_region - b .L1847 -.L1854: + b .L1843 +.L1850: + mov r0, #0 + ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, pc} +.L1852: .align 2 -.L1853: +.L1851: .word .LANCHOR0 .word .LANCHOR2 - .word -1848 + .word -1844 .fnend .size log2phys, .-log2phys .align 2 - .type FtlReadRefresh.part.15, %function -FtlReadRefresh.part.15: + .type FtlReadRefresh.part.17, %function +FtlReadRefresh.part.17: .fnstart @ args = 0, pretend = 0, frame = 40 @ frame_needed = 0, uses_anonymous_args = 0 @@ -16362,27 +16341,27 @@ FtlReadRefresh.part.15: .save {r4, r5, r6, lr} .pad #40 sub sp, sp, #40 - ldr r4, .L1863 - ldr r6, .L1863+4 - ldr r2, [r4, #-1624] - ldr r3, [r6, #3976] + ldr r4, .L1861 + ldr r6, .L1861+4 + ldr r2, [r4, #-1616] + ldr r3, [r6, #3980] cmp r2, r3 - bcs .L1856 + bcs .L1854 mov r5, #2048 -.L1859: - ldr r0, [r4, #-1624] - ldr r3, [r6, #3976] +.L1857: + ldr r0, [r4, #-1616] + ldr r3, [r6, #3980] cmp r0, r3 - bcs .L1861 + bcs .L1859 mov r1, sp mov r2, #0 bl log2phys ldr r0, [sp, #0] - ldr r3, [r4, #-1624] + ldr r3, [r4, #-1616] cmn r0, #1 add r3, r3, #1 - str r3, [r4, #-1624] - beq .L1858 + str r3, [r4, #-1616] + beq .L1856 str r0, [sp, #8] add r0, sp, #40 mov r2, #0 @@ -16394,35 +16373,35 @@ FtlReadRefresh.part.15: bl FlashReadPages ldr r3, [sp, #4] cmp r3, #256 - bne .L1861 + bne .L1859 ldr r0, [sp, #0] ubfx r0, r0, #10, #16 bl P2V_block_in_plane bl FtlGcRefreshBlock - b .L1861 -.L1858: - subs r5, r5, #1 - bne .L1859 - b .L1857 + b .L1859 .L1856: - ldr r3, [r4, #-1836] + subs r5, r5, #1 + bne .L1857 + b .L1855 +.L1854: + ldr r3, [r4, #-1832] mov r0, #0 - str r0, [r4, #-1628] - str r0, [r4, #-1624] - str r3, [r4, #-1632] - b .L1857 -.L1861: + str r0, [r4, #-1620] + str r0, [r4, #-1616] + str r3, [r4, #-1624] + b .L1855 +.L1859: mvn r0, #0 -.L1857: +.L1855: add sp, sp, #40 ldmfd sp!, {r4, r5, r6, pc} -.L1864: +.L1862: .align 2 -.L1863: +.L1861: .word .LANCHOR2 .word .LANCHOR0 .fnend - .size FtlReadRefresh.part.15, .-FtlReadRefresh.part.15 + .size FtlReadRefresh.part.17, .-FtlReadRefresh.part.17 .align 2 .global FtlReadRefresh .type FtlReadRefresh, %function @@ -16431,51 +16410,341 @@ FtlReadRefresh: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L1872 - ldr r2, [r3, #-1628] + ldr r3, .L1870 + ldr r2, [r3, #-1620] cmp r2, #0 - beq .L1866 - b FtlReadRefresh.part.15 -.L1866: - ldr r2, .L1872+4 - ldr r0, [r3, #-1784] - ldr r1, [r2, #3840] - ldrb r2, [r2, #928] @ zero_extendqisi2 + beq .L1864 + b FtlReadRefresh.part.17 +.L1864: + ldr r2, .L1870+4 + ldr r0, [r3, #-1780] + ldr r1, [r2, #3844] + ldrb r2, [r2, #3072] @ zero_extendqisi2 cmp r2, #0 - ldr r2, [r3, #-1836] + ldr r2, [r3, #-1832] addeq r0, r1, r0, lsr #10 moveq r1, #33554432 movne r0, #4194304 moveq r0, r1, asr r0 - ldr r1, [r3, #-1632] + ldr r1, [r3, #-1624] add r3, r2, #1048576 cmp r1, r3 - bhi .L1868 + bhi .L1866 add r1, r0, r1 cmp r1, r2 - bcc .L1868 - ldr r3, .L1872 - ldrb r3, [r3, #-2044] @ zero_extendqisi2 + bcc .L1866 + ldr r3, .L1870 + ldrb r3, [r3, #-2040] @ zero_extendqisi2 cmp r3, #0 - bne .L1869 -.L1868: - ldr r3, .L1872 + bne .L1867 +.L1866: + ldr r3, .L1870 mov r1, #1 - str r2, [r3, #-1632] - str r1, [r3, #-1628] + str r2, [r3, #-1624] + str r1, [r3, #-1620] mov r1, #0 - str r1, [r3, #-1624] -.L1869: + str r1, [r3, #-1616] +.L1867: mov r0, #0 bx lr -.L1873: +.L1871: .align 2 -.L1872: +.L1870: .word .LANCHOR2 .word .LANCHOR0 .fnend .size FtlReadRefresh, .-FtlReadRefresh .align 2 + .global FtlGcScanTempBlk + .type FtlGcScanTempBlk, %function +FtlGcScanTempBlk: + .fnstart + @ args = 0, pretend = 0, frame = 64 + @ frame_needed = 0, uses_anonymous_args = 0 + ldr r2, .L1904 + movw r3, #3224 + stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + .save {r4, r5, r6, r7, r8, r9, sl, fp, lr} + .pad #68 + sub sp, sp, #68 + ldrh r6, [r2, r3] + movw r3, #65535 + mov r4, r0 + str r1, [sp, #20] + cmp r6, r3 + beq .L1899 + cmp r6, #0 + bne .L1873 + b .L1874 +.L1899: + mov r6, #0 +.L1873: + ldr r2, .L1904+4 + movw r3, #3918 + ldr sl, [sp, #20] + ldrh r3, [r2, r3] + cmp sl, r3 + bne .L1875 +.L1874: + bl FtlGcPageVarInit +.L1875: + ldr r5, .L1904+8 + mov r9, #0 + mvn r3, #0 + str r3, [sp, #12] +.L1876: + ldrh r2, [r4, #0] + movw r3, #65535 + mov sl, #0 + strb sl, [r4, #8] + cmp r2, r3 + beq .L1877 +.L1878: + str r4, [sp, #4] +.L1900: + ldr r3, .L1904+4 + movw r2, #3852 + ldr r7, [r5, #-960] + ldr lr, [r5, #-1164] + ldrh r8, [r3, r2] + add r2, r2, #76 + ldr fp, [r5, #-1160] + ldrh ip, [r3, r2] + add r2, r2, #2 + ldrh r2, [r3, r2] + mov r3, #0 + mov r4, r3 + str r2, [sp, #8] + ldr r2, [sp, #4] + b .L1879 +.L1881: + ldrh r0, [r2, #16] + movw r1, #65535 + cmp r0, r1 + beq .L1880 + mov sl, #36 + orr r0, r6, r0, asl #10 + mla r1, sl, r4, r7 + str r0, [r1, #4] + mul r0, ip, r4 + add sl, r0, #3 + cmp r0, #0 + movlt r0, sl + ldr sl, [sp, #8] + bic r0, r0, #3 + add r0, lr, r0 + str r0, [r1, #8] + mul r0, sl, r4 + add r4, r4, #1 + uxth r4, r4 + add sl, r0, #3 + cmp r0, #0 + movlt r0, sl + bic r0, r0, #3 + add r0, fp, r0 + str r0, [r1, #12] +.L1880: + add r3, r3, #1 + add r2, r2, #2 + uxth r3, r3 +.L1879: + cmp r3, r8 + bne .L1881 + ldr r0, [r5, #-960] + mov r1, r4 + mov r2, #0 + mov r7, #0 + bl FlashReadPages + mov fp, r6 + str r7, [sp, #8] + b .L1882 +.L1895: + ldr r2, [r5, #-960] + add r3, r2, r7 + ldr r8, [r2, r7] + ldr sl, [r3, #4] + cmp r8, #0 + str sl, [sp, #16] + bne .L1883 + ldr r6, [r3, #12] + movw r1, #65535 + ldrh r3, [r6, #0] + cmp r3, r1 + beq .L1884 + ldr sl, .L1904+4 + ldr r0, [r6, #8] + ldr r3, [sl, #3980] + cmp r0, r3 + bls .L1885 +.L1884: + ldr r4, [sp, #4] + mov sl, #0 @ movhi + ldr r2, .L1904+8 + ldrh r3, [r4, #0] + ldr r2, [r2, #-2012] + mov r3, r3, asl #1 + strh sl, [r2, r3] @ movhi + b .L1903 +.L1885: + ldrb r3, [sl, #852] @ zero_extendqisi2 + cmp r3, #0 + beq .L1887 + mov r2, r8 + add r1, sp, #24 + bl log2phys + ldr r3, [sp, #24] + ldr r2, [r6, #12] + cmp r3, r2 + bne .L1887 + cmn r3, #1 + beq .L1887 + str r3, [sp, #32] + mov r1, #1 + ldr r3, [r5, #-928] + mov r2, r8 + add r0, sp, #28 + str r3, [sp, #36] + ldr r3, [r5, #-920] + str r3, [sp, #40] + bl FlashReadPages + movw r3, #3924 + ldr r1, [r5, #-960] + ldrh r0, [sl, r3] + mov r3, r8 + add r1, r1, r7 + ldr r2, [sp, #36] + mov r0, r0, asl #7 + b .L1888 +.L1890: + ldr ip, [r1, #8] + ldr lr, [ip, r8] + add r8, r8, #4 + add ip, r2, r8 + ldr ip, [ip, #-4] + cmp lr, ip + beq .L1889 + ldr r4, [sp, #4] + ldr r2, [sp, #32] + ldr r0, .L1904+12 + ldrh r1, [r4, #0] + bl printk + b .L1894 +.L1889: + add r3, r3, #1 +.L1888: + cmp r3, r0 + bne .L1890 +.L1887: + ldr r0, [r6, #12] + add r7, r7, #36 + ldr r1, [sp, #16] + ldr r2, [r6, #8] + bl FtlGcUpdatePage + ldr sl, [sp, #8] + add r3, sl, #1 + uxth r3, r3 + str r3, [sp, #8] + b .L1882 +.L1883: + ldr r4, [sp, #4] + ldr r2, [sp, #16] + ldr r0, .L1904+16 + ldrh r1, [r4, #0] + bl printk + ldr r3, .L1904+4 + ldr r2, [r3, #3844] + cmp r2, #0 + bne .L1891 + ldrb r2, [r3, #3072] @ zero_extendqisi2 + cmp r2, #0 + beq .L1892 +.L1891: + ldrh r1, [r4, #0] + ldr r2, [r3, #4052] + mov r3, r1, asl #1 + ldrh r3, [r2, r3] + cmp r3, #159 + bls .L1893 +.L1892: + ldr r3, [r5, #-960] + ldr r3, [r3, r7] + cmn r3, #1 + bne .L1894 +.L1893: + ldr r3, [r5, #-960] + add r7, r3, r7 + ldr r7, [r7, #4] + str r7, [sp, #12] +.L1894: + ldrh r3, [r4, #0] + mov r1, #0 @ movhi + ldr r2, [r5, #-2012] + mov r3, r3, asl #1 + strh r1, [r2, r3] @ movhi +.L1903: + ldrh r0, [r4, #0] + mov r6, #0 + bl INSERT_FREE_LIST + mvn r3, #0 + strh r3, [r4, #0] @ movhi + bl FtlGcPageVarInit + b .L1876 +.L1882: + ldr r3, [sp, #8] + cmp r3, r4 + bne .L1895 + ldr sl, [sp, #20] + add r9, r9, #1 + add r6, fp, #1 + cmp r9, sl + uxth r6, r6 + bcc .L1896 + ldr r2, .L1904 + movw r3, #3224 + movw r0, #65535 + ldrh r1, [r2, r3] + cmp r1, r0 + beq .L1896 + add r1, r1, r9 + strh r1, [r2, r3] @ movhi + ldr r2, .L1904+4 + movw r3, #3918 + ldrh r3, [r2, r3] + cmp r3, r6 + bhi .L1897 +.L1896: + ldr r2, .L1904+4 + movw r3, #3918 + ldrh r3, [r2, r3] + cmp r3, r6 + bhi .L1900 + ldr r4, [sp, #4] +.L1877: + ldr r2, .L1904 + movw r3, #3224 + mvn r1, #0 + strh r6, [r4, #2] @ movhi + mov r0, r4 + strh r1, [r2, r3] @ movhi + mov r2, #0 + mov r1, r6 + strb r2, [r4, #6] + bl ftl_sb_update_avl_pages +.L1897: + ldr r0, [sp, #12] + add sp, sp, #68 + ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} +.L1905: + .align 2 +.L1904: + .word .LANCHOR1 + .word .LANCHOR0 + .word .LANCHOR2 + .word .LC139 + .word .LC140 + .fnend + .size FtlGcScanTempBlk, .-FtlGcScanTempBlk + .align 2 .global FtlReUsePrevPpa .type FtlReUsePrevPpa, %function FtlReUsePrevPpa: @@ -16488,69 +16757,68 @@ FtlReUsePrevPpa: ubfx r0, r1, #10, #16 str r1, [sp, #4] bl P2V_block_in_plane - ldr r3, .L1880 - ldr r1, [r3, #-2016] + ldr r3, .L1912 + ldr r1, [r3, #-2012] mov r5, r0, asl #1 ldrh r2, [r1, r5] cmp r2, #0 addne r2, r2, #1 strneh r2, [r1, r5] @ movhi - bne .L1876 - ldr r4, [r3, #-2004] + bne .L1908 + ldr r4, [r3, #-2000] cmp r4, #0 - beq .L1876 - ldr r1, .L1880+4 + beq .L1908 + ldr r1, .L1912+4 mov ip, #6 ldrh lr, [r3, r1] - ldr r3, [r3, #-2024] - ldr r1, .L1880+8 + ldr r3, [r3, #-2020] + ldr r1, .L1912+8 rsb r4, r3, r4 mov r4, r4, asr #1 mul r4, r1, r4 movw r1, #65535 uxth r4, r4 - b .L1877 -.L1879: + b .L1909 +.L1911: cmp r4, r0 - bne .L1878 + bne .L1910 + ldr r6, .L1912 mov r1, r4 - ldr r0, .L1880+12 + sub r0, r6, #2000 bl List_remove_node - ldr r6, .L1880 - ldr r3, .L1880+4 + ldr r3, .L1912+4 mov r0, r4 ldrh r2, [r6, r3] sub r2, r2, #1 strh r2, [r6, r3] @ movhi bl INSERT_DATA_LIST - ldr r3, [r6, #-2016] + ldr r3, [r6, #-2012] ldrh r2, [r3, r5] add r2, r2, #1 strh r2, [r3, r5] @ movhi - b .L1876 -.L1878: + b .L1908 +.L1910: mul r4, ip, r4 ldrh r4, [r3, r4] cmp r4, r1 - beq .L1876 + beq .L1908 add r2, r2, #1 uxth r2, r2 -.L1877: +.L1909: cmp r2, lr - bne .L1879 -.L1876: + bne .L1911 +.L1908: mov r0, r7 add r1, sp, #4 mov r2, #1 bl log2phys ldmfd sp!, {r1, r2, r3, r4, r5, r6, r7, pc} -.L1881: +.L1913: .align 2 -.L1880: +.L1912: .word .LANCHOR2 - .word -2000 + .word -1996 .word -1431655765 - .word .LANCHOR2-2004 .fnend .size FtlReUsePrevPpa, .-FtlReUsePrevPpa .align 2 @@ -16563,52 +16831,52 @@ Ftlscanalldata: stmfd sp!, {r4, r5, r6, r7, r8, lr} .save {r4, r5, r6, r7, r8, lr} mov r1, #0 - ldr r4, .L1888 + ldr r4, .L1920 .pad #32 sub sp, sp, #32 - ldr r0, .L1888+4 + ldr r0, .L1920+4 mov r5, #0 bl printk - ldr r7, .L1888+8 + ldr r7, .L1920+8 mov r6, r4 - b .L1883 -.L1887: + b .L1915 +.L1919: mov r0, r5 add r1, sp, #28 mov r2, #0 bl log2phys movs r3, r5, asl #21 - bne .L1884 - ldr r0, .L1888+12 + bne .L1916 + ldr r0, .L1920+12 mov r1, r5 ldr r2, [sp, #28] bl printk -.L1884: +.L1916: ldr r3, [sp, #28] cmn r3, #1 - beq .L1885 - str r3, [r4, #188] + beq .L1917 + str r3, [r4, #196] mov r2, #0 - ldr r3, [r4, #-956] + ldr r3, [r4, #-948] mov r1, #1 - ldr r8, [r4, #-932] - ldr r0, .L1888+16 - str r3, [r4, #192] - str r5, [r4, #200] - str r8, [r4, #196] - str r2, [r4, #184] + ldr r8, [r4, #-924] + ldr r0, .L1920+16 + str r3, [r4, #200] + str r5, [r4, #208] + str r8, [r4, #204] + str r2, [r4, #192] bl FlashReadPages - ldr r3, [r4, #184] + ldr r3, [r4, #192] cmn r3, #1 cmpne r3, #256 - beq .L1886 + beq .L1918 ldr r3, [r8, #8] cmp r3, r5 - beq .L1885 -.L1886: - ldr r3, [r6, #196] - ldr r2, [r6, #192] - ldr r0, .L1888+20 + beq .L1917 +.L1918: + ldr r3, [r6, #204] + ldr r2, [r6, #200] + ldr r0, .L1920+20 ldr r1, [r3, #4] str r1, [sp, #0] ldr r1, [r3, #8] @@ -16620,26 +16888,26 @@ Ftlscanalldata: mov r1, r5 ldr r2, [r2, #4] str r2, [sp, #16] - ldr r2, [r6, #188] + ldr r2, [r6, #196] ldr r3, [r3, #0] bl printk -.L1885: +.L1917: add r5, r5, #1 -.L1883: - ldr r3, [r7, #3976] +.L1915: + ldr r3, [r7, #3980] cmp r5, r3 - bcc .L1887 + bcc .L1919 add sp, sp, #32 ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L1889: +.L1921: .align 2 -.L1888: +.L1920: .word .LANCHOR2 - .word .LC140 - .word .LANCHOR0 .word .LC141 - .word .LANCHOR2+184 + .word .LANCHOR0 .word .LC142 + .word .LANCHOR2+192 + .word .LC143 .fnend .size Ftlscanalldata, .-Ftlscanalldata .align 2 @@ -16657,12 +16925,12 @@ FtlRecoverySuperblock: sub sp, sp, #68 mov r4, r0 cmp r3, r2 - beq .L1891 + beq .L1923 ldrh r3, [r0, #2] - ldr r1, .L1979 + ldr r1, .L2012 ldrb r6, [r0, #6] @ zero_extendqisi2 str r3, [sp, #20] - movw r3, #3916 + movw r3, #3918 ldrh r3, [r1, r3] ldr fp, [sp, #20] str r6, [sp, #36] @@ -16671,65 +16939,65 @@ FtlRecoverySuperblock: streqh r3, [r0, #4] @ movhi moveq r2, r3 @ movhi ldrneh r0, [r0, #16] - bne .L1893 - b .L1976 -.L1894: + bne .L1925 + b .L2009 +.L1926: add r3, r3, #1 uxth r3, r3 add r1, r4, r3, asl #1 ldrh r0, [r1, #16] -.L1893: +.L1925: cmp r0, r2 - beq .L1894 + beq .L1926 ldrb r1, [r4, #8] @ zero_extendqisi2 cmp r1, #1 - bne .L1895 + bne .L1927 bl FtlGetLastWrittenPage cmn r0, #1 mov r7, r0 - beq .L1896 - ldr r3, .L1979 - ldrb r2, [r3, #928] @ zero_extendqisi2 + beq .L1928 + ldr r3, .L2012 + ldrb r2, [r3, #3072] @ zero_extendqisi2 cmp r2, #0 - bne .L1969 + bne .L2002 add r3, r3, r0, asl #1 movw r2, #3076 ldrh r8, [r3, r2] - b .L1961 -.L1895: + b .L1994 +.L1927: mov r1, #0 bl FtlGetLastWrittenPage cmn r0, #1 mov r7, r0 - beq .L1896 -.L1969: + beq .L1928 +.L2002: mov r8, r7 -.L1961: - ldr r3, .L1979 - movw r2, #3848 +.L1994: + ldr r3, .L2012 + movw r2, #3852 mov r5, #0 str r4, [sp, #44] movw ip, #65535 ldrh r9, [r3, r2] - ldr r2, .L1979+4 - ldr sl, [r2, #-968] - ldr r6, [r2, #-1168] - movw r2, #3928 + ldr r2, .L2012+4 + ldr sl, [r2, #-960] + ldr r6, [r2, #-1160] + movw r2, #3930 ldrh lr, [r3, r2] mov r2, r4 mov r3, r5 - b .L1898 -.L1896: + b .L1930 +.L1928: mov r3, #0 strh r3, [r4, #2] @ movhi mov r2, r3 @ movhi -.L1976: +.L2009: strb r2, [r4, #6] - b .L1891 -.L1900: + b .L1923 +.L1932: ldrh r0, [r2, #16] cmp r0, ip - beq .L1899 + beq .L1931 mov fp, #36 orr r0, r8, r0, asl #10 mla r1, fp, r5, sl @@ -16745,100 +17013,100 @@ FtlRecoverySuperblock: bic r0, r0, #3 add r0, r6, r0 str r0, [r1, #12] -.L1899: +.L1931: add r3, r3, #1 add r2, r2, #2 uxth r3, r3 -.L1898: +.L1930: cmp r3, r9 - bne .L1900 + bne .L1932 ldrb r3, [r4, #8] @ zero_extendqisi2 cmp r3, #1 movne r3, #0 - bne .L1970 - ldr r3, .L1979 - ldrb r3, [r3, #928] @ zero_extendqisi2 + bne .L2003 + ldr r3, .L2012 + ldrb r3, [r3, #3072] @ zero_extendqisi2 adds r3, r3, #0 movne r3, #1 -.L1970: - ldr r6, .L1979+4 +.L2003: + ldr r6, .L2012+4 mov r1, r5 str r3, [sp, #32] mov sl, #0 ldr r2, [sp, #32] - ldr r0, [r6, #-968] + ldr r0, [r6, #-960] bl FlashReadPages - ldr fp, [r6, #-1800] + ldr fp, [r6, #-1796] movw r2, #65535 str r2, [sp, #12] str fp, [sp, #16] - b .L1902 -.L1907: + b .L1934 +.L1939: mov r3, #36 - ldr r1, [r6, #-968] + ldr r1, [r6, #-960] mul r2, r3, sl add r3, r1, r2 ldr r2, [r1, r2] cmp r2, #0 - bne .L1903 + bne .L1935 ldr r3, [r3, #12] ldr fp, [r3, #4] cmn fp, #1 - beq .L1904 - ldr r1, [r6, #-1800] + beq .L1936 + ldr r1, [r6, #-1796] mov r0, fp str r3, [sp, #4] bl ftl_cmp_data_ver ldr r3, [sp, #4] cmp r0, #0 addne fp, fp, #1 - strne fp, [r6, #-1800] -.L1904: + strne fp, [r6, #-1796] +.L1936: ldr r3, [r3, #0] cmn r3, #1 - bne .L1906 - b .L1905 -.L1903: + bne .L1938 + b .L1937 +.L1935: ldr r1, [r3, #4] uxth fp, r8 - ldr r0, .L1979+8 + ldr r0, .L2012+8 bl printk ldrh r3, [r4, #0] - movw lr, #298 + movw lr, #306 str fp, [sp, #12] strh r3, [r6, lr] @ movhi -.L1906: +.L1938: add sl, sl, #1 -.L1902: +.L1934: uxth r9, sl cmp r9, r5 - bcc .L1907 -.L1905: - ldr r3, .L1979+4 + bcc .L1939 +.L1937: + ldr r3, .L2012+4 cmp r9, r5 addeq r7, r7, #1 uxthne r7, r7 movne r2, #36 - ldrne r3, [r3, #-968] + ldrne r3, [r3, #-960] uxtheq r7, r7 - ldreq r3, [r3, #-968] + ldreq r3, [r3, #-960] mlane r9, r2, r9, r3 ldreq r0, [r3, #4] ldrne r0, [r9, #4] ubfx r0, r0, #10, #16 bl P2V_plane ldrb r2, [r4, #8] @ zero_extendqisi2 - ldr r3, .L1979 + ldr r3, .L2012 cmp r2, #1 str r0, [sp, #24] - bne .L1910 - ldrb r1, [r3, #928] @ zero_extendqisi2 + bne .L1942 + ldrb r1, [r3, #3072] @ zero_extendqisi2 cmp r1, #0 addeq r7, r3, r7, asl #1 movweq r1, #3076 ldreqh r7, [r7, r1] -.L1910: - movw r1, #3916 +.L1942: + movw r1, #3918 ldr r6, [sp, #24] ldrh r3, [r3, r1] ldr fp, [sp, #36] @@ -16853,26 +17121,26 @@ FtlRecoverySuperblock: moveq r0, r4 moveq r1, r7 moveq r2, r6 - beq .L1977 + beq .L2010 ldr r3, [sp, #16] ldr fp, [sp, #12] sub r6, r3, #1 movw r3, #65535 cmp fp, r3 - bne .L1913 + bne .L1945 cmp r2, #0 - bne .L1914 -.L1913: - ldr r2, .L1979+4 + bne .L1946 +.L1945: + ldr r2, .L2012+4 uxth r3, r8 ldr fp, [sp, #20] movw ip, #65535 mov sl, r3 - ldr r8, .L1979+4 - ldr r1, [r2, #-1004] + ldr r8, .L2012+4 + ldr r1, [r2, #-996] cmn r1, #1 - streq r6, [r2, #-1004] - ldr r2, [r2, #-1004] + streq r6, [r2, #-996] + ldr r2, [r2, #-996] str r2, [sp, #12] add r2, fp, #7 cmp r3, r2 @@ -16884,11 +17152,11 @@ FtlRecoverySuperblock: mov r7, r6 uxthgt r5, r5 mov r6, r4 - b .L1917 -.L1919: + b .L1949 +.L1951: ldrh r0, [r1, #16] cmp r0, ip - beq .L1918 + beq .L1950 ldr r6, [sp, #28] mov r3, #36 orr r0, r5, r0, asl #10 @@ -16896,115 +17164,115 @@ FtlRecoverySuperblock: add r4, r4, #1 uxth r4, r4 str r0, [lr, #4] -.L1918: +.L1950: add r2, r2, #1 add r1, r1, #2 uxth r2, r2 -.L1930: +.L1962: ldr lr, [sp, #16] cmp r2, lr - bne .L1919 + bne .L1951 ldr r3, [sp, #40] mov r1, r4 - ldr r0, [r8, #-968] + ldr r0, [r8, #-960] ldr r2, [sp, #32] stmib sp, {r3, ip} ldr r6, [sp, #0] bl FlashReadPages - ldr r2, .L1979 + ldr r2, .L2012 add r0, r8, r5, asl #1 mov r1, #0 str r0, [sp, #28] ldmib sp, {r3, ip} - ldrb r2, [r2, #928] @ zero_extendqisi2 + ldrb r2, [r2, #3072] @ zero_extendqisi2 str r2, [sp, #16] - ldr r2, [r8, #-968] - b .L1920 -.L1928: + ldr r2, [r8, #-960] + b .L1952 +.L1960: ldr r0, [r2, #0] cmp r0, #0 - bne .L1921 + bne .L1953 ldr r0, [r2, #12] ldrh lr, [r0, #0] cmp lr, ip - beq .L1922 + beq .L1954 ldr r0, [r0, #4] cmn r0, #1 - beq .L1922 + beq .L1954 cmn fp, #1 - ldr r9, [r8, #-1004] - str r0, [r8, #-1004] - bne .L1922 + ldr r9, [r8, #-996] + str r0, [r8, #-996] + bne .L1954 ldr lr, [sp, #28] - sub r0, lr, #888 + sub r0, lr, #880 ldrh r0, [r0, #0] cmp r0, ip - bne .L1923 + bne .L1955 ldr r0, [sp, #16] cmp r0, #0 - beq .L1922 -.L1923: + beq .L1954 +.L1955: cmp r9, r7 mvneq fp, #0 movne fp, r9 - b .L1922 -.L1921: + b .L1954 +.L1953: mov r4, r6 mov r6, r7 ldrh r1, [r4, #0] mov r7, r3 - ldr r3, .L1979+4 - movw r2, #298 + ldr r3, .L2012+4 + movw r2, #306 strh r1, [r3, r2] @ movhi ldrb r2, [r4, #8] @ zero_extendqisi2 cmp r2, #0 - bne .L1914 + bne .L1946 add r5, r3, r5, asl #1 movw r2, #65535 - sub r5, r5, #888 + sub r5, r5, #880 ldrh r1, [r5, #0] cmp r1, r2 - bne .L1924 + bne .L1956 cmn fp, #1 - bne .L1972 -.L1925: + bne .L2005 +.L1957: ldr fp, [sp, #12] cmp fp, r6 - beq .L1926 -.L1972: - str fp, [r3, #-1004] - b .L1914 -.L1926: - ldr r2, [r3, #-1004] - b .L1978 -.L1924: + beq .L1958 +.L2005: + str fp, [r3, #-996] + b .L1946 +.L1958: + ldr r2, [r3, #-996] + b .L2011 +.L1956: cmp r9, r6 - beq .L1927 + beq .L1959 cmn r9, #1 - strne r9, [r3, #-1004] - b .L1914 -.L1927: - ldr r2, [r3, #-1004] + strne r9, [r3, #-996] + b .L1946 +.L1959: + ldr r2, [r3, #-996] cmp r2, r6 - beq .L1914 -.L1978: + beq .L1946 +.L2011: sub r2, r2, #1 - b .L1973 -.L1922: + b .L2006 +.L1954: add r1, r1, #1 add r2, r2, #36 uxth r1, r1 -.L1920: +.L1952: cmp r1, r4 - bne .L1928 + bne .L1960 add r5, r5, #1 uxth r5, r5 -.L1917: +.L1949: cmp r5, sl - bhi .L1929 - ldr r1, .L1979 - movw r2, #3848 - ldr lr, [r8, #-968] + bhi .L1961 + ldr r1, .L2012 + movw r2, #3852 + ldr lr, [r8, #-960] mov r4, #0 str r3, [sp, #40] ldrh r2, [r1, r2] @@ -17013,68 +17281,68 @@ FtlRecoverySuperblock: str r6, [sp, #0] str r2, [sp, #16] mov r2, r4 - b .L1930 -.L1929: + b .L1962 +.L1961: mov r4, r6 mov r6, r7 mov r7, r3 - ldr r3, .L1979+4 + ldr r3, .L2012+4 mvn r2, #0 -.L1973: - str r2, [r3, #-1004] -.L1914: - ldr r5, .L1979+4 - mov r3, #300 +.L2006: + str r2, [r3, #-996] +.L1946: + ldr r5, .L2012+4 + mov r3, #308 ldr r8, [sp, #20] mov r2, #1 str r7, [sp, #16] strh r2, [r5, r3] @ movhi -.L1931: - ldr r3, .L1979 - movw r2, #3848 +.L1963: + ldr r3, .L2012 + movw r2, #3852 mov r7, #0 - ldr lr, [r5, #-968] + ldr lr, [r5, #-960] mov fp, #36 ldrh sl, [r3, r2] mov r2, r4 - ldrb ip, [r3, #928] @ zero_extendqisi2 + ldrb ip, [r3, #3072] @ zero_extendqisi2 mov r3, r7 - b .L1932 -.L1935: + b .L1964 +.L1967: ldrh r0, [r2, #16] movw r1, #65535 cmp r0, r1 - beq .L1933 + beq .L1965 mla r1, fp, r7, lr orr r0, r8, r0, asl #10 str r0, [r1, #4] ldrb r9, [r4, #8] @ zero_extendqisi2 cmp r9, #1 - bne .L1934 + bne .L1966 cmp ip, #0 orrne r0, r0, #-2147483648 strne r0, [r1, #4] -.L1934: +.L1966: add r7, r7, #1 uxth r7, r7 -.L1933: +.L1965: add r3, r3, #1 add r2, r2, #2 uxth r3, r3 -.L1932: +.L1964: cmp r3, sl - bne .L1935 + bne .L1967 mov r1, r7 - ldr r0, [r5, #-968] + ldr r0, [r5, #-960] ldr r2, [sp, #32] bl FlashReadPages mov r3, #36 mul r3, r3, r7 mov r7, #0 str r3, [sp, #40] - b .L1936 -.L1956: - ldr r9, [r5, #-968] + b .L1968 +.L1989: + ldr r9, [r5, #-960] add r9, r9, r7 ldr sl, [r9, #4] ubfx r0, sl, #10, #16 @@ -17082,7 +17350,7 @@ FtlRecoverySuperblock: bl P2V_plane ldr r3, [sp, #20] cmp r8, r3 - bcc .L1937 + bcc .L1969 ldr fp, [sp, #36] mov r1, r3 cmp r0, fp @@ -17091,31 +17359,31 @@ FtlRecoverySuperblock: cmp r8, r1 movne r3, #0 cmp r3, #0 - bne .L1937 + bne .L1969 ldr r3, [sp, #24] ldr fp, [sp, #16] cmp r0, r3 cmpeq r8, fp - beq .L1968 + beq .L2001 ldr r3, [r9, #0] cmn r3, #1 - beq .L1939 + beq .L1971 ldr sl, [r9, #12] movw r3, #61589 ldrh r2, [sl, #0] cmp r2, r3 ldrneh r0, [r4, #0] - bne .L1974 + bne .L2007 ldr r6, [sl, #4] cmn r6, #1 - beq .L1941 - ldr r1, [r5, #-1800] + beq .L1973 + ldr r1, [r5, #-1796] mov r0, r6 bl ftl_cmp_data_ver cmp r0, #0 addne r3, r6, #1 - strne r3, [r5, #-1800] -.L1941: + strne r3, [r5, #-1796] +.L1973: ldr r9, [sl, #8] add r1, sp, #56 ldr r3, [sl, #12] @@ -17123,17 +17391,17 @@ FtlRecoverySuperblock: mov r0, r9 str r3, [sp, #52] bl log2phys - ldr r1, [r5, #-1004] + ldr r1, [r5, #-996] cmn r1, #1 - beq .L1942 + beq .L1974 mov r0, r6 bl ftl_cmp_data_ver cmp r0, #0 - beq .L1942 + beq .L1974 ldr r3, [sp, #52] cmn r3, #1 - beq .L1943 - ldr r0, [r5, #-968] + beq .L1975 + ldr r0, [r5, #-960] mov r1, #1 mov r2, #0 add r0, r0, r7 @@ -17143,43 +17411,43 @@ FtlRecoverySuperblock: bl FlashReadPages ldr r3, [fp, #4] str r3, [sp, #28] - ldr r3, [r5, #-968] + ldr r3, [r5, #-960] add fp, r3, r7 ldr r3, [r3, r7] cmn r3, #1 - bne .L1944 - b .L1945 -.L1943: + bne .L1976 + b .L1977 +.L1975: ldr r3, [sp, #60] ldr r2, [sp, #56] cmp r2, r3 - bne .L1937 + bne .L1969 mov r0, r9 add r1, sp, #52 mov r2, #1 bl log2phys - b .L1937 -.L1944: + b .L1969 +.L1976: ldr r3, [sp, #12] ldr sl, [r3, #8] cmp sl, r9 - bne .L1945 - ldr r0, [r5, #-1004] + bne .L1977 + ldr r0, [r5, #-996] ldr r1, [sp, #28] bl ftl_cmp_data_ver cmp r0, #0 - beq .L1945 + beq .L1977 ldr r3, [sp, #56] ldr r2, [sp, #60] cmp r3, r2 - beq .L1949 -.L1946: + beq .L1981 +.L1978: ldr r2, [sp, #52] cmp r3, r2 - beq .L1945 + beq .L1977 cmn r3, #1 streq r3, [fp, #0] - beq .L1948 + beq .L1980 ldr lr, [fp, #12] mov r0, fp str r3, [fp, #4] @@ -17187,177 +17455,185 @@ FtlRecoverySuperblock: mov r2, #0 str lr, [sp, #12] bl FlashReadPages -.L1948: - ldr r3, [r5, #-968] +.L1980: + ldr r3, [r5, #-960] ldr r3, [r3, r7] cmn r3, #1 - beq .L1949 + beq .L1981 ldr r3, [sp, #12] - ldr r0, [r5, #-1004] + ldr r0, [r5, #-996] ldr r9, [r3, #4] mov r1, r9 bl ftl_cmp_data_ver cmp r0, #0 - beq .L1949 + beq .L1981 ldr r0, [sp, #28] mov r1, r9 bl ftl_cmp_data_ver cmp r0, #0 - beq .L1945 -.L1949: + beq .L1977 +.L1981: mov r0, sl ldr r1, [sp, #52] bl FtlReUsePrevPpa -.L1945: +.L1977: mvn r3, #0 str r3, [sp, #52] - b .L1951 -.L1942: + b .L1983 +.L1974: ldr r3, [sp, #60] ldr r2, [sp, #56] cmp r2, r3 - beq .L1951 + beq .L1983 + ldr r2, .L2012 + ldr r3, [sp, #52] + ldr r2, [r2, #3868] + cmp r2, r3, lsr #10 + bhi .L1984 + cmn r3, #1 + bne .L1969 +.L1984: mov r0, r9 add r1, sp, #60 mov r2, #1 bl log2phys ldr fp, [sp, #56] cmn fp, #1 - beq .L1951 + beq .L1983 ldr r3, [sp, #52] cmp fp, r3 - beq .L1951 + beq .L1983 ubfx r0, fp, #10, #16 bl P2V_block_in_plane - ldr r3, .L1979+12 + ldr r3, .L2012+12 ldrh r3, [r5, r3] cmp r3, r0 - beq .L1952 - ldr r3, .L1979+16 + beq .L1985 + ldr r3, .L2012+16 ldrh r3, [r5, r3] cmp r3, r0 - beq .L1952 - ldr r3, .L1979+20 + beq .L1985 + ldr r3, .L2012+20 ldrh r3, [r5, r3] cmp r3, r0 - bne .L1951 -.L1952: - ldr lr, .L1979+4 + bne .L1983 +.L1985: + ldr lr, .L2012+4 mov r1, #1 mov r2, #0 - ldr r0, [lr, #-968] + ldr r0, [lr, #-960] str fp, [r0, #4] ldr sl, [r0, #12] bl FlashReadPages - ldr r0, .L1979+4 + ldr r0, .L2012+4 ldr r1, [sl, #4] - ldr r3, [r0, #-968] + ldr r3, [r0, #-960] ldr r3, [r3, #0] cmn r3, #1 - beq .L1951 + beq .L1983 mov r0, r6 bl ftl_cmp_data_ver cmp r0, #0 - bne .L1951 + bne .L1983 mov r0, r9 add r1, sp, #56 mov r2, #1 bl log2phys -.L1951: +.L1983: ldr r0, [sp, #52] cmn r0, #1 - beq .L1937 + beq .L1969 ubfx r0, r0, #10, #16 bl P2V_block_in_plane - ldr r2, [r5, #-2016] + ldr r2, [r5, #-2012] mov r3, r0, asl #1 mov r1, r0 ldrh r3, [r2, r3] cmp r3, #0 - beq .L1953 -.L1974: + beq .L1986 +.L2007: bl decrement_vpc_count - b .L1937 -.L1953: - ldr r0, .L1979+24 + b .L1969 +.L1986: + ldr r0, .L2012+24 bl printk - b .L1937 -.L1939: + b .L1969 +.L1971: ldrh r3, [r4, #0] - movw r1, #298 + movw r1, #306 mov r2, r6 - ldr r0, .L1979+28 + ldr r0, .L2012+28 strh r3, [r5, r1] @ movhi mov r1, sl bl printk - ldr r3, [r5, #304] + ldr r3, [r5, #312] cmp r3, #31 addls r2, r5, r3, asl #2 addls r3, r3, #1 ldrls r1, [sp, #60] - strls r3, [r5, #304] - strls r1, [r2, #308] + strls r3, [r5, #312] + strls r1, [r2, #316] ldrh r0, [r4, #0] bl decrement_vpc_count - ldr r3, [r5, #-1004] + ldr r3, [r5, #-996] cmn r3, #1 - beq .L1975 -.L1955: + beq .L2008 +.L1988: cmp r3, r6 - bls .L1937 -.L1975: - str r6, [r5, #-1004] -.L1937: + bls .L1969 +.L2008: + str r6, [r5, #-996] +.L1969: add r7, r7, #36 -.L1936: +.L1968: ldr r3, [sp, #40] cmp r7, r3 - bne .L1956 + bne .L1989 ldrb r3, [r4, #8] @ zero_extendqisi2 add r8, r8, #1 cmp r3, #1 uxth r8, r8 - bne .L1957 - ldr r3, .L1979 - ldrb r2, [r3, #928] @ zero_extendqisi2 + bne .L1990 + ldr r3, .L2012 + ldrb r2, [r3, #3072] @ zero_extendqisi2 cmp r2, #0 - beq .L1957 - movw r2, #3918 + beq .L1990 + mov r2, #3920 ldr fp, [sp, #16] ldrh r3, [r3, r2] cmp fp, r8 cmpeq r3, r8 - beq .L1968 -.L1957: - ldr r3, .L1979 - movw r2, #3916 + beq .L2001 +.L1990: + ldr r3, .L2012 + movw r2, #3918 ldrh r2, [r3, r2] cmp r8, r2 - bne .L1931 + bne .L1963 mov r2, #0 - movw r1, #3848 + movw r1, #3852 strh r2, [r4, #4] @ movhi ldrh r1, [r3, r1] mov r3, r2 strh r8, [r4, #2] @ movhi movw r2, #65535 ldr r0, [sp, #44] - b .L1958 -.L1960: + b .L1991 +.L1993: add r0, r0, #2 ldrh ip, [r0, #14] cmp ip, r2 strneb r3, [r4, #6] - bne .L1891 -.L1959: + bne .L1923 +.L1992: add r3, r3, #1 uxth r3, r3 -.L1958: +.L1991: cmp r3, r1 - bne .L1960 - b .L1891 -.L1968: -.L1938: + bne .L1993 + b .L1923 +.L2001: +.L1970: ldr r7, [sp, #16] mov r0, r4 ldr r3, [sp, #24] @@ -17365,23 +17641,23 @@ FtlRecoverySuperblock: strh r7, [r4, #2] @ movhi mov r2, r3 strb r3, [r4, #6] -.L1977: +.L2010: bl ftl_sb_update_avl_pages -.L1891: +.L1923: mov r0, #0 add sp, sp, #68 ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L1980: +.L2013: .align 2 -.L1979: +.L2012: .word .LANCHOR0 .word .LANCHOR2 - .word .LC143 - .word -1996 - .word -1948 - .word -1900 .word .LC144 + .word -1992 + .word -1944 + .word -1896 .word .LC145 + .word .LC146 .fnend .size FtlRecoverySuperblock, .-FtlRecoverySuperblock .align 2 @@ -17395,77 +17671,77 @@ FtlWriteDumpData: .save {r4, r5, r6, r7, r8, sl, lr} .pad #44 sub sp, sp, #44 - ldr r5, .L1990 - ldr r3, [r5, #4040] + ldr r5, .L2023 + ldr r3, [r5, #4044] cmp r3, #0 - bne .L1981 - ldr r4, .L1990+4 - ldr r3, .L1990+8 + bne .L2014 + ldr r4, .L2023+4 + ldr r3, .L2023+8 mov r2, r4 ldrh r3, [r4, r3] cmp r3, #0 - beq .L1983 - ldrb r1, [r4, #-1988] @ zero_extendqisi2 + beq .L2016 + ldrb r1, [r4, #-1984] @ zero_extendqisi2 cmp r1, #0 - bne .L1983 - movw r0, #3916 - ldrb r1, [r4, #-1989] @ zero_extendqisi2 + bne .L2016 + movw r0, #3918 + ldrb r1, [r4, #-1985] @ zero_extendqisi2 ldrh r0, [r5, r0] mul r1, r0, r1 cmp r3, r1 - beq .L1983 - ldrb r8, [r4, #-1986] @ zero_extendqisi2 - movw r3, #3848 - ldr r7, [r5, #3976] + beq .L2016 + ldrb r8, [r4, #-1982] @ zero_extendqisi2 + movw r3, #3852 + ldr r7, [r5, #3980] cmp r8, #0 ldrh r6, [r5, r3] - bne .L1981 + bne .L2014 sub r7, r7, #1 mov r1, sp mov r2, r8 mov r0, r7 bl log2phys ldr r3, [sp, #0] - ldr r0, [r4, #-956] - ldr r4, [r4, #-932] + ldr r0, [r4, #-948] + ldr r4, [r4, #-924] cmn r3, #1 str r3, [sp, #8] str r7, [sp, #20] str r0, [sp, #12] str r4, [sp, #16] str r8, [r4, #4] - beq .L1984 + beq .L2017 add r0, sp, #4 mov r1, #1 mov r2, r8 bl FlashReadPages - b .L1985 -.L1984: - movw r3, #3926 + b .L2018 +.L2017: + movw r3, #3928 mov r1, #255 ldrh r2, [r5, r3] bl ftl_memset -.L1985: - ldr r3, .L1990+12 +.L2018: + ldr r3, .L2023+12 mov r6, r6, asl #2 - ldr r5, .L1990+4 - ldr sl, .L1990+8 + ldr r5, .L2023+4 + ldr sl, .L2023+8 strh r3, [r4, #0] @ movhi - ldr r8, .L1990+16 - b .L1986 -.L1989: + ldr r8, .L2023+16 + b .L2019 +.L2022: ldrh r3, [r5, sl] cmp r3, #0 - beq .L1987 + beq .L2020 ldr r3, [sp, #8] sub r6, r6, #1 str r7, [r4, #8] - ldr r0, .L1990+20 + ldr r0, .L2023+20 str r3, [r4, #12] ldrh r3, [r5, r8] strh r3, [r4, #2] @ movhi bl get_new_active_ppa - ldr r3, [r5, #-1800] + ldr r3, [r5, #-1796] mov r2, #0 mov r1, #1 str r0, [sp, #8] @@ -17473,36 +17749,36 @@ FtlWriteDumpData: str r3, [r4, #4] add r3, r3, #1 cmn r3, #1 - str r3, [r5, #-1800] + str r3, [r5, #-1796] moveq r3, #0 - streq r3, [r5, #-1800] + streq r3, [r5, #-1796] mov r3, r2 bl FlashProgPages ldrh r0, [r5, r8] bl decrement_vpc_count -.L1986: +.L2019: cmp r6, #0 - bne .L1989 -.L1987: - ldr r3, .L1990+4 + bne .L2022 +.L2020: + ldr r3, .L2023+4 mov r2, #1 - strb r2, [r3, #-1986] - b .L1981 -.L1983: + strb r2, [r3, #-1982] + b .L2014 +.L2016: mov r3, #0 - strb r3, [r2, #-1986] -.L1981: + strb r3, [r2, #-1982] +.L2014: add sp, sp, #44 ldmfd sp!, {r4, r5, r6, r7, r8, sl, pc} -.L1991: +.L2024: .align 2 -.L1990: +.L2023: .word .LANCHOR0 .word .LANCHOR2 - .word -1992 + .word -1988 .word -3947 - .word -1996 - .word .LANCHOR2-1996 + .word -1992 + .word .LANCHOR2-1992 .fnend .size FtlWriteDumpData, .-FtlWriteDumpData .align 2 @@ -17516,31 +17792,31 @@ l2p_flush: .save {r3, r4, r5, r6, r7, lr} bl FtlWriteDumpData mov r4, #0 - ldr r7, .L1996 - movw r6, #3954 - ldr r5, .L1996+4 - b .L1993 -.L1995: - ldr r3, [r5, #-1852] + ldr r7, .L2029 + movw r6, #3958 + ldr r5, .L2029+4 + b .L2026 +.L2028: + ldr r3, [r5, #-1848] mov r2, #12 mla r3, r2, r4, r3 ldr r3, [r3, #4] cmp r3, #0 - bge .L1994 + bge .L2027 mov r0, r4 bl flush_l2p_region -.L1994: +.L2027: add r4, r4, #1 uxth r4, r4 -.L1993: +.L2026: ldrh r3, [r7, r6] cmp r3, r4 - bhi .L1995 + bhi .L2028 mov r0, #0 ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L1997: +.L2030: .align 2 -.L1996: +.L2029: .word .LANCHOR0 .word .LANCHOR2 .fnend @@ -17552,107 +17828,107 @@ allocate_new_data_superblock: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L2010 + ldr r3, .L2043 stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} mov r4, r0 - ldr r3, [r3, #4040] + ldr r3, [r3, #4044] ldrh r5, [r0, #0] cmp r3, #0 - bne .L1999 + bne .L2032 movw r3, #65535 cmp r5, r3 - beq .L2000 - ldr r3, .L2010+4 + beq .L2033 + ldr r3, .L2043+4 mov r0, r5 - ldr r2, [r3, #-2016] + ldr r2, [r3, #-2012] mov r3, r5, asl #1 ldrh r3, [r2, r3] cmp r3, #0 - beq .L2001 + beq .L2034 bl INSERT_DATA_LIST - b .L2000 -.L2001: + b .L2033 +.L2034: bl INSERT_FREE_LIST -.L2000: +.L2033: mov r3, #0 strb r3, [r4, #8] - ldr r3, .L2010+8 + ldr r3, .L2043+8 cmp r4, r3 - beq .L2002 - ldr r2, .L2010 - movw r3, #3868 + beq .L2035 + ldr r2, .L2043 + mov r3, #3872 ldrh r3, [r2, r3] cmp r3, #1 - beq .L2002 - ldrb r2, [r2, #928] @ zero_extendqisi2 + beq .L2035 + ldrb r2, [r2, #3072] @ zero_extendqisi2 cmp r2, #0 - beq .L2003 -.L2002: + beq .L2036 +.L2035: mov r3, #1 strb r3, [r4, #8] - b .L2004 -.L2003: - ldr r2, .L2010+12 + b .L2037 +.L2036: + ldr r2, .L2043+12 cmp r4, r2 - bne .L2004 + bne .L2037 cmp r3, #3 - ldr r3, .L2010+4 - beq .L2005 - ldr r2, [r3, #-1712] + ldr r3, .L2043+4 + beq .L2038 + ldr r2, [r3, #-1704] cmp r2, #1 - bne .L2006 -.L2005: + bne .L2039 +.L2038: mov r2, #1 - strb r2, [r3, #-1988] -.L2006: - ldr r2, .L2010 - ldr r2, [r2, #3840] + strb r2, [r3, #-1984] +.L2039: + ldr r2, .L2043 + ldr r2, [r2, #3844] cmp r2, #0 - beq .L2004 - ldr r3, [r3, #-1780] + beq .L2037 + ldr r3, [r3, #-1776] cmp r3, #39 - ldrls r3, .L2010+4 + ldrls r3, .L2043+4 movls r2, #1 - strlsb r2, [r3, #-1988] -.L2004: - ldr r3, .L2010+16 - ldr r6, .L2010+4 + strlsb r2, [r3, #-1984] +.L2037: + ldr r3, .L2043+16 + ldr r6, .L2043+4 ldrh r0, [r6, r3] movw r3, #65535 cmp r0, r3 - beq .L2007 + beq .L2040 cmp r5, r0 - bne .L2008 - ldr r2, [r6, #-2016] + bne .L2041 + ldr r2, [r6, #-2012] mov r3, r0, asl #1 ldrh r3, [r2, r3] cmp r3, #0 - beq .L2009 -.L2008: + beq .L2042 +.L2041: bl update_vpc_list -.L2009: - ldr r3, .L2010+16 +.L2042: + ldr r3, .L2043+16 mvn r2, #0 strh r2, [r6, r3] @ movhi -.L2007: +.L2040: mov r0, r4 bl allocate_data_superblock bl l2p_flush mov r0, #0 bl FtlEctTblFlush bl FtlVpcTblFlush -.L1999: +.L2032: mov r0, #0 ldmfd sp!, {r4, r5, r6, pc} -.L2011: +.L2044: .align 2 -.L2010: +.L2043: .word .LANCHOR0 .word .LANCHOR2 - .word .LANCHOR2-1948 - .word .LANCHOR2-1996 - .word -1016 + .word .LANCHOR2-1944 + .word .LANCHOR2-1992 + .word -1008 .fnend .size allocate_new_data_superblock, .-allocate_new_data_superblock .align 2 @@ -17665,101 +17941,101 @@ FtlVpcCheckAndModify: stmfd sp!, {r0, r1, r4, r5, r6, r7, r8, lr} .save {r0, r1, r4, r5, r6, r7, r8, lr} mov r4, #0 - ldr r6, .L2020 - ldr r1, .L2020+4 - ldr r0, .L2020+8 + ldr r6, .L2053 + ldr r1, .L2053+4 + ldr r0, .L2053+8 bl printk - movw r3, #3858 + movw r3, #3862 ldrh r2, [r6, r3] mov r1, #0 - ldr r5, .L2020+12 + ldr r5, .L2053+12 mov r2, r2, asl #1 - ldr r0, [r5, #-912] + ldr r0, [r5, #-904] bl ftl_memset - b .L2013 -.L2015: + b .L2046 +.L2048: mov r0, r4 add r1, sp, #4 mov r2, #0 bl log2phys ldr r0, [sp, #4] cmn r0, #1 - beq .L2014 + beq .L2047 ubfx r0, r0, #10, #16 bl P2V_block_in_plane - ldr r3, [r5, #-912] + ldr r3, [r5, #-904] mov r0, r0, asl #1 ldrh r2, [r3, r0] add r2, r2, #1 strh r2, [r3, r0] @ movhi -.L2014: +.L2047: add r4, r4, #1 -.L2013: - ldr r3, [r6, #3976] +.L2046: + ldr r3, [r6, #3980] cmp r4, r3 - bcc .L2015 + bcc .L2048 mov r4, #0 - ldr r7, .L2020 - ldr r5, .L2020+12 - movw r8, #65535 - b .L2016 -.L2019: - ldr r3, [r5, #-2016] + ldr r7, .L2053 + movw r8, #3860 + ldr r5, .L2053+12 + b .L2049 +.L2052: + ldr r3, [r5, #-2012] mov r6, r4, asl #1 ldrh r2, [r3, r6] - ldr r3, [r5, #-912] + ldr r3, [r5, #-904] ldrh r3, [r3, r6] cmp r2, r3 - beq .L2017 - cmp r2, r8 - beq .L2017 - ldr r0, .L2020+16 + beq .L2050 + movw r1, #65535 + cmp r2, r1 + beq .L2050 + ldr r0, .L2053+16 mov r1, r4 bl printk - ldr r3, .L2020+20 + ldr r3, .L2053+20 ldrh r3, [r5, r3] cmp r3, r4 - beq .L2017 - ldr r3, .L2020+24 + beq .L2050 + ldr r3, .L2053+24 ldrh r3, [r5, r3] cmp r3, r4 - beq .L2017 - ldr r3, .L2020+28 + beq .L2050 + ldr r3, .L2053+28 ldrh r3, [r5, r3] cmp r3, r4 - beq .L2017 - ldr r3, [r5, #-2016] + beq .L2050 + ldr r3, [r5, #-2012] ldrh r2, [r3, r6] cmp r2, #0 - ldr r2, [r5, #-912] + ldr r2, [r5, #-904] ldrh r2, [r2, r6] strh r2, [r3, r6] @ movhi - beq .L2017 -.L2018: + beq .L2050 +.L2051: mov r0, r4 bl update_vpc_list -.L2017: +.L2050: add r4, r4, #1 uxth r4, r4 -.L2016: - mov r3, #3856 - ldrh r3, [r7, r3] +.L2049: + ldrh r3, [r7, r8] cmp r3, r4 - bhi .L2019 + bhi .L2052 bl l2p_flush bl FtlVpcTblFlush ldmfd sp!, {r2, r3, r4, r5, r6, r7, r8, pc} -.L2021: +.L2054: .align 2 -.L2020: +.L2053: .word .LANCHOR0 .word .LANCHOR3+48 - .word .LC102 + .word .LC101 .word .LANCHOR2 - .word .LC146 - .word -1996 - .word -1900 - .word -1948 + .word .LC147 + .word -1992 + .word -1896 + .word -1944 .fnend .size FtlVpcCheckAndModify, .-FtlVpcCheckAndModify .align 2 @@ -17769,101 +18045,101 @@ FtlGcFreeTempBlock: .fnstart @ args = 0, pretend = 0, frame = 8 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L2045 - stmfd sp!, {r0, r1, r2, r4, r5, r6, r7, r8, sl, lr} - .save {r0, r1, r2, r4, r5, r6, r7, r8, sl, lr} - movw r2, #3916 + ldr r3, .L2078 + movw r2, #3918 + stmfd sp!, {r0, r1, r4, r5, r6, r7, r8, lr} + .save {r0, r1, r4, r5, r6, r7, r8, lr} ldrh r1, [r3, r2] - ldr r2, [r3, #4040] + ldr r2, [r3, #4044] cmp r2, #0 - bne .L2043 - ldr ip, .L2045+4 - ldr r3, .L2045+8 + bne .L2076 + ldr ip, .L2078+4 + ldr r3, .L2078+8 ldrh r4, [r3, ip] movw ip, #65535 cmp r4, ip - beq .L2024 + beq .L2057 cmp r0, #0 - beq .L2025 - ldr lr, .L2045+12 - movw r0, #3096 + beq .L2058 + ldr lr, .L2078+12 + movw r0, #3224 ldrh r5, [lr, r0] cmp r5, ip movne r1, #2 - bne .L2025 + bne .L2058 strh r2, [lr, r0] @ movhi - sub r2, r2, #2000 + ldr r2, .L2078+16 ldrh r3, [r3, r2] cmp r3, #17 movhi r1, #2 -.L2025: - ldr r0, .L2045+16 +.L2058: + ldr r0, .L2078+20 bl FtlGcScanTempBlk cmn r0, #1 str r0, [sp, #4] - beq .L2026 - ldr r3, .L2045 + beq .L2059 + ldr r3, .L2078 mov r4, r4, asl #1 - ldr r3, [r3, #4048] + ldr r3, [r3, #4052] ldrh r2, [r3, r4] cmp r2, #4 - bls .L2027 + bls .L2060 sub r2, r2, #5 mov r0, #1 strh r2, [r3, r4] @ movhi bl FtlEctTblFlush -.L2027: - ldr r3, .L2045+8 - ldr r2, [r3, #-1008] +.L2060: + ldr r3, .L2078+8 + ldr r2, [r3, #-1000] cmp r2, #0 - bne .L2028 - ldr r2, [r3, #-1612] + bne .L2061 + ldr r2, [r3, #-1604] ldr r0, [sp, #4] add r2, r2, #1 - str r2, [r3, #-1612] + str r2, [r3, #-1604] ubfx r0, r0, #10, #16 bl FtlBbmMapBadBlock bl FtlBbmTblFlush -.L2028: - ldr r3, .L2045+8 +.L2061: + ldr r3, .L2078+8 mov r2, #0 - str r2, [r3, #-1008] - b .L2040 -.L2026: - ldr r2, .L2045+12 - movw r3, #3096 + str r2, [r3, #-1000] + b .L2073 +.L2059: + ldr r2, .L2078+12 + movw r3, #3224 ldrh r2, [r2, r3] movw r3, #65535 cmp r2, r3 - bne .L2040 -.L2024: - ldr r6, .L2045+8 + bne .L2073 +.L2057: + ldr r6, .L2078+8 movw r3, #65535 - ldr r5, .L2045+4 + ldr r5, .L2078+4 mov r4, #0 - str r4, [r6, #-1008] + str r4, [r6, #-1000] ldrh r2, [r6, r5] cmp r2, r3 - beq .L2023 + beq .L2056 bl FtlCacheWriteBack - ldr ip, .L2045 - movw r0, #3916 - ldrb r1, [r6, #-1893] @ zero_extendqisi2 + ldr ip, .L2078 + movw r0, #3918 + ldrb r1, [r6, #-1889] @ zero_extendqisi2 ldrh r3, [r6, r5] ldrh r0, [ip, r0] - ldr r2, [r6, #-2016] - ldr sl, .L2045+20 + ldr r2, [r6, #-2012] mov r3, r3, asl #1 mul r1, r0, r1 strh r1, [r2, r3] @ movhi - ldr r3, [r6, #-1816] - ldrh r2, [r6, sl] + ldr r3, .L2078+24 + ldrh r2, [r6, r3] + ldr r3, [r6, #-1812] add r3, r2, r3 - str r3, [r6, #-1816] - b .L2029 -.L2032: + str r3, [r6, #-1812] + b .L2062 +.L2065: mov r7, #12 - ldr r8, [r6, #-1148] + ldr r8, [r6, #-1140] mul r7, r7, r4 add r1, sp, #4 mov r2, #0 @@ -17873,7 +18149,7 @@ FtlGcFreeTempBlock: ldr r0, [sp, #4] ldr r3, [r8, r7] cmp r0, r3 - bne .L2030 + bne .L2063 ubfx r0, r0, #10, #16 bl P2V_block_in_plane add r1, r5, #4 @@ -17882,153 +18158,152 @@ FtlGcFreeTempBlock: ldr r0, [r5, #8] bl log2phys mov r0, r7 - b .L2044 -.L2030: + b .L2077 +.L2063: ldr r3, [r5, #4] cmp r0, r3 - beq .L2031 - ldr r3, .L2045+4 + beq .L2064 + ldr r3, .L2078+4 ldrh r0, [r6, r3] -.L2044: +.L2077: bl decrement_vpc_count -.L2031: +.L2064: add r4, r4, #1 uxth r4, r4 -.L2029: - ldrh r3, [r6, sl] - ldr r5, .L2045+8 +.L2062: + ldr r3, .L2078+24 + ldr r5, .L2078+8 + ldrh r3, [r6, r3] cmp r3, r4 - bhi .L2032 + bhi .L2065 movw r0, #65535 - ldr r4, .L2045+4 + ldr r4, .L2078+4 bl decrement_vpc_count - ldr r3, .L2045 - ldrb r3, [r3, #928] @ zero_extendqisi2 + ldr r3, .L2078 + ldrb r3, [r3, #3072] @ zero_extendqisi2 cmp r3, #0 - beq .L2033 - ldr r0, .L2045+24 + beq .L2066 + ldr r0, .L2078+28 ldrh r1, [r5, r4] bl printk -.L2033: +.L2066: ldrh r0, [r5, r4] - ldr r2, [r5, #-2016] + ldr r2, [r5, #-2012] mov r3, r0, asl #1 ldrh r3, [r2, r3] cmp r3, #0 - beq .L2034 + beq .L2067 bl INSERT_DATA_LIST - b .L2035 -.L2034: + b .L2068 +.L2067: bl INSERT_FREE_LIST -.L2035: - ldr r5, .L2045+8 +.L2068: + ldr r5, .L2078+8 mvn r6, #0 - ldr r3, .L2045+4 + ldr r3, .L2078+4 mov r4, #0 strh r6, [r5, r3] @ movhi - add r3, r3, #756 + add r3, r3, #760 strh r4, [r5, r3] @ movhi sub r3, r3, #12 strh r4, [r5, r3] @ movhi bl l2p_flush bl FtlVpcTblFlush - ldr r3, .L2045+28 - mov r2, r5 + ldr r3, .L2078+32 + mov r0, r5 + ldr r2, .L2078+16 strh r6, [r5, r3] @ movhi - ldr r3, .L2045 - ldr r3, [r3, #3840] + ldr r3, .L2078 + ldr r3, [r3, #3844] cmp r3, r4 - beq .L2036 - ldr r3, [r5, #-1780] - cmp r3, #39 - bhi .L2036 - ldr r3, .L2045+32 - ldr r2, .L2045+36 + ldr r3, .L2078+36 + beq .L2069 + ldr r1, [r5, #-1776] + cmp r1, #39 + bhi .L2069 ldrh r3, [r5, r3] ldrh r2, [r5, r2] cmp r2, r3 - ldrcc r2, .L2045+40 + ldrcc r2, .L2078+40 movcc r3, r3, asl #1 strcch r3, [r5, r2] @ movhi - b .L2023 -.L2036: - ldr r3, .L2045+32 - ldr r0, .L2045+36 - ldr r1, .L2045+8 - ldrh r3, [r2, r3] - ldrh r2, [r2, r0] + b .L2056 +.L2069: + ldrh r3, [r0, r3] + ldrh r2, [r0, r2] + ldr r1, .L2078+8 add r0, r3, r3, asl #1 cmp r2, r0, lsr #2 - ble .L2043 - ldr r2, .L2045 - ldrb r4, [r2, #928] @ zero_extendqisi2 - ldr r2, .L2045+40 + ble .L2076 + ldr r2, .L2078 + ldrb r4, [r2, #3072] @ zero_extendqisi2 + ldr r2, .L2078+40 cmp r4, #0 subne r3, r3, #2 moveq r3, #20 strneh r3, [r1, r2] @ movhi streqh r3, [r1, r2] @ movhi - beq .L2023 - b .L2043 -.L2040: + beq .L2056 + b .L2076 +.L2073: mov r4, #1 - b .L2023 -.L2043: + b .L2056 +.L2076: mov r4, #0 -.L2023: +.L2056: mov r0, r4 - ldmfd sp!, {r1, r2, r3, r4, r5, r6, r7, r8, sl, pc} -.L2046: + ldmfd sp!, {r2, r3, r4, r5, r6, r7, r8, pc} +.L2079: .align 2 -.L2045: +.L2078: .word .LANCHOR0 - .word -1900 + .word -1896 .word .LANCHOR2 .word .LANCHOR1 - .word .LANCHOR2-1900 - .word -1144 - .word .LC147 - .word -1760 - .word -1776 - .word -2000 - .word -1196 + .word -1996 + .word .LANCHOR2-1896 + .word -1136 + .word .LC148 + .word -1752 + .word -1772 + .word -1188 .fnend .size FtlGcFreeTempBlock, .-FtlGcFreeTempBlock .align 2 - .type Ftl_gc_temp_data_write_back.part.21, %function -Ftl_gc_temp_data_write_back.part.21: + .type Ftl_gc_temp_data_write_back.part.23, %function +Ftl_gc_temp_data_write_back.part.23: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, r4, r5, r6, r7, lr} .save {r3, r4, r5, r6, r7, lr} mov r2, #0 - ldr r4, .L2053 + ldr r4, .L2086 mov r3, r2 mov r5, #0 mov r6, #36 - ldr r0, [r4, #-964] - ldr r1, [r4, #-1180] + ldr r0, [r4, #-956] + ldr r1, [r4, #-1172] bl FlashProgPages - b .L2048 -.L2051: + b .L2081 +.L2084: mul r3, r6, r5 - ldr r1, [r4, #-964] + ldr r1, [r4, #-956] add r2, r1, r3 ldr r1, [r1, r3] cmn r1, #1 - bne .L2049 - ldr r2, .L2053+4 + bne .L2082 + ldr r2, .L2086+4 mov lr, #0 - ldr ip, [r7, #-2016] + ldr ip, [r7, #-2012] ldrh r0, [r7, r2] mov r0, r0, asl #1 strh lr, [ip, r0] @ movhi strh r1, [r7, r2] @ movhi - ldr r2, [r7, #-1612] + ldr r2, [r7, #-1604] add r2, r2, #1 - str r2, [r7, #-1612] - ldr r2, [r7, #-964] + str r2, [r7, #-1604] + ldr r2, [r7, #-956] add r3, r2, r3 ldr r0, [r3, #4] ubfx r0, r0, #10, #16 @@ -18037,7 +18312,7 @@ Ftl_gc_temp_data_write_back.part.21: bl FtlGcPageVarInit mov r0, #1 ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L2049: +.L2082: ldr r3, [r2, #12] add r5, r5, #1 ldr r1, [r2, #4] @@ -18045,16 +18320,16 @@ Ftl_gc_temp_data_write_back.part.21: ldr r0, [r3, #12] ldr r2, [r3, #8] bl FtlGcUpdatePage -.L2048: - ldr r1, [r4, #-1180] - ldr r7, .L2053 +.L2081: + ldr r1, [r4, #-1172] + ldr r7, .L2086 cmp r5, r1 - bcc .L2051 - ldr r0, [r7, #-964] + bcc .L2084 + ldr r0, [r7, #-956] bl FtlGcBufFree - ldr r3, .L2053+8 + ldr r3, .L2086+8 mov r0, #0 - str r0, [r7, #-1180] + str r0, [r7, #-1172] ldrh r3, [r7, r3] cmp r3, r0 ldmnefd sp!, {r3, r4, r5, r6, r7, pc} @@ -18062,14 +18337,14 @@ Ftl_gc_temp_data_write_back.part.21: bl FtlGcFreeTempBlock mov r0, #1 ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L2054: +.L2087: .align 2 -.L2053: +.L2086: .word .LANCHOR2 - .word -1900 .word -1896 + .word -1892 .fnend - .size Ftl_gc_temp_data_write_back.part.21, .-Ftl_gc_temp_data_write_back.part.21 + .size Ftl_gc_temp_data_write_back.part.23, .-Ftl_gc_temp_data_write_back.part.23 .align 2 .global Ftl_gc_temp_data_write_back .type Ftl_gc_temp_data_write_back, %function @@ -18078,32 +18353,32 @@ Ftl_gc_temp_data_write_back: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L2060 - ldr r2, [r3, #4040] + ldr r3, .L2093 + ldr r2, [r3, #4044] cmp r2, #0 - bne .L2056 - ldrb r3, [r3, #928] @ zero_extendqisi2 + bne .L2089 + ldrb r3, [r3, #3072] @ zero_extendqisi2 cmp r3, #0 - beq .L2057 - ldr r3, .L2060+4 - ldr r2, [r3, #-1180] + beq .L2090 + ldr r3, .L2093+4 + ldr r2, [r3, #-1172] tst r2, #1 - beq .L2057 - ldr r2, .L2060+8 + beq .L2090 + ldr r2, .L2093+8 ldrh r3, [r3, r2] cmp r3, #0 - bne .L2056 -.L2057: - b Ftl_gc_temp_data_write_back.part.21 -.L2056: + bne .L2089 +.L2090: + b Ftl_gc_temp_data_write_back.part.23 +.L2089: mov r0, #0 bx lr -.L2061: +.L2094: .align 2 -.L2060: +.L2093: .word .LANCHOR0 .word .LANCHOR2 - .word -1896 + .word -1892 .fnend .size Ftl_gc_temp_data_write_back, .-Ftl_gc_temp_data_write_back .align 2 @@ -18115,32 +18390,32 @@ FtlGcPageRecovery: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} - movw r5, #3916 - ldr r6, .L2064 - ldr r0, .L2064+4 - ldr r4, .L2064+8 + movw r5, #3918 + ldr r6, .L2097 + ldr r0, .L2097+4 + ldr r4, .L2097+8 ldrh r1, [r6, r5] bl FtlGcScanTempBlk - ldr r3, .L2064+12 + ldr r3, .L2097+12 ldrh r2, [r4, r3] ldrh r3, [r6, r5] cmp r2, r3 ldmccfd sp!, {r4, r5, r6, pc} - ldr r0, .L2064+16 + ldr r0, .L2097+16 bl FtlMapBlkWriteDumpData mov r0, #0 bl FtlGcFreeTempBlock mov r3, #0 - str r3, [r4, #-1008] + str r3, [r4, #-1000] ldmfd sp!, {r4, r5, r6, pc} -.L2065: +.L2098: .align 2 -.L2064: +.L2097: .word .LANCHOR0 - .word .LANCHOR2-1900 + .word .LANCHOR2-1896 .word .LANCHOR2 - .word -1898 - .word .LANCHOR2-1084 + .word -1894 + .word .LANCHOR2-1076 .fnend .size FtlGcPageRecovery, .-FtlGcPageRecovery .align 2 @@ -18153,9 +18428,9 @@ FtlPowerLostRecovery: stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} mov r4, #0 - ldr r3, .L2067 - ldr r5, .L2067+4 - str r4, [r3, #304] + ldr r3, .L2100 + ldr r5, .L2100+4 + str r4, [r3, #312] mov r0, r5 bl FtlRecoverySuperblock mov r0, r5 @@ -18170,11 +18445,11 @@ FtlPowerLostRecovery: bl decrement_vpc_count mov r0, r4 ldmfd sp!, {r3, r4, r5, pc} -.L2068: +.L2101: .align 2 -.L2067: +.L2100: .word .LANCHOR2 - .word .LANCHOR2-1996 + .word .LANCHOR2-1992 .fnend .size FtlPowerLostRecovery, .-FtlPowerLostRecovery .align 2 @@ -18186,26 +18461,26 @@ FtlSysBlkInit: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, r4, r5, r6, r7, lr} .save {r3, r4, r5, r6, r7, lr} - mov r3, #300 - ldr r6, .L2082 + mov r3, #308 + ldr r6, .L2115 mov r2, #0 - ldr r4, .L2082+4 + ldr r4, .L2115+4 mvn r5, #0 - ldr r0, [r6, #3852] + ldr r0, [r6, #3856] strh r2, [r4, r3] @ movhi - movw r3, #298 + movw r3, #306 strh r5, [r4, r3] @ movhi uxth r0, r0 bl FtlFreeSysBlkQueueInit bl FtlScanSysBlk - ldr r3, .L2082+8 + ldr r3, .L2115+8 ldrh r2, [r4, r3] movw r3, #65535 cmp r2, r3 - beq .L2070 + beq .L2103 bl FtlLoadSysInfo subs r7, r0, #0 - bne .L2070 + bne .L2103 bl FtlLoadMapInfo bl FtlLoadVonderInfo bl Ftl_load_ext_data @@ -18215,53 +18490,53 @@ FtlSysBlkInit: bl FtlPowerLostRecovery mov r0, #1 bl FtlUpdateVaildLpn - movw r3, #3954 + movw r3, #3958 ldrh r1, [r6, r3] mov r2, r7 - ldr r3, [r4, #-1852] - b .L2071 -.L2073: + ldr r3, [r4, #-1848] + b .L2104 +.L2106: add r0, r3, r7 add r7, r7, #12 ldr r0, [r0, #4] cmp r0, #0 - blt .L2072 + blt .L2105 add r2, r2, #1 -.L2071: +.L2104: cmp r2, r1 - blt .L2073 -.L2072: - ldr r3, .L2082+4 + blt .L2106 +.L2105: + ldr r3, .L2115+4 cmp r2, r1 - ldr r0, .L2082+12 + ldr r0, .L2115+12 ldrh ip, [r3, r0] add ip, ip, #1 strh ip, [r3, r0] @ movhi - blt .L2074 - mov r2, #300 + blt .L2107 + mov r2, #308 ldrh r2, [r3, r2] cmp r2, #0 - beq .L2075 -.L2074: - ldr r2, .L2082+16 - ldr r0, [r3, #-2016] - ldr r1, .L2082+20 + beq .L2108 +.L2107: + ldr r2, .L2115+16 + ldr r0, [r3, #-2012] + ldr r1, .L2115+20 ldrh r2, [r3, r2] ldrh ip, [r3, r1] mov r2, r2, asl #1 ldrh lr, [r0, r2] rsb ip, ip, lr strh ip, [r0, r2] @ movhi - ldr ip, .L2082 - movw r0, #3916 - ldr r2, .L2082+24 - ldr r4, [r3, #-2016] + ldr ip, .L2115 + movw r0, #3918 + ldr r2, .L2115+24 + ldr r4, [r3, #-2012] ldrh lr, [ip, r0] strh lr, [r3, r2] @ movhi mov r2, #0 strh r2, [r3, r1] @ movhi add r1, r1, #44 - strb r2, [r3, #-1990] + strb r2, [r3, #-1986] ldrh lr, [r3, r1] add r1, r1, #4 ldrh r5, [r3, r1] @@ -18270,10 +18545,10 @@ FtlSysBlkInit: rsb r5, r5, r6 strh r5, [r4, lr] @ movhi strh r2, [r3, r1] @ movhi - strb r2, [r3, #-1942] - ldr r2, .L2082+28 + strb r2, [r3, #-1938] + ldr r2, .L2115+28 ldrh ip, [ip, r0] - ldr r0, .L2082+32 + ldr r0, .L2115+32 ldrh r1, [r3, r2] strh ip, [r3, r0] @ movhi add r1, r1, #1 @@ -18281,120 +18556,120 @@ FtlSysBlkInit: bl l2p_flush bl FtlVpcTblFlush bl FtlVpcTblFlush -.L2075: - ldr r3, .L2082+4 - ldr r2, .L2082+12 +.L2108: + ldr r3, .L2115+4 + ldr r2, .L2115+12 mov r5, r3 ldrh r2, [r3, r2] tst r2, #31 - bne .L2076 + bne .L2109 bl FtlVpcCheckAndModify -.L2076: - ldr r2, .L2082+16 +.L2109: + ldr r2, .L2115+16 movw r3, #65535 - ldr r4, .L2082+4 + ldr r4, .L2115+4 ldrh r0, [r5, r2] cmp r0, r3 - beq .L2080 - ldr r3, .L2082+20 + beq .L2113 + ldr r3, .L2115+20 ldrh r3, [r4, r3] cmp r3, #0 - bne .L2080 + bne .L2113 add r2, r2, #52 ldrh r5, [r4, r2] cmp r5, #0 movne r5, r3 - bne .L2070 + bne .L2103 bl FtlGcRefreshOpenBlock - ldr r3, .L2082+36 + ldr r3, .L2115+36 ldrh r0, [r4, r3] bl FtlGcRefreshOpenBlock bl FtlVpcTblFlush - ldr r0, .L2082+40 + ldr r0, .L2115+40 bl allocate_new_data_superblock - ldr r0, .L2082+44 + ldr r0, .L2115+44 bl allocate_new_data_superblock - b .L2070 -.L2080: + b .L2103 +.L2113: mov r5, #0 -.L2070: +.L2103: mov r0, r5 ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L2083: +.L2116: .align 2 -.L2082: +.L2115: .word .LANCHOR0 .word .LANCHOR2 - .word -1772 - .word -2044 - .word -1996 + .word -1768 + .word -2040 .word -1992 - .word -1994 - .word -2042 - .word -1946 - .word -1948 - .word .LANCHOR2-1996 - .word .LANCHOR2-1948 + .word -1988 + .word -1990 + .word -2038 + .word -1942 + .word -1944 + .word .LANCHOR2-1992 + .word .LANCHOR2-1944 .fnend .size FtlSysBlkInit, .-FtlSysBlkInit .align 2 - .type FtlLowFormat.part.25, %function -FtlLowFormat.part.25: + .type FtlLowFormat.part.27, %function +FtlLowFormat.part.27: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr} .save {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr} - mov r6, #3952 - ldr r5, .L2105 + movw r6, #3956 + ldr r5, .L2138 mov r1, #0 - ldr r4, .L2105+4 + ldr r4, .L2138+4 ldrh r2, [r5, r6] - ldr r0, [r4, #-896] + ldr r0, [r4, #-888] mov r2, r2, asl #2 bl ftl_memset ldrh r2, [r5, r6] mov r1, #0 - ldr r0, [r4, #-1028] + ldr r0, [r4, #-1020] mov r2, r2, asl #2 bl ftl_memset - ldr r0, [r5, #3852] + ldr r0, [r5, #3856] mov r3, #0 - str r3, [r4, #-1804] str r3, [r4, #-1800] + str r3, [r4, #-1796] uxth r0, r0 bl FtlFreeSysBlkQueueInit bl FtlLoadBbt cmp r0, #0 - beq .L2085 + beq .L2118 bl FtlMakeBbt -.L2085: +.L2118: mov r3, #0 - ldr ip, .L2105 - movw r0, #3922 - ldr r2, .L2105+4 - ldr r1, .L2105+8 - b .L2086 -.L2087: - ldr lr, [r2, #-940] + ldr ip, .L2138 + movw r0, #3924 + ldr r2, .L2138+4 + ldr r1, .L2138+8 + b .L2119 +.L2120: + ldr lr, [r2, #-932] mvn r4, r3 orr r4, r3, r4, asl #16 str r4, [lr, r3, asl #2] - ldr lr, [r2, #-936] + ldr lr, [r2, #-928] str r1, [lr, r3, asl #2] add r3, r3, #1 uxth r3, r3 -.L2086: +.L2119: ldrh lr, [ip, r0] - ldr r8, .L2105 + ldr r8, .L2138 cmp r3, lr, asl #7 - blt .L2087 - mov r3, #3856 + blt .L2120 + movw r3, #3860 mov r5, #0 ldrh r6, [r8, r3] - movw r7, #3858 - b .L2088 -.L2089: + movw r7, #3862 + b .L2121 +.L2122: mov r0, r6 mov r1, #1 bl FtlLowFormatEraseBlock @@ -18402,46 +18677,46 @@ FtlLowFormat.part.25: uxth r6, r6 add r5, r5, r0 uxth r5, r5 -.L2088: +.L2121: ldrh r3, [r8, r7] - ldr r4, .L2105 + ldr r4, .L2138 cmp r3, r6 - bhi .L2089 - movw r3, #3848 + bhi .L2122 + movw r3, #3852 ldrh r1, [r4, r3] sub r3, r5, #3 cmp r3, r1, asl #1 - blt .L2090 + blt .L2123 mov r0, r5 - movw r6, #3858 + movw r6, #3862 bl __aeabi_uidiv - ldr r3, [r4, #3948] + ldr r3, [r4, #3952] add r0, r0, r3 uxth r0, r0 bl FtlSysBlkNumInit - ldr r0, [r4, #3852] + ldr r0, [r4, #3856] uxth r0, r0 bl FtlFreeSysBlkQueueInit - mov r3, #3856 + movw r3, #3860 ldrh r5, [r4, r3] - b .L2091 -.L2092: + b .L2124 +.L2125: mov r0, r5 mov r1, #1 bl FtlLowFormatEraseBlock add r5, r5, #1 uxth r5, r5 -.L2091: +.L2124: ldrh r3, [r4, r6] cmp r3, r5 - bhi .L2092 -.L2090: + bhi .L2125 +.L2123: mov r4, #0 - ldr r8, .L2105 + ldr r8, .L2138 mov r6, r4 - mov r7, #3856 - b .L2093 -.L2094: + movw r7, #3860 + b .L2126 +.L2127: mov r0, r6 mov r1, #0 bl FtlLowFormatEraseBlock @@ -18449,18 +18724,18 @@ FtlLowFormat.part.25: uxth r6, r6 add r4, r4, r0 uxth r4, r4 -.L2093: +.L2126: ldrh r3, [r8, r7] - ldr r5, .L2105 + ldr r5, .L2138 cmp r3, r6 - bhi .L2094 - movw r3, #3858 - ldr r8, .L2105+4 + bhi .L2127 + movw r3, #3862 + ldr r8, .L2138+4 ldrh r3, [r5, r3] - ldr fp, [r5, #3860] - ldr r9, .L2105+12 - str r3, [r8, #-980] - movw r3, #3848 + ldr fp, [r5, #3864] + ldr r9, .L2138+12 + str r3, [r8, #-972] + movw r3, #3852 ldrh r6, [r5, r3] mov r0, fp mov r1, r6 @@ -18470,220 +18745,220 @@ FtlLowFormat.part.25: add r3, sl, #36 strh r3, [r8, r9] @ movhi mov r3, #24 - str r0, [r5, #3976] + str r0, [r5, #3980] mul r3, r3, r6 cmp r4, r3 - ble .L2095 + ble .L2128 rsb r0, r4, fp mov r1, r6 bl __aeabi_uidiv - str r0, [r5, #3976] + str r0, [r5, #3980] mov r0, r0, lsr #5 add r0, r0, #24 strh r0, [r8, r9] @ movhi -.L2095: - ldr r3, .L2105 - ldr r3, [r3, #3840] +.L2128: + ldr r3, .L2138 + ldr r3, [r3, #3844] cmp r3, #1 - bne .L2096 + bne .L2129 mov r0, r4 mov r1, r6 bl __aeabi_uidiv - ldr r8, .L2105+4 - ldr r5, .L2105+12 + ldr r8, .L2138+4 + ldr r5, .L2138+12 ldrh r9, [r8, r5] uxtah r0, r9, r0 add r9, r9, r0, lsr #2 strh r9, [r8, r5] @ movhi -.L2096: - ldr r3, .L2105 - ldrb r3, [r3, #928] @ zero_extendqisi2 +.L2129: + ldr r3, .L2138 + ldrb r3, [r3, #3072] @ zero_extendqisi2 cmp r3, #0 - beq .L2097 + beq .L2130 mov r0, r4 mov r1, r6 bl __aeabi_uidiv - ldr r8, .L2105+4 - ldr r5, .L2105+12 + ldr r8, .L2138+4 + ldr r5, .L2138+12 ldrh r9, [r8, r5] uxtah r0, r9, r0 add r9, r9, r0, lsr #2 strh r9, [r8, r5] @ movhi -.L2097: - ldr r0, .L2105 - movw r3, #3908 +.L2130: + ldr r0, .L2138 + movw r3, #3912 ldrh r3, [r0, r3] cmp r3, #0 - beq .L2098 - ldr r1, .L2105+4 - ldr r2, .L2105+12 + beq .L2131 + ldr r1, .L2138+4 + ldr r2, .L2138+12 ldrh ip, [r1, r2] add ip, ip, r3, lsr #1 strh ip, [r1, r2] @ movhi mul ip, r6, r3 cmp ip, r4 - strgt r7, [r0, #3976] + strgt r7, [r0, #3980] addgt r3, r3, #32 addgt sl, sl, r3 strgth sl, [r1, r2] @ movhi -.L2098: - ldr r4, .L2105+4 - ldr r5, .L2105 - ldr r3, .L2105+12 - ldr r7, .L2105+16 - ldr r2, [r5, #3976] +.L2131: + ldr r4, .L2138+4 + ldr r5, .L2138 + ldr r3, .L2138+12 + ldr r7, .L2138+16 + ldr r2, [r5, #3980] ldrh r3, [r4, r3] rsb r3, r3, r2 mul r6, r6, r3 - movw r3, #3916 + movw r3, #3918 ldrh r3, [r5, r3] - str r6, [r4, #220] + str r6, [r4, #228] mul r6, r3, r6 - movw r3, #3922 + movw r3, #3924 ldrh r3, [r5, r3] - str r6, [r5, #3976] + str r6, [r5, #3980] mul r6, r3, r6 - str r6, [r5, #3956] + str r6, [r5, #3960] mvn r6, #0 bl FtlBbmTblFlush - movw r3, #3858 + movw r3, #3862 ldrh r2, [r5, r3] mov r1, #0 - ldr r0, [r4, #-2016] + ldr r0, [r4, #-2012] mov r2, r2, asl #1 bl ftl_memset - ldr r1, .L2105+20 + ldr r1, .L2138+20 mov r3, #0 - ldr r2, .L2105+24 - str r3, [r4, #-1844] + ldr r2, .L2138+24 + str r3, [r4, #-1840] strh r3, [r4, r1] @ movhi - sub r1, r1, #236 - strb r3, [r4, #-1754] + sub r1, r1, #240 + strb r3, [r4, #-1746] strh r3, [r4, r1] @ movhi mov r1, #255 - strb r3, [r4, #-1752] - strb r3, [r4, #-1990] + strb r3, [r4, #-1744] + strb r3, [r4, #-1986] strh r3, [r4, r7] @ movhi mov r3, #1 - strb r3, [r4, #-1988] - mov r3, #3856 + strb r3, [r4, #-1984] + movw r3, #3860 strh r6, [r4, r2] @ movhi ldrh r2, [r5, r3] - ldr r0, [r4, #-1840] + ldr r0, [r4, #-1836] mov r2, r2, lsr #3 bl ftl_memset -.L2099: - ldr r0, .L2105+28 +.L2132: + ldr r0, .L2138+28 bl make_superblock - ldrb r3, [r4, #-1989] @ zero_extendqisi2 - ldr r5, .L2105+4 + ldrb r3, [r4, #-1985] @ zero_extendqisi2 + ldr r5, .L2138+4 cmp r3, #0 - ldr r3, .L2105+16 - bne .L2100 + ldr r3, .L2138+16 + bne .L2133 ldrh r3, [r4, r7] - ldr r2, [r4, #-2016] + ldr r2, [r4, #-2012] mov r3, r3, asl #1 strh r6, [r2, r3] @ movhi ldrh r3, [r4, r7] add r3, r3, #1 strh r3, [r4, r7] @ movhi - b .L2099 -.L2100: - ldr r2, [r5, #-1804] + b .L2132 +.L2133: + ldr r2, [r5, #-1800] mvn r7, #0 - ldr r1, [r5, #-2016] - ldr r6, .L2105+32 - str r2, [r5, #-1984] + ldr r1, [r5, #-2012] + ldr r6, .L2138+32 + str r2, [r5, #-1980] add r2, r2, #1 - str r2, [r5, #-1804] - ldr r2, .L2105+36 + str r2, [r5, #-1800] + ldr r2, .L2138+36 ldrh r0, [r5, r2] ldrh r2, [r5, r3] mov r2, r2, asl #1 strh r0, [r1, r2] @ movhi mov r2, #0 - ldr r0, .L2105+40 + ldr r0, .L2138+40 ldrh r3, [r5, r3] - strb r2, [r5, #-1942] + strb r2, [r5, #-1938] add r3, r3, #1 strh r2, [r5, r0] @ movhi strh r3, [r5, r6] @ movhi mov r3, #1 - strb r3, [r5, #-1940] -.L2101: - ldr r0, .L2105+44 + strb r3, [r5, #-1936] +.L2134: + ldr r0, .L2138+44 bl make_superblock - ldrb r3, [r5, #-1941] @ zero_extendqisi2 - ldr r4, .L2105+4 + ldrb r3, [r5, #-1937] @ zero_extendqisi2 + ldr r4, .L2138+4 cmp r3, #0 - bne .L2102 + bne .L2135 ldrh r3, [r5, r6] - ldr r2, [r5, #-2016] + ldr r2, [r5, #-2012] mov r3, r3, asl #1 strh r7, [r2, r3] @ movhi ldrh r3, [r5, r6] add r3, r3, #1 strh r3, [r5, r6] @ movhi - b .L2101 -.L2102: - ldr r3, [r4, #-1804] + b .L2134 +.L2135: + ldr r3, [r4, #-1800] mvn r5, #0 - ldr r2, [r4, #-2016] - str r3, [r4, #-1936] + ldr r2, [r4, #-2012] + str r3, [r4, #-1932] add r3, r3, #1 - str r3, [r4, #-1804] - ldr r3, .L2105+48 + str r3, [r4, #-1800] + ldr r3, .L2138+48 ldrh r1, [r4, r3] sub r3, r3, #4 ldrh r3, [r4, r3] mov r3, r3, asl #1 strh r1, [r2, r3] @ movhi - ldr r3, .L2105+52 + ldr r3, .L2138+52 strh r5, [r4, r3] @ movhi bl FtlFreeSysBlkQueueOut - ldr r3, .L2105+56 + ldr r3, .L2138+56 mov r2, #0 strh r0, [r4, r3] @ movhi add r3, r3, #2 strh r2, [r4, r3] @ movhi add r3, r3, #2 - ldr r2, [r4, #220] + ldr r2, [r4, #228] strh r5, [r4, r3] @ movhi add r3, r3, #2 strh r2, [r4, r3] @ movhi - ldr r3, [r4, #-1804] - str r3, [r4, #-1764] + ldr r3, [r4, #-1800] + str r3, [r4, #-1760] add r3, r3, #1 - str r3, [r4, #-1804] + str r3, [r4, #-1800] bl FtlVpcTblFlush bl FtlSysBlkInit cmp r0, #0 ldmnefd sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc} - ldr r3, .L2105+60 + ldr r3, .L2138+60 mov r2, #1 - str r2, [r3, #3092] + str r2, [r3, #3220] ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L2106: +.L2139: .align 2 -.L2105: +.L2138: .word .LANCHOR0 .word .LANCHOR2 .word 168778952 - .word -1776 - .word -1996 - .word -1758 - .word -1760 - .word .LANCHOR2-1996 - .word -1948 + .word -1772 .word -1992 - .word -1946 - .word .LANCHOR2-1948 + .word -1750 + .word -1752 + .word .LANCHOR2-1992 .word -1944 - .word -1900 - .word -1772 + .word -1988 + .word -1942 + .word .LANCHOR2-1944 + .word -1940 + .word -1896 + .word -1768 .word .LANCHOR1 .fnend - .size FtlLowFormat.part.25, .-FtlLowFormat.part.25 + .size FtlLowFormat.part.27, .-FtlLowFormat.part.27 .align 2 .global FtlLowFormat .type FtlLowFormat, %function @@ -18693,17 +18968,17 @@ FtlLowFormat: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, lr} .save {r3, lr} - ldr r3, .L2109 - ldr r3, [r3, #4040] + ldr r3, .L2142 + ldr r3, [r3, #4044] cmp r3, #0 - bne .L2108 - bl FtlLowFormat.part.25 -.L2108: + bne .L2141 + bl FtlLowFormat.part.27 +.L2141: mov r0, #0 ldmfd sp!, {r3, pc} -.L2110: +.L2143: .align 2 -.L2109: +.L2142: .word .LANCHOR0 .fnend .size FtlLowFormat, .-FtlLowFormat @@ -18716,25 +18991,25 @@ Ftl_get_new_temp_ppa: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} - ldr r3, .L2114 - ldr r5, .L2114+4 + ldr r3, .L2147 + ldr r5, .L2147+4 ldrh r2, [r5, r3] movw r3, #65535 cmp r2, r3 - beq .L2112 - ldr r3, .L2114+8 + beq .L2145 + ldr r3, .L2147+8 ldrh r3, [r5, r3] cmp r3, #0 - bne .L2113 -.L2112: + bne .L2146 +.L2145: bl FtlCacheWriteBack mov r0, #0 bl FtlGcFreeTempBlock - ldr r0, .L2114+12 + ldr r0, .L2147+12 mov r4, #0 - strb r4, [r5, #-1892] + strb r4, [r5, #-1888] bl allocate_data_superblock - ldr r3, .L2114+16 + ldr r3, .L2147+16 strh r4, [r5, r3] @ movhi add r3, r3, #12 strh r4, [r5, r3] @ movhi @@ -18742,47 +19017,47 @@ Ftl_get_new_temp_ppa: mov r0, r4 bl FtlEctTblFlush bl FtlVpcTblFlush -.L2113: - ldr r0, .L2114+12 +.L2146: + ldr r0, .L2147+12 ldmfd sp!, {r3, r4, r5, lr} b get_new_active_ppa -.L2115: +.L2148: .align 2 -.L2114: - .word -1900 - .word .LANCHOR2 +.L2147: .word -1896 - .word .LANCHOR2-1900 - .word -1156 + .word .LANCHOR2 + .word -1892 + .word .LANCHOR2-1896 + .word -1148 .fnend .size Ftl_get_new_temp_ppa, .-Ftl_get_new_temp_ppa .align 2 - .type ftl_do_gc.part.22, %function -ftl_do_gc.part.22: + .type ftl_do_gc.part.24, %function +ftl_do_gc.part.24: .fnstart @ args = 0, pretend = 0, frame = 24 @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} .save {r4, r5, r6, r7, r8, r9, sl, fp, lr} mov sl, r1 - ldr r3, .L2213 + ldr r3, .L2246 .pad #36 sub sp, sp, #36 - ldr r4, .L2213+4 + ldr r4, .L2246+4 movw r1, #65535 str r0, [sp, #16] ldrh r7, [r3, r4] cmp r7, r1 - beq .L2117 - ldr r6, .L2213+8 + beq .L2150 + ldr r6, .L2246+8 ldrh r2, [r3, r6] cmp r2, r1 - bne .L2117 - ldr r0, .L2213+12 + bne .L2150 + ldr r0, .L2246+12 ldrh r5, [r3, r0] cmp r5, r2 - beq .L2117 - ldr r1, .L2213+16 + beq .L2150 + ldr r1, .L2246+16 ldrh ip, [r3, r1] cmp ip, r2 strneh r7, [r3, r6] @ movhi @@ -18790,87 +19065,87 @@ ftl_do_gc.part.22: mvnne r2, #0 strneh ip, [r3, r0] @ movhi strneh r2, [r3, r1] @ movhi -.L2117: +.L2150: ldr r1, [sp, #16] - ldr r2, [r3, #-1192] + ldr r2, [r3, #-1184] cmp r1, #1 add r2, r2, #1 add r2, r2, r1, asl #7 - str r2, [r3, #-1192] - bne .L2118 - ldr r3, .L2213+20 - ldr r1, [r3, #3840] + str r2, [r3, #-1184] + bne .L2151 + ldr r3, .L2246+20 + ldr r1, [r3, #3844] cmp r1, #0 - bne .L2119 - ldrb r3, [r3, #928] @ zero_extendqisi2 + bne .L2152 + ldrb r3, [r3, #3072] @ zero_extendqisi2 cmp r3, #0 - beq .L2118 -.L2119: - ldr r4, .L2213 - ldr r3, [r4, #-1780] + beq .L2151 +.L2152: + ldr r4, .L2246 + ldr r3, [r4, #-1776] cmp r3, #39 - bhi .L2118 - mov r3, #436 + bhi .L2151 + mov r3, #444 ldrh r3, [r4, r3] add r2, r2, r3 - str r2, [r4, #-1192] + str r2, [r4, #-1184] bl FtlGcReFreshBadBlk - ldr r3, .L2213+24 + ldr r3, .L2246+24 movw r2, #65535 ldrh r3, [r4, r3] cmp r3, r2 - bne .L2118 - ldr r2, .L2213+8 + bne .L2151 + ldr r2, .L2246+8 ldrh r2, [r4, r2] cmp r2, r3 - bne .L2118 - ldr r3, [r4, #-1192] + bne .L2151 + ldr r3, [r4, #-1184] cmp r3, #1024 - bhi .L2120 - ldr r3, .L2213+28 + bhi .L2153 + ldr r3, .L2246+28 ldrh r3, [r4, r3] cmp r3, #63 - bhi .L2118 -.L2120: - ldr r3, .L2213 - mov r2, #436 - ldr r0, .L2213+28 + bhi .L2151 +.L2153: + ldr r3, .L2246 + mov r2, #444 + ldr r0, .L2246+28 mov r1, #0 strh r1, [r3, r2] @ movhi ldrh ip, [r3, r0] - ldr r0, .L2213+32 + ldr r0, .L2246+32 ldrh r0, [r3, r0] add r0, r0, #64 cmp ip, r0 - bgt .L2118 - str r1, [r3, #-1192] - ldr r1, [r3, #-1780] + bgt .L2151 + str r1, [r3, #-1184] + ldr r1, [r3, #-1776] cmp r1, #0 moveq r1, #6 - beq .L2209 + beq .L2242 cmp r1, #5 - bhi .L2122 + bhi .L2155 mov r1, #18 -.L2209: +.L2242: strh r1, [r3, r2] @ movhi -.L2122: +.L2155: mov r0, #32 movw r7, #65535 bl List_get_gc_head_node uxth r2, r0 cmp r2, r7 - beq .L2123 - ldr r5, .L2213 - ldr r6, .L2213+36 + beq .L2156 + ldr r5, .L2246 + ldr r6, .L2246+36 ldrh r0, [r5, r6] cmp r0, #0 moveq r3, #1 streqh r3, [r5, r6] @ movhi - beq .L2123 - ldr r3, .L2213+20 - movw ip, #3918 - movw lr, #3848 - ldr r9, [r5, #-2016] + beq .L2156 + ldr r3, .L2246+20 + mov ip, #3920 + movw lr, #3852 + ldr r9, [r5, #-2012] mov r2, r2, asl #1 ldrh ip, [r3, ip] ldrh r3, [r3, lr] @@ -18878,10 +19153,10 @@ ftl_do_gc.part.22: mul r3, r3, ip add r3, r3, #1 cmp r1, r3 - bgt .L2123 + bgt .L2156 add fp, r0, #1 mov r8, #0 - str r8, [r5, #-1184] + str r8, [r5, #-1176] uxth fp, fp strh fp, [r5, r6] @ movhi str r2, [sp, #8] @@ -18889,10 +19164,10 @@ ftl_do_gc.part.22: ldr r2, [sp, #8] uxth r4, r0 cmp r4, r7 - beq .L2123 + beq .L2156 ldrh r2, [r9, r2] mov r7, r4, asl #1 - ldr r0, .L2213+40 + ldr r0, .L2246+40 mov r1, fp ldrh r3, [r9, r7] str r2, [sp, #0] @@ -18900,100 +19175,100 @@ ftl_do_gc.part.22: bl printk ldrh r3, [r5, r6] cmp r3, #40 - bls .L2125 - ldr r3, [r5, #-2016] + bls .L2158 + ldr r3, [r5, #-2012] ldrh r3, [r3, r7] cmp r3, #32 strhih r8, [r5, r6] @ movhi -.L2125: - ldr r2, .L2213 - mov r3, #436 +.L2158: + ldr r2, .L2246 + mov r3, #444 mov r1, #6 strh r1, [r2, r3] @ movhi - b .L2127 -.L2123: + b .L2160 +.L2156: bl GetSwlReplaceBlock movw r3, #65535 cmp r0, r3 mov r4, r0 - bne .L2127 - ldr r2, .L2213 - mov r3, #436 + bne .L2160 + ldr r2, .L2246 + mov r3, #444 mov r1, #0 strh r1, [r2, r3] @ movhi -.L2118: - ldr r5, .L2213 +.L2151: + ldr r5, .L2246 movw r4, #65535 - ldr r3, .L2213+24 + ldr r3, .L2246+24 ldrh r2, [r5, r3] cmp r2, r4 - bne .L2127 - sub r3, r3, #140 + bne .L2160 + sub r3, r3, #144 ldrh r3, [r5, r3] cmp r3, r2 movne r4, r2 - bne .L2127 - ldr r2, .L2213+8 + bne .L2160 + ldr r2, .L2246+8 ldrh r7, [r5, r2] cmp r7, r3 movne r4, r3 - bne .L2127 - ldr r8, .L2213+28 - ldr r2, [r5, #-1192] + bne .L2160 + ldr r8, .L2246+28 + ldr r2, [r5, #-1184] ldrh r3, [r5, r8] cmp r3, #23 movhi r3, #1024 movls r3, #5120 cmp r2, r3 movls r4, r7 - bls .L2127 - mov r2, #436 + bls .L2160 + mov r2, #444 mov r3, #0 - str r3, [r5, #-1192] + str r3, [r5, #-1184] mov r6, r5 strh r3, [r5, r2] @ movhi bl GetSwlReplaceBlock cmp r0, r7 mov r4, r0 - bne .L2129 - ldr r3, .L2213+32 + bne .L2162 + ldr r3, .L2246+32 ldrh r1, [r5, r8] ldrh r2, [r5, r3] cmp r1, r2 movcs r2, #80 strcsh r2, [r5, r3] @ movhi - bcs .L2139 + bcs .L2172 mov r0, #64 bl List_get_gc_head_node uxth r3, r0 cmp r3, r4 - beq .L2139 - ldr r2, [r5, #-996] + beq .L2172 + ldr r2, [r5, #-988] cmp r2, #0 - bne .L2132 - ldr r2, .L2213+20 - movw r1, #3868 + bne .L2165 + ldr r2, .L2246+20 + mov r1, #3872 ldrh r1, [r2, r1] cmp r1, #3 - beq .L2132 - ldr r1, [r5, #-1712] + beq .L2165 + ldr r1, [r5, #-1704] cmp r1, #0 - bne .L2132 - ldr r1, [r2, #3840] + bne .L2165 + ldr r1, [r2, #3844] cmp r1, #0 - bne .L2132 - ldrb r0, [r2, #928] @ zero_extendqisi2 + bne .L2165 + ldrb r0, [r2, #3072] @ zero_extendqisi2 cmp r0, #0 - beq .L2133 -.L2132: - ldr r1, .L2213 + beq .L2166 +.L2165: + ldr r1, .L2246 mov r3, r3, asl #1 - movw ip, #3848 - movw lr, #3868 - ldr r2, [r1, #-2016] + movw ip, #3852 + mov lr, #3872 + ldr r2, [r1, #-2012] ldrh r0, [r2, r3] - movw r2, #3918 - ldr r3, .L2213+20 + mov r2, #3920 + ldr r3, .L2246+20 ldrh r2, [r3, r2] ldrh ip, [r3, ip] ldrh r3, [r3, lr] @@ -19003,494 +19278,494 @@ ftl_do_gc.part.22: movne r3, #0 add r3, ip, r3 cmp r0, r3 - bgt .L2135 + bgt .L2168 mov r0, #0 bl List_get_gc_head_node - ldr r2, .L2213+20 - ldr r3, .L2213 - ldr r2, [r2, #3976] - ldr r1, [r3, #-1844] + ldr r2, .L2246+20 + ldr r3, .L2246 + ldr r2, [r2, #3980] + ldr r1, [r3, #-1840] add r2, r2, r2, asl #1 cmp r1, r2, lsr #2 - ldr r2, .L2213+32 + ldr r2, .L2246+32 movhi r1, #128 movls r1, #160 strh r1, [r3, r2] @ movhi uxth r4, r0 - b .L2137 -.L2135: - ldr r3, .L2213+32 + b .L2170 +.L2168: + ldr r3, .L2246+32 mov r2, #128 strh r2, [r1, r3] @ movhi - b .L2139 -.L2133: - ldr r2, [r5, #-2016] + b .L2172 +.L2166: + ldr r2, [r5, #-2012] mov r3, r3, asl #1 - ldr r6, .L2213 - ldr r5, .L2213+32 + ldr r6, .L2246 + ldr r5, .L2246+32 ldrh r3, [r2, r3] cmp r3, #7 movhi r3, #64 strhih r3, [r6, r5] @ movhi - bhi .L2139 + bhi .L2172 bl List_get_gc_head_node mov r3, #128 strh r3, [r6, r5] @ movhi uxth r4, r0 -.L2137: +.L2170: movw r3, #65535 cmp r4, r3 - beq .L2139 -.L2129: - ldr r1, .L2213 + beq .L2172 +.L2162: + ldr r1, .L2246 mov r0, r4, asl #1 - ldr r3, .L2213+28 - ldr ip, .L2213+20 + ldr r3, .L2246+28 + ldr ip, .L2246+20 ldrh r2, [r1, r3] - ldr ip, [ip, #4048] - ldr r3, [r1, #-2016] + ldr ip, [ip, #4052] + ldr r3, [r1, #-2012] ldrh r3, [r3, r0] ldrh r0, [ip, r0] str r0, [sp, #0] - ldr r0, .L2213+44 + ldr r0, .L2246+44 ldrh r1, [r1, r0] - ldr r0, .L2213+48 + ldr r0, .L2246+48 str r1, [sp, #4] mov r1, r4 bl printk -.L2139: +.L2172: bl FtlGcReFreshBadBlk -.L2127: +.L2160: movw ip, #65535 rsb r1, ip, r4 rsbs r0, r1, #0 ldr r2, [sp, #16] adc r0, r0, r1 - ldr r3, .L2213 + ldr r3, .L2246 cmp r2, #0 movne r1, #0 andeq r1, r0, #1 cmp r1, #0 - beq .L2140 - ldr r2, .L2213+28 + beq .L2173 + ldr r2, .L2246+28 ldrh r1, [r3, r2] cmp r1, #24 movhi r6, #1 - bhi .L2141 - ldr r0, .L2213+20 - movw r2, #3916 + bhi .L2174 + ldr r0, .L2246+20 + movw r2, #3918 cmp r1, #16 ldrh r6, [r0, r2] movhi r6, r6, lsr #5 - bhi .L2141 + bhi .L2174 cmp r1, #12 movhi r6, r6, lsr #4 - bhi .L2141 + bhi .L2174 cmp r1, #8 movhi r6, r6, lsr #2 -.L2141: - ldr ip, .L2213+44 - ldr r2, .L2213 +.L2174: + ldr ip, .L2246+44 + ldr r2, .L2246 ldrh r3, [r3, ip] cmp r3, r1 mov r1, ip - bcs .L2145 - ldr r3, .L2213+52 + bcs .L2178 + ldr r3, .L2246+52 movw r0, #65535 ldrh r3, [r2, r3] cmp r3, r0 - bne .L2146 - ldr r0, .L2213+8 + bne .L2179 + ldr r0, .L2246+8 ldrh r0, [r2, r0] cmp r0, r3 - bne .L2146 - mov r3, #436 + bne .L2179 + mov r3, #444 ldrh r0, [r2, r3] cmp r0, #0 - bne .L2147 - ldr r3, .L2213+20 - ldr r1, [r2, #-1844] - ldr r3, [r3, #3976] + bne .L2180 + ldr r3, .L2246+20 + ldr r1, [r2, #-1840] + ldr r3, [r3, #3980] add r3, r3, r3, asl #1 cmp r1, r3, lsr #2 movcs r3, #18 strcsh r3, [r2, ip] @ movhi - bcs .L2149 -.L2147: - ldr r3, .L2213 - ldr r2, .L2213+56 - ldr r1, .L2213+44 + bcs .L2182 +.L2180: + ldr r3, .L2246 + ldr r2, .L2246+56 + ldr r1, .L2246+44 ldrh r2, [r3, r2] add r2, r2, r2, asl #1 mov r2, r2, asr #2 strh r2, [r3, r1] @ movhi -.L2149: - ldr r3, .L2213 +.L2182: + ldr r3, .L2246 mov r2, #0 - str r2, [r3, #-1184] - b .L2150 -.L2146: - ldr r3, .L2213 - ldr r2, .L2213+56 + str r2, [r3, #-1176] + b .L2183 +.L2179: + ldr r3, .L2246 + ldr r2, .L2246+56 ldrh r2, [r3, r2] add r2, r2, r2, asl #1 mov r2, r2, asr #2 strh r2, [r3, r1] @ movhi -.L2145: - ldr r3, .L2213+20 +.L2178: + ldr r3, .L2246+20 cmp sl, #2 movw r4, #65535 movhi sl, #0 movls sl, #1 - ldr r3, [r3, #3840] + ldr r3, [r3, #3844] cmp r3, #0 moveq sl, #0 cmp sl, #0 addne r6, r6, #1 uxthne r6, r6 - b .L2151 -.L2140: - ldr r2, .L2213+52 + b .L2184 +.L2173: + ldr r2, .L2246+52 ldrh r2, [r3, r2] cmp r2, ip - bne .L2152 - ldr ip, .L2213+8 + bne .L2185 + ldr ip, .L2246+8 ldrh ip, [r3, ip] cmp ip, r2 movne r0, #0 andeq r0, r0, #1 cmp r0, #0 - beq .L2152 - ldr r0, .L2213+24 + beq .L2185 + ldr r0, .L2246+24 ldrh r0, [r3, r0] cmp r0, r2 movne r4, r2 - bne .L2152 - str r1, [r3, #-1184] - ldr r2, .L2213+44 - ldr r1, .L2213+28 + bne .L2185 + str r1, [r3, #-1176] + ldr r2, .L2246+44 + ldr r1, .L2246+28 ldrh r0, [r3, r1] ldrh r1, [r3, r2] cmp r0, r1 - bls .L2153 - mov r1, #436 + bls .L2186 + mov r1, #444 ldrh r1, [r3, r1] cmp r1, #0 - bne .L2154 - ldr r1, .L2213+20 - ldr r0, [r3, #-1844] - ldr r1, [r1, #3976] + bne .L2187 + ldr r1, .L2246+20 + ldr r0, [r3, #-1840] + ldr r1, [r1, #3980] add r1, r1, r1, asl #1 cmp r0, r1, lsr #2 movcs r1, #18 strcsh r1, [r3, r2] @ movhi - bcs .L2156 -.L2154: - ldr r3, .L2213 - ldr r2, .L2213+56 - ldr r1, .L2213+44 + bcs .L2189 +.L2187: + ldr r3, .L2246 + ldr r2, .L2246+56 + ldr r1, .L2246+44 ldrh r2, [r3, r2] add r2, r2, r2, asl #1 mov r2, r2, asr #2 strh r2, [r3, r1] @ movhi -.L2156: +.L2189: bl FtlReadRefresh mov r0, #0 bl List_get_gc_head_node - ldr r3, .L2213 - ldr r2, [r3, #-2016] + ldr r3, .L2246 + ldr r2, [r3, #-2012] uxth r0, r0 mov r0, r0, asl #1 ldrh r2, [r2, r0] cmp r2, #4 - bhi .L2212 -.L2153: - ldr r4, .L2213 - mov r6, #436 + bhi .L2245 +.L2186: + ldr r4, .L2246 + mov r6, #444 ldrh r0, [r4, r6] cmp r0, #0 - bne .L2204 - ldr r3, .L2213+56 + bne .L2237 + ldr r3, .L2246+56 ldrh r5, [r4, r3] - add r3, r3, #580 + add r3, r3, #584 add r2, r5, r5, asl #1 mov r2, r2, asr #2 strh r2, [r4, r3] @ movhi bl List_get_gc_head_node - ldr r3, [r4, #-2016] - ldr r1, .L2213+20 - movw r2, #3918 + ldr r3, [r4, #-2012] + ldr r1, .L2246+20 + mov r2, #3920 ldrh r2, [r1, r2] uxth r0, r0 mov r0, r0, asl #1 ldrh r3, [r3, r0] - movw r0, #3848 + movw r0, #3852 ldrh r1, [r1, r0] mul r2, r1, r2 add r2, r2, r2, lsr #31 cmp r3, r2, asr #1 - ble .L2157 - ldr r2, .L2213+28 + ble .L2190 + ldr r2, .L2246+28 sub r5, r5, #1 ldrh r2, [r4, r2] cmp r2, r5 - blt .L2157 + blt .L2190 bl FtlReadRefresh ldrh r0, [r4, r6] - b .L2150 -.L2157: + b .L2183 +.L2190: cmp r3, #0 - bne .L2204 + bne .L2237 movw r0, #65535 bl decrement_vpc_count - ldr r3, .L2213+28 - ldr r2, .L2213 + ldr r3, .L2246+28 + ldr r2, .L2246 ldrh r0, [r2, r3] add r0, r0, #1 - b .L2150 -.L2204: + b .L2183 +.L2237: movw r4, #65535 -.L2152: - ldr r3, .L2213+20 - ldr r6, [r3, #3840] +.L2185: + ldr r3, .L2246+20 + ldr r6, [r3, #3844] cmp r6, #0 movne r6, #2 moveq r6, #1 -.L2151: - ldr r3, .L2213 +.L2184: + ldr r3, .L2246 movw r0, #65535 - ldr r2, .L2213+24 + ldr r2, .L2246+24 ldrh r1, [r3, r2] cmp r1, r0 - bne .L2158 + bne .L2191 cmp r4, r1 strneh r4, [r3, r2] @ movhi - bne .L2160 - ldr r2, .L2213+8 + bne .L2193 + ldr r2, .L2246+8 ldrh r1, [r3, r2] cmp r1, r4 - beq .L2160 - ldr r0, [r3, #-2016] + beq .L2193 + ldr r0, [r3, #-2012] mov r1, r1, asl #1 ldrh r1, [r0, r1] cmp r1, #0 mvneq r1, #0 streqh r1, [r3, r2] @ movhi - ldr r3, .L2213 - ldr r1, .L2213+24 + ldr r3, .L2246 + ldr r1, .L2246+24 ldrh r0, [r3, r2] strh r0, [r3, r1] @ movhi mvn r1, #0 strh r1, [r3, r2] @ movhi -.L2160: - ldr r5, .L2213 +.L2193: + ldr r5, .L2246 mov r3, #0 - ldr r7, .L2213+24 - strb r3, [r5, #-1752] + ldr r7, .L2246+24 + strb r3, [r5, #-1744] movw r3, #65535 ldrh r0, [r5, r7] cmp r0, r3 - beq .L2158 + beq .L2191 bl IsBlkInGcList cmp r0, #0 mvnne r3, #0 strneh r3, [r5, r7] @ movhi - ldr r3, .L2213+20 - ldr r7, .L2213 - ldrb r3, [r3, #928] @ zero_extendqisi2 + ldr r3, .L2246+20 + ldr r7, .L2246 + ldrb r3, [r3, #3072] @ zero_extendqisi2 cmp r3, #0 - beq .L2163 - ldr r3, .L2213+24 + beq .L2196 + ldr r3, .L2246+24 ldrh r0, [r7, r3] bl ftl_get_blk_mode - strb r0, [r7, #-1752] -.L2163: - ldr r8, .L2213+24 + strb r0, [r7, #-1744] +.L2196: + ldr r8, .L2246+24 movw r3, #65535 - ldr r5, .L2213 + ldr r5, .L2246 ldrh r2, [r7, r8] cmp r2, r3 - beq .L2158 - add r0, r5, r8 + beq .L2191 + ldr r0, .L2246+60 bl make_superblock - ldr r1, .L2213+60 - movw r2, #438 + ldr r1, .L2246+64 + movw r2, #446 mov r3, #0 strh r3, [r5, r2] @ movhi strh r3, [r5, r1] @ movhi - strb r3, [r5, #-1754] + strb r3, [r5, #-1746] ldrh r3, [r5, r8] - ldr r2, [r5, #-2016] + ldr r2, [r5, #-2012] mov r3, r3, asl #1 ldrh r2, [r2, r3] - mov r3, #440 + mov r3, #448 strh r2, [r5, r3] @ movhi -.L2158: - ldr r3, .L2213 - ldr r2, .L2213+24 - ldrh r1, [r3, r2] - sub r2, r2, #236 +.L2191: + ldr r3, .L2246 + ldr r0, .L2246+24 + ldr r2, .L2246+68 + ldrh r1, [r3, r0] ldrh r2, [r3, r2] cmp r2, r1 mov r2, r3 - beq .L2164 - ldr r0, .L2213+64 - ldrh r3, [r3, r0] + beq .L2197 + ldr ip, .L2246+72 + ldrh r3, [r3, ip] cmp r3, r1 - strne r4, [sp, #20] - bne .L2208 -.L2165: -.L2164: - ldr r3, .L2213+24 - mvn r1, #0 - strh r1, [r2, r3] @ movhi - mov r3, #436 -.L2211: + movne fp, r4 + bne .L2241 +.L2198: +.L2197: + mvn r3, #0 + strh r3, [r2, r0] @ movhi + mov r3, #444 +.L2244: ldrh r0, [r2, r3] - b .L2150 -.L2208: - ldr r4, .L2213 + b .L2183 +.L2241: + ldr r4, .L2246 movw sl, #65535 - ldr r3, .L2213+24 - ldrh r3, [r4, r3] + ldr r9, .L2246+24 + ldrh r3, [r4, r9] cmp r3, sl - bne .L2167 - ldr r5, .L2213+36 + bne .L2200 + ldr r5, .L2246+36 mov r3, #0 - str r3, [r4, #-1184] -.L2207: + str r3, [r4, #-1176] +.L2240: ldrh r8, [r4, r5] mov r0, r8 bl List_get_gc_head_node - ldr r3, .L2213+24 movw r1, #65535 uxth r7, r0 - strh r7, [r4, r3] @ movhi + strh r7, [r4, r9] @ movhi cmp r7, r1 - bne .L2169 - ldr r2, .L2213 - add r3, r3, #572 + bne .L2202 + ldr r3, .L2246+36 mov r1, #0 + ldr r2, .L2246 mov r0, #8 strh r1, [r2, r3] @ movhi - b .L2150 -.L2169: + b .L2183 +.L2202: mov r0, r7 bl IsBlkInGcList cmp r0, #0 add r0, r8, #1 strneh r0, [r4, r5] @ movhi - bne .L2207 - ldr ip, .L2213+20 - movw r8, #3916 - movw sl, #3848 - ldr r2, [r4, #-2016] + bne .L2240 + ldr ip, .L2246+20 + movw r8, #3918 + ldr r2, [r4, #-2012] mov r3, r7, asl #1 uxth r0, r0 - ldrh r8, [ip, r8] - ldrh ip, [ip, sl] strh r0, [r4, r5] @ movhi + ldrh sl, [ip, r8] + movw r8, #3852 + ldrh ip, [ip, r8] ldrh r1, [r2, r3] - mul r8, ip, r8 - add ip, r8, r8, lsr #31 + mul sl, ip, sl + add ip, sl, sl, lsr #31 cmp r1, ip, asr #1 - bgt .L2172 + bgt .L2205 cmp r0, #48 - bls .L2173 + bls .L2206 cmp r1, #8 - bls .L2173 - ldr r1, .L2213+68 + bls .L2206 + ldr r1, .L2246+76 ldrh r1, [r4, r1] cmp r1, #35 - bhi .L2173 -.L2172: + bhi .L2206 +.L2205: mov r1, #0 strh r1, [r4, r5] @ movhi -.L2173: - ldrh r3, [r2, r3] - movw r1, #65535 - ldr sl, [sp, #20] - ldr r9, .L2213 - cmp r3, r8 - cmpge sl, r1 - movne r8, #0 - moveq r8, #1 - bne .L2174 - ldr r3, .L2213+24 - mvn r2, #0 - strh r2, [r9, r3] @ movhi - add r3, r3, #572 - mov r2, #0 - strh r2, [r9, r3] @ movhi - mov r3, #436 - ldrh r0, [r9, r3] - b .L2150 -.L2174: - cmp r3, #0 - bne .L2175 +.L2206: + ldrh r2, [r2, r3] + movw r3, #65535 + cmp r2, sl + cmpge fp, r3 + ldr r3, .L2246 + bne .L2207 + ldrh r1, [r4, r5] + cmp r1, #3 + bhi .L2207 + ldr r2, .L2246+24 + mvn r1, #0 + strh r1, [r3, r2] @ movhi + add r2, r2, #572 + mov r1, #0 + strh r1, [r3, r2] @ movhi +.L2245: + mov r2, #444 + b .L2244 +.L2207: + cmp r2, #0 + ldr r8, .L2246 + bne .L2208 movw r0, #65535 bl decrement_vpc_count ldrh r3, [r4, r5] add r3, r3, #1 strh r3, [r4, r5] @ movhi - b .L2207 -.L2175: - ldr r3, .L2213+20 - strb r8, [r9, #-1752] - ldrb r3, [r3, #928] @ zero_extendqisi2 - cmp r3, #0 - beq .L2176 + b .L2240 +.L2208: + mov r2, #0 + strb r2, [r3, #-1744] + ldr r3, .L2246+20 + ldrb r3, [r3, #3072] @ zero_extendqisi2 + cmp r3, r2 + beq .L2209 mov r0, r7 bl ftl_get_blk_mode - strb r0, [r9, #-1752] -.L2176: - ldr r4, .L2213 - sub r0, r4, #1760 + strb r0, [r8, #-1744] +.L2209: + ldr r0, .L2246+60 bl make_superblock - movw r1, #438 + movw r1, #446 mov r3, #0 - strh r3, [r4, r1] @ movhi - ldr r1, .L2213+24 - ldr r0, [r4, #-2016] - ldrh r1, [r4, r1] + strh r3, [r8, r1] @ movhi + ldr r1, .L2246+24 + ldr r0, [r8, #-2012] + ldrh r1, [r8, r1] mov r1, r1, asl #1 ldrh r0, [r0, r1] - mov r1, #440 - strb r3, [r4, #-1754] - strh r0, [r4, r1] @ movhi - ldr r1, .L2213+60 - strh r3, [r4, r1] @ movhi -.L2167: + mov r1, #448 + strb r3, [r8, #-1746] + strh r0, [r8, r1] @ movhi + ldr r1, .L2246+64 + strh r3, [r8, r1] @ movhi +.L2200: ldr sl, [sp, #16] cmp sl, #1 - bne .L2177 + bne .L2210 bl FtlReadRefresh -.L2177: - ldr r3, .L2213 +.L2210: + ldr r3, .L2246 mov r2, #1 - movw r1, #3916 - str r2, [r3, #-992] - ldr r2, .L2213+20 + movw r1, #3918 + str r2, [r3, #-984] + ldr r2, .L2246+20 ldrh r9, [r2, r1] - ldrb r1, [r2, #928] @ zero_extendqisi2 + ldrb r1, [r2, #3072] @ zero_extendqisi2 cmp r1, #0 - beq .L2178 - ldrb r1, [r3, #-1752] @ zero_extendqisi2 + beq .L2211 + ldrb r1, [r3, #-1744] @ zero_extendqisi2 cmp r1, #1 - movweq r1, #3918 + moveq r1, #3920 ldreqh r9, [r2, r1] -.L2178: - ldr r2, .L2213+60 +.L2211: + ldr r2, .L2246+64 mov r8, #0 - ldr r4, .L2213 + str fp, [sp, #20] mov fp, r9 + ldr r4, .L2246 ldrh r3, [r3, r2] add r2, r3, r6 cmp r2, r9 rsbgt r6, r3, r9 uxthgt r6, r6 - b .L2180 -.L2182: + b .L2213 +.L2215: ldrh r1, [r2, #2]! movw sl, #65535 add r3, r3, #1 @@ -19501,46 +19776,46 @@ ftl_do_gc.part.22: addne r7, r7, #1 uxthne r7, r7 strne r1, [sl, #4] -.L2188: +.L2221: cmp r3, r5 - bne .L2182 - ldr r0, [r4, #-1164] + bne .L2215 + ldr r0, [r4, #-1156] mov r1, r7 - ldrb r2, [r4, #-1752] @ zero_extendqisi2 + ldrb r2, [r4, #-1744] @ zero_extendqisi2 mov r5, #0 bl FlashReadPages mov r9, r5 mov sl, r6 - b .L2183 -.L2186: - ldr r3, [r4, #-1164] + b .L2216 +.L2219: + ldr r3, [r4, #-1156] add r2, r3, r5 ldr r3, [r3, r5] ldr r6, [r2, #12] cmn r3, #1 - beq .L2184 + beq .L2217 ldrh r3, [r6, #0] movw r1, #61589 cmp r3, r1 - bne .L2184 + bne .L2217 add r1, sp, #28 mov r2, #0 ldr r0, [r6, #8] bl log2phys - ldr r1, [r4, #-1164] + ldr r1, [r4, #-1156] ldr r2, [sp, #28] add r1, r1, r5 bic r2, r2, #-2147483648 ldr r3, [r1, #4] cmp r2, r3 - bne .L2184 - movw r3, #438 - ldr r0, [r4, #-1180] + bne .L2217 + movw r3, #446 + ldr r0, [r4, #-1172] ldrh r2, [r4, r3] ldr r1, [r1, #16] add r2, r2, #1 strh r2, [r4, r3] @ movhi - ldr r2, [r4, #-964] + ldr r2, [r4, #-956] mov r3, #36 mla r2, r3, r0, r2 str r1, [r2, #16] @@ -19548,12 +19823,12 @@ ftl_do_gc.part.22: str r3, [sp, #12] bl Ftl_get_new_temp_ppa ldr r2, [sp, #8] - ldr r1, [r4, #-1180] + ldr r1, [r4, #-1172] str r0, [r2, #4] ldr r3, [sp, #12] - ldr r2, [r4, #-964] + ldr r2, [r4, #-956] mla r3, r3, r1, r2 - ldr r2, [r4, #-1164] + ldr r2, [r4, #-1156] add r2, r2, r5 ldr r1, [r2, #8] str r1, [r3, #8] @@ -19562,107 +19837,105 @@ ftl_do_gc.part.22: str r2, [r3, #12] ldr r3, [sp, #28] str r3, [r6, #12] - ldr r3, .L2213+52 + ldr r3, .L2246+52 ldrh r3, [r4, r3] strh r3, [r6, #2] @ movhi - ldr r3, [r4, #-1800] - ldr r0, [r4, #-1164] + ldr r3, [r4, #-1796] + ldr r0, [r4, #-1156] str r3, [r6, #4] add r0, r0, r5 - ldr r3, [r4, #-1180] + ldr r3, [r4, #-1172] add r3, r3, #1 - str r3, [r4, #-1180] + str r3, [r4, #-1172] bl FtlGcBufAlloc - ldr r3, .L2213+20 - ldrb r3, [r3, #928] @ zero_extendqisi2 + ldr r3, .L2246+20 + ldrb r3, [r3, #3072] @ zero_extendqisi2 cmp r3, #0 - bne .L2185 - ldrb r3, [r4, #-1893] @ zero_extendqisi2 - ldr r2, [r4, #-1180] + bne .L2218 + ldrb r3, [r4, #-1889] @ zero_extendqisi2 + ldr r2, [r4, #-1172] cmp r2, r3 - beq .L2185 - ldr r3, .L2213+72 + beq .L2218 + ldr r3, .L2246+80 ldrh r3, [r4, r3] cmp r3, #0 - bne .L2184 -.L2185: + bne .L2217 +.L2218: bl Ftl_gc_temp_data_write_back cmp r0, #0 - beq .L2184 - ldr r3, .L2213 - mov r2, #0 - str r2, [r3, #-992] -.L2212: - mov r2, #436 - b .L2211 -.L2184: + ldrne r3, .L2246 + movne r2, #0 + strne r2, [r3, #-984] + bne .L2245 +.L2217: add r9, r9, #1 add r5, r5, #36 uxth r9, r9 -.L2183: +.L2216: cmp r9, r7 - bne .L2186 + bne .L2219 add r8, r8, #1 mov r6, sl -.L2180: +.L2213: uxth r3, r8 - ldr r7, .L2213 + ldr r7, .L2246 cmp r3, r6 - ldr r3, .L2213+60 - bcs .L2187 - ldr r1, .L2213+20 - movw r2, #3848 + ldr r3, .L2246+64 + bcs .L2220 + ldr r1, .L2246+20 + movw r2, #3852 ldrh ip, [r4, r3] mov r7, #0 - ldr lr, [r4, #-1164] + ldr lr, [r4, #-1156] mov r3, r7 ldrh r5, [r1, r2] add ip, ip, r8 - ldr r2, .L2213+76 + ldr r2, .L2246+84 mov r0, #36 - b .L2188 -.L2187: + b .L2221 +.L2220: ldrh r2, [r7, r3] mov r9, fp + ldr fp, [sp, #20] add r6, r6, r2 uxth r6, r6 strh r6, [r7, r3] @ movhi - cmp r6, fp - bcc .L2189 - ldr r3, [r7, #-1180] + cmp r6, r9 + bcc .L2222 + ldr r3, [r7, #-1172] cmp r3, #0 - beq .L2190 + beq .L2223 bl Ftl_gc_temp_data_write_back cmp r0, #0 movne r3, #0 - strne r3, [r7, #-992] - movne r3, #436 + strne r3, [r7, #-984] + movne r3, #444 ldrneh r0, [r7, r3] - bne .L2150 -.L2190: - ldr r4, .L2213 - movw r3, #438 + bne .L2183 +.L2223: + ldr r4, .L2246 + movw r3, #446 ldrh r6, [r4, r3] cmp r6, #0 - bne .L2191 - ldr r5, .L2213+24 - ldr r2, [r4, #-2016] + bne .L2224 + ldr r5, .L2246+24 + ldr r2, [r4, #-2012] ldrh r1, [r4, r5] mov r3, r1, asl #1 ldrh r3, [r2, r3] cmp r3, #0 - beq .L2191 - ldr r2, .L2213+60 - ldr r0, .L2213+80 + beq .L2224 + ldr r2, .L2246+64 + ldr r0, .L2246+88 ldrh r2, [r4, r2] str r3, [sp, #0] - mov r3, #440 + mov r3, #448 ldrh r3, [r4, r3] str r3, [sp, #4] mov r3, r6 bl printk ldrh r3, [r4, r5] - ldr r2, [r4, #-2016] + ldr r2, [r4, #-2012] mov r3, r3, asl #1 strh r6, [r2, r3] @ movhi ldrh r0, [r4, r5] @@ -19670,56 +19943,58 @@ ftl_do_gc.part.22: bl FtlCacheWriteBack bl l2p_flush bl FtlVpcTblFlush -.L2191: - ldr r3, .L2213+24 +.L2224: + ldr r3, .L2246+24 mvn r1, #0 - ldr r2, .L2213 + ldr r2, .L2246 strh r1, [r2, r3] @ movhi -.L2189: - ldr r3, .L2213 - ldr r2, .L2213+28 +.L2222: + ldr r3, .L2246 + ldr r2, .L2246+28 ldrh r2, [r3, r2] cmp r2, #2 - ldrls r2, .L2213+20 - movwls r3, #3916 + ldrls r2, .L2246+20 + movwls r3, #3918 ldrlsh r6, [r2, r3] - bls .L2208 -.L2192: + bls .L2241 +.L2225: mov r1, #0 - str r1, [r3, #-992] - mov r1, #436 + str r1, [r3, #-984] + mov r1, #444 ldrh r0, [r3, r1] cmp r0, #0 addeq r0, r2, #1 -.L2150: +.L2183: add sp, sp, #36 ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L2214: +.L2247: .align 2 -.L2213: +.L2246: .word .LANCHOR2 - .word -1140 - .word -1142 - .word -1138 - .word -1136 + .word -1132 + .word -1134 + .word -1130 + .word -1128 .word .LANCHOR0 - .word -1760 - .word -2000 - .word -1194 - .word -1188 - .word .LC148 - .word -1196 + .word -1752 + .word -1996 + .word -1186 + .word -1180 .word .LC149 - .word -1900 - .word -1776 - .word -1758 - .word -1948 - .word -1156 - .word -1896 - .word .LANCHOR2-1746 + .word -1188 .word .LC150 + .word -1896 + .word -1772 + .word .LANCHOR2-1752 + .word -1750 + .word -1992 + .word -1944 + .word -1148 + .word -1892 + .word .LANCHOR2-1738 + .word .LC151 .fnend - .size ftl_do_gc.part.22, .-ftl_do_gc.part.22 + .size ftl_do_gc.part.24, .-ftl_do_gc.part.24 .align 2 .global ftl_do_gc .type ftl_do_gc, %function @@ -19730,51 +20005,51 @@ ftl_do_gc: stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} mov r4, r0 - ldr r3, .L2222 + ldr r3, .L2255 mov r5, r1 - ldr r0, [r3, #4040] + ldr r0, [r3, #4044] cmp r0, #0 movne r0, #0 ldmnefd sp!, {r3, r4, r5, pc} - ldr r3, .L2222+4 - ldr r2, [r3, #-992] + ldr r3, .L2255+4 + ldr r2, [r3, #-984] cmp r2, #0 ldmnefd sp!, {r3, r4, r5, pc} - ldr r1, .L2222+8 + ldr r1, .L2255+8 ldrh r1, [r3, r1] cmp r1, #47 movls r0, r2 ldmlsfd sp!, {r3, r4, r5, pc} - ldr r1, .L2222+12 - movw r2, #3096 + ldr r1, .L2255+12 + movw r2, #3224 ldrh r1, [r1, r2] movw r2, #65535 cmp r1, r2 - beq .L2217 - ldr r1, .L2222+16 + beq .L2250 + ldr r1, .L2255+16 ldrh r3, [r3, r1] cmp r3, r2 - beq .L2217 + beq .L2250 mov r0, #1 bl FtlGcFreeTempBlock cmp r0, #0 - bne .L2221 -.L2217: + bne .L2254 +.L2250: mov r0, r4 mov r1, r5 ldmfd sp!, {r3, r4, r5, lr} - b ftl_do_gc.part.22 -.L2221: + b ftl_do_gc.part.24 +.L2254: mov r0, #1 ldmfd sp!, {r3, r4, r5, pc} -.L2223: +.L2256: .align 2 -.L2222: +.L2255: .word .LANCHOR0 .word .LANCHOR2 - .word -2008 + .word -2004 .word .LANCHOR1 - .word -1900 + .word -1896 .fnend .size ftl_do_gc, .-ftl_do_gc .align 2 @@ -19784,40 +20059,40 @@ FtlCacheWriteBack: .fnstart @ args = 0, pretend = 0, frame = 8 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L2247 + ldr r3, .L2280 stmfd sp!, {r0, r1, r4, r5, r6, r7, r8, r9, sl, lr} .save {r0, r1, r4, r5, r6, r7, r8, r9, sl, lr} - ldr r4, [r3, #444] - ldr r3, .L2247+4 - ldr r2, [r3, #4040] + ldr r4, [r3, #452] + ldr r3, .L2280+4 + ldr r2, [r3, #4044] cmp r2, #0 - bne .L2225 - ldr r1, [r3, #3968] + bne .L2258 + ldr r1, [r3, #3972] cmp r1, #0 - beq .L2225 - ldrb r8, [r3, #928] @ zero_extendqisi2 + beq .L2258 + ldrb r8, [r3, #3072] @ zero_extendqisi2 cmp r8, #0 - beq .L2226 + beq .L2259 ldrb r8, [r4, #8] @ zero_extendqisi2 sub r0, r8, #1 rsbs r8, r0, #0 adc r8, r8, r0 -.L2226: - ldr r5, .L2247+4 +.L2259: + ldr r5, .L2280+4 mov r2, r8 ldrb r3, [r4, #9] @ zero_extendqisi2 mov r6, #0 mov r7, r6 - ldr r9, .L2247 - ldr r0, [r5, #3972] + ldr r9, .L2280 + ldr r0, [r5, #3976] bl FlashProgPages - b .L2227 -.L2232: - ldr r2, [r5, #3972] + b .L2260 +.L2265: + ldr r2, [r5, #3976] add r3, r2, r6 ldr r2, [r2, r6] cmn r2, #1 - beq .L2246 + beq .L2279 ldr r2, [r3, #4] cmp r8, #0 ldr r0, [r3, #16] @@ -19827,70 +20102,70 @@ FtlCacheWriteBack: strne r2, [sp, #4] mov r2, #1 bl log2phys - ldr r3, [r5, #3972] + ldr r3, [r5, #3976] add r3, r3, r6 ldr r3, [r3, #12] ldr r0, [r3, #12] cmn r0, #1 - beq .L2230 + beq .L2263 ubfx r0, r0, #10, #16 bl P2V_block_in_plane - ldr r2, [r9, #-2016] + ldr r2, [r9, #-2012] mov r3, r0, asl #1 mov sl, r0 ldrh r2, [r2, r3] cmp r2, #0 - bne .L2231 - ldr r0, .L2247+8 + bne .L2264 + ldr r0, .L2280+8 mov r1, sl bl printk -.L2231: +.L2264: mov r0, sl bl decrement_vpc_count -.L2230: +.L2263: add r7, r7, #1 add r6, r6, #36 -.L2227: - ldr r3, [r5, #3968] - cmp r7, r3 - bcc .L2232 - b .L2233 -.L2242: +.L2260: ldr r3, [r5, #3972] + cmp r7, r3 + bcc .L2265 + b .L2266 +.L2275: + ldr r3, [r5, #3976] mvn r2, #0 - ldr r7, .L2247 + ldr r7, .L2280 str r2, [r3, r6] - b .L2234 -.L2238: + b .L2267 +.L2271: ldr r0, [r3, #4] ubfx r0, r0, #10, #16 bl P2V_block_in_plane ldrh r3, [r4, #0] cmp r3, r0 - bne .L2235 - ldr r2, [r7, #-2016] + bne .L2268 + ldr r2, [r7, #-2012] mov r3, r3, asl #1 ldrh r1, [r4, #4] ldrh r0, [r2, r3] rsb r1, r1, r0 strh r1, [r2, r3] @ movhi - movw r3, #3916 + movw r3, #3918 ldrh r3, [r5, r3] strh r3, [r4, #2] @ movhi mov r3, #0 strb r3, [r4, #6] strh r3, [r4, #4] @ movhi -.L2235: +.L2268: ldrh r3, [r4, #4] cmp r3, #0 - bne .L2236 + bne .L2269 mov r0, r4 bl allocate_new_data_superblock -.L2236: - ldr r3, [r7, #-1612] +.L2269: + ldr r3, [r7, #-1604] add r3, r3, #1 - str r3, [r7, #-1612] - ldr r3, [r5, #3972] + str r3, [r7, #-1604] + ldr r3, [r5, #3976] add r3, r3, r6 ldr r0, [r3, #4] ubfx r0, r0, #10, #16 @@ -19901,25 +20176,25 @@ FtlCacheWriteBack: mov r2, r8 mov r3, r0 str r0, [sp, #4] - ldr r0, [r5, #3972] + ldr r0, [r5, #3976] add r0, r0, r6 str r3, [r0, #4] ldrb r3, [r4, #9] @ zero_extendqisi2 bl FlashProgPages - ldr r3, [r5, #3972] + ldr r3, [r5, #3976] ldr r3, [r3, r6] cmn r3, #1 moveq r3, #1 - streq r3, [r5, #4040] - ldr r3, [r9, #4040] + streq r3, [r5, #4044] + ldr r3, [r9, #4044] cmp r3, #0 - bne .L2225 -.L2234: - ldr r2, [r5, #3972] + bne .L2258 +.L2267: + ldr r2, [r5, #3976] add r3, r2, r6 ldr r2, [r2, r6] cmn r2, #1 - beq .L2238 + beq .L2271 ldr r2, [r3, #4] cmp r8, #0 ldr r0, [r3, #16] @@ -19929,68 +20204,68 @@ FtlCacheWriteBack: strne r2, [sp, #4] mov r2, #1 bl log2phys - ldr r3, [r5, #3972] + ldr r3, [r5, #3976] add r3, r3, r6 ldr r3, [r3, #12] ldr r0, [r3, #12] cmn r0, #1 - beq .L2240 + beq .L2273 ubfx r0, r0, #10, #16 bl P2V_block_in_plane - ldr r3, .L2247 - ldr r2, [r3, #-2016] + ldr r3, .L2280 + ldr r2, [r3, #-2012] mov r3, r0, asl #1 mov r7, r0 ldrh r2, [r2, r3] cmp r2, #0 - bne .L2241 - ldr r0, .L2247+8 + bne .L2274 + ldr r0, .L2280+8 mov r1, r7 bl printk -.L2241: +.L2274: mov r0, r7 bl decrement_vpc_count -.L2240: +.L2273: add sl, sl, #1 add r6, r6, #36 - b .L2228 -.L2246: - ldr r5, .L2247+4 + b .L2261 +.L2279: + ldr r5, .L2280+4 mov r6, #0 mov sl, r6 mov r9, r5 -.L2228: - ldr r3, [r5, #3968] +.L2261: + ldr r3, [r5, #3972] cmp sl, r3 - bcc .L2242 + bcc .L2275 movw r4, #16386 - ldr r6, .L2247 - ldr r5, .L2247+12 - b .L2243 -.L2244: + ldr r6, .L2280 + ldr r5, .L2280+12 + b .L2276 +.L2277: mov r0, #1 mov r1, r0 bl ftl_do_gc subs r4, r4, #1 - beq .L2233 -.L2243: + beq .L2266 +.L2276: ldrh r3, [r6, r5] cmp r3, #0 - bne .L2244 -.L2233: - ldr r3, .L2247+4 + bne .L2277 +.L2266: + ldr r3, .L2280+4 mov r2, #0 - str r2, [r3, #3968] -.L2225: + str r2, [r3, #3972] +.L2258: mov r0, #0 ldmfd sp!, {r2, r3, r4, r5, r6, r7, r8, r9, sl, pc} -.L2248: +.L2281: .align 2 -.L2247: +.L2280: .word .LANCHOR2 .word .LANCHOR0 - .word .LC151 - .word -1134 + .word .LC152 + .word -1126 .fnend .size FtlCacheWriteBack, .-FtlCacheWriteBack .align 2 @@ -20024,21 +20299,21 @@ FtlSysFlush: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, lr} .save {r3, lr} - ldr r3, .L2253 - ldr r3, [r3, #4040] + ldr r3, .L2286 + ldr r3, [r3, #4044] cmp r3, #0 - bne .L2252 + bne .L2285 bl FtlCacheWriteBack bl l2p_flush mov r0, #1 bl FtlEctTblFlush bl FtlVpcTblFlush -.L2252: +.L2285: mov r0, #0 ldmfd sp!, {r3, pc} -.L2254: +.L2287: .align 2 -.L2253: +.L2286: .word .LANCHOR0 .fnend .size FtlSysFlush, .-FtlSysFlush @@ -20051,17 +20326,17 @@ FtlDeInit: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, lr} .save {r3, lr} - ldr r3, .L2257 - ldr r3, [r3, #3092] + ldr r3, .L2290 + ldr r3, [r3, #3220] cmp r3, #1 - bne .L2256 + bne .L2289 bl FtlSysFlush -.L2256: +.L2289: mov r0, #0 ldmfd sp!, {r3, pc} -.L2258: +.L2291: .align 2 -.L2257: +.L2290: .word .LANCHOR1 .fnend .size FtlDeInit, .-FtlDeInit @@ -20090,14 +20365,14 @@ rk_ftl_de_init: stmfd sp!, {r3, lr} .save {r3, lr} mov r1, #0 - ldr r0, .L2261 + ldr r0, .L2294 bl printk ldmfd sp!, {r3, lr} b ftl_deinit -.L2262: +.L2295: .align 2 -.L2261: - .word .LC152 +.L2294: + .word .LC153 .fnend .size rk_ftl_de_init, .-rk_ftl_de_init .align 2 @@ -20118,121 +20393,121 @@ ftl_fix_nand_power_lost_error: .fnstart @ args = 0, pretend = 0, frame = 48 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L2273 + ldr r3, .L2306 stmfd sp!, {r4, r5, r6, r7, r8, sl, lr} .save {r4, r5, r6, r7, r8, sl, lr} .pad #52 sub sp, sp, #52 - ldrb r3, [r3, #928] @ zero_extendqisi2 + ldrb r3, [r3, #3072] @ zero_extendqisi2 cmp r3, #0 - beq .L2264 - ldr r4, .L2273+4 - movw r3, #298 - ldr r0, .L2273+8 + beq .L2297 + ldr r4, .L2306+4 + movw r3, #306 + ldr r0, .L2306+8 movw r7, #4097 ldrh r6, [r4, r3] - ldr r3, [r4, #-2016] + ldr r3, [r4, #-2012] mov r5, r6, asl #1 mov r1, r6 ldrh r2, [r3, r5] bl printk - ldr r3, .L2273+12 + ldr r3, .L2306+12 ldrh r0, [r4, r3] bl FtlGcRefreshOpenBlock - ldr r3, .L2273+16 + ldr r3, .L2306+16 ldrh r0, [r4, r3] bl FtlGcRefreshOpenBlock - ldr r0, .L2273+20 + ldr r0, .L2306+20 bl allocate_new_data_superblock - ldr r0, .L2273+24 + ldr r0, .L2306+24 bl allocate_new_data_superblock - b .L2266 -.L2268: + b .L2299 +.L2301: mov r0, #1 mov r1, r0 bl ftl_do_gc - ldr r3, [r4, #-2016] + ldr r3, [r4, #-2012] ldrh r3, [r3, r5] cmp r3, #0 - beq .L2267 -.L2266: + beq .L2300 +.L2299: subs r7, r7, #1 - bne .L2268 -.L2267: - ldr r4, .L2273+4 + bne .L2301 +.L2300: + ldr r4, .L2306+4 mov r1, r6 - ldr r0, .L2273+8 - ldr r3, [r4, #-2016] + ldr r0, .L2306+8 + ldr r3, [r4, #-2012] ldrh r2, [r3, r5] bl printk - ldr r3, [r4, #-2016] + ldr r3, [r4, #-2012] ldrh r4, [r3, r5] cmp r4, #0 - bne .L2269 + bne .L2302 add r7, sp, #48 mov r0, sp strh r6, [r7, #-48]! @ movhi add r7, r7, #14 bl make_superblock - ldr r3, .L2273 - movw r2, #3848 + ldr r3, .L2306 + movw r2, #3852 movw lr, #65535 mov ip, #36 mov r1, r4 ldrh r8, [r3, r2] - ldr sl, [r3, #4044] + ldr sl, [r3, #4048] mov r3, r4 - b .L2270 -.L2272: + b .L2303 +.L2305: ldrh r0, [r7, #2]! cmp r0, lr - beq .L2271 + beq .L2304 mla r2, ip, r4, sl add r4, r4, #1 mov r0, r0, asl #10 uxth r4, r4 stmib r2, {r0, r1} str r1, [r2, #12] -.L2271: +.L2304: add r3, r3, #1 uxth r3, r3 -.L2270: +.L2303: cmp r3, r8 - bne .L2272 - ldr r3, .L2273+4 + bne .L2305 + ldr r3, .L2306+4 mov r1, r6 - ldr r0, .L2273+28 - ldr r3, [r3, #-2016] + ldr r0, .L2306+28 + ldr r3, [r3, #-2012] ldrh r2, [r3, r5] - ldr r5, .L2273 + ldr r5, .L2306 bl printk mov r1, #0 mov r2, r4 - ldr r0, [r5, #4044] + ldr r0, [r5, #4048] bl FlashEraseBlocks - ldr r0, [r5, #4044] + ldr r0, [r5, #4048] mov r1, #1 mov r2, r4 bl FlashEraseBlocks -.L2269: - ldr r2, .L2273+4 - movw r3, #298 +.L2302: + ldr r2, .L2306+4 + movw r3, #306 mvn r1, #0 strh r1, [r2, r3] @ movhi -.L2264: +.L2297: add sp, sp, #52 ldmfd sp!, {r4, r5, r6, r7, r8, sl, pc} -.L2274: +.L2307: .align 2 -.L2273: +.L2306: .word .LANCHOR0 .word .LANCHOR2 - .word .LC153 - .word -1996 - .word -1948 - .word .LANCHOR2-1996 - .word .LANCHOR2-1948 .word .LC154 + .word -1992 + .word -1944 + .word .LANCHOR2-1992 + .word .LANCHOR2-1944 + .word .LC155 .fnend .size ftl_fix_nand_power_lost_error, .-ftl_fix_nand_power_lost_error .align 2 @@ -20242,82 +20517,82 @@ FtlInit: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 -.L2276: +.L2309: stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} mvn r3, #0 - ldr r4, .L2286 - ldr r6, .L2286+4 - ldr r5, .L2286+8 - ldr r1, .L2286+12 - str r3, [r6, #3092] + ldr r4, .L2319 + ldr r6, .L2319+4 + ldr r5, .L2319+8 + ldr r1, .L2319+12 + str r3, [r6, #3220] mov r3, #0 - ldr r0, .L2286+16 - str r3, [r4, #4040] - str r3, [r5, #448] + ldr r0, .L2319+16 + str r3, [r4, #4044] + str r3, [r5, #456] bl printk - ldr r0, .L2286+20 + ldr r0, .L2319+20 bl FtlConstantsInit bl FtlMemInit bl FtlVariablesInit - ldr r0, [r4, #3852] + ldr r0, [r4, #3856] uxth r0, r0 bl FtlFreeSysBlkQueueInit bl FtlLoadBbt cmp r0, #0 - ldrne r0, .L2286+24 - bne .L2285 + ldrne r0, .L2319+24 + bne .L2318 bl FtlSysBlkInit cmp r0, #0 - beq .L2279 - ldr r0, .L2286+28 -.L2285: - ldr r1, .L2286+32 + beq .L2312 + ldr r0, .L2319+28 +.L2318: + ldr r1, .L2319+32 bl printk - b .L2278 -.L2279: + b .L2311 +.L2312: mov r1, #1 - str r1, [r6, #3092] + str r1, [r6, #3220] bl ftl_do_gc - ldr r3, .L2286+36 + ldr r3, .L2319+36 ldrh r3, [r5, r3] cmp r3, #15 - bhi .L2280 + bhi .L2313 mov r4, #1024 -.L2281: +.L2314: mov r0, #1 mov r1, r0 bl ftl_do_gc subs r4, r4, #1 - bne .L2281 - b .L2278 -.L2280: - ldrb r3, [r4, #928] @ zero_extendqisi2 + bne .L2314 + b .L2311 +.L2313: + ldrb r3, [r4, #3072] @ zero_extendqisi2 cmp r3, #0 - beq .L2278 + beq .L2311 mov r4, #128 -.L2282: +.L2315: mov r0, #1 mov r1, r0 bl ftl_do_gc subs r4, r4, #1 - bne .L2282 -.L2278: + bne .L2315 +.L2311: mov r0, #0 ldmfd sp!, {r4, r5, r6, pc} -.L2287: +.L2320: .align 2 -.L2286: +.L2319: .word .LANCHOR0 .word .LANCHOR1 .word .LANCHOR2 .word .LC78 .word .LC77 - .word .LANCHOR0+3048 - .word .LC155 + .word .LANCHOR0+3044 .word .LC156 + .word .LC157 .word .LANCHOR3+69 - .word -2000 + .word -1996 .fnend .size FtlInit, .-FtlInit .align 2 @@ -20330,20 +20605,20 @@ ftl_discard: stmfd sp!, {r0, r1, r2, r4, r5, r6, r7, lr} .save {r0, r1, r2, r4, r5, r6, r7, lr} add r2, r1, r0 - ldr r5, .L2298 + ldr r5, .L2331 mov r7, r0 mov r4, r1 - ldr r3, [r5, #3956] + ldr r3, [r5, #3960] cmp r2, r3 mvnhi r0, #0 - bhi .L2289 + bhi .L2322 cmp r1, #31 - bls .L2296 - ldr r3, [r5, #4040] + bls .L2329 + ldr r3, [r5, #4044] cmp r3, #0 - bne .L2296 + bne .L2329 bl FtlCacheWriteBack - movw r3, #3922 + movw r3, #3924 ldrh r6, [r5, r3] mov r0, r7 mov r1, r6 @@ -20352,69 +20627,69 @@ ftl_discard: mov r5, r0 uxth r7, r7 cmp r7, #0 - beq .L2290 + beq .L2323 rsb r6, r7, r6 add r5, r0, #1 cmp r6, r4 movcs r6, r4 uxth r6, r6 rsb r4, r6, r4 -.L2290: +.L2323: mvn r3, #0 - ldr r7, .L2298 + ldr r7, .L2331 str r3, [sp, #4] - movw r6, #3922 - b .L2291 -.L2293: + movw r6, #3924 + b .L2324 +.L2326: mov r0, r5 mov r1, sp mov r2, #0 bl log2phys ldr r3, [sp, #0] cmn r3, #1 - beq .L2292 - ldr r3, .L2298+4 + beq .L2325 + ldr r3, .L2331+4 add r1, sp, #4 mov r0, r5 - ldr r2, [r3, #452] + ldr r2, [r3, #460] add r2, r2, #1 - str r2, [r3, #452] - ldr r2, [r3, #-1832] + str r2, [r3, #460] + ldr r2, [r3, #-1828] add r2, r2, #1 - str r2, [r3, #-1832] + str r2, [r3, #-1828] mov r2, #1 bl log2phys ldr r0, [sp, #0] ubfx r0, r0, #10, #16 bl P2V_block_in_plane bl decrement_vpc_count -.L2292: +.L2325: ldrh r3, [r7, r6] add r5, r5, #1 rsb r4, r3, r4 -.L2291: +.L2324: ldrh r3, [r7, r6] cmp r4, r3 - bcs .L2293 - ldr r3, .L2298+4 + bcs .L2326 + ldr r3, .L2331+4 mov r4, #0 - ldr r2, [r3, #452] + ldr r2, [r3, #460] cmp r2, #32 - bls .L2297 - str r4, [r3, #452] + bls .L2330 + str r4, [r3, #460] bl l2p_flush bl FtlVpcTblFlush - b .L2297 -.L2296: + b .L2330 +.L2329: mov r0, #0 - b .L2289 -.L2297: + b .L2322 +.L2330: mov r0, r4 -.L2289: +.L2322: ldmfd sp!, {r1, r2, r3, r4, r5, r6, r7, pc} -.L2299: +.L2332: .align 2 -.L2298: +.L2331: .word .LANCHOR0 .word .LANCHOR2 .fnend @@ -20431,23 +20706,23 @@ FtlDiscard: .fnend .size FtlDiscard, .-FtlDiscard .align 2 - .type ftl_write.part.23, %function -ftl_write.part.23: + .type ftl_write.part.25, %function +ftl_write.part.25: .fnstart @ args = 0, pretend = 0, frame = 96 @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} .save {r4, r5, r6, r7, r8, r9, sl, fp, lr} mov r3, #2048 - ldr r4, .L2346 + ldr r4, .L2379 .pad #100 sub sp, sp, #100 - ldr r8, .L2346+4 + ldr r8, .L2379+4 mov r5, r1 mov r7, r0 mov r9, r2 - str r3, [r4, #456] - movw r3, #3922 + str r3, [r4, #464] + movw r3, #3924 ldrh r6, [r8, r3] mov r1, r6 bl __aeabi_uidiv @@ -20457,21 +20732,21 @@ ftl_write.part.23: add r0, r0, r5 bl __aeabi_uidiv ldr r3, [sp, #16] - ldr sl, [r8, #3968] + ldr sl, [r8, #3972] cmp sl, #0 rsb fp, r3, r0 str r0, [sp, #36] add r3, fp, #1 str r3, [sp, #20] ldr lr, [sp, #20] - ldr r3, [r4, #-1828] + ldr r3, [r4, #-1824] add r3, lr, r3 - str r3, [r4, #-1828] - ldr r3, [r4, #-1812] + str r3, [r4, #-1824] + ldr r3, [r4, #-1808] add r3, r5, r3 - str r3, [r4, #-1812] - beq .L2334 - ldr r3, [r8, #3972] + str r3, [r4, #-1808] + beq .L2367 + ldr r3, [r8, #3976] sub sl, sl, #1 mov r2, #36 ldr r0, [sp, #16] @@ -20479,15 +20754,15 @@ ftl_write.part.23: ldr r3, [sl, #16] cmp r0, r3 strne r5, [sp, #32] - bne .L2303 - ldr r3, [r4, #-1824] + bne .L2336 + ldr r3, [r4, #-1820] mov r0, r7 mov r1, r6 add r3, r3, #1 - str r3, [r4, #-1824] - ldr r3, [r4, #460] + str r3, [r4, #-1820] + ldr r3, [r4, #468] add r3, r3, #1 - str r3, [r4, #460] + str r3, [r4, #468] bl __aeabi_uidivmod ldr r0, [sl, #8] rsb r8, r1, r6 @@ -20501,11 +20776,11 @@ ftl_write.part.23: bl memcpy cmp fp, #0 ldr r3, [sp, #4] - bne .L2304 - ldr r2, [r4, #460] + bne .L2337 + ldr r2, [r4, #468] cmp r2, #2 - ble .L2305 -.L2304: + ble .L2338 +.L2337: add r9, r9, r3 add r7, r7, r8 ldr r3, [sp, #16] @@ -20514,85 +20789,85 @@ ftl_write.part.23: add r3, r3, #1 str r1, [sp, #32] str r3, [sp, #16] -.L2303: - ldr r3, .L2346 +.L2336: + ldr r3, .L2379 mov r2, #0 - str r2, [r3, #460] - b .L2302 -.L2334: + str r2, [r3, #468] + b .L2335 +.L2367: str r5, [sp, #32] -.L2302: +.L2335: ldr r0, [sp, #16] ldr r1, [sp, #36] bl FtlCacheMetchLpa cmp r0, #0 - beq .L2306 + beq .L2339 bl FtlCacheWriteBack -.L2306: +.L2339: cmp r5, r6, asl #1 - ldr r3, .L2346 - ldr r4, .L2346+4 + ldr r3, .L2379 + ldr r4, .L2379+4 mov fp, #0 movcc r6, #0 movcs r6, #1 str r6, [sp, #24] - ldr r6, .L2346+8 + ldr r6, .L2379+8 ldr r5, [sp, #16] mov sl, r4 str fp, [sp, #40] - str r6, [r3, #444] - b .L2343 -.L2332: + str r6, [r3, #452] + b .L2376 +.L2365: ldrh r1, [r6, #4] cmp r1, #0 - bne .L2308 - ldr r2, .L2346+8 - ldr r3, .L2346+12 + bne .L2341 + ldr r2, .L2379+8 + ldr r3, .L2379+12 cmp r6, r2 - bne .L2309 - ldr r2, .L2346+16 + bne .L2342 + ldr r2, .L2379+16 ldrh r8, [r8, r2] cmp r8, #0 - bne .L2310 - ldr r0, .L2346+20 + bne .L2343 + ldr r0, .L2379+20 str r3, [sp, #4] bl allocate_new_data_superblock ldr r3, [sp, #4] - str r8, [r3, #3100] -.L2310: - ldr r0, .L2346+8 + str r8, [r3, #3228] +.L2343: + ldr r0, .L2379+8 str r3, [sp, #4] bl allocate_new_data_superblock ldr r3, [sp, #4] - ldr r2, [r3, #3100] - ldr r3, .L2346+20 + ldr r2, [r3, #3228] + ldr r3, .L2379+20 cmp r2, #0 movne r6, r3 - b .L2311 -.L2309: - str r1, [r3, #3100] - ldr r3, .L2346+24 + b .L2344 +.L2342: + str r1, [r3, #3228] + ldr r3, .L2379+24 ldrh r3, [r8, r3] cmp r3, #0 movne r6, r2 - bne .L2311 + bne .L2344 mov r0, r6 bl allocate_new_data_superblock -.L2311: +.L2344: ldrh r3, [r6, #4] cmp r3, #0 - bne .L2312 + bne .L2345 mov r0, r6 bl allocate_new_data_superblock -.L2312: - ldr r3, .L2346 - str r6, [r3, #444] -.L2308: - ldr r2, .L2346 +.L2345: + ldr r3, .L2379 + str r6, [r3, #452] +.L2341: + ldr r2, .L2379 mov r8, r6 ldrh r3, [r6, #4] - ldr r1, [r2, #-972] - ldr r2, [r4, #3968] + ldr r1, [r2, #-964] + ldr r2, [r4, #3972] rsb r2, r2, r1 cmp r3, r2 movcc r2, r3 @@ -20602,29 +20877,29 @@ ftl_write.part.23: str r3, [sp, #52] mov r3, #0 str r3, [sp, #28] - b .L2313 -.L2329: + b .L2346 +.L2362: ldrh r3, [r8, #4] cmp r3, #0 - beq .L2314 + beq .L2347 ldr r6, [sp, #36] rsb lr, r6, r5 ldr r6, [sp, #24] rsbs r3, lr, #0 adc r3, r3, lr tst r3, r6 - beq .L2315 + beq .L2348 ldr r6, [sp, #28] cmp r6, #0 - beq .L2315 - movw lr, #3922 + beq .L2348 + movw lr, #3924 ldr r6, [sp, #32] ldrh r2, [r4, lr] add r1, r6, r7 mls r1, r2, r5, r1 cmp r1, r2 - bne .L2314 -.L2315: + bne .L2347 +.L2348: add r1, sp, #56 mov r2, #0 mov r0, r5 @@ -20632,15 +20907,15 @@ ftl_write.part.23: bl log2phys mov r0, r8 bl get_new_active_ppa - ldr lr, [r4, #3968] - ldr r1, [r4, #3972] - movw r2, #3928 + ldr lr, [r4, #3972] + ldr r1, [r4, #3976] + movw r2, #3930 mov ip, #36 ldrh r2, [r4, r2] - ldr r6, .L2346 + ldr r6, .L2379 mla r1, ip, lr, r1 mul lr, lr, r2 - ldr r6, [r6, #-924] + ldr r6, [r6, #-916] bic lr, lr, #3 str r6, [sp, #48] str lr, [sp, #44] @@ -20648,14 +20923,14 @@ ftl_write.part.23: str r5, [r1, #16] str r6, [r1, #12] str r0, [r1, #4] - movw r0, #3926 + movw r0, #3928 ldrh lr, [r4, r0] - ldr r0, [r4, #3968] + ldr r0, [r4, #3972] mul lr, r0, lr - ldr r0, .L2346 + ldr r0, .L2379 bic lr, lr, #3 str lr, [sp, #12] - ldr lr, [r0, #-944] + ldr lr, [r0, #-936] ldr r0, [sp, #12] add lr, lr, r0 mov r0, r6 @@ -20671,11 +20946,11 @@ ftl_write.part.23: str r1, [sp, #12] orrs r1, r1, r3 ldr ip, [sp, #8] - beq .L2316 + beq .L2349 ldr r2, [sp, #12] cmp r2, #0 - beq .L2317 - movw r3, #3922 + beq .L2350 + movw r3, #3924 mov r0, r7 ldrh fp, [r4, r3] mov r1, fp @@ -20685,27 +20960,27 @@ ftl_write.part.23: str r1, [sp, #40] cmp fp, r3 movcs fp, r3 - b .L2318 -.L2317: + b .L2351 +.L2350: cmp r3, #0 - beq .L2318 + beq .L2351 ldr r3, [sp, #32] - movw lr, #3922 + movw lr, #3924 add fp, r3, r7 ldrh r3, [r4, lr] mls fp, r3, r5, fp ldr r3, [sp, #12] str r3, [sp, #40] uxth fp, fp -.L2318: - movw lr, #3922 +.L2351: + movw lr, #3924 ldrh r3, [r4, lr] cmp fp, r3 - bne .L2319 + bne .L2352 ldr r3, [sp, #12] - ldr r0, [sl, #3968] + ldr r0, [sl, #3972] cmp r3, #0 - ldr r2, [sl, #3972] + ldr r2, [sl, #3976] ldr r3, [sp, #24] muleq r1, r5, fp movne r1, r9 @@ -20715,20 +20990,20 @@ ftl_write.part.23: mov r3, #36 mla r3, r3, r0, r2 strne r1, [r3, #8] - bne .L2322 + bne .L2355 ldr r0, [r3, #8] - movw r3, #3926 + movw r3, #3928 ldrh r2, [sl, r3] - b .L2344 -.L2319: + b .L2377 +.L2352: ldr r2, [sp, #56] mov r3, #36 cmn r2, #1 - beq .L2323 - ldr r1, [r4, #3968] + beq .L2356 + ldr r1, [r4, #3972] add r0, sp, #60 str r2, [sp, #64] - ldr r2, [r4, #3972] + ldr r2, [r4, #3976] str r5, [sp, #76] mla r3, r3, r1, r2 mov r1, #1 @@ -20740,38 +21015,38 @@ ftl_write.part.23: bl FlashReadPages ldr r3, [sp, #60] cmn r3, #1 - ldr r3, .L2346 - ldreq r2, [r3, #-1636] + ldr r3, .L2379 + ldreq r2, [r3, #-1628] addeq r2, r2, #1 - streq r2, [r3, #-1636] - beq .L2325 + streq r2, [r3, #-1628] + beq .L2358 ldr r2, [r6, #8] cmp r2, r5 - beq .L2325 - ldr r2, [r3, #-1636] - ldr r0, .L2346+28 + beq .L2358 + ldr r2, [r3, #-1628] + ldr r0, .L2379+28 add r2, r2, #1 - str r2, [r3, #-1636] + str r2, [r3, #-1628] mov r2, r5 ldr r1, [r6, #8] bl printk - b .L2325 -.L2323: - ldr r1, [r4, #3968] - ldr r2, [r4, #3972] + b .L2358 +.L2356: + ldr r1, [r4, #3972] + ldr r2, [r4, #3976] mla r3, r3, r1, r2 mov r1, #0 ldr r0, [r3, #8] - movw r3, #3926 + movw r3, #3928 ldrh r2, [r4, r3] bl ftl_memset -.L2325: +.L2358: ldr r3, [sp, #12] - ldr r1, [r4, #3968] + ldr r1, [r4, #3972] cmp r3, #0 - ldr r2, [r4, #3972] + ldr r2, [r4, #3976] mov r3, #36 - movweq lr, #3922 + movweq lr, #3924 mla r3, r3, r1, r2 ldreqh r1, [r4, lr] movne r1, r9 @@ -20783,140 +21058,140 @@ ftl_write.part.23: ldreq r0, [r3, #8] addne r0, r0, r3, asl #9 addeq r1, r9, r1, asl #9 - b .L2344 -.L2316: + b .L2377 +.L2349: ldr r3, [sp, #24] - ldr r2, [r4, #3968] + ldr r2, [r4, #3972] cmp r3, #0 - ldr r3, [r4, #3972] + ldr r3, [r4, #3976] mla ip, ip, r2, r3 - beq .L2327 - movw lr, #3922 + beq .L2360 + movw lr, #3924 ldrh r3, [r4, lr] mul r3, r3, r5 rsb r3, r7, r3 add r3, r9, r3, asl #9 str r3, [ip, #8] - b .L2322 -.L2327: - movw r0, #3922 - movw r3, #3926 + b .L2355 +.L2360: + movw r0, #3924 + movw r3, #3928 ldrh r1, [r4, r0] ldrh r2, [r4, r3] ldr r0, [ip, #8] mul r1, r1, r5 rsb r1, r7, r1 add r1, r9, r1, asl #9 -.L2344: +.L2377: bl memcpy -.L2322: - ldr r3, .L2346+32 +.L2355: + ldr r3, .L2379+32 ldr r0, [sp, #48] ldr lr, [sp, #44] strh r3, [r0, lr] @ movhi - ldr r3, .L2346 + ldr r3, .L2379 str r5, [r6, #8] add r5, r5, #1 - ldr r2, [r3, #-1800] + ldr r2, [r3, #-1796] str r2, [r6, #4] add r2, r2, #1 cmn r2, #1 - str r2, [r3, #-1800] + str r2, [r3, #-1796] moveq r2, #0 - streq r2, [r3, #-1800] + streq r2, [r3, #-1796] ldr r3, [sp, #56] str r3, [r6, #12] ldrh r3, [r8, #0] strh r3, [r6, #2] @ movhi - ldr r3, [r4, #3968] + ldr r3, [r4, #3972] add r3, r3, #1 - str r3, [r4, #3968] + str r3, [r4, #3972] ldr r3, [sp, #28] add r3, r3, #1 str r3, [sp, #28] -.L2313: +.L2346: ldr r6, [sp, #28] ldr r3, [sp, #52] cmp r6, r3 - bne .L2329 -.L2314: + bne .L2362 +.L2347: ldr r3, [sp, #20] mov r6, r8 ldr lr, [sp, #28] - ldr r2, [r4, #3968] + ldr r2, [r4, #3972] rsb r3, lr, r3 str r3, [sp, #20] - ldr r3, .L2346 + ldr r3, .L2379 ldr r0, [sp, #24] - ldr r3, [r3, #-972] + ldr r3, [r3, #-964] cmp r2, r3 orrcs r0, r0, #1 uxtb r3, r0 cmp r3, #0 - bne .L2330 + bne .L2363 ldrh r2, [r8, #4] cmp r2, #0 - bne .L2340 -.L2330: + bne .L2373 +.L2363: bl FtlCacheWriteBack ldr lr, [sp, #20] mov r3, #0 - str r3, [sl, #3968] + str r3, [sl, #3972] cmp lr, #1 ldr r3, [sp, #24] movls r3, #0 -.L2340: +.L2373: str r3, [sp, #24] -.L2343: +.L2376: ldr r3, [sp, #20] - ldr r8, .L2346 + ldr r8, .L2379 cmp r3, #0 - bne .L2332 + bne .L2365 mov r0, r3 ldr r6, [sp, #36] ldr r3, [sp, #16] rsb r1, r3, r6 bl ftl_do_gc - ldr r3, .L2346+36 + ldr r3, .L2379+36 ldrh r3, [r8, r3] cmp r3, #31 - bhi .L2305 - ldr r2, .L2346+40 + bhi .L2338 + ldr r2, .L2379+40 mov r3, #128 - ldr r5, .L2346+4 + ldr r5, .L2379+4 mov r4, #16 strh r3, [r8, r2] @ movhi sub r2, r2, #2 strh r3, [r8, r2] @ movhi -.L2333: +.L2366: mov r0, #0 mov r1, #1 bl ftl_do_gc - ldr r3, [r5, #4040] + ldr r3, [r5, #4044] cmp r3, #0 - bne .L2305 + bne .L2338 subs r4, r4, #1 - bne .L2333 -.L2305: + bne .L2366 +.L2338: mov r0, #0 add sp, sp, #100 ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L2347: +.L2380: .align 2 -.L2346: +.L2379: .word .LANCHOR2 .word .LANCHOR0 - .word .LANCHOR2-1996 + .word .LANCHOR2-1992 .word .LANCHOR1 - .word -1944 - .word .LANCHOR2-1948 - .word -1992 - .word .LC157 + .word -1940 + .word .LANCHOR2-1944 + .word -1988 + .word .LC158 .word -3947 - .word -2000 - .word -1194 + .word -1996 + .word -1186 .fnend - .size ftl_write.part.23, .-ftl_write.part.23 + .size ftl_write.part.25, .-ftl_write.part.25 .align 2 .global ftl_write .type ftl_write, %function @@ -20928,31 +21203,31 @@ ftl_write: mov r0, r1 mov r1, r2 mov r2, r3 - ldr r3, .L2353 + ldr r3, .L2386 stmfd sp!, {r4, lr} .save {r4, lr} - ldr r4, [r3, #4040] + ldr r4, [r3, #4044] cmp r4, #0 movne r0, #0 ldmnefd sp!, {r4, pc} cmp ip, #16 - bne .L2350 + bne .L2383 add r0, r0, #256 ldmfd sp!, {r4, lr} b FtlVendorPartWrite -.L2350: - ldr r3, [r3, #3956] +.L2383: + ldr r3, [r3, #3960] add ip, r1, r0 cmp ip, r3 - bhi .L2352 + bhi .L2385 ldmfd sp!, {r4, lr} - b ftl_write.part.23 -.L2352: + b ftl_write.part.25 +.L2385: mvn r0, #0 ldmfd sp!, {r4, pc} -.L2354: +.L2387: .align 2 -.L2353: +.L2386: .word .LANCHOR0 .fnend .size ftl_write, .-ftl_write @@ -21051,24 +21326,24 @@ ftl_read: mov r6, r1 mov r8, r3 str r2, [sp, #48] - bne .L2360 + bne .L2393 add r0, r1, #256 mov r1, r2 mov r2, r3 bl FtlVendorPartRead str r0, [sp, #36] - b .L2361 -.L2360: - ldr r3, .L2391 + b .L2394 +.L2393: + ldr r3, .L2424 ldr r1, [sp, #48] - ldr r2, [r3, #3956] + ldr r2, [r3, #3960] add r1, r1, r6 str r1, [sp, #40] cmp r1, r2 mvnhi r3, #0 strhi r3, [sp, #36] - bhi .L2361 - movw r2, #3922 + bhi .L2394 + movw r2, #3924 mov r0, r6 ldrh r4, [r3, r2] mov r1, r4 @@ -21083,75 +21358,75 @@ ftl_read: ldr r1, [sp, #48] add r3, r3, r0 str r3, [sp, #24] - ldr r3, .L2391+4 + ldr r3, .L2424+4 str r0, [sp, #32] ldr r0, [sp, #28] - ldr r2, [r3, #-1808] + ldr r2, [r3, #-1804] add r2, r1, r2 ldr r1, [sp, #24] - str r2, [r3, #-1808] - ldr r2, [r3, #-1836] + str r2, [r3, #-1804] + ldr r2, [r3, #-1832] add r2, r1, r2 ldr r1, [sp, #32] - str r2, [r3, #-1836] + str r2, [r3, #-1832] bl FtlCacheMetchLpa cmp r0, #0 - beq .L2362 + beq .L2395 bl FtlCacheWriteBack -.L2362: +.L2395: mov r9, #0 ldr r5, [sp, #28] str r9, [sp, #52] mov r4, r9 str r9, [sp, #36] mov r7, r6 - ldr sl, .L2391 - b .L2386 -.L2380: + ldr sl, .L2424 + b .L2419 +.L2413: mov r2, #0 mov r0, r5 add r1, sp, #76 bl log2phys ldr r2, [sp, #76] cmn r2, #1 - bne .L2387 - b .L2390 -.L2367: + bne .L2420 + b .L2423 +.L2400: mla r0, r0, r5, r6 cmp r0, r7 - bcc .L2366 + bcc .L2399 ldr r2, [sp, #40] cmp r0, r2 - bcs .L2366 + bcs .L2399 rsb r0, r7, r0 mov r1, #0 mov r2, #512 add r0, r8, r0, asl #9 bl ftl_memset -.L2366: +.L2399: add r6, r6, #1 - b .L2364 -.L2390: + b .L2397 +.L2423: mov r6, #0 - movw fp, #3922 -.L2364: + movw fp, #3924 +.L2397: ldrh r0, [sl, fp] cmp r6, r0 - bcc .L2367 - b .L2368 -.L2387: - ldr r3, .L2391+4 + bcc .L2400 + b .L2401 +.L2420: + ldr r3, .L2424+4 mov r6, #36 - ldr r1, [r3, #-968] + ldr r1, [r3, #-960] mla r6, r6, r4, r1 ldr r1, [sp, #28] cmp r5, r1 str r2, [r6, #4] - movw r2, #3922 - bne .L2369 + movw r2, #3924 + bne .L2402 ldrh fp, [sl, r2] mov r0, r7 - ldr r3, [r3, #-940] + ldr r3, [r3, #-932] mov r1, fp str r3, [r6, #8] bl __aeabi_uidivmod @@ -21163,55 +21438,55 @@ ftl_read: str r2, [sp, #52] cmp r2, fp streq r8, [r6, #8] - b .L2370 -.L2369: + b .L2403 +.L2402: ldr r1, [sp, #32] cmp r5, r1 ldrneh r3, [sl, r2] mulne r3, r3, r5 - bne .L2388 - ldr r3, [r3, #-936] + bne .L2421 + ldr r3, [r3, #-928] ldrh r2, [sl, r2] ldr r1, [sp, #40] str r3, [r6, #8] mul r3, r2, r5 rsb r9, r3, r1 cmp r9, r2 - bne .L2370 -.L2388: + bne .L2403 +.L2421: rsb r3, r7, r3 add r3, r8, r3, asl #9 str r3, [r6, #8] -.L2370: - movw r3, #3928 - ldr r2, .L2391+4 +.L2403: + movw r3, #3930 + ldr r2, .L2424+4 ldrh r3, [sl, r3] str r5, [r6, #16] - ldr r2, [r2, #-928] + ldr r2, [r2, #-920] mul r3, r3, r4 add r4, r4, #1 bic r3, r3, #3 add r3, r2, r3 str r3, [r6, #12] -.L2368: +.L2401: ldr r2, [sp, #24] add r5, r5, #1 subs r2, r2, #1 str r2, [sp, #24] - beq .L2372 - movw r3, #3848 + beq .L2405 + movw r3, #3852 ldrh r3, [sl, r3] cmp r4, r3, asl #3 - bne .L2386 -.L2372: + bne .L2419 +.L2405: cmp r4, #0 - beq .L2386 - ldr r6, .L2391+4 + beq .L2419 + ldr r6, .L2424+4 mov r1, r4 mov r2, #0 mov fp, r5 mov r5, r4 - ldr r0, [r6, #-968] + ldr r0, [r6, #-960] bl FlashReadPages ldr r3, [sp, #56] ldr r1, [sp, #52] @@ -21223,60 +21498,60 @@ ftl_read: mov r3, #0 str r1, [sp, #64] str r3, [sp, #44] -.L2379: +.L2412: ldr r1, [sp, #44] mov r4, #36 - ldr r3, [r6, #-968] + ldr r3, [r6, #-960] mul r4, r4, r1 ldr r1, [sp, #28] add r3, r3, r4 ldr r2, [r3, #16] cmp r2, r1 - bne .L2374 + bne .L2407 ldr r1, [r3, #8] - ldr r3, [r6, #-940] + ldr r3, [r6, #-932] cmp r1, r3 - bne .L2375 + bne .L2408 ldr r2, [sp, #60] mov r0, r8 add r1, r1, r2 ldr r2, [sp, #64] - b .L2389 -.L2374: + b .L2422 +.L2407: ldr r1, [sp, #32] cmp r2, r1 - bne .L2375 + bne .L2408 ldr r1, [r3, #8] - ldr r3, [r6, #-936] + ldr r3, [r6, #-928] cmp r1, r3 - bne .L2375 - movw r2, #3922 + bne .L2408 + movw r2, #3924 ldr r3, [sp, #32] ldrh r0, [sl, r2] ldr r2, [sp, #68] mul r0, r0, r3 rsb r0, r7, r0 add r0, r8, r0, asl #9 -.L2389: +.L2422: bl memcpy -.L2375: - ldr r2, [r6, #-968] +.L2408: + ldr r2, [r6, #-960] add r3, r2, r4 ldr r2, [r2, r4] cmn r2, #1 streq r2, [sp, #36] - ldreq r1, [r6, #-1636] + ldreq r1, [r6, #-1628] addeq r1, r1, #1 - streq r1, [r6, #-1636] + streq r1, [r6, #-1628] ldr r2, [r3, #12] ldr r1, [r3, #16] ldr r2, [r2, #8] cmp r1, r2 - beq .L2377 - ldr r2, [r6, #-1636] - ldr r0, .L2391+8 + beq .L2410 + ldr r2, [r6, #-1628] + ldr r0, .L2424+8 add r2, r2, #1 - str r2, [r6, #-1636] + str r2, [r6, #-1628] ldr ip, [r3, #12] ldr r2, [r3, #8] ldr r1, [ip, #4] @@ -21293,47 +21568,47 @@ ftl_read: ldr r2, [r3, #4] ldr r3, [ip, #0] bl printk -.L2377: - ldr r3, [r6, #-968] +.L2410: + ldr r3, [r6, #-960] add r2, r3, r4 ldr r3, [r3, r4] cmp r3, #256 - bne .L2378 + bne .L2411 ldr r0, [r2, #4] ubfx r0, r0, #10, #16 bl P2V_block_in_plane bl FtlGcRefreshBlock -.L2378: +.L2411: ldr r1, [sp, #44] add r1, r1, #1 str r1, [sp, #44] cmp r1, r5 - bne .L2379 + bne .L2412 mov r5, fp mov r4, #0 -.L2386: +.L2419: ldr r2, [sp, #24] cmp r2, #0 - bne .L2380 - ldr r3, .L2391+12 - ldr r2, .L2391+4 + bne .L2413 + ldr r3, .L2424+12 + ldr r2, .L2424+4 ldrh r3, [r2, r3] cmp r3, #0 - beq .L2361 + beq .L2394 ldr r0, [sp, #24] mov r1, #1 bl ftl_do_gc -.L2361: +.L2394: ldr r0, [sp, #36] add sp, sp, #84 ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L2392: +.L2425: .align 2 -.L2391: +.L2424: .word .LANCHOR0 .word .LANCHOR2 - .word .LC142 - .word -1134 + .word .LC143 + .word -1126 .fnend .size ftl_read, .-ftl_read .align 2 @@ -21432,8 +21707,8 @@ FlashBootVendorRead: .fnend .size FlashBootVendorRead, .-FlashBootVendorRead .align 2 - .type rk_ftl_vendor_ops.constprop.27, %function -rk_ftl_vendor_ops.constprop.27: + .type rk_ftl_vendor_ops.constprop.29, %function +rk_ftl_vendor_ops.constprop.29: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @@ -21443,12 +21718,12 @@ rk_ftl_vendor_ops.constprop.27: mov r2, r3 mov r0, r1 mov r1, #128 - beq .L2399 + beq .L2432 b FlashBootVendorWrite -.L2399: +.L2432: b FlashBootVendorRead .fnend - .size rk_ftl_vendor_ops.constprop.27, .-rk_ftl_vendor_ops.constprop.27 + .size rk_ftl_vendor_ops.constprop.29, .-rk_ftl_vendor_ops.constprop.29 .align 2 .global FtlCheckVpc .type FtlCheckVpc, %function @@ -21459,126 +21734,126 @@ FtlCheckVpc: stmfd sp!, {r0, r1, r2, r4, r5, r6, r7, r8, sl, lr} .save {r0, r1, r2, r4, r5, r6, r7, r8, sl, lr} mov r4, #0 - ldr r1, .L2411 - ldr r0, .L2411+4 + ldr r1, .L2444 + ldr r0, .L2444+4 bl printk - ldr r0, .L2411+8 + ldr r0, .L2444+8 mov r1, #8192 - ldr r6, .L2411+12 + ldr r6, .L2444+12 bl __memzero - ldr r5, .L2411+16 - b .L2401 -.L2403: + ldr r5, .L2444+16 + b .L2434 +.L2436: mov r0, r4 add r1, sp, #4 mov r2, #0 bl log2phys ldr r0, [sp, #4] cmn r0, #1 - beq .L2402 + beq .L2435 ubfx r0, r0, #10, #16 bl P2V_block_in_plane add r0, r5, r0, asl #1 - add r0, r0, #464 + add r0, r0, #472 ldrh r3, [r0, #0] add r3, r3, #1 strh r3, [r0, #0] @ movhi -.L2402: +.L2435: add r4, r4, #1 -.L2401: - ldr r3, [r6, #3976] - ldr r7, .L2411+12 +.L2434: + ldr r3, [r6, #3980] + ldr r7, .L2444+12 cmp r4, r3 - bcc .L2403 - ldr r5, .L2411+16 - mov r6, #3856 - ldr r0, .L2411+20 + bcc .L2436 + ldr r5, .L2444+16 + movw r6, #3860 + ldr r0, .L2444+20 mov r2, #2 ldrh r3, [r7, r6] mov r4, #0 - ldr r1, [r5, #-2016] + ldr r1, [r5, #-2012] bl rknand_print_hex - ldr r0, .L2411+24 - add r1, r5, #464 + ldr r0, .L2444+24 + add r1, r5, #472 mov r2, #2 ldrh r3, [r7, r6] bl rknand_print_hex - b .L2404 -.L2406: - ldr r2, [r5, #-2016] + b .L2437 +.L2439: + ldr r2, [r5, #-2012] mov r3, r4, asl #1 ldrh r2, [r2, r3] add r3, r5, r3 - add r3, r3, #464 + add r3, r3, #472 ldrh r3, [r3, #0] cmp r2, r3 - beq .L2405 - ldr r0, .L2411+28 + beq .L2438 + ldr r0, .L2444+28 mov r1, r4 bl printk -.L2405: +.L2438: add r4, r4, #1 uxth r4, r4 -.L2404: +.L2437: ldrh r3, [r7, r6] cmp r3, r4 - ldr r3, .L2411+16 - bhi .L2406 - ldr r2, [r3, #-2004] + ldr r3, .L2444+16 + bhi .L2439 + ldr r2, [r3, #-2000] cmp r2, #0 - beq .L2400 - ldr r4, [r3, #-2024] + beq .L2433 + ldr r4, [r3, #-2020] mov r6, #0 - ldr r1, .L2411+32 + ldr r1, .L2444+32 mov r5, r3 rsb r2, r4, r2 - ldr r4, .L2411+36 + ldr r4, .L2444+36 mov r8, #6 movw sl, #65535 mov r2, r2, asr #1 ldrh r7, [r3, r1] mul r4, r4, r2 uxth r4, r4 - b .L2408 -.L2410: - ldr r2, [r5, #-2016] + b .L2441 +.L2443: + ldr r2, [r5, #-2012] mov r3, r4, asl #1 ldrh r2, [r2, r3] cmp r2, #0 - beq .L2409 + beq .L2442 add r3, r5, r3 - ldr r0, .L2411+40 - add r3, r3, #464 + ldr r0, .L2444+40 + add r3, r3, #472 mov r1, r4 ldrh r3, [r3, #0] bl printk -.L2409: +.L2442: mul r4, r8, r4 - ldr r3, [r5, #-2024] + ldr r3, [r5, #-2020] ldrh r4, [r3, r4] cmp r4, sl - beq .L2400 + beq .L2433 add r6, r6, #1 uxth r6, r6 -.L2408: +.L2441: cmp r6, r7 - bne .L2410 -.L2400: + bne .L2443 +.L2433: ldmfd sp!, {r1, r2, r3, r4, r5, r6, r7, r8, sl, pc} -.L2412: +.L2445: .align 2 -.L2411: +.L2444: .word .LANCHOR3+77 - .word .LC102 - .word .LANCHOR2+464 + .word .LC101 + .word .LANCHOR2+472 .word .LANCHOR0 .word .LANCHOR2 - .word .LC158 .word .LC159 .word .LC160 - .word -2000 - .word -1431655765 .word .LC161 + .word -1996 + .word -1431655765 + .word .LC162 .fnend .size FtlCheckVpc, .-FtlCheckVpc .align 2 @@ -21586,9 +21861,9 @@ FtlCheckVpc: .type HynixGetReadRetryDefault, %function HynixGetReadRetryDefault: .fnstart - @ args = 0, pretend = 0, frame = 64 + @ args = 0, pretend = 0, frame = 56 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L2498 + ldr r3, .L2541 mvn r2, #83 stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} .save {r4, r5, r6, r7, r8, r9, sl, fp, lr} @@ -21599,21 +21874,22 @@ HynixGetReadRetryDefault: mvn r0, #82 mvn r1, #81 mvn r2, #80 - .pad #68 - sub sp, sp, #68 + .pad #60 + sub sp, sp, #60 strb r0, [r3, #5] strb r1, [r3, #6] strb r2, [r3, #7] - bne .L2414 + bne .L2447 mvn r2, #88 strb r2, [r3, #4] - ldr r3, .L2498+4 + ldr r3, .L2541+4 mvn r2, #8 - strb r2, [r3, #3121] - b .L2470 -.L2414: + mov r7, #7 + strb r2, [r3, #3249] + b .L2511 +.L2447: cmp r4, #3 - bne .L2416 + bne .L2449 mvn r2, #79 strb r2, [r3, #4] mvn r2, #78 @@ -21629,10 +21905,10 @@ HynixGetReadRetryDefault: mvn r2, #73 strb r2, [r3, #10] mvn r2, #72 - b .L2493 -.L2416: + b .L2535 +.L2449: cmp r4, #4 - bne .L2417 + bne .L2450 mvn ip, #51 strb r0, [r3, #9] strb ip, [r3, #4] @@ -21645,16 +21921,16 @@ HynixGetReadRetryDefault: strb ip, [r3, #7] mvn ip, #50 strb ip, [r3, #8] -.L2493: - mov r6, #8 +.L2535: + mov r7, #8 strb r2, [r3, #11] - mov r5, r6 - b .L2415 -.L2417: + mov r6, r7 + b .L2448 +.L2450: cmp r4, #5 - bne .L2418 + bne .L2451 mov r2, #56 - mov r6, #8 + mov r7, #8 strb r2, [r3, #4] mov r2, #57 strb r2, [r3, #5] @@ -21662,12 +21938,12 @@ HynixGetReadRetryDefault: strb r2, [r3, #6] mov r2, #59 strb r2, [r3, #7] - b .L2492 -.L2418: + b .L2511 +.L2451: cmp r4, #6 - bne .L2419 + bne .L2452 mov r2, #14 - mov r6, #12 + mov r7, #12 strb r2, [r3, #4] mov r2, #15 strb r2, [r3, #5] @@ -21675,14 +21951,14 @@ HynixGetReadRetryDefault: strb r2, [r3, #6] mov r2, #17 strb r2, [r3, #7] - b .L2492 -.L2419: + b .L2511 +.L2452: cmp r4, #7 - bne .L2470 + bne .L2453 mvn r2, #79 - mov r6, #12 + mov r7, #12 strb r2, [r3, #4] - mov r5, #10 + mov r6, #10 mvn r2, #78 strb r2, [r3, #5] mvn r2, #77 @@ -21701,21 +21977,34 @@ HynixGetReadRetryDefault: strb r2, [r3, #12] mvn r2, #42 strb r2, [r3, #13] - b .L2415 -.L2470: - mov r6, #7 -.L2492: - mov r5, #4 -.L2415: + b .L2448 +.L2453: + cmp r4, #8 + mov r7, #7 + bne .L2511 + mov r2, #6 + strb r7, [r3, #5] + strb r2, [r3, #4] + mov r7, #50 + mov r2, #9 + strb r4, [r3, #6] + strb r2, [r3, #7] + mov r6, #5 + mov r2, #10 + strb r2, [r3, #8] + b .L2448 +.L2511: + mov r6, #4 +.L2448: sub r3, r4, #1 cmp r3, #1 - bhi .L2488 - b .L2496 -.L2426: + bhi .L2531 + b .L2539 +.L2460: add r2, fp, r8 add r4, fp, #20 - mov r7, #0 - mov r5, #55 + mov r5, #0 + mov r6, #55 ldrb r2, [r2, #3764] @ zero_extendqisi2 add r4, r4, r2, asl #6 add r2, fp, r2, asl #3 @@ -21723,40 +22012,40 @@ HynixGetReadRetryDefault: ldr r1, [r2, #864] add sl, sl, #8 add sl, r1, sl, asl #8 -.L2422: - add r2, fp, r7 - str r5, [sl, #8] +.L2456: + add r2, fp, r5 + str r6, [sl, #8] mov r0, #80 ldrb r2, [r2, #4] @ zero_extendqisi2 str r2, [sl, #4] - str r3, [sp, #12] + str r3, [sp, #8] bl NandcDelayns ldr r2, [sl, #0] - strb r2, [r4, r7] - add r7, r7, #1 - ldr r3, [sp, #12] - uxtb r2, r7 - cmp r2, r6 - bcc .L2422 + strb r2, [r4, r5] + add r5, r5, #1 + ldr r3, [sp, #8] + uxtb r2, r5 + cmp r2, r7 + bcc .L2456 mov r2, #0 - b .L2423 -.L2424: - ldrb r7, [r0, r1, asl #2] @ zero_extendqisi2 + b .L2457 +.L2458: + ldrb r6, [r0, r1, asl #2] @ zero_extendqisi2 ldrb r5, [r4, r2] @ zero_extendqisi2 - add r5, r7, r5 + add r5, r6, r5 strb r5, [ip, r1, asl #3] add r1, r1, #1 cmp r1, #7 - bne .L2424 + bne .L2458 add r2, r2, #1 cmp r2, #4 - beq .L2425 -.L2423: + beq .L2459 +.L2457: mov r1, #1 add ip, r4, r2 add r0, r2, r9 - b .L2424 -.L2425: + b .L2458 +.L2459: add r8, r8, #1 mov r2, #0 strb r2, [r4, #16] @@ -21767,85 +22056,115 @@ HynixGetReadRetryDefault: strb r2, [r4, #48] strb r2, [r4, #41] strb r2, [r4, #49] - b .L2420 -.L2496: - ldr r9, .L2498+8 - mov r3, r6 + b .L2454 +.L2539: + ldr r9, .L2541+8 + mov r3, r7 mov r8, #0 - mov r6, r5 -.L2420: - ldr fp, .L2498 + mov r7, r6 +.L2454: + ldr fp, .L2541 ldrb r2, [fp, #3762] @ zero_extendqisi2 cmp r2, r8 - bhi .L2426 - mov r5, r6 - mov r6, r3 - b .L2427 -.L2488: + bhi .L2460 + mov r6, r7 + mov r7, r3 + b .L2461 +.L2531: sub r3, r4, #3 - cmp r3, #4 - bhi .L2427 - mul r3, r6, r5 + cmp r3, #5 + bhi .L2461 + mul r3, r7, r6 mov sl, #0 - mov r7, sl - str r6, [sp, #48] - mov r2, r3, asr #2 + mov r5, sl + str r7, [sp, #48] + mov r2, r3, asr #1 mov r3, r3, asl #4 str r2, [sp, #24] str r3, [sp, #52] - b .L2428 -.L2469: + b .L2462 +.L2510: add r3, r1, sl - ldrb r6, [r3, #3764] @ zero_extendqisi2 - add r3, r1, r6, asl #3 - mov r0, r6 + ldrb r7, [r3, #3764] @ zero_extendqisi2 + add r3, r1, r7, asl #3 + mov r0, r7 ldrb fp, [r3, #868] @ zero_extendqisi2 ldr r9, [r3, #864] mov r3, #255 add fp, fp, #8 add r8, r9, fp, asl #8 str r3, [r8, #8] - str r1, [sp, #12] + str r1, [sp, #8] bl NandcWaitFlashReady - ldr r1, [sp, #12] cmp r4, #7 + ldr r1, [sp, #8] addeq r1, r1, #28 moveq r3, #160 + mlaeq r3, r3, r7, r1 + streq r3, [sp, #32] + beq .L2464 +.L2463: + cmp r4, #8 addne r1, r1, #20 - addne r1, r1, r6, asl #6 - strne r1, [sp, #28] - mlaeq r3, r3, r6, r1 - streq r3, [sp, #28] + addne r1, r1, r7, asl #6 + strne r1, [sp, #32] + bne .L2464 + mov r3, #120 + mov r2, #25 + str r3, [r8, #8] + add r1, r1, #28 + str r5, [r8, #4] + mov r3, #23 + str r5, [r8, #4] + str r1, [sp, #32] + str r5, [r8, #4] + str r3, [r8, #8] + mov r3, #4 + str r3, [r8, #8] + str r2, [r8, #8] + mov r2, #218 + str r2, [r8, #8] + mov r2, #21 + str r5, [r8, #8] + str r5, [r8, #4] + str r5, [r8, #4] + str r2, [r8, #4] + str r3, [r8, #4] + str r5, [r8, #4] + b .L2466 +.L2464: cmp r4, #4 mov r3, #54 str r3, [r8, #8] - bne .L2431 + bne .L2467 mov r3, #255 str r3, [r8, #4] mov r3, #64 str r3, [r9, fp, asl #8] mov r3, #204 - b .L2494 -.L2431: + b .L2536 +.L2467: sub r3, r4, #5 cmp r3, #1 - ldrls r3, .L2498 + ldrls r3, .L2541 ldrlsb r3, [r3, #4] @ zero_extendqisi2 strls r3, [r8, #4] movls r3, #82 - bls .L2495 -.L2433: + bls .L2537 +.L2469: + cmp r4, #7 + bne .L2468 mov r3, #174 str r3, [r8, #4] mov r3, #176 - str r7, [r9, fp, asl #8] -.L2494: + str r5, [r9, fp, asl #8] +.L2536: str r3, [r8, #4] mov r3, #77 -.L2495: - cmp r4, #6 +.L2537: str r3, [r9, fp, asl #8] - mov r0, r6 +.L2468: + cmp r4, #6 mov r3, #22 str r3, [r8, #8] mov r3, #23 @@ -21855,276 +22174,321 @@ HynixGetReadRetryDefault: mov r3, #25 str r3, [r8, #8] moveq r3, #31 - str r7, [r8, #8] - str r7, [r8, #4] - str r7, [r8, #4] + str r5, [r8, #8] + str r5, [r8, #4] + str r5, [r8, #4] streq r3, [r8, #4] mov r3, #2 - strne r7, [r8, #4] + strne r5, [r8, #4] str r3, [r8, #4] + str r5, [r8, #4] +.L2466: mov r3, #48 - str r7, [r8, #4] + mov r0, r7 str r3, [r8, #8] bl NandcWaitFlashReady sub r3, r4, #5 cmp r3, #1 + sub r2, r4, #8 + movhi r3, #0 + movls r3, #1 str r3, [sp, #36] - movls r1, #16 - bls .L2437 + rsbs r3, r2, #0 + ldr ip, [sp, #36] + adc r3, r3, r2 + str r3, [sp, #20] + orrs ip, ip, r3 + movne r1, #16 + bne .L2472 cmp r4, #7 moveq r1, #32 movne r1, #2 -.L2437: - ldr r3, .L2498+12 - ldr r2, [r3, #152] - mov r3, #0 -.L2438: +.L2472: + ldr r3, .L2541+12 + mov r2, #0 + ldr r3, [r3, #160] +.L2473: ldr r0, [r8, #0] - strb r0, [r2, r3] - add r3, r3, #1 - uxtb r0, r3 + strb r0, [r3, r2] + add r2, r2, #1 + uxtb r0, r2 cmp r0, r1 - bcc .L2438 + bcc .L2473 + ldr r1, [sp, #20] + cmp r1, #0 + beq .L2474 + mov r2, #0 +.L2476: + ldrb r1, [r3, #0] @ zero_extendqisi2 + cmp r1, #50 + beq .L2475 + ldrb r1, [r3, #1] @ zero_extendqisi2 + cmp r1, #5 + beq .L2475 + add r2, r2, #1 + add r3, r3, #4 + uxtb r2, r2 + cmp r2, #8 + bne .L2476 + b .L2477 +.L2475: + cmp r2, #6 + bls .L2478 +.L2477: + ldr r0, .L2541+16 + mov r1, #0 + bl printk +.L2479: + b .L2479 +.L2474: cmp r4, #7 - bne .L2439 - mov r3, #0 -.L2441: - ldrb r1, [r2, #0] @ zero_extendqisi2 + bne .L2480 + ldr r2, [sp, #20] +.L2482: + ldrb r1, [r3, #0] @ zero_extendqisi2 cmp r1, #12 - beq .L2440 - ldrb r1, [r2, #1] @ zero_extendqisi2 + beq .L2481 + ldrb r1, [r3, #1] @ zero_extendqisi2 cmp r1, #10 - beq .L2440 - add r3, r3, #1 - add r2, r2, #4 - uxtb r3, r3 - cmp r3, #8 - bne .L2441 - b .L2442 -.L2440: - cmp r3, #6 - bls .L2443 -.L2442: - ldr r0, .L2498+16 + beq .L2481 + add r2, r2, #1 + add r3, r3, #4 + uxtb r2, r2 + cmp r2, #8 + bne .L2482 + b .L2483 +.L2481: + cmp r2, #6 + bls .L2478 +.L2483: + ldr r0, .L2541+16 mov r1, #0 bl printk -.L2444: - b .L2444 -.L2439: +.L2484: + b .L2484 +.L2480: cmp r4, #6 - bne .L2443 + bne .L2478 mov r1, #8 -.L2445: - ldrb r3, [r2], #1 @ zero_extendqisi2 - cmp r3, #12 - beq .L2443 - ldrb r3, [r2, #7] @ zero_extendqisi2 - cmp r3, #4 - beq .L2443 +.L2485: + ldrb r2, [r3], #1 @ zero_extendqisi2 + cmp r2, #12 + beq .L2478 + ldrb r2, [r3, #7] @ zero_extendqisi2 + cmp r2, #4 + beq .L2478 sub r1, r1, #1 uxtb r1, r1 cmp r1, #0 - bne .L2445 - b .L2497 -.L2447: - b .L2447 -.L2443: - ldr r3, .L2498+12 - mov r2, #0 - ldr ip, [r3, #152] - str ip, [sp, #40] -.L2448: + bne .L2485 + b .L2540 +.L2487: + b .L2487 +.L2478: + ldr r2, .L2541+12 + ldr r3, [r2, #160] + str r3, [sp, #40] + mov r3, #0 +.L2488: + ldr ip, [sp, #40] ldr r1, [r8, #0] - ldr lr, [sp, #40] + strb r1, [ip, r3] + add r3, r3, #1 ldr ip, [sp, #52] - strb r1, [lr, r2] - add r2, r2, #1 - cmp r2, ip - blt .L2448 - ldr r2, [sp, #24] - ldr r1, [r3, #152] - mov r3, #8 - mov ip, r2, asl #2 - mov lr, r2, asl #3 - add r1, r1, ip - str ip, [sp, #32] -.L2450: - mov r2, #0 - mov r0, r2 -.L2449: - ldr ip, [r1, r2] + cmp r3, ip + blt .L2488 + ldr r0, [sp, #24] + ldr ip, [r2, #160] + mov r2, #8 + ldr lr, [sp, #24] + mov r0, r0, asl #1 + str r0, [sp, #44] + add r1, ip, r0 + mov lr, lr, asl #2 + str lr, [sp, #12] +.L2490: + mov r3, #0 + mov r0, r3 +.L2489: + ldrh lr, [r1, r3] add r0, r0, #1 - mvn ip, ip - str ip, [r1, r2] - ldr ip, [sp, #24] - add r2, r2, #4 - cmp r0, ip - blt .L2449 - subs r3, r3, #1 - add r1, r1, lr - bne .L2450 - str r3, [sp, #16] - str sl, [sp, #60] - b .L2451 -.L2455: - mov lr, #1 - mov r0, #0 - mov ip, lr, asl r2 - mov lr, r0 - mov sl, #16 + mvn lr, lr + strh lr, [r1, r3] @ movhi + ldr lr, [sp, #24] + add r3, r3, #2 + cmp r0, lr + blt .L2489 + ldr r0, [sp, #12] + subs r2, r2, #1 + add r1, r1, r0 + bne .L2490 + str ip, [sp, #28] + str r2, [sp, #16] + b .L2491 +.L2495: + mov r1, #1 + mov ip, #16 + mov r0, r1, asl r3 + mov r1, #0 + str ip, [sp, #12] + mov ip, r1 str r3, [sp, #4] - str sl, [sp, #20] -.L2453: - ldr r3, [sp, #56] - ldr r3, [r3, r0] - and sl, ip, r3 - ldr r3, [sp, #20] - cmp sl, ip - ldr sl, [sp, #32] - addeq lr, lr, #1 +.L2493: + ldr r3, [sp, #28] + ldrh lr, [r3, r1] + ldr r3, [sp, #12] + and lr, lr, r0 + cmp lr, r0 + ldr lr, [sp, #44] + addeq ip, ip, #1 subs r3, r3, #1 - add r0, r0, sl - str r3, [sp, #20] - bne .L2453 - cmp lr, #8 - add r2, r2, #1 - orrhi r1, r1, ip - cmp r2, #32 + add r1, r1, lr + str r3, [sp, #12] + bne .L2493 + cmp ip, #8 ldr r3, [sp, #4] - bne .L2455 - ldr ip, [sp, #16] + orrhi r2, r2, r0 + add r3, r3, #1 + uxthhi r2, r2 + cmp r3, #16 + bne .L2495 + ldr ip, [sp, #28] + ldr lr, [sp, #16] + strh r2, [ip], #2 @ movhi + add lr, lr, #1 ldr r2, [sp, #24] - add ip, ip, #1 - ldr sl, [sp, #44] - cmp ip, r2 - str ip, [sp, #16] - str r1, [sl, r3] - add r3, r3, #4 - bge .L2456 -.L2451: - ldr sl, .L2498+12 - mov r1, #0 - mov r2, r1 - ldr sl, [sl, #152] - add ip, sl, r3 - str ip, [sp, #56] - str sl, [sp, #44] - b .L2455 -.L2456: - ldr r3, .L2498+12 - ldr sl, [sp, #60] - ldr r1, [r3, #152] + str ip, [sp, #28] + cmp lr, r2 + str lr, [sp, #16] + bge .L2496 +.L2491: + mov r2, #0 + mov r3, r2 + b .L2495 +.L2496: + ldr r3, .L2541+12 + ldr r1, [r3, #160] mov r3, #0 mov r2, r3 -.L2458: +.L2498: ldr r0, [r1, r3] add r3, r3, #4 cmp r0, #0 addeq r2, r2, #1 cmp r3, #32 - bne .L2458 + bne .L2498 cmp r2, #7 - ble .L2459 - ldr r0, .L2498+20 + ble .L2499 + ldr r0, .L2541+20 mov r2, #1 mov r3, #1024 bl rknand_print_hex - ldr r0, .L2498+16 + ldr r0, .L2541+16 mov r1, #0 bl printk -.L2460: - b .L2460 -.L2459: +.L2500: + b .L2500 +.L2499: cmp r4, #6 - moveq r0, #4 - streq r0, [sp, #16] - beq .L2461 + moveq ip, #4 + beq .L2501 cmp r4, #7 - moveq lr, #10 - movne lr, #8 - str lr, [sp, #16] -.L2461: - cmp r5, #0 + moveq ip, #10 + beq .L2501 + ldr r3, [sp, #20] + cmp r3, #0 + movne ip, #5 + moveq ip, #8 +.L2501: + cmp r6, #0 ldr r0, [sp, #40] - subne r3, r5, #1 + subne r3, r6, #1 + ldr r1, [sp, #32] + moveq lr, #1 mov r2, #0 - moveq r1, #1 - streq r1, [sp, #20] uxtbne r3, r3 - ldr r1, [sp, #28] + streq lr, [sp, #16] addne r3, r3, #1 - strne r3, [sp, #20] - b .L2464 -.L2465: - ldrb lr, [ip], #1 @ zero_extendqisi2 + strne r3, [sp, #16] + b .L2504 +.L2505: + ldr r2, [sp, #12] + ldrb lr, [r2], #1 @ zero_extendqisi2 strb lr, [r1, r3] add r3, r3, #1 + str r2, [sp, #12] uxtb lr, r3 - cmp lr, r5 - bcc .L2465 - ldr r3, [sp, #20] - add r2, r2, #1 - ldr ip, [sp, #16] + cmp lr, r6 + bcc .L2505 + ldr r3, [sp, #16] + add r1, r1, ip + ldr r2, [sp, #28] add r0, r0, r3 ldr r3, [sp, #48] - add r1, r1, ip + add r2, r2, #1 cmp r2, r3 - bge .L2466 -.L2464: - mov ip, r0 + bge .L2506 +.L2504: + str r0, [sp, #12] mov r3, #0 - b .L2465 -.L2466: + str r2, [sp, #28] + b .L2505 +.L2506: mov r3, #255 - mov r0, r6 + mov r0, r7 str r3, [r8, #8] bl NandcWaitFlashReady ldr ip, [sp, #36] - cmp ip, #1 - movhi r3, #56 - strhi r3, [r8, #8] - bhi .L2468 + cmp ip, #0 + beq .L2507 mov r3, #54 str r3, [r8, #8] - ldr r3, .L2498 + ldr r3, .L2541 mov r0, sl mvn r1, #0 ldrb r3, [r3, #4] @ zero_extendqisi2 str r3, [r8, #4] mov r3, #22 - str r7, [r9, fp, asl #8] + str r5, [r9, fp, asl #8] str r3, [r8, #8] bl FlashReadCmd -.L2468: - mov r0, r6 + b .L2508 +.L2507: + ldr r1, [sp, #20] + cmp r1, #0 + movne r3, #190 + moveq r3, #56 + str r3, [r8, #8] +.L2508: + mov r0, r7 add sl, sl, #1 bl NandcWaitFlashReady uxtb sl, sl -.L2428: - ldr r1, .L2498 +.L2462: + ldr r1, .L2541 ldrb r3, [r1, #3762] @ zero_extendqisi2 cmp r3, sl - bhi .L2469 - ldr r6, [sp, #48] -.L2427: - ldr r3, .L2498 - strb r5, [r3, #1] - strb r6, [r3, #2] - add sp, sp, #68 + bhi .L2510 + ldr r7, [sp, #48] +.L2461: + ldr r3, .L2541 + strb r6, [r3, #1] + strb r7, [r3, #2] + add sp, sp, #60 ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L2497: - ldr r0, .L2498+16 +.L2540: + ldr r0, .L2541+16 bl printk - b .L2447 -.L2499: + b .L2487 +.L2542: .align 2 -.L2498: +.L2541: .word .LANCHOR0 .word .LANCHOR1 - .word .LANCHOR1+3104 + .word .LANCHOR1+3232 .word .LANCHOR2 - .word .LC162 .word .LC163 + .word .LC164 .fnend .size HynixGetReadRetryDefault, .-HynixGetReadRetryDefault .align 2 @@ -22139,16 +22503,16 @@ FlashGetReadRetryDefault: subs r3, r0, #0 ldmeqfd sp!, {r3, pc} sub r2, r3, #1 - cmp r2, #6 - bhi .L2502 + cmp r2, #7 + bhi .L2545 ldmfd sp!, {r3, lr} b HynixGetReadRetryDefault -.L2502: +.L2545: cmp r3, #49 - bne .L2503 - ldr r0, .L2504 + bne .L2546 + ldr r0, .L2547 mov r2, #64 - ldr r1, .L2504+4 + ldr r1, .L2547+4 strb r3, [r0, #0] mov r3, #4 strb r3, [r0, #1] @@ -22157,14 +22521,14 @@ FlashGetReadRetryDefault: add r0, r0, #4 bl memcpy ldmfd sp!, {r3, pc} -.L2503: +.L2546: ldmfd sp!, {r3, lr} - b FlashGetReadRetryDefault.part.26 -.L2505: + b FlashGetReadRetryDefault.part.28 +.L2548: .align 2 -.L2504: +.L2547: .word .LANCHOR0 - .word .LANCHOR1+3020 + .word .LANCHOR1+3148 .fnend .size FlashGetReadRetryDefault, .-FlashGetReadRetryDefault .align 2 @@ -22178,193 +22542,210 @@ FlashInit: .save {r4, r5, r6, r7, r8, lr} mov r7, r0 mov r0, #32768 - ldr r5, .L2557 + ldr r5, .L2603 bl ftl_malloc - ldr r6, .L2557+4 + ldr r6, .L2603+4 mov r4, #0 - str r0, [r5, #152] + str r0, [r5, #160] mov r0, #32768 bl ftl_malloc - str r0, [r5, #140] + str r0, [r5, #148] mov r0, #4096 bl ftl_malloc - str r0, [r5, #232] + str r0, [r5, #240] mov r0, #32768 bl ftl_malloc - str r0, [r5, #224] + str r0, [r5, #232] mov r0, #4096 bl ftl_malloc mov r3, #50 - str r4, [r5, #160] - strb r3, [r5, #168] + str r4, [r5, #168] + strb r3, [r5, #176] strb r3, [r6, #853] mov r3, #128 - str r4, [r5, #172] + str r4, [r5, #180] str r3, [r6, #856] mov r3, #60 strb r4, [r6, #3780] - strb r3, [r5, #156] + strb r3, [r5, #164] strb r4, [r6, #852] - str r0, [r5, #228] + str r0, [r5, #236] mov r0, r7 bl NandcInit - ldr r5, .L2557+8 + add r5, r6, #2976 mov r7, #44 -.L2510: +.L2553: uxtb r0, r4 mov r1, r5 bl FlashReadIDRaw cmp r4, #0 - bne .L2507 - ldrb r3, [r6, #2980] @ zero_extendqisi2 + bne .L2550 + ldrb r3, [r6, #2976] @ zero_extendqisi2 sub r3, r3, #1 uxtb r3, r3 cmp r3, #253 - bhi .L2548 - ldrb r3, [r6, #2981] @ zero_extendqisi2 + bhi .L2593 + ldrb r3, [r6, #2977] @ zero_extendqisi2 cmp r3, #255 - beq .L2549 -.L2507: + beq .L2594 +.L2550: ldrb r3, [r5, #0] @ zero_extendqisi2 add r4, r4, #1 cmp r3, #181 streqb r7, [r5, #0] cmp r4, #4 add r5, r5, #8 - bne .L2510 - ldr r4, .L2557+4 - ldrb r3, [r4, #2980] @ zero_extendqisi2 + bne .L2553 + ldr r4, .L2603+4 + ldrb r3, [r4, #2976] @ zero_extendqisi2 cmp r3, #173 - beq .L2511 + beq .L2554 ldr r0, [r4, #3784] bl NandcSetDdrMode -.L2511: - ldr r5, .L2557+4 +.L2554: + ldr r5, .L2603+4 mov r1, #0 mov r2, #852 mov r0, r5 bl ftl_memset - ldr r3, .L2557+12 + ldr r3, .L2603+8 + ldr r1, [r4, #3792] + ldr r2, .L2603+4 str r3, [r4, #3624] mov r3, #0 strb r3, [r4, #860] - ldrb r3, [r4, #2981] @ zero_extendqisi2 + ldr r3, .L2603+12 + cmp r1, r3 + moveq r3, #1 + streq r3, [r5, #3776] + ldrb r3, [r2, #2977] @ zero_extendqisi2 cmp r3, #161 cmpne r3, #241 - beq .L2512 + beq .L2556 cmp r3, #218 - beq .L2512 + beq .L2556 cmp r3, #209 - beq .L2512 + beq .L2556 + cmp r3, #211 + beq .L2556 cmp r3, #220 - bne .L2513 - ldrb r2, [r5, #2983] @ zero_extendqisi2 - cmp r2, #149 - bne .L2513 -.L2512: - ldr r2, .L2557+4 - mov r1, #1 - mov r0, #16 - ldr ip, .L2557+16 - strb r1, [r2, #852] - ldr r1, .L2557 - strb r0, [r2, #853] - strb r3, [ip, #3134] - strb r0, [r1, #156] - ldrb r0, [r2, #2980] @ zero_extendqisi2 - cmp r0, #152 - strb r0, [ip, #3133] - bne .L2514 - ldrb r0, [r2, #2984] @ zero_extendqisi2 - sxtb r0, r0 - cmp r0, #0 - movge r0, #24 - strgeb r0, [r1, #156] -.L2514: - ldr r2, [r2, #3776] + bne .L2557 + ldrb r0, [r2, #2979] @ zero_extendqisi2 + cmp r0, #149 + bne .L2557 +.L2556: + mov r0, #1 + strb r0, [r2, #852] + ldr r0, .L2603 + mov ip, #16 + strb ip, [r2, #853] + ldrb r2, [r2, #2976] @ zero_extendqisi2 + strb ip, [r0, #164] + ldr ip, .L2603+16 + cmp r2, #152 + strb r2, [ip, #3261] + strb r3, [ip, #3262] + bne .L2558 + ldr r2, .L2603+4 + ldrb r2, [r2, #2980] @ zero_extendqisi2 + sxtb r2, r2 + cmp r2, #0 + movge r2, #24 + strgeb r2, [r0, #164] +.L2558: + ldr r2, .L2603+12 movw r0, #2049 - ldr r1, .L2557+20 - cmp r2, r1 - cmpne r2, r0 - ldreq r2, .L2557 + cmp r1, r2 + cmpne r1, r0 + ldreq r2, .L2603 moveq r1, #16 - streqb r1, [r2, #156] + streqb r1, [r2, #164] cmp r3, #218 - bne .L2516 - ldr r3, .L2557+16 - movw r2, #3146 + bne .L2560 + ldr r3, .L2603+16 + movw r2, #3274 mov r1, #2048 strh r1, [r3, r2] @ movhi mvn r2, #37 - b .L2554 -.L2516: + b .L2600 +.L2560: cmp r3, #220 - bne .L2517 - ldr r3, .L2557+16 - movw r2, #3146 + bne .L2562 + ldr r3, .L2603+16 + movw r2, #3274 mov r1, #4096 strh r1, [r3, r2] @ movhi mvn r2, #35 -.L2554: - strb r2, [r3, #3134] -.L2517: - ldr r1, .L2557+24 +.L2600: + strb r2, [r3, #3262] + b .L2561 +.L2562: + cmp r3, #211 + bne .L2561 + ldr r3, .L2603+16 + movw r2, #3274 + mov r1, #4096 + strh r1, [r3, r2] @ movhi + mov r2, #2 + strb r2, [r3, #3273] +.L2561: + ldr r1, .L2603+20 mov r2, #32 - ldr r0, .L2557+28 + ldr r0, .L2603+24 bl memcpy - ldr r0, .L2557+12 + ldr r0, .L2603+8 mov r2, #32 add r1, r0, #144 bl memcpy -.L2513: - ldr r4, .L2557+4 +.L2557: + ldr r4, .L2603+4 ldrb r3, [r4, #852] @ zero_extendqisi2 cmp r3, #0 - bne .L2518 + bne .L2563 bl FlashLoadPhyInfoInRam cmp r0, #0 - bne .L2519 + bne .L2564 ldr r3, [r4, #3624] ldrh r0, [r3, #16] ubfx r0, r0, #8, #3 strb r0, [r4, #3772] tst r0, #1 - bne .L2519 + bne .L2564 mov r3, #1 strb r3, [r4, #3780] bl FlashSetInterfaceMode ldrb r0, [r4, #3772] @ zero_extendqisi2 bl NandcSetMode -.L2519: - ldr r4, .L2557+4 +.L2564: + ldr r4, .L2603+4 ldr r3, [r4, #3624] ldrb r3, [r3, #26] @ zero_extendqisi2 - strb r3, [r4, #928] + strb r3, [r4, #3072] bl FlashLoadPhyInfo cmp r0, #0 - beq .L2518 + beq .L2563 ldr r3, [r4, #3784] cmp r3, #0 - beq .L2521 + beq .L2566 mov r0, #1 bl FlashSetInterfaceMode mov r0, #1 - b .L2555 -.L2521: + b .L2601 +.L2566: ldrb r0, [r4, #3772] @ zero_extendqisi2 bl FlashSetInterfaceMode ldrb r0, [r4, #3772] @ zero_extendqisi2 -.L2555: +.L2601: bl NandcSetMode bl FlashLoadPhyInfo cmp r0, #0 - beq .L2518 - ldr r4, .L2557+4 + beq .L2563 + ldr r4, .L2603+4 mov r0, #1 bl FlashSetInterfaceMode mov r0, #1 bl NandcSetMode - ldr r0, .L2557+32 + ldr r0, .L2603+28 ldr r3, [r4, #3624] ldrh r1, [r3, #14] bl printk @@ -22375,55 +22756,55 @@ FlashInit: ldr r3, [r4, #3624] ldrb r0, [r3, #19] @ zero_extendqisi2 bl FlashGetReadRetryDefault - ldr r1, .L2557+36 - ldr r0, .L2557 + ldr r1, .L2603+32 + ldr r0, .L2603 ldr r3, [r4, #3624] ldrh r1, [r0, r1] ldrb r2, [r3, #9] @ zero_extendqisi2 add r1, r1, #4080 add r1, r1, #15 cmp r2, r1, lsr #12 - blt .L2524 + blt .L2569 ldrh r1, [r3, #14] add r1, r1, #255 cmp r2, r1, lsr #8 - bge .L2525 -.L2524: + bge .L2570 +.L2569: ldrh r2, [r3, #14] bic r2, r2, #255 strh r2, [r3, #14] @ movhi -.L2525: - ldr r3, .L2557+4 +.L2570: + ldr r3, .L2603+4 ldrb r3, [r3, #3772] @ zero_extendqisi2 tst r3, #6 - beq .L2526 + beq .L2571 bl FlashSavePhyInfo - ldr r3, .L2557 + ldr r3, .L2603 mov r0, #0 - ldr r1, [r3, #164] + ldr r1, [r3, #172] bl FlashDdrParaScan -.L2526: +.L2571: bl FlashSavePhyInfo -.L2518: - ldr r4, .L2557+4 - ldr r5, .L2557 +.L2563: + ldr r4, .L2603+4 + ldr r5, .L2603 ldr r3, [r4, #3624] ldrb r2, [r3, #26] @ zero_extendqisi2 ldrh r0, [r3, #10] ldrb r6, [r3, #18] @ zero_extendqisi2 - strb r2, [r4, #928] + strb r2, [r4, #3072] ldrh r2, [r3, #16] ubfx r1, r2, #7, #1 strb r1, [r4, #860] ubfx r1, r2, #3, #1 - strb r1, [r5, #180] + strb r1, [r5, #188] ubfx r1, r2, #4, #1 ubfx r2, r2, #8, #3 - strb r1, [r4, #3837] + strb r1, [r4, #3841] strb r2, [r4, #3772] mov r2, #0 ldrb r1, [r3, #12] @ zero_extendqisi2 - str r2, [r5, #176] + str r2, [r5, #184] bl __aeabi_idiv mov r1, r0 mov r0, r6 @@ -22432,182 +22813,188 @@ FlashInit: ldr r3, [r4, #3624] ldrh r2, [r3, #16] tst r2, #64 - beq .L2527 + beq .L2572 ldrb r0, [r3, #19] @ zero_extendqisi2 ldrb r3, [r4, #1] @ zero_extendqisi2 strb r0, [r4, #3761] strb r3, [r4, #3760] ldrb r3, [r4, #2] @ zero_extendqisi2 - strb r3, [r5, #144] + strb r3, [r5, #152] sub r3, r0, #1 uxtb r3, r3 - cmp r3, #6 - bhi .L2528 - ldr r3, .L2557+40 - str r3, [r5, #176] + cmp r3, #7 + bhi .L2573 + ldr r3, .L2603+36 + sub ip, r0, #8 + rsbs r1, ip, #0 + adc r1, r1, ip + str r3, [r5, #184] sub r3, r0, #5 uxtb r3, r3 - cmp r3, #1 + cmp r0, #8 + cmpne r3, #1 movls r3, #1 - strls r3, [r4, #3828] - bls .L2530 + strls r3, [r4, #3832] cmp r0, #7 - addeq r4, r4, #28 - beq .L2531 -.L2530: - ldr r4, .L2557+44 -.L2531: + ldreq r1, .L2603+40 + beq .L2576 + ldr r3, .L2603+44 + cmp r1, #0 + add r2, r3, #8 + moveq r1, r3 + movne r1, r2 +.L2576: mov r3, #0 mov r2, r3 -.L2533: - ldrsb r1, [r4, r2] +.L2578: + ldrsb ip, [r1, r2] add r2, r2, #1 - cmp r1, #0 + cmp ip, #0 addeq r3, r3, #1 cmp r2, #32 - bne .L2533 + bne .L2578 cmp r3, #27 - bls .L2527 + bls .L2572 bl FlashGetReadRetryDefault bl FlashSavePhyInfo - b .L2527 -.L2528: + b .L2572 +.L2573: sub r3, r0, #17 uxtb r3, r3 cmp r3, #2 - bhi .L2534 - ldr r3, .L2557+48 + bhi .L2579 + ldr r3, .L2603+48 cmp r0, #19 - str r3, [r5, #176] + str r3, [r5, #184] mov r3, #7 - strb r3, [r5, #144] + strb r3, [r5, #152] moveq r3, #15 - streqb r3, [r5, #144] - b .L2527 -.L2534: + streqb r3, [r5, #152] + b .L2572 +.L2579: cmp r0, #33 cmpne r0, #65 - beq .L2535 + beq .L2580 cmp r0, #66 - bne .L2536 -.L2535: - ldr r3, .L2557 + bne .L2581 +.L2580: + ldr r3, .L2603 mov r1, #4 - ldr r2, .L2557+52 - str r2, [r3, #176] - ldr r2, .L2557+4 + ldr r2, .L2603+52 + str r2, [r3, #184] + ldr r2, .L2603+4 strb r1, [r2, #3760] mov r2, #7 - strb r2, [r3, #144] - b .L2527 -.L2536: + strb r2, [r3, #152] + b .L2572 +.L2581: cmp r0, #67 cmpne r0, #34 - beq .L2537 + beq .L2582 cmp r0, #35 - beq .L2537 + beq .L2582 cmp r0, #68 - bne .L2538 -.L2537: - ldr r3, .L2557 + bne .L2583 +.L2582: + ldr r3, .L2603 cmp r0, #35 cmpne r0, #68 - ldr r2, .L2557+52 + ldr r2, .L2603+52 sub r0, r0, #67 uxtb r0, r0 - str r2, [r3, #176] + str r2, [r3, #184] mov r2, #7 - strb r2, [r3, #144] + strb r2, [r3, #152] moveq r2, #17 - streqb r2, [r3, #144] + streqb r2, [r3, #152] cmp r0, #1 - ldr r3, .L2557+4 + ldr r3, .L2603+4 movls r2, #4 movhi r2, #5 strb r2, [r3, #3760] - b .L2527 -.L2538: + b .L2572 +.L2583: cmp r0, #49 - ldreq r3, .L2557+56 - streq r3, [r5, #176] -.L2527: - ldr r2, .L2557+4 - ldr r3, .L2557+20 - ldr r1, [r2, #3776] - cmp r1, r3 - bne .L2541 - ldrb r3, [r2, #928] @ zero_extendqisi2 + ldreq r3, .L2603+56 + streq r3, [r5, #184] +.L2572: + ldr r4, .L2603+4 + ldr r3, .L2603+12 + ldr r2, [r4, #3792] + cmp r2, r3 + bne .L2586 + ldrb r3, [r4, #3072] @ zero_extendqisi2 cmp r3, #0 - ldrne r3, [r2, #3624] - movne r1, #0 - strneb r1, [r3, #18] -.L2541: - ldrb r2, [r2, #2980] @ zero_extendqisi2 - ldr r3, .L2557+4 + ldrne r3, [r4, #3624] + movne r2, #0 + strneb r2, [r3, #18] +.L2586: + ldrb r2, [r4, #2976] @ zero_extendqisi2 + ldr r3, .L2603+4 cmp r2, #44 - bne .L2542 + bne .L2587 ldrb r2, [r3, #3780] @ zero_extendqisi2 cmp r2, #0 - beq .L2542 - ldr r1, [r3, #3776] - ldr r2, .L2557+20 + beq .L2587 + ldr r1, [r3, #3792] + ldr r2, .L2603+12 cmp r1, r2 - bne .L2543 - ldrb r3, [r3, #928] @ zero_extendqisi2 + bne .L2588 + ldrb r3, [r3, #3072] @ zero_extendqisi2 cmp r3, #0 - bne .L2542 -.L2543: - ldr r3, .L2557+4 + bne .L2587 +.L2588: + ldr r3, .L2603+4 mov r2, #0 mov r0, #1 strb r2, [r3, #3780] bl FlashSetInterfaceMode mov r0, #1 bl NandcSetMode -.L2542: - mov r0, #0 - bl flash_enter_slc_mode - ldr r2, .L2557+4 - ldrb r3, [r2, #3772] @ zero_extendqisi2 +.L2587: + ldrb r3, [r4, #3772] @ zero_extendqisi2 tst r3, #6 - beq .L2544 + beq .L2589 + ldr r2, .L2603+4 ldrb r2, [r2, #3780] @ zero_extendqisi2 cmp r2, #0 - bne .L2545 + bne .L2590 tst r3, #1 - bne .L2544 -.L2545: - ldr r3, .L2557 + bne .L2589 +.L2590: mov r0, #0 - ldr r1, [r3, #164] + bl flash_enter_slc_mode + ldr r3, .L2603 + mov r0, #0 + ldr r1, [r3, #172] bl FlashDdrParaScan -.L2544: - ldr r4, .L2557+4 mov r0, #0 bl flash_exit_slc_mode +.L2589: + ldr r4, .L2603+4 mov r8, #16 - movw r6, #3062 + movw r6, #3058 ldr r3, [r4, #3624] ldrb r0, [r3, #20] @ zero_extendqisi2 bl FlashBchSel - add r0, r4, #932 + add r0, r4, #928 bl FlashReadIdbDataRaw - ldr r0, .L2557+60 + ldr r0, .L2603+60 strb r8, [r4, #853] bl FlashTimingCfg ldr r5, [r4, #3624] - mov r3, #3056 + movw r3, #3052 ldrb r2, [r5, #12] @ zero_extendqisi2 ldrh r7, [r5, #14] strh r2, [r4, r3] @ movhi ldrb r3, [r5, #7] @ zero_extendqisi2 ldrb r2, [r4, #3762] @ zero_extendqisi2 - str r3, [r4, #3052] - ldr r3, [r4, #2980] str r3, [r4, #3048] - movw r3, #3058 + ldr r3, [r4, #2976] + str r3, [r4, #3044] + movw r3, #3054 strh r2, [r4, r3] @ movhi - add r3, r3, #2 + mov r3, #3056 ldrb r2, [r5, #13] @ zero_extendqisi2 strh r7, [r4, r6] @ movhi strh r2, [r4, r3] @ movhi @@ -22617,17 +23004,17 @@ FlashInit: ldrb r1, [r5, #12] @ zero_extendqisi2 ldrh r0, [r5, #10] bl __aeabi_idiv - movw r3, #3066 + movw r3, #3062 mov lr, #512 - movw r2, #3070 + movw r2, #3066 strh r0, [r4, r3] @ movhi - movw r0, #3068 + movw r0, #3064 ldrb ip, [r5, #9] @ zero_extendqisi2 strh ip, [r4, r0] @ movhi ldrb r3, [r5, #9] @ zero_extendqisi2 ldrh r1, [r5, #10] mul r1, r1, r3 - mov r3, #3072 + movw r3, #3068 strh lr, [r4, r3] @ movhi add r3, r3, #2 ldrb lr, [r4, #853] @ zero_extendqisi2 @@ -22636,7 +23023,7 @@ FlashInit: ldrb lr, [r4, #852] @ zero_extendqisi2 strh r1, [r4, r2] @ movhi cmp lr, #1 - bne .L2547 + bne .L2592 mov r7, r7, lsr #1 mov ip, ip, asl #1 mov r1, r1, asl #1 @@ -22646,32 +23033,32 @@ FlashInit: strh r7, [r4, r6] @ movhi strh ip, [r4, r0] @ movhi strh r2, [r4, r3] @ movhi -.L2547: +.L2592: ldrb r0, [r5, #20] @ zero_extendqisi2 bl FlashBchSel bl ftl_flash_suspend mov r0, #0 ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L2548: +.L2593: mvn r0, #1 ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L2549: +.L2594: mvn r0, #1 ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L2558: +.L2604: .align 2 -.L2557: +.L2603: .word .LANCHOR2 .word .LANCHOR0 - .word .LANCHOR0+2980 - .word .LANCHOR1+2988 - .word .LANCHOR1 + .word .LANCHOR1+3116 .word 1446522928 - .word .LANCHOR1+2892 + .word .LANCHOR1 + .word .LANCHOR1+3020 .word .LANCHOR0+896 - .word .LC164 - .word -890 + .word .LC165 + .word -882 .word HynixReadRetrial + .word .LANCHOR0+28 .word .LANCHOR0+20 .word MicronReadRetrial .word ToshibaReadRetrial @@ -22690,44 +23077,44 @@ rk_ftl_init: .save {r4, r5, r6, lr} mov r0, #2048 bl ftl_malloc - ldr r4, .L2563 - ldr r6, .L2563+4 + ldr r4, .L2609 + ldr r6, .L2609+4 mov r5, #0 mov r1, r6 - str r5, [r1, #476]! - str r0, [r6, #472] + str r5, [r1, #484]! + str r0, [r6, #480] mov r0, r4 - str r5, [r0, #136]! + str r5, [r0, #144]! bl rknand_get_reg_addr - ldr r3, [r4, #136] + ldr r3, [r4, #144] cmp r3, r5 mvneq r4, #0 - beq .L2560 + beq .L2606 bl rk_nandc_irq_init mov r1, r5 mov r2, r5 mov r3, #2048 - ldr r0, [r6, #472] + ldr r0, [r6, #480] bl FlashSramLoadStore bl rknand_flash_cs_init - ldr r0, [r4, #136] + ldr r0, [r4, #144] bl FlashInit subs r4, r0, #0 - bne .L2561 + bne .L2607 bl FtlInit -.L2561: - ldr r0, .L2563+8 +.L2607: + ldr r0, .L2609+8 mov r1, r4 bl printk -.L2560: +.L2606: mov r0, r4 ldmfd sp!, {r4, r5, r6, pc} -.L2564: +.L2610: .align 2 -.L2563: +.L2609: .word .LANCHOR2 .word .LANCHOR4 - .word .LC165 + .word .LC166 .fnend .size rk_ftl_init, .-rk_ftl_init .align 2 @@ -22737,30 +23124,30 @@ FtlReInitForSDUpdata: .fnstart @ args = 0, pretend = 0, frame = 16 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L2590 + ldr r3, .L2636 stmfd sp!, {r4, r5, lr} .save {r4, r5, lr} .pad #20 sub sp, sp, #20 - ldrb r4, [r3, #928] @ zero_extendqisi2 + ldrb r4, [r3, #3072] @ zero_extendqisi2 cmp r4, #0 movne r0, #0 - bne .L2566 - ldr r5, .L2590+4 - ldr r0, [r5, #136] + bne .L2612 + ldr r5, .L2636+4 + ldr r0, [r5, #144] bl FlashInit cmp r0, #0 movne r0, r4 - bne .L2566 + bne .L2612 bl FlashLoadFactorBbt cmp r0, #0 - beq .L2567 + beq .L2613 bl FlashMakeFactorBbt -.L2567: - ldr r0, [r5, #140] +.L2613: + ldr r0, [r5, #148] bl FlashReadIdbDataRaw cmp r0, #0 - beq .L2568 + beq .L2614 mov r1, #0 mov r2, #16 mov r0, sp @@ -22769,78 +23156,78 @@ FtlReInitForSDUpdata: mov r3, #0 mov r0, #1 mov r2, r3 -.L2570: +.L2616: ands ip, r1, r0, asl r2 add r2, r2, #1 addne r3, r3, #1 cmp r2, #16 - bne .L2570 + bne .L2616 cmp r3, #6 - ldrls r3, .L2590 - bls .L2586 + ldrls r3, .L2636 + bls .L2632 mov r2, #0 mov r0, #1 -.L2571: +.L2617: ands ip, r1, r0, asl r2 add r2, r2, #1 addne r3, r3, #1 cmp r2, #24 - bne .L2571 + bne .L2617 cmp r3, #17 - ldr r3, .L2590 + ldr r3, .L2636 movhi r2, #36 -.L2586: +.L2632: strb r2, [r3, #853] - movw r2, #3074 - ldr r3, .L2590 + movw r2, #3070 + ldr r3, .L2636 ldrb r1, [r3, #853] @ zero_extendqisi2 strh r1, [r3, r2] @ movhi -.L2568: - ldr r1, .L2590+8 +.L2614: + ldr r1, .L2636+8 mov r4, #1 - ldr r0, .L2590+12 + ldr r0, .L2636+12 bl printk - ldr r0, .L2590+16 + ldr r0, .L2636+16 bl FtlConstantsInit bl FtlVariablesInit - ldr r3, .L2590 - ldr r0, [r3, #3852] + ldr r3, .L2636 + ldr r0, [r3, #3856] uxth r0, r0 bl FtlFreeSysBlkQueueInit - b .L2575 -.L2577: + b .L2621 +.L2623: add r4, r4, #1 -.L2575: +.L2621: bl FtlLoadBbt cmp r0, #0 - bne .L2588 -.L2576: + bne .L2634 +.L2622: bl FtlSysBlkInit cmp r0, #0 - beq .L2578 -.L2588: + beq .L2624 +.L2634: bl FtlLowFormat cmp r4, #3 - bls .L2577 - b .L2589 -.L2578: - ldr r3, .L2590+20 + bls .L2623 + b .L2635 +.L2624: + ldr r3, .L2636+20 mov r2, #1 - str r2, [r3, #3092] - b .L2566 -.L2589: + str r2, [r3, #3220] + b .L2612 +.L2635: mvn r0, #0 -.L2566: +.L2612: add sp, sp, #20 ldmfd sp!, {r4, r5, pc} -.L2591: +.L2637: .align 2 -.L2590: +.L2636: .word .LANCHOR0 .word .LANCHOR2 .word .LC78 .word .LC77 - .word .LANCHOR0+3048 + .word .LANCHOR0+3044 .word .LANCHOR1 .fnend .size FtlReInitForSDUpdata, .-FtlReInitForSDUpdata @@ -22852,15 +23239,15 @@ flash_boot_enter_slc_mode: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L2594 - ldr r2, [r3, #3776] - ldr r3, .L2594+4 + ldr r3, .L2640 + ldr r2, [r3, #3792] + ldr r3, .L2640+4 cmp r2, r3 bxne lr b flash_enter_slc_mode -.L2595: +.L2641: .align 2 -.L2594: +.L2640: .word .LANCHOR0 .word 1446522928 .fnend @@ -22873,15 +23260,15 @@ flash_boot_exit_slc_mode: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L2598 - ldr r2, [r3, #3776] - ldr r3, .L2598+4 + ldr r3, .L2644 + ldr r2, [r3, #3792] + ldr r3, .L2644+4 cmp r2, r3 bxne lr b flash_exit_slc_mode -.L2599: +.L2645: .align 2 -.L2598: +.L2644: .word .LANCHOR0 .word 1446522928 .fnend @@ -22895,18 +23282,18 @@ IdBlockReadData: stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} .save {r4, r5, r6, r7, r8, r9, sl, fp, lr} mov r4, r0 - ldr r5, .L2604 + ldr r5, .L2650 mov fp, r1 .pad #28 sub sp, sp, #28 mov r1, r4 mov sl, r2 - ldr r0, .L2604+4 + ldr r0, .L2650+4 ldr r3, [r5, #3624] mov r2, fp + ldr r6, [r5, #856] mov r9, r5 ldrb r7, [r3, #9] @ zero_extendqisi2 - ldrh r6, [r3, #10] bl printk mov r0, r4 mul r6, r6, r7 @@ -22919,10 +23306,10 @@ IdBlockReadData: mul r2, r7, r8 str r1, [sp, #16] ubfx r2, r2, #2, #2 - b .L2601 -.L2603: + b .L2647 +.L2649: add r1, r6, r8 - ldrb r0, [r5, #928] @ zero_extendqisi2 + ldrb r0, [r5, #3072] @ zero_extendqisi2 ubfx r1, r1, #2, #16 rsb ip, r2, #4 cmp r0, #0 @@ -22931,21 +23318,21 @@ IdBlockReadData: add r3, r3, #3072 add r3, r3, #4 ldrh r3, [r3, #0] - beq .L2602 - ldr r0, [r5, #3776] - ldr lr, .L2604+8 + beq .L2648 + ldr r0, [r5, #3792] + ldr lr, .L2650+8 cmp r0, lr moveq r3, r1 -.L2602: +.L2648: ldr r1, [sp, #16] add r2, r2, r1 mla r2, r7, r3, r2 ldr r3, [r9, #3624] ldrb r1, [r3, #9] @ zero_extendqisi2 - ldrb r3, [r9, #3836] @ zero_extendqisi2 + ldrb r3, [r9, #3840] @ zero_extendqisi2 str r3, [sp, #20] - ldr r3, .L2604+12 - ldrb r0, [r3, #156] @ zero_extendqisi2 + ldr r3, .L2650+12 + ldrb r0, [r3, #164] @ zero_extendqisi2 str ip, [sp, #4] str r1, [sp, #8] str r2, [sp, #12] @@ -22970,25 +23357,25 @@ IdBlockReadData: add r6, ip, r6 add sl, sl, ip, asl #9 uxth r6, r6 -.L2601: +.L2647: cmp r6, fp - bcc .L2603 + bcc .L2649 mov r1, r4 mov r2, fp mov r3, #0 - ldr r0, .L2604+16 + ldr r0, .L2650+16 bl printk mov r0, #0 add sp, sp, #28 ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L2605: +.L2651: .align 2 -.L2604: +.L2650: .word .LANCHOR0 - .word .LC166 + .word .LC167 .word 1446522928 .word .LANCHOR2 - .word .LC167 + .word .LC168 .fnend .size IdBlockReadData, .-IdBlockReadData .section .text.unlikely @@ -22998,20 +23385,20 @@ IDBlockWriteData: .fnstart @ args = 0, pretend = 0, frame = 88 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L2614 + ldr r3, .L2660 stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} .save {r4, r5, r6, r7, r8, r9, sl, fp, lr} + mov sl, r2 + ldr r2, [r3, #3624] mov r5, r0 - ldr r3, [r3, #3624] mov fp, r1 .pad #92 sub sp, sp, #92 mov r1, r5 - mov sl, r2 - ldr r0, .L2614+4 - ldrb r6, [r3, #9] @ zero_extendqisi2 + ldr r0, .L2660+4 + ldrb r6, [r2, #9] @ zero_extendqisi2 mov r2, fp - ldrh r7, [r3, #10] + ldr r7, [r3, #856] bl printk mov r0, #0 bl flash_boot_enter_slc_mode @@ -23026,14 +23413,14 @@ IDBlockWriteData: bl FlashEraseBlock cmp fp, r7 movls r8, #1 - bls .L2607 + bls .L2653 mov r0, #0 add r1, r7, r5 mov r2, r0 mov r8, #2 bl FlashEraseBlock -.L2607: - ldr r4, .L2614 +.L2653: + ldr r4, .L2660 mov r0, #0 bl flash_boot_exit_slc_mode ldr r3, [r4, #3624] @@ -23053,49 +23440,49 @@ IDBlockWriteData: rsb r1, r1, r5 mov r7, ip str r1, [sp, #12] - b .L2608 -.L2612: + b .L2654 +.L2658: add r3, r8, r7 ubfx r3, r3, #2, #16 cmp r3, #0 - beq .L2609 + beq .L2655 add r1, r3, #1 - ldrb r0, [r4, #928] @ zero_extendqisi2 + ldrb r0, [r4, #3072] @ zero_extendqisi2 add r2, r4, r1, asl #1 cmp r0, #0 add r2, r2, #3072 add r2, r2, #4 ldrh r2, [r2, #0] - beq .L2610 - ldr r0, [r4, #3776] - ldr ip, .L2614+8 + beq .L2656 + ldr r0, [r4, #3792] + ldr ip, .L2660+8 cmp r0, ip moveq r2, r1 -.L2610: +.L2656: sub r2, r2, #-1073741823 mov r2, r2, asl #2 str r2, [sp, #24] -.L2609: +.L2655: movw r2, #61424 str r2, [sp, #28] add r2, r4, r3, asl #1 add r2, r2, #3072 ldrh r5, [r2, #4] - ldrb r2, [r4, #928] @ zero_extendqisi2 + ldrb r2, [r4, #3072] @ zero_extendqisi2 cmp r2, #0 - beq .L2611 - ldr r2, [r4, #3776] - ldr r1, .L2614+8 + beq .L2657 + ldr r2, [r4, #3792] + ldr r1, .L2660+8 cmp r2, r1 moveq r5, r3 -.L2611: +.L2657: ldr ip, [sp, #12] add r8, r8, #4 - ldr r2, .L2614+12 + ldr r2, .L2660+12 uxth r8, r8 mla r3, r6, r5, ip - ldrb ip, [r9, #3836] @ zero_extendqisi2 - ldrb r0, [r2, #156] @ zero_extendqisi2 + ldrb ip, [r9, #3840] @ zero_extendqisi2 + ldrb r0, [r2, #164] @ zero_extendqisi2 str ip, [sp, #4] str r3, [sp, #8] bl FlashBchSel @@ -23125,27 +23512,27 @@ IDBlockWriteData: mov r1, r0 mov r0, #0 bl FlashPageProgMsbFFData -.L2608: +.L2654: ldr ip, [sp, #16] cmp r8, ip - bcc .L2612 + bcc .L2658 ldr r5, [sp, #20] mov r2, fp mov r3, #0 - ldr r0, .L2614+16 + ldr r0, .L2660+16 mov r1, r5 bl printk mov r0, #0 add sp, sp, #92 ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L2615: +.L2661: .align 2 -.L2614: +.L2660: .word .LANCHOR0 - .word .LC168 + .word .LC169 .word 1446522928 .word .LANCHOR2 - .word .LC169 + .word .LC170 .fnend .size IDBlockWriteData, .-IDBlockWriteData .text @@ -23156,34 +23543,34 @@ write_idblock: .fnstart @ args = 0, pretend = 0, frame = 24 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L2641 + ldr r3, .L2687 stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} .save {r4, r5, r6, r7, r8, r9, sl, fp, lr} - mov r5, r0 - ldr r3, [r3, #3624] + mov r7, r2 + ldr r2, [r3, #3624] .pad #36 sub sp, sp, #36 + mov r5, r0 mov r0, #256000 mov r6, r1 - mov r7, r2 - ldrb r4, [r3, #9] @ zero_extendqisi2 - ldrh sl, [r3, #10] + ldr sl, [r3, #856] + ldrb r4, [r2, #9] @ zero_extendqisi2 bl ftl_malloc subs r9, r0, #0 - beq .L2635 + beq .L2681 add r5, r5, #508 add r5, r5, #3 mov r5, r5, lsr #9 cmp r5, #8 movls r5, #8 - bls .L2618 + bls .L2664 cmp r5, #500 - bhi .L2635 -.L2618: + bhi .L2681 +.L2664: ldr r2, [r6, #0] - ldr r3, .L2641+4 + ldr r3, .L2687+4 cmp r2, r3 - bne .L2635 + bne .L2681 mul sl, sl, r4 uxth sl, sl sub r0, sl, #1 @@ -23196,10 +23583,10 @@ write_idblock: str r0, [sp, #20] add r0, r6, #254976 add r0, r0, #1020 -.L2623: +.L2669: ldr r1, [r0], #-4 cmp r1, #0 - bne .L2619 + bne .L2665 ldr r1, [r6, r3, asl #2] add r3, r3, #1 cmp r3, ip @@ -23207,29 +23594,29 @@ write_idblock: movcs r3, #0 cmp r2, #4096 str r1, [r0, #4] - bne .L2623 - b .L2622 -.L2619: - ldr r0, .L2641+8 + bne .L2669 + b .L2668 +.L2665: + ldr r0, .L2687+8 bl printk -.L2622: - ldr r4, .L2641 +.L2668: + ldr r4, .L2687 mov r1, r7 mov r3, #5 - ldr r0, .L2641+12 + ldr r0, .L2687+12 mov r2, #4 mov r8, r5 bl rknand_print_hex ldrb r2, [r4, #853] @ zero_extendqisi2 ldr r1, [r6, #512] - ldr r0, .L2641+16 + ldr r0, .L2687+16 bl printk - ldr r2, .L2641+20 - movw r3, #3074 + ldr r2, .L2687+20 + movw r3, #3070 mov r1, r5 ldrh r3, [r4, r3] - ldr r2, [r2, #160] - ldr r0, .L2641+24 + ldr r2, [r2, #168] + ldr r0, .L2687+24 str r2, [sp, #0] mov r2, r5 bl printk @@ -23244,16 +23631,16 @@ write_idblock: strhi r3, [r6, #512] str r2, [sp, #16] str r2, [sp, #12] -.L2631: - ldr r1, .L2641 +.L2677: + ldr r1, .L2687 ldr r3, [r4], #4 ldrb r2, [r1, #853] @ zero_extendqisi2 cmp r3, r2 - bcs .L2625 - ldr r1, .L2641+20 - ldr r2, [r1, #160] + bcs .L2671 + ldr r1, .L2687+20 + ldr r2, [r1, #168] cmp r3, r2 - bcc .L2625 + bcc .L2671 ldr r2, [sp, #20] ldr r1, [sp, #12] cmp r2, #1 @@ -23263,12 +23650,12 @@ write_idblock: ldr r2, [sp, #20] cmp r1, #0 cmpne r2, #1 - bls .L2626 + bls .L2672 ldr r2, [r4, #-8] add r2, r2, #1 cmp r3, r2 - beq .L2625 -.L2626: + beq .L2671 +.L2672: mov r0, r9 mov r1, #512 bl __memzero @@ -23285,7 +23672,7 @@ write_idblock: bl IdBlockReadData mov r2, r9 mov r3, r7 -.L2630: +.L2676: mov fp, r2 mov r5, r3 ldr r0, [fp, #0] @@ -23293,13 +23680,13 @@ write_idblock: ldr r1, [r5, #0] add r3, r3, #4 cmp r0, r1 - beq .L2627 + beq .L2673 mov r0, r9 mov r1, #512 bl __memzero ldr r3, [fp, #0] ldr r1, [sp, #12] - ldr r0, .L2641+28 + ldr r0, .L2687+28 str r3, [sp, #0] ldr r3, [r5, #0] bic r5, r6, #255 @@ -23308,7 +23695,7 @@ write_idblock: mov r3, r6 ldr r2, [r4, #-4] bl printk - ldr r0, .L2641+32 + ldr r0, .L2687+32 add r1, r7, r5 mov r2, #4 mov r3, #256 @@ -23316,7 +23703,7 @@ write_idblock: mov r3, #256 add r1, r9, r5 mov r2, #4 - ldr r0, .L2641+36 + ldr r0, .L2687+36 bl rknand_print_hex mov r0, #0 bl flash_boot_enter_slc_mode @@ -23327,64 +23714,64 @@ write_idblock: bl FlashEraseBlock ldr r3, [sp, #28] cmp r3, #0 - beq .L2628 + beq .L2674 ldr r1, [r4, #-4] mov r0, #0 mov r2, r0 add r1, r1, #1 mul r1, sl, r1 bl FlashEraseBlock -.L2628: +.L2674: mov r0, #0 bl flash_boot_exit_slc_mode ldr r1, [r4, #-4] - ldr r0, .L2641+40 + ldr r0, .L2687+40 bl printk ldr r1, [sp, #24] cmp r6, r1 - bcc .L2625 - b .L2629 -.L2627: + bcc .L2671 + b .L2675 +.L2673: ldr r1, [sp, #24] add r6, r6, #1 cmp r6, r1 - bne .L2630 -.L2629: + bne .L2676 +.L2675: ldr r2, [sp, #16] add r2, r2, #1 str r2, [sp, #16] -.L2625: +.L2671: ldr r3, [sp, #12] add r3, r3, #1 str r3, [sp, #12] cmp r3, #5 - bne .L2631 + bne .L2677 mov r0, r9 bl ftl_free ldr r1, [sp, #16] cmp r1, #0 mvneq r0, #0 movne r0, #0 - b .L2617 -.L2635: + b .L2663 +.L2681: mvn r0, #0 -.L2617: +.L2663: add sp, sp, #36 ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L2642: +.L2688: .align 2 -.L2641: +.L2687: .word .LANCHOR0 .word -52655045 - .word .LC170 .word .LC171 .word .LC172 - .word .LANCHOR2 .word .LC173 + .word .LANCHOR2 .word .LC174 .word .LC175 .word .LC176 .word .LC177 + .word .LC178 .fnend .size write_idblock, .-write_idblock .align 2 @@ -23399,22 +23786,22 @@ CRC_32: stmfd sp!, {r4, lr} .save {r4, lr} mov r2, r0 - ldr ip, .L2646 - b .L2644 -.L2645: + ldr ip, .L2692 + b .L2690 +.L2691: ldrb r4, [r3, r2] @ zero_extendqisi2 add r2, r2, #1 eor r4, r4, r0, lsr #24 add r4, ip, r4, asl #2 - ldr r4, [r4, #3164] + ldr r4, [r4, #3292] eor r0, r4, r0, asl #8 -.L2644: +.L2690: cmp r2, r1 - bne .L2645 + bne .L2691 ldmfd sp!, {r4, pc} -.L2647: +.L2693: .align 2 -.L2646: +.L2692: .word .LANCHOR1 .fnend .size CRC_32, .-CRC_32 @@ -23433,30 +23820,30 @@ write_loader_lba: sub sp, sp, #32 mov r6, r1 mov r7, r2 - bne .L2649 + bne .L2695 ldr r2, [r2, #0] - ldr r3, .L2665 + ldr r3, .L2711 cmp r2, r3 - bne .L2649 - ldr r5, .L2665+4 + bne .L2695 + ldr r5, .L2711+4 mov r3, #1 mov r0, #256000 - strb r3, [r5, #480] + strb r3, [r5, #488] bl ftl_malloc mov r1, #0 mov r2, #256000 - str r0, [r5, #484] + str r0, [r5, #492] bl ftl_memset - str r4, [r5, #488] -.L2649: - ldr r3, .L2665+4 - ldrb r2, [r3, #480] @ zero_extendqisi2 + str r4, [r5, #496] +.L2695: + ldr r3, .L2711+4 + ldrb r2, [r3, #488] @ zero_extendqisi2 cmp r2, #0 - beq .L2648 + beq .L2694 sub r0, r4, #64 - ldr r5, [r3, #484] + ldr r5, [r3, #492] cmp r0, #500 - bcs .L2651 + bcs .L2697 rsb r2, r4, #564 add r0, r5, r0, asl #9 cmp r6, r2 @@ -23464,31 +23851,31 @@ write_loader_lba: mov r1, r7 mov r2, r2, asl #9 bl memcpy - b .L2652 -.L2651: + b .L2698 +.L2697: cmp r4, #564 - bcc .L2652 - ldr r0, [r3, #488] - ldr r3, .L2665+8 + bcc .L2698 + ldr r0, [r3, #496] + ldr r3, .L2711+8 sub r0, r0, #64 cmp r0, #500 movcs r0, #500 ldr r3, [r3, #3624] ldrb r3, [r3, #9] @ zero_extendqisi2 cmp r3, #4 - beq .L2662 - mov r3, #4 - mov r1, #2 - mov r2, #3 - mov r7, #5 - stmia sp, {r1, r2, r3, r7} + beq .L2708 + mov r3, #3 + mov r2, #2 + mov r7, #4 + mov lr, #5 + stmia sp, {r2, r3, r7, lr} mov r3, #6 str r3, [sp, #16] - b .L2654 -.L2662: + b .L2700 +.L2708: mov r1, #0 mov r2, r1 -.L2653: +.L2699: cmp r0, #256 strls r2, [sp, r1] movhi r3, r2, asl #1 @@ -23496,56 +23883,56 @@ write_loader_lba: strhi r3, [sp, r1] cmp r2, #5 add r1, r1, #4 - bne .L2653 -.L2654: - ldr r3, .L2665+4 - ldr r2, [r3, #492] + bne .L2699 +.L2700: + ldr r3, .L2711+4 + ldr r2, [r3, #500] movw r3, #63999 -.L2659: +.L2705: ldrb r1, [r2, r3] @ zero_extendqisi2 cmp r1, #0 addne r3, r3, #1 movne r0, r3, asl #2 - bne .L2658 -.L2657: + bne .L2704 +.L2703: sub r3, r3, #1 cmp r3, #4096 - bne .L2659 + bne .L2705 mov r0, r0, asl #9 -.L2658: +.L2704: mov r1, r5 - ldr r5, .L2665+4 + ldr r5, .L2711+4 mov r2, sp mov r7, #0 bl write_idblock - strb r7, [r5, #480] - ldr r0, [r5, #484] + strb r7, [r5, #488] + ldr r0, [r5, #492] bl ftl_free - str r7, [r5, #484] - b .L2660 -.L2652: - ldr r7, .L2665+4 - ldr r3, [r7, #488] + str r7, [r5, #492] + b .L2706 +.L2698: + ldr r7, .L2711+4 + ldr r3, [r7, #496] cmp r3, r4 - beq .L2660 + beq .L2706 mov r8, #0 cmp r5, r8 - strb r8, [r7, #480] - beq .L2661 + strb r8, [r7, #488] + beq .L2707 mov r0, r5 bl ftl_free -.L2661: - str r8, [r7, #484] -.L2660: - ldr r3, .L2665+4 +.L2707: + str r8, [r7, #492] +.L2706: + ldr r3, .L2711+4 add r4, r6, r4 - str r4, [r3, #488] -.L2648: + str r4, [r3, #496] +.L2694: add sp, sp, #32 ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L2666: +.L2712: .align 2 -.L2665: +.L2711: .word -52655045 .word .LANCHOR4 .word .LANCHOR0 @@ -23571,12 +23958,12 @@ FtlWrite: cmp r0, #0 movne r3, #0 cmp r3, #0 - beq .L2668 + beq .L2714 mov r0, r1 mov r1, r2 mov r2, r6 bl write_loader_lba -.L2668: +.L2714: mov r0, r7 mov r1, r4 mov r2, r5 @@ -23592,7 +23979,7 @@ rknand_sys_storage_ioctl: .fnstart @ args = 0, pretend = 0, frame = 528 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L2785 + ldr r3, .L2831 stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} cmp r1, r3 @@ -23600,102 +23987,102 @@ rknand_sys_storage_ioctl: sub sp, sp, #528 mov r5, r1 mov r4, r2 - beq .L2678 - bhi .L2687 - ldr r3, .L2785+4 + beq .L2724 + bhi .L2733 + ldr r3, .L2831+4 cmp r1, r3 - beq .L2675 - bhi .L2688 + beq .L2721 + bhi .L2734 sub r3, r3, #125 cmp r1, r3 - beq .L2672 - bhi .L2689 + beq .L2718 + bhi .L2735 sub r3, r3, #237 cmp r1, r3 - bne .L2731 - b .L2781 -.L2689: - ldr r3, .L2785+8 + bne .L2777 + b .L2827 +.L2735: + ldr r3, .L2831+8 cmp r1, r3 - beq .L2673 + beq .L2719 add r3, r3, #1 cmp r1, r3 - bne .L2731 - b .L2782 -.L2688: - ldr r3, .L2785+12 + bne .L2777 + b .L2828 +.L2734: + ldr r3, .L2831+12 cmp r1, r3 - beq .L2677 - bhi .L2690 - ldr r3, .L2785+16 + beq .L2723 + bhi .L2736 + ldr r3, .L2831+16 cmp r1, r3 - bne .L2731 - b .L2783 -.L2690: - ldr r3, .L2785+20 + bne .L2777 + b .L2829 +.L2736: + ldr r3, .L2831+20 cmp r1, r3 - beq .L2677 + beq .L2723 add r3, r3, #10 cmp r1, r3 - bne .L2731 - b .L2677 -.L2687: - ldr r3, .L2785+24 + bne .L2777 + b .L2723 +.L2733: + ldr r3, .L2831+24 cmp r1, r3 - beq .L2683 - bhi .L2691 + beq .L2729 + bhi .L2737 sub r3, r3, #78 cmp r1, r3 - beq .L2680 - bcc .L2679 + beq .L2726 + bcc .L2725 add r3, r3, #21 cmp r1, r3 - beq .L2681 + beq .L2727 add r3, r3, #56 cmp r1, r3 - bne .L2731 - b .L2784 -.L2691: - ldr r3, .L2785+28 + bne .L2777 + b .L2830 +.L2737: + ldr r3, .L2831+28 cmp r1, r3 - beq .L2686 - bhi .L2692 + beq .L2732 + bhi .L2738 sub r3, r3, #956 sub r3, r3, #1 cmp r1, r3 - beq .L2684 + beq .L2730 add r3, r3, #956 cmp r1, r3 - bne .L2731 - b .L2685 -.L2692: - ldr r3, .L2785+32 + bne .L2777 + b .L2731 +.L2738: + ldr r3, .L2831+32 cmp r1, r3 - beq .L2685 + beq .L2731 add r3, r3, #1 cmp r1, r3 - bne .L2731 - b .L2686 -.L2679: - ldr r0, .L2785+36 + bne .L2777 + b .L2732 +.L2725: + ldr r0, .L2831+36 bl printk mov r0, #4096 bl ftl_malloc subs r5, r0, #0 - beq .L2738 + beq .L2784 mov r1, r4 mov r2, #512 bl rk_copy_from_user cmp r0, #0 - bne .L2780 -.L2693: - ldr r0, .L2785+40 + bne .L2826 +.L2739: + ldr r0, .L2831+40 ldmia r5, {r1, r2} bl printk ldr r3, [r5, #4] cmp r3, #8 str r3, [sp, #4] - bhi .L2702 + bhi .L2748 bl rknand_device_lock ldr r1, [sp, #4] mov r2, r5 @@ -23708,155 +24095,155 @@ rknand_sys_storage_ioctl: mov r2, r2, asl #9 bl rk_copy_to_user cmp r0, #0 - beq .L2766 - ldr r0, .L2785+44 -.L2779: + beq .L2812 + ldr r0, .L2831+44 +.L2825: bl printk - b .L2702 -.L2680: - ldr r0, .L2785+48 + b .L2748 +.L2726: + ldr r0, .L2831+48 bl printk mov r0, #4096 bl ftl_malloc subs r5, r0, #0 - beq .L2738 + beq .L2784 mov r1, r4 mov r2, #4096 bl rk_copy_from_user cmp r0, #0 - bne .L2780 -.L2697: - ldr r4, .L2785+52 - ldr r0, .L2785+56 + bne .L2826 +.L2743: + ldr r4, .L2831+52 + ldr r0, .L2831+56 ldmia r5, {r1, r2} bl printk - ldr r3, [r4, #492] + ldr r3, [r4, #500] cmp r3, #0 - bne .L2698 + bne .L2744 mov r0, #260096 bl ftl_malloc cmp r0, #0 - str r0, [r4, #492] - beq .L2702 -.L2699: + str r0, [r4, #500] + beq .L2748 +.L2745: mov r1, #260096 bl __memzero -.L2698: +.L2744: ldr r2, [r5, #4] movw r3, #4088 cmp r2, r3 - bhi .L2702 + bhi .L2748 ldr r3, [r5, #0] cmp r3, #251904 - bhi .L2702 - ldr r1, .L2785+52 - ldr r0, [r1, #492] + bhi .L2748 + ldr r1, .L2831+52 + ldr r0, [r1, #500] add r1, r5, #8 add r0, r0, r3 bl memcpy -.L2766: +.L2812: mov r0, r5 bl ftl_free -.L2767: +.L2813: mov r4, #0 - b .L2696 -.L2784: - ldr r0, .L2785+60 + b .L2742 +.L2830: + ldr r0, .L2831+60 bl printk mov r0, #4096 bl ftl_malloc subs r5, r0, #0 - beq .L2738 + beq .L2784 mov r1, r4 mov r2, #28 bl rk_copy_from_user cmp r0, #0 - beq .L2701 -.L2780: - ldr r0, .L2785+64 - b .L2779 -.L2701: + beq .L2747 +.L2826: + ldr r0, .L2831+64 + b .L2825 +.L2747: ldmia r5, {r1, r2} - ldr r0, .L2785+68 + ldr r0, .L2831+68 bl printk ldr r1, [r5, #0] cmp r1, #256000 - bhi .L2702 - ldr r4, .L2785+52 - ldr r0, [r4, #492] + bhi .L2748 + ldr r4, .L2831+52 + ldr r0, [r4, #500] cmp r0, #0 - beq .L2702 -.L2703: + beq .L2748 +.L2749: bl CRC_32 ldr r3, [r5, #4] cmp r3, r0 - beq .L2704 + beq .L2750 mov r0, r5 bl ftl_free - b .L2744 -.L2704: + b .L2790 +.L2750: bl rknand_device_lock - ldr r1, [r4, #492] + ldr r1, [r4, #500] add r2, r5, #8 ldr r0, [r5, #0] bl write_idblock mov r6, #0 bl rknand_device_unlock - ldr r0, [r4, #492] + ldr r0, [r4, #500] bl ftl_free - str r6, [r4, #492] + str r6, [r4, #500] mov r0, r5 mov r4, r6 bl ftl_free - b .L2696 -.L2702: + b .L2742 +.L2748: mov r0, r5 - b .L2770 -.L2681: - ldr r0, .L2785+72 + b .L2816 +.L2727: + ldr r0, .L2831+72 bl printk mov r0, #4096 bl ftl_malloc subs r5, r0, #0 - beq .L2738 + beq .L2784 bl ftl_read_flash_info mov r0, r4 mov r1, r5 mov r2, #11 - b .L2775 -.L2678: - ldr r0, .L2785+76 + b .L2821 +.L2724: + ldr r0, .L2831+76 bl printk bl nand_blk_add_whole_disk mov r0, #4096 bl ftl_malloc subs r5, r0, #0 - beq .L2738 + beq .L2784 mov r1, #0 mov r2, #64 bl ftl_memset mov r0, r4 mov r1, r5 mov r2, #64 - b .L2775 -.L2683: - ldr r0, .L2785+80 + b .L2821 +.L2729: + ldr r0, .L2831+80 bl printk - ldr r3, .L2785+52 + ldr r3, .L2831+52 add r1, sp, #528 mov r0, r4 mov r2, #4 - ldr r3, [r3, #496] + ldr r3, [r3, #504] ldr r3, [r3, #20] str r3, [r1, #-524]! - b .L2771 -.L2684: - ldr r0, .L2785+84 + b .L2817 +.L2730: + ldr r0, .L2831+84 bl printk mov r0, #4096 bl ftl_malloc subs r5, r0, #0 - beq .L2738 + beq .L2784 bl rknand_device_lock mov r1, #264 mov r2, #2 @@ -23867,259 +24254,259 @@ rknand_sys_storage_ioctl: mov r0, r4 mov r1, r5 mov r2, #1024 -.L2775: +.L2821: bl rk_copy_to_user subs r4, r0, #0 mov r0, r5 - beq .L2707 -.L2770: + beq .L2753 +.L2816: bl ftl_free - b .L2761 -.L2707: + b .L2807 +.L2753: bl ftl_free - b .L2696 -.L2672: - ldr r0, .L2785+88 + b .L2742 +.L2718: + ldr r0, .L2831+88 bl printk add r0, sp, #8 mov r1, r4 mov r2, #520 bl rk_copy_from_user subs r5, r0, #0 - bne .L2772 -.L2708: + bne .L2818 +.L2754: ldr r2, [sp, #8] - ldr r3, .L2785+92 + ldr r3, .L2831+92 cmp r2, r3 - bne .L2763 + bne .L2809 ldr r3, [sp, #12] cmp r3, #512 - bhi .L2763 - ldr r6, .L2785+52 + bhi .L2809 + ldr r6, .L2831+52 mov r2, #512 add r0, sp, #8 - ldr r1, [r6, #496] + ldr r1, [r6, #504] bl memcpy - ldr r2, [r6, #500] - ldr r3, .L2785+96 + ldr r2, [r6, #508] + ldr r3, .L2831+96 cmp r2, r3 - beq .L2709 + beq .L2755 add r0, sp, #72 mov r1, #128 str r5, [sp, #16] str r5, [sp, #20] bl __memzero -.L2709: +.L2755: add r0, sp, #264 mov r1, #256 mov r3, #0 str r3, [sp, #24] bl __memzero - b .L2778 -.L2673: - ldr r0, .L2785+100 + b .L2824 +.L2719: + ldr r0, .L2831+100 bl printk add r0, sp, #8 mov r1, r4 mov r2, #520 bl rk_copy_from_user cmp r0, #0 - bne .L2772 -.L2710: + bne .L2818 +.L2756: ldr r2, [sp, #8] - ldr r3, .L2785+92 + ldr r3, .L2831+92 cmp r2, r3 - bne .L2763 + bne .L2809 ldr r3, [sp, #12] cmp r3, #512 - bhi .L2763 - ldr r4, .L2785+52 - ldr r3, .L2785+96 - ldr r2, [r4, #500] + bhi .L2809 + ldr r4, .L2831+52 + ldr r3, .L2831+96 + ldr r2, [r4, #508] cmp r2, r3 - bne .L2744 + bne .L2790 ldr r3, [sp, #20] sub r2, r3, #1 cmp r2, #127 mvnhi r4, #2 - bhi .L2670 - ldr r0, [r4, #496] + bhi .L2716 + ldr r0, [r4, #504] add r1, sp, #72 str r3, [r0, #12] add r0, r0, #64 ldr r2, [sp, #20] bl memcpy mov r0, #1 - ldr r1, [r4, #496] - b .L2768 -.L2783: - ldr r0, .L2785+104 + ldr r1, [r4, #504] + b .L2814 +.L2829: + ldr r0, .L2831+104 bl printk add r0, sp, #8 mov r1, r4 mov r2, #520 bl rk_copy_from_user cmp r0, #0 - bne .L2772 -.L2711: + bne .L2818 +.L2757: ldr r2, [sp, #8] - ldr r3, .L2785+108 + ldr r3, .L2831+108 cmp r2, r3 - bne .L2763 + bne .L2809 ldr r3, [sp, #12] cmp r3, #512 - bhi .L2763 - ldr r5, .L2785+52 - ldr r4, [r5, #504] + bhi .L2809 + ldr r5, .L2831+52 + ldr r4, [r5, #512] cmp r4, #0 - beq .L2670 - ldr r3, [r5, #508] - ldr r2, .L2785+112 + beq .L2716 + ldr r3, [r5, #516] + ldr r2, .L2831+112 ldr r1, [r3, #0] cmp r1, r2 - beq .L2712 + beq .L2758 str r2, [r3, #0] mov r2, #504 - ldr r3, [r5, #508] + ldr r3, [r5, #516] str r2, [r3, #4] mov r2, #0 str r2, [r3, #8] str r2, [r3, #12] -.L2712: - ldr r1, [r5, #508] +.L2758: + ldr r1, [r5, #516] mov r4, #0 mov r0, r4 str r4, [r1, #16] bl StorageSysDataStore - ldr r3, [r5, #496] - ldr r2, .L2785+92 - ldr r5, .L2785+52 + ldr r3, [r5, #504] + ldr r2, .L2831+92 + ldr r5, .L2831+52 ldr r1, [r3, #0] cmp r1, r2 strne r2, [r3, #0] - ldr r0, [r5, #496] + ldr r0, [r5, #504] mov r1, #128 - ldrne r3, .L2785+52 + ldrne r3, .L2831+52 movne r2, #504 - ldrne r3, [r3, #496] + ldrne r3, [r3, #504] stmneib r3, {r2, r4} mov r4, #0 str r4, [r0, #12] add r0, r0, #64 bl __memzero mov r0, #1 - ldr r1, [r5, #496] + ldr r1, [r5, #504] bl StorageSysDataStore - str r4, [r5, #504] - str r4, [r5, #500] - b .L2696 -.L2675: - ldr r0, .L2785+116 + str r4, [r5, #512] + str r4, [r5, #508] + b .L2742 +.L2721: + ldr r0, .L2831+116 bl printk mov r1, r4 add r0, sp, #8 mov r2, #520 bl rk_copy_from_user subs r4, r0, #0 - bne .L2772 -.L2714: + bne .L2818 +.L2760: ldr r2, [sp, #8] - ldr r3, .L2785+120 + ldr r3, .L2831+120 cmp r2, r3 - bne .L2763 + bne .L2809 ldr r3, [sp, #12] cmp r3, #512 - bhi .L2763 - ldr r5, .L2785+52 - ldr r3, [r5, #504] + bhi .L2809 + ldr r5, .L2831+52 + ldr r3, [r5, #512] cmp r3, #1 - beq .L2670 - ldr r3, [r5, #508] + beq .L2716 + ldr r3, [r5, #516] mov r0, #0 - ldr r2, .L2785+112 + ldr r2, .L2831+112 ldr r1, [r3, #0] cmp r1, r2 strne r2, [r3, #0] - ldr r1, [r5, #508] - ldrne r3, [r5, #508] + ldr r1, [r5, #516] + ldrne r3, [r5, #516] movne r2, #504 strne r4, [r3, #12] stmneib r3, {r2, r4} mov r3, #1 str r3, [r1, #16] bl StorageSysDataStore - ldr r3, [r5, #496] - ldr r2, .L2785+92 + ldr r3, [r5, #504] + ldr r2, .L2831+92 ldr r1, [r3, #0] cmp r1, r2 - beq .L2716 + beq .L2762 str r2, [r3, #0] - mov r0, #504 - ldr r3, .L2785+52 + mov r1, #504 + ldr r3, .L2831+52 mov r2, #0 - ldr r3, [r3, #496] - stmib r3, {r0, r2} -.L2716: - ldr r5, .L2785+52 + ldr r3, [r3, #504] + stmib r3, {r1, r2} +.L2762: + ldr r5, .L2831+52 mov r1, #128 mov r4, #0 - ldr r0, [r5, #496] + ldr r0, [r5, #504] str r4, [r0, #12] add r0, r0, #64 bl __memzero mov r0, #1 - ldr r1, [r5, #496] + ldr r1, [r5, #504] bl StorageSysDataStore mov r3, #1 - str r3, [r5, #504] - b .L2696 -.L2782: - ldr r0, .L2785+124 + str r3, [r5, #512] + b .L2742 +.L2828: + ldr r0, .L2831+124 bl printk add r0, sp, #8 mov r1, r4 mov r2, #520 bl rk_copy_from_user cmp r0, #0 - bne .L2772 -.L2717: + bne .L2818 +.L2763: ldr r2, [sp, #8] - ldr r3, .L2785+128 + ldr r3, .L2831+128 cmp r2, r3 - bne .L2763 + bne .L2809 ldr r2, [sp, #12] cmp r2, #512 addls r0, sp, #16 - ldrls r1, .L2785+132 - bls .L2777 - b .L2763 -.L2677: - ldr r3, .L2785+20 + ldrls r1, .L2831+132 + bls .L2823 + b .L2809 +.L2723: + ldr r3, .L2831+20 cmp r5, r3 - ldreq r0, .L2785+136 - beq .L2764 - ldr r3, .L2785+140 + ldreq r0, .L2831+136 + beq .L2810 + ldr r3, .L2831+140 cmp r5, r3 - ldreq r0, .L2785+144 - ldrne r0, .L2785+148 -.L2764: + ldreq r0, .L2831+144 + ldrne r0, .L2831+148 +.L2810: bl printk add r0, sp, #8 mov r1, r4 mov r2, #520 bl rk_copy_from_user cmp r0, #0 - bne .L2772 -.L2721: + bne .L2818 +.L2767: ldr r2, [sp, #8] - ldr r3, .L2785+152 + ldr r3, .L2831+152 cmp r2, r3 - bne .L2761 - ldr r3, .L2785+140 - ldr r6, .L2785+52 + bne .L2807 + ldr r3, .L2831+140 + ldr r6, .L2831+52 cmp r5, r3 - bne .L2722 - ldr r3, [r6, #496] + bne .L2768 + ldr r3, [r6, #504] mov r0, r4 add r1, sp, #8 mov r2, #16 @@ -24130,29 +24517,29 @@ rknand_sys_storage_ioctl: cmp r0, #0 moveq r4, r0 mvnne r4, #13 - b .L2670 -.L2722: - ldr r3, [r6, #1024] + b .L2716 +.L2768: + ldr r3, [r6, #1032] cmp r3, #10 - bhi .L2761 - ldr r3, [r6, #496] + bhi .L2807 + ldr r3, [r6, #504] ldr r1, [sp, #12] ldr r2, [r3, #24] cmp r2, r1 - beq .L2723 + beq .L2769 cmp r2, #0 - beq .L2723 - ldr r0, .L2785+156 + beq .L2769 + ldr r0, .L2831+156 bl printk - ldr r3, [r6, #1024] + ldr r3, [r6, #1032] add r3, r3, #1 - str r3, [r6, #1024] - b .L2761 -.L2723: - ldr r0, .L2785+52 + str r3, [r6, #1032] + b .L2807 +.L2769: + ldr r0, .L2831+52 mov r2, #0 - str r2, [r0, #1024] - ldr r0, .L2785+20 + str r2, [r0, #1032] + ldr r0, .L2831+20 cmp r5, r0 mov r0, #1 strne r1, [r3, #24] @@ -24165,112 +24552,112 @@ rknand_sys_storage_ioctl: cmn r0, #1 mvneq r4, #1 movne r4, #0 - b .L2696 -.L2685: - ldr r0, .L2785+160 + b .L2742 +.L2731: + ldr r0, .L2831+160 bl printk add r0, sp, #8 mov r1, r4 mov r2, #520 bl rk_copy_from_user cmp r0, #0 - bne .L2772 -.L2726: + bne .L2818 +.L2772: ldr r2, [sp, #8] - ldr r3, .L2785+164 + ldr r3, .L2831+164 cmp r2, r3 - bne .L2763 + bne .L2809 ldr r2, [sp, #12] cmp r2, #504 - bhi .L2763 - ldr r3, .L2785+168 + bhi .L2809 + ldr r3, .L2831+168 add r0, sp, #16 cmp r5, r3 - ldr r3, .L2785+52 - ldreq r1, [r3, #1028] - ldrne r1, [r3, #1032] + ldr r3, .L2831+52 + ldreq r1, [r3, #1036] + ldrne r1, [r3, #1040] add r1, r1, #8 -.L2777: +.L2823: bl memcpy -.L2778: +.L2824: add r1, sp, #8 mov r0, r4 mov r2, #520 -.L2771: +.L2817: bl rk_copy_to_user subs r4, r0, #0 - bne .L2761 - b .L2696 -.L2686: - ldr r0, .L2785+172 + bne .L2807 + b .L2742 +.L2732: + ldr r0, .L2831+172 bl printk add r0, sp, #8 mov r1, r4 mov r2, #520 bl rk_copy_from_user cmp r0, #0 - beq .L2729 -.L2772: - ldr r0, .L2785+64 + beq .L2775 +.L2818: + ldr r0, .L2831+64 bl printk - b .L2761 -.L2729: + b .L2807 +.L2775: ldr r2, [sp, #8] - ldr r3, .L2785+164 + ldr r3, .L2831+164 cmp r2, r3 - bne .L2763 + bne .L2809 ldr r2, [sp, #12] cmp r2, #504 - bhi .L2763 - ldr r3, .L2785+28 + bhi .L2809 + ldr r3, .L2831+28 add r2, r2, #8 - ldr r4, .L2785+52 + ldr r4, .L2831+52 cmp r5, r3 - bne .L2730 + bne .L2776 add r1, sp, #8 - ldr r0, [r4, #1028] + ldr r0, [r4, #1036] bl memcpy - ldr r1, [r4, #1028] + ldr r1, [r4, #1036] mov r0, #2 -.L2768: +.L2814: bl StorageSysDataStore mov r4, r0 - b .L2696 -.L2730: + b .L2742 +.L2776: add r1, sp, #8 - ldr r0, [r4, #1032] + ldr r0, [r4, #1040] bl memcpy mov r0, #3 - ldr r1, [r4, #1032] - b .L2768 -.L2781: + ldr r1, [r4, #1040] + b .L2814 +.L2827: bl rknand_dev_flush - b .L2767 -.L2763: + b .L2813 +.L2809: mvn r4, #0 -.L2696: +.L2742: mov r1, r4 - ldr r0, .L2785+176 + ldr r0, .L2831+176 bl printk - b .L2670 -.L2731: + b .L2716 +.L2777: mvn r4, #21 - b .L2670 -.L2738: + b .L2716 +.L2784: mvn r4, #11 - b .L2670 -.L2744: + b .L2716 +.L2790: mvn r4, #1 - b .L2670 -.L2761: + b .L2716 +.L2807: mvn r4, #13 -.L2670: +.L2716: mov r0, r4 add sp, sp, #528 ldmfd sp!, {r4, r5, r6, pc} -.L2786: +.L2832: .align 2 -.L2785: +.L2831: .word 1074033155 .word 1074029694 .word 1074029570 @@ -24280,42 +24667,42 @@ rknand_sys_storage_ioctl: .word 1074033235 .word 1074034193 .word 1074034194 - .word .LC178 - .word .LC180 + .word .LC179 .word .LC181 .word .LC182 - .word .LANCHOR4 .word .LC183 + .word .LANCHOR4 .word .LC184 - .word .LC179 .word .LC185 + .word .LC180 .word .LC186 .word .LC187 .word .LC188 .word .LC189 .word .LC190 + .word .LC191 .word 1263358532 .word -1067903959 - .word .LC191 .word .LC192 + .word .LC193 .word 1112753220 .word 1146313043 - .word .LC193 - .word 1112755781 .word .LC194 - .word 1094995539 - .word .LANCHOR4+512 + .word 1112755781 .word .LC195 - .word 1074031676 + .word 1094995539 + .word .LANCHOR4+520 .word .LC196 + .word 1074031676 .word .LC197 - .word 1280262987 .word .LC198 + .word 1280262987 .word .LC199 + .word .LC200 .word 1145980246 .word 1074034192 - .word .LC200 .word .LC201 + .word .LC202 .fnend .size rknand_sys_storage_ioctl, .-rknand_sys_storage_ioctl .align 2 @@ -24328,59 +24715,59 @@ rk_ftl_storage_sys_init: stmfd sp!, {r3, r4, r5, r6, r7, lr} .save {r3, r4, r5, r6, r7, lr} mov r2, #512 - ldr r4, .L2790 + ldr r4, .L2836 mov r6, #0 mvn r3, #0 - add r0, r4, #512 - ldr r5, [r4, #472] - str r3, [r4, #488] + add r0, r4, #520 + ldr r5, [r4, #480] + str r3, [r4, #496] add r1, r5, #1536 add r3, r5, #512 - strb r6, [r4, #480] - str r3, [r4, #496] + strb r6, [r4, #488] + str r3, [r4, #504] add r3, r5, #1024 - str r6, [r4, #484] - str r3, [r4, #1028] str r6, [r4, #492] - str r5, [r4, #508] - str r1, [r4, #1032] + str r3, [r4, #1036] + str r6, [r4, #500] + str r5, [r4, #516] + str r1, [r4, #1040] bl memcpy ldr r7, [r5, #508] ldr r3, [r5, #16] cmp r7, r6 - str r6, [r4, #500] - str r6, [r4, #1024] - str r3, [r4, #504] - beq .L2788 + str r6, [r4, #508] + str r6, [r4, #1032] + str r3, [r4, #512] + beq .L2834 mov r0, r5 mov r1, #508 - bl JSHash + bl js_hash cmp r7, r0 - beq .L2788 + beq .L2834 str r6, [r5, #16] - ldr r0, .L2790+4 - str r6, [r4, #504] + ldr r0, .L2836+4 + str r6, [r4, #512] bl printk -.L2788: - ldr r3, [r4, #504] +.L2834: + ldr r3, [r4, #512] mov r0, #2 - ldr r4, .L2790 + ldr r4, .L2836 cmp r3, #0 - ldrne r2, .L2790+8 - ldrne r3, .L2790 - ldr r1, [r4, #1028] - strne r2, [r3, #500] + ldrne r2, .L2836+8 + ldrne r3, .L2836 + ldr r1, [r4, #1036] + strne r2, [r3, #508] bl StorageSysDataLoad - ldr r1, [r4, #1032] + ldr r1, [r4, #1040] mov r0, #3 bl StorageSysDataLoad ldmfd sp!, {r3, r4, r5, r6, r7, lr} b rknand_sys_storage_init -.L2791: +.L2837: .align 2 -.L2790: +.L2836: .word .LANCHOR4 - .word .LC202 + .word .LC203 .word -1067903959 .fnend .size rk_ftl_storage_sys_init, .-rk_ftl_storage_sys_init @@ -24407,83 +24794,83 @@ rk_ftl_vendor_storage_init: .save {r3, r4, r5, r6, r7, r8, sl, lr} mov r0, #65536 bl ftl_malloc - ldr r7, .L2801 + ldr r7, .L2847 cmp r0, #0 - str r0, [r7, #1036] - beq .L2799 - ldr sl, .L2801+4 + str r0, [r7, #1044] + beq .L2845 + ldr sl, .L2847+4 mov r6, #0 mov r4, r6 mov r5, r6 movw r8, #65532 -.L2797: - ldr r0, [r7, #1036] +.L2843: + ldr r0, [r7, #1044] mov r1, r5, asl #7 mov r2, #0 - bl rk_ftl_vendor_ops.constprop.27 + bl rk_ftl_vendor_ops.constprop.29 cmp r0, #0 - bne .L2795 - ldr r3, [r7, #1036] - ldr r0, .L2801+8 + bne .L2841 + ldr r3, [r7, #1044] + ldr r0, .L2847+8 ldr r1, [r3, #0] ldr r2, [r3, r8] ldr r3, [r3, #4] bl printk - ldr r0, [r7, #1036] + ldr r0, [r7, #1044] ldr r3, [r0, #0] cmp r3, sl - bne .L2796 + bne .L2842 ldr r3, [r0, r8] ldr r2, [r0, #4] cmp r3, r2 - bne .L2796 + bne .L2842 cmp r4, r3 movcc r6, r5 movcc r4, r3 -.L2796: +.L2842: add r5, r5, #1 cmp r5, #2 - bne .L2797 + bne .L2843 cmp r4, #0 - beq .L2798 + beq .L2844 mov r1, r6, asl #7 mov r2, #0 - bl rk_ftl_vendor_ops.constprop.27 + bl rk_ftl_vendor_ops.constprop.29 cmp r0, #0 ldmeqfd sp!, {r3, r4, r5, r6, r7, r8, sl, pc} - b .L2795 -.L2798: + b .L2841 +.L2844: mov r1, #65536 bl __memzero - ldr r3, .L2801 - ldr r1, .L2801+4 + ldr r3, .L2847 + ldr r1, .L2847+4 mov r2, #1 mov r0, r4 - ldr r3, [r3, #1036] + ldr r3, [r3, #1044] stmia r3, {r1, r2} movw r1, #65532 str r2, [r3, r1] - ldr r2, .L2801+12 + ldr r2, .L2847+12 strh r4, [r3, #12] @ movhi strh r2, [r3, #14] @ movhi ldmfd sp!, {r3, r4, r5, r6, r7, r8, sl, pc} -.L2795: - ldr r4, .L2801 - ldr r0, [r4, #1036] +.L2841: + ldr r4, .L2847 + ldr r0, [r4, #1044] bl kfree mov r3, #0 mvn r0, #0 - str r3, [r4, #1036] + str r3, [r4, #1044] ldmfd sp!, {r3, r4, r5, r6, r7, r8, sl, pc} -.L2799: +.L2845: mvn r0, #11 ldmfd sp!, {r3, r4, r5, r6, r7, r8, sl, pc} -.L2802: +.L2848: .align 2 -.L2801: +.L2847: .word .LANCHOR4 .word 1380668996 - .word .LC203 + .word .LC204 .word -1032 .fnend .size rk_ftl_vendor_storage_init, .-rk_ftl_vendor_storage_init @@ -24496,21 +24883,21 @@ rk_ftl_vendor_read: @ frame_needed = 0, uses_anonymous_args = 0 mov r3, r0 mov r0, r1 - ldr r1, .L2810 + ldr r1, .L2856 stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} - ldr ip, [r1, #1036] + ldr ip, [r1, #1044] cmp ip, #0 ldrneh r4, [ip, #10] movne r5, ip movne r1, #0 - bne .L2805 - b .L2809 -.L2807: + bne .L2851 + b .L2855 +.L2853: ldrh r6, [r5, #16] add r5, r5, #8 cmp r6, r3 - bne .L2806 + bne .L2852 add r1, r1, #2 add r1, ip, r1, asl #3 ldrh r4, [r1, #4] @@ -24523,19 +24910,19 @@ rk_ftl_vendor_read: bl memcpy mov r0, r4 ldmfd sp!, {r4, r5, r6, pc} -.L2806: +.L2852: add r1, r1, #1 -.L2805: +.L2851: cmp r1, r4 - bcc .L2807 + bcc .L2853 mvn r0, #0 ldmfd sp!, {r4, r5, r6, pc} -.L2809: +.L2855: mvn r0, #0 ldmfd sp!, {r4, r5, r6, pc} -.L2811: +.L2857: .align 2 -.L2810: +.L2856: .word .LANCHOR4 .fnend .size rk_ftl_vendor_read, .-rk_ftl_vendor_read @@ -24546,46 +24933,46 @@ rk_ftl_vendor_write: .fnstart @ args = 0, pretend = 0, frame = 16 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L2829 + ldr r3, .L2875 stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} .save {r4, r5, r6, r7, r8, r9, sl, fp, lr} mov sl, r0 - ldr r4, [r3, #1036] + ldr r4, [r3, #1044] .pad #20 sub sp, sp, #20 mov r9, r1 mov r5, r2 cmp r4, #0 - beq .L2825 + beq .L2871 add r8, r2, #63 ldrh r2, [r4, #8] ldrh r3, [r4, #10] bic r8, r8, #63 mov r7, #0 str r2, [sp, #8] - b .L2814 -.L2821: + b .L2860 +.L2867: add r2, r7, #2 mov r2, r2, asl #3 add r6, r4, r2 ldrh r2, [r4, r2] cmp r2, sl - bne .L2815 + bne .L2861 ldrh r2, [r6, #4] add r2, r2, #63 bic r2, r2, #63 str r2, [sp, #12] cmp r5, r2 - bls .L2816 + bls .L2862 ldrh r2, [r4, #14] cmp r2, r8 - bcc .L2825 + bcc .L2871 sub r3, r3, #1 mov fp, r8 ldrh r6, [r6, #2] mov r8, r3 - b .L2817 -.L2818: + b .L2863 +.L2864: add r7, r7, #1 mov r2, r2, asl #3 add r0, r7, #2 @@ -24610,10 +24997,10 @@ rk_ftl_vendor_write: bl memcpy ldr r3, [sp, #4] add r6, r6, r3 -.L2817: +.L2863: cmp r7, r8 add r2, r7, #2 - bcc .L2818 + bcc .L2864 mov r2, r2, asl #3 uxth r6, r6 add r3, r4, r2 @@ -24633,8 +25020,8 @@ rk_ftl_vendor_write: add r3, r2, r3 rsb r8, r8, r3 strh r8, [r4, #14] @ movhi - b .L2828 -.L2816: + b .L2874 +.L2862: ldrh r0, [r6, #2] mov r1, r9 mov r2, r5 @@ -24642,15 +25029,15 @@ rk_ftl_vendor_write: add r0, r4, r0 bl memcpy strh r5, [r6, #4] @ movhi - b .L2828 -.L2815: + b .L2874 +.L2861: add r7, r7, #1 -.L2814: +.L2860: cmp r7, r3 - bcc .L2821 + bcc .L2867 ldrh r2, [r4, #14] cmp r2, r8 - bcc .L2825 + bcc .L2871 add r3, r3, #2 uxth r8, r8 mov r1, r9 @@ -24674,7 +25061,7 @@ rk_ftl_vendor_write: ldrh r3, [r4, #10] add r3, r3, #1 strh r3, [r4, #10] @ movhi -.L2828: +.L2874: ldr r3, [r4, #4] movw r2, #65532 mov r0, r4 @@ -24691,17 +25078,17 @@ rk_ftl_vendor_write: strhih r3, [r4, #8] @ movhi ldr r3, [sp, #8] mov r1, r3, asl #7 - bl rk_ftl_vendor_ops.constprop.27 + bl rk_ftl_vendor_ops.constprop.29 mov r0, #0 - b .L2813 -.L2825: + b .L2859 +.L2871: mvn r0, #0 -.L2813: +.L2859: add sp, sp, #20 ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L2830: +.L2876: .align 2 -.L2829: +.L2875: .word .LANCHOR4 .fnend .size rk_ftl_vendor_write, .-rk_ftl_vendor_write @@ -24720,30 +25107,30 @@ rk_ftl_vendor_storage_ioctl: bl ftl_malloc subs r4, r0, #0 mvneq r5, #0 - beq .L2832 - ldr r3, .L2848 + beq .L2878 + ldr r3, .L2894 cmp r6, r3 - beq .L2834 + beq .L2880 add r3, r3, #1 cmp r6, r3 - bne .L2845 - b .L2847 -.L2834: + bne .L2891 + b .L2893 +.L2880: mov r1, r5 mov r2, #8 bl rk_copy_from_user cmp r0, #0 - bne .L2845 + bne .L2891 ldr r2, [r4, #0] - ldr r3, .L2848+4 + ldr r3, .L2894+4 cmp r2, r3 - bne .L2844 + bne .L2890 ldrh r0, [r4, #4] add r1, r4, #8 ldrh r2, [r4, #6] bl rk_ftl_vendor_read cmn r0, #1 - beq .L2840 + beq .L2886 uxth r2, r0 mov r1, r4 strh r2, [r4, #6] @ movhi @@ -24753,48 +25140,48 @@ rk_ftl_vendor_storage_ioctl: cmp r0, #0 moveq r5, r0 mvnne r5, #13 - b .L2833 -.L2847: + b .L2879 +.L2893: mov r1, r5 mov r2, #8 bl rk_copy_from_user cmp r0, #0 - bne .L2845 + bne .L2891 ldr r2, [r4, #0] - ldr r3, .L2848+4 + ldr r3, .L2894+4 cmp r2, r3 - bne .L2844 + bne .L2890 ldrh r2, [r4, #6] movw r3, #4087 cmp r2, r3 - bhi .L2844 + bhi .L2890 mov r0, r4 mov r1, r5 add r2, r2, #8 bl rk_copy_from_user cmp r0, #0 - bne .L2845 + bne .L2891 ldrh r0, [r4, #4] add r1, r4, #8 ldrh r2, [r4, #6] bl rk_ftl_vendor_write -.L2840: +.L2886: mov r5, r0 - b .L2833 -.L2844: + b .L2879 +.L2890: mvn r5, #0 - b .L2833 -.L2845: + b .L2879 +.L2891: mvn r5, #13 -.L2833: +.L2879: mov r0, r4 bl kfree -.L2832: +.L2878: mov r0, r5 ldmfd sp!, {r4, r5, r6, pc} -.L2849: +.L2895: .align 2 -.L2848: +.L2894: .word 1074034177 .word 1448232273 .fnend @@ -24980,7 +25367,6 @@ rk_ftl_vendor_storage_ioctl: .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 @@ -24997,6 +25383,7 @@ rk_ftl_vendor_storage_ioctl: .global gNandcVer .global gNandChipMap .global gNandIDataBuf + .global idb_flash_slc_mode .global FlashDdrTunningReadCount .global FlashWaitBusyScheduleEn .global gNandPhyInfo @@ -25043,34 +25430,34 @@ rk_ftl_vendor_storage_ioctl: .global read_retry_cur_offset .section .rodata .set .LANCHOR3,. + 0 - .type __func__.14269, %object - .size __func__.14269, 11 -__func__.14269: + .type __func__.14500, %object + .size __func__.14500, 11 +__func__.14500: .ascii "FtlMemInit\000" .LC0: .byte 60 .byte 40 .byte 24 .byte 16 - .type __func__.15064, %object - .size __func__.15064, 16 -__func__.15064: + .type __func__.15296, %object + .size __func__.15296, 16 +__func__.15296: .ascii "FtlScanAllBlock\000" - .type __func__.15045, %object - .size __func__.15045, 17 -__func__.15045: + .type __func__.15277, %object + .size __func__.15277, 17 +__func__.15277: .ascii "FtlDumpBlockInfo\000" - .type __func__.15312, %object - .size __func__.15312, 21 -__func__.15312: + .type __func__.15544, %object + .size __func__.15544, 21 +__func__.15544: .ascii "FtlVpcCheckAndModify\000" - .type __func__.14342, %object - .size __func__.14342, 8 -__func__.14342: + .type __func__.14573, %object + .size __func__.14573, 8 +__func__.14573: .ascii "FtlInit\000" - .type __func__.15010, %object - .size __func__.15010, 12 -__func__.15010: + .type __func__.15242, %object + .size __func__.15242, 12 +__func__.15242: .ascii "FtlCheckVpc\000" .section .rodata.str1.1,"aMS",%progbits,1 .LC1: @@ -25230,7 +25617,7 @@ __func__.15010: .LC77: .ascii "%s\012\000" .LC78: - .ascii "FTL version: 5.0.50 20180905\000" + .ascii "FTL version: 5.0.53 20190107\000" .LC79: .ascii "swblk %x ,avg = %x max= %x vpc= %x,ec=%x ,max ec=%x" .ascii "\012\000" @@ -25278,218 +25665,220 @@ __func__.15010: .LC100: .ascii "ReadRetry pageadd=%x ecc=%x err=%x\012\000" .LC101: - .ascii "FtlGcScanTempBlkError ID %x %x!!!!!!!\012\000" -.LC102: .ascii "...%s enter...\012\000" -.LC103: +.LC102: .ascii "blk = %x vpc=%x mode = %x\012\000" -.LC104: +.LC103: .ascii "mlc id = %x,%x addr= %x,spare= %x %x %x %x data=%x " .ascii "%x\012\000" -.LC105: +.LC104: .ascii "slc id = %x,%x addr= %x,spare= %x %x %x %x data=%x " .ascii "%x\012\000" -.LC106: +.LC105: .ascii "superBlkID = %x vpc=%x\012\000" -.LC107: +.LC106: .ascii "flashmode = %x pagenum = %x %x\012\000" -.LC108: +.LC107: .ascii "id = %x,%x addr= %x,spare= %x %x %x %x data=%x %x\012" .ascii "\000" -.LC109: +.LC108: .ascii "prog error: = %x\012\000" -.LC110: +.LC109: .ascii "prog read error: = %x\012\000" -.LC111: +.LC110: .ascii "prog read s error: = %x %x %x\012\000" -.LC112: +.LC111: .ascii "prog read d error: = %x %x %x\012\000" -.LC113: +.LC112: .ascii "FtlVpcTblFlush error = %x error count = %d\012\000" -.LC114: +.LC113: .ascii "FtlBbmTblFlush id=%x,page=%x,previd=%x cnt=%d\012\000" -.LC115: +.LC114: .ascii "FtlBbmTblFlush error:%x\012\000" -.LC116: +.LC115: .ascii "FtlBbmTblFlush error = %x error count = %d\012\000" -.LC117: +.LC116: .ascii "FtlGcFreeBadSuperBlk 0x%x\012\000" -.LC118: +.LC117: .ascii "FlashMakeFactorBbt %d\012\000" -.LC119: +.LC118: .ascii "bad block:%d %d\012\000" -.LC120: +.LC119: .ascii "FMFB:%d %d\012\000" -.LC121: +.LC120: .ascii "E:bad block:%d\012\000" -.LC122: +.LC121: .ascii "FMFB:Save %d %d\012\000" -.LC123: +.LC122: .ascii "page map lost: %x %x\012\000" -.LC124: +.LC123: .ascii "FtlMapWritePage error = %x\012\000" -.LC125: +.LC124: .ascii "FtlMapWritePage error = %x error count = %d\012\000" -.LC126: +.LC125: .ascii "FtlVendorPartRead refresh = %x phyAddr = %x\012\000" -.LC127: +.LC126: .ascii "slc mode\000" -.LC128: +.LC127: .ascii "no ect\000" -.LC129: +.LC128: .ascii "FLFB:%d %d\012\000" -.LC130: +.LC129: .ascii "phyBlk = %x,addr= %x,spare= %x %x %x %x data=%x %x\012" .ascii "\000" -.LC131: +.LC130: .ascii "Mblk:\000" -.LC132: +.LC131: .ascii "L2P:\000" -.LC133: +.LC132: .ascii "L2PC:\000" -.LC134: +.LC133: .ascii "id = %x,%x addr= %x,spare= %x %x %x %x data = %x\012" .ascii "\000" -.LC135: +.LC134: .ascii ":\000" -.LC136: +.LC135: .ascii "BBT:\000" -.LC137: +.LC136: .ascii "region_id = %x phyAddr = %x\012\000" -.LC138: +.LC137: .ascii "map_ppn:\000" -.LC139: +.LC138: .ascii "load_l2p_region refresh = %x phyAddr = %x\012\000" +.LC139: + .ascii "FtlGcScanTempBlk Error ID %x %x!!!!!!! \012\000" .LC140: - .ascii "Ftlscanalldata = %x\012\000" + .ascii "FtlGcScanTempBlkError ID %x %x!!!!!!!\012\000" .LC141: - .ascii "scan lpa = %x ppa= %x\012\000" + .ascii "Ftlscanalldata = %x\012\000" .LC142: + .ascii "scan lpa = %x ppa= %x\012\000" +.LC143: .ascii "lba = %x,addr= %x,spare= %x %x %x %x data=%x %x\012" .ascii "\000" -.LC143: - .ascii "RSB refresh addr %x\012\000" .LC144: - .ascii "spuer block %x vpn is 0\012 \000" + .ascii "RSB refresh addr %x\012\000" .LC145: - .ascii "g_recovery_ppa %x ver %x\012 \000" + .ascii "spuer block %x vpn is 0\012 \000" .LC146: - .ascii "FtlCheckVpc %x = %x %x\012\000" + .ascii "g_recovery_ppa %x ver %x\012 \000" .LC147: - .ascii "GC des block %x done\012\000" + .ascii "FtlCheckVpc %x = %x %x\012\000" .LC148: - .ascii "%d GC datablk = %x vpc %x %x\012\000" + .ascii "GC des block %x done\012\000" .LC149: - .ascii "SWL %x, FSB = %x vpc= %x,ec=%x th=%x\012\000" + .ascii "%d GC datablk = %x vpc %x %x\012\000" .LC150: - .ascii "g_gc_superblock_free %x %x %x %x %x\012\000" + .ascii "SWL %x, FSB = %x vpc= %x,ec=%x th=%x\012\000" .LC151: - .ascii "Ftlwrite decrement_vpc_count %x = %d\012\000" + .ascii "g_gc_superblock_free %x %x %x %x %x\012\000" .LC152: - .ascii "rk_ftl_de_init %x\012\000" + .ascii "Ftlwrite decrement_vpc_count %x = %d\012\000" .LC153: - .ascii "fix power lost blk = %x vpc=%x\012\000" + .ascii "rk_ftl_de_init %x\012\000" .LC154: - .ascii "erase power lost blk = %x vpc=%x\012\000" + .ascii "fix power lost blk = %x vpc=%x\012\000" .LC155: + .ascii "erase power lost blk = %x vpc=%x\012\000" +.LC156: .ascii "...%s: no bad block mapping table, format device\012" .ascii "\000" -.LC156: - .ascii "...%s FtlSysBlkInit error ,format device!\012\000" .LC157: - .ascii "FtlWrite: lpa error:%x %x\012\000" + .ascii "...%s FtlSysBlkInit error ,format device!\012\000" .LC158: - .ascii "vpc1\000" + .ascii "FtlWrite: lpa error:%x %x\012\000" .LC159: - .ascii "vpc2\000" + .ascii "vpc1\000" .LC160: - .ascii "FtlCheckVpc2 %x = %x %x\012\000" + .ascii "vpc2\000" .LC161: - .ascii "free blk vpc error %x = %x %x\012\000" + .ascii "FtlCheckVpc2 %x = %x %x\012\000" .LC162: - .ascii "otp error! %d\000" + .ascii "free blk vpc error %x = %x %x\012\000" .LC163: - .ascii "rr\000" + .ascii "otp error! %d\000" .LC164: - .ascii "FlashLoadPhyInfo fail %x!!\012\000" + .ascii "rr\000" .LC165: - .ascii "FtlInit %x\012\000" + .ascii "FlashLoadPhyInfo fail %x!!\012\000" .LC166: - .ascii "IdBlockReadData %x %x\012\000" + .ascii "FtlInit %x\012\000" .LC167: - .ascii "IdBlockReadData %x %x ret= %x\012\000" + .ascii "IdBlockReadData %x %x\012\000" .LC168: - .ascii "IDBlockWriteData %x %x\012\000" + .ascii "IdBlockReadData %x %x ret= %x\012\000" .LC169: - .ascii "IDBlockWriteData %x %x ret= %x\012\000" + .ascii "IDBlockWriteData %x %x\012\000" .LC170: - .ascii "write_idblock fix data %x %x\012\000" + .ascii "IDBlockWriteData %x %x ret= %x\012\000" .LC171: - .ascii "idblk:\000" + .ascii "write_idblock fix data %x %x\012\000" .LC172: - .ascii "idb reverse %x %x\012\000" + .ascii "idblk:\000" .LC173: - .ascii "write_idblock totle_sec %x %x %x %x\012\000" + .ascii "idb reverse %x %x\012\000" .LC174: + .ascii "write_idblock totle_sec %x %x %x %x\012\000" +.LC175: .ascii "write and check error:%d idb=%x,offset=%x,r=%x,w=%x" .ascii "\012\000" -.LC175: - .ascii "write\000" .LC176: - .ascii "read\000" + .ascii "write\000" .LC177: - .ascii "write_idblock error %d\012\000" + .ascii "read\000" .LC178: - .ascii "READ_SECTOR_IO\012\000" + .ascii "write_idblock error %d\012\000" .LC179: - .ascii "rk_copy_from_user error\012\000" + .ascii "READ_SECTOR_IO\012\000" .LC180: - .ascii "READ_SECTOR_IO %x %x\012\000" + .ascii "rk_copy_from_user error\012\000" .LC181: - .ascii "rk_copy_to_user error\012\000" + .ascii "READ_SECTOR_IO %x %x\012\000" .LC182: - .ascii "WRITE_SECTOR_IO\012\000" + .ascii "rk_copy_to_user error\012\000" .LC183: - .ascii "WRITE_SECTOR_IO %x %x\012\000" + .ascii "WRITE_SECTOR_IO\012\000" .LC184: - .ascii "END_WRITE_SECTOR_IO\012\000" + .ascii "WRITE_SECTOR_IO %x %x\012\000" .LC185: - .ascii "END_WRITE_SECTOR_IO %x %x\012\000" + .ascii "END_WRITE_SECTOR_IO\012\000" .LC186: - .ascii "GET_FLASH_INFO_IO\012\000" + .ascii "END_WRITE_SECTOR_IO %x %x\012\000" .LC187: - .ascii "GET_BAD_BLOCK_IO\012\000" + .ascii "GET_FLASH_INFO_IO\012\000" .LC188: - .ascii "GET_LOCK_FLAG_IO\012\000" + .ascii "GET_BAD_BLOCK_IO\012\000" .LC189: - .ascii "GET_PUBLIC_KEY_IO\012\000" + .ascii "GET_LOCK_FLAG_IO\012\000" .LC190: - .ascii "RKNAND_GET_DRM_KEY\012\000" + .ascii "GET_PUBLIC_KEY_IO\012\000" .LC191: - .ascii "RKNAND_STORE_DRM_KEY\012\000" + .ascii "RKNAND_GET_DRM_KEY\012\000" .LC192: - .ascii "RKNAND_DIASBLE_SECURE_BOOT\012\000" + .ascii "RKNAND_STORE_DRM_KEY\012\000" .LC193: - .ascii "RKNAND_ENASBLE_SECURE_BOOT\012\000" + .ascii "RKNAND_DIASBLE_SECURE_BOOT\012\000" .LC194: - .ascii "RKNAND_GET_SN_SECTOR\012\000" + .ascii "RKNAND_ENASBLE_SECURE_BOOT\012\000" .LC195: - .ascii "RKNAND_LOADER_UNLOCK\012\000" + .ascii "RKNAND_GET_SN_SECTOR\012\000" .LC196: - .ascii "RKNAND_LOADER_STATUS\012\000" + .ascii "RKNAND_LOADER_UNLOCK\012\000" .LC197: - .ascii "RKNAND_LOADER_LOCK\012\000" + .ascii "RKNAND_LOADER_STATUS\012\000" .LC198: - .ascii "LockKey not match %d\012\000" + .ascii "RKNAND_LOADER_LOCK\012\000" .LC199: - .ascii "RKNAND_GET_VENDOR_SECTOR\012\000" + .ascii "LockKey not match %d\012\000" .LC200: - .ascii "RKNAND_STORE_VENDOR_SECTOR\012\000" + .ascii "RKNAND_GET_VENDOR_SECTOR\012\000" .LC201: - .ascii "return ret = %lx\012\000" + .ascii "RKNAND_STORE_VENDOR_SECTOR\012\000" .LC202: - .ascii "secureBootEn check error\012\000" + .ascii "return ret = %lx\012\000" .LC203: + .ascii "secureBootEn check error\012\000" +.LC204: .ascii "\0013vendor storage %x,%x,%x\012\000" .data .align 2 @@ -25772,7 +26161,7 @@ random_seed: .short 17598 .short 28087 .type NandFlashParaTbl, %object - .size NandFlashParaTbl, 2464 + .size NandFlashParaTbl, 2592 NandFlashParaTbl: .byte 6 .byte 44 @@ -26349,6 +26738,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 @@ -26398,6 +26839,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 @@ -26737,6 +27204,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 @@ -26933,7 +27426,7 @@ NandFlashParaTbl: .byte 1 .short 1024 .short 455 - .byte 3 + .byte 4 .byte 17 .byte 40 .byte 32 @@ -28325,11 +28818,6 @@ gNandChipMap: .size gNandOptPara, 32 gNandOptPara: .space 32 - .type gFlashSlcMode, %object - .size gFlashSlcMode, 1 -gFlashSlcMode: - .space 1 - .space 3 .type gNandIDataBuf, %object .size gNandIDataBuf, 2048 gNandIDataBuf: @@ -28378,6 +28866,11 @@ NANDC_FMWAIT_SYN: .size gNandPhyInfo, 28 gNandPhyInfo: .space 28 + .type gFlashSlcMode, %object + .size gFlashSlcMode, 1 +gFlashSlcMode: + .space 1 + .space 3 .type slcPageToMlcPageTbl, %object .size slcPageToMlcPageTbl, 512 slcPageToMlcPageTbl: @@ -28424,9 +28917,9 @@ DieCsIndex: gFlashInterfaceMode: .space 1 .space 3 - .type g_nandc_version_data, %object - .size g_nandc_version_data, 4 -g_nandc_version_data: + .type idb_flash_slc_mode, %object + .size idb_flash_slc_mode, 4 +idb_flash_slc_mode: .space 4 .type gFlashToggleModeEn, %object .size gFlashToggleModeEn, 1 @@ -28441,6 +28934,10 @@ gBootDdrMode: .size gNandcVer, 4 gNandcVer: .space 4 + .type g_nandc_version_data, %object + .size g_nandc_version_data, 4 +g_nandc_version_data: + .space 4 .type gMasterTempBuf, %object .size gMasterTempBuf, 4 gMasterTempBuf: @@ -28531,10 +29028,6 @@ c_ftl_vendor_part_size: .size c_ftl_nand_blks_per_die, 2 c_ftl_nand_blks_per_die: .space 2 - .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 .type c_ftl_nand_page_pre_blk, %object .size c_ftl_nand_page_pre_blk, 2 c_ftl_nand_page_pre_blk: @@ -28567,6 +29060,7 @@ c_ftl_nand_byte_pre_oob: .size c_ftl_nand_reserved_blks, 2 c_ftl_nand_reserved_blks: .space 2 + .space 2 .type DeviceCapacity, %object .size DeviceCapacity, 4 DeviceCapacity: @@ -28784,9 +29278,9 @@ c_ftl_nand_data_op_blks_per_plane: .space 2 .space 2 .type gSysInfo, %object - .size gSysInfo, 12 + .size gSysInfo, 16 gSysInfo: - .space 12 + .space 16 .type g_gc_superblock, %object .size g_gc_superblock, 48 g_gc_superblock: diff --git a/drivers/rk_nand/rk_ftl_arm_v8.S b/drivers/rk_nand/rk_ftl_arm_v8.S index 37fe71ab2a53..bf4c21760b4f 100644 --- a/drivers/rk_nand/rk_ftl_arm_v8.S +++ b/drivers/rk_nand/rk_ftl_arm_v8.S @@ -5,7 +5,7 @@ * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. - * date: 2018-09-05 + * date: 2019-01-07 */ .cpu generic+fp+simd .file "rk_ftl_arm_v8.S" @@ -150,6 +150,25 @@ FlashSetRandomizer: ret .size FlashSetRandomizer, .-FlashSetRandomizer .align 2 + .global FlashBlockAlignInit + .type FlashBlockAlignInit, %function +FlashBlockAlignInit: + uxth w0, w0 + adrp x1, .LANCHOR0 + cmp w0, 256 + add x1, x1, :lo12:.LANCHOR0 + bls .L28 + mov w0, 512 + b .L31 +.L28: + cmp w0, 128 + bls .L31 + mov w0, 256 +.L31: + str w0, [x1,12] + ret + .size FlashBlockAlignInit, .-FlashBlockAlignInit + .align 2 .global FlashReadCmd .type FlashReadCmd, %function FlashReadCmd: @@ -199,7 +218,7 @@ FlashReadDpDataOutCmd: ldrb w2, [x5,8] and w5, w1, 255 add x2, x6, x2, lsl 8 - bne .L29 + bne .L34 mov w6, 6 str w6, [x2,2056] str wzr, [x2,2052] @@ -207,8 +226,8 @@ FlashReadDpDataOutCmd: str w5, [x2,2052] str w4, [x2,2052] str w3, [x2,2052] - b .L31 -.L29: + b .L36 +.L34: str wzr, [x2,2056] str wzr, [x2,2052] str wzr, [x2,2052] @@ -219,7 +238,7 @@ FlashReadDpDataOutCmd: str w3, [x2,2056] str wzr, [x2,2052] str wzr, [x2,2052] -.L31: +.L36: mov w3, 224 str w3, [x2,2056] bl FlashSetRandomizer @@ -227,48 +246,6 @@ FlashReadDpDataOutCmd: ret .size FlashReadDpDataOutCmd, .-FlashReadDpDataOutCmd .align 2 - .global flash_enter_slc_mode - .type flash_enter_slc_mode, %function -flash_enter_slc_mode: - adrp x1, .LANCHOR0 - uxtb w0, w0 - add x1, x1, :lo12:.LANCHOR0 - ldrb w2, [x1,120] - cbz w2, .L32 - sbfiz x0, x0, 4, 32 - add x1, x1, 24 - 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] -.L32: - ret - .size flash_enter_slc_mode, .-flash_enter_slc_mode - .align 2 - .global flash_exit_slc_mode - .type flash_exit_slc_mode, %function -flash_exit_slc_mode: - adrp x1, .LANCHOR0 - uxtb w0, w0 - add x1, x1, :lo12:.LANCHOR0 - ldrb w2, [x1,120] - cbz w2, .L37 - sbfiz x0, x0, 4, 32 - add x1, x1, 24 - 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] -.L37: - ret - .size flash_exit_slc_mode, .-flash_exit_slc_mode - .align 2 .global FlashProgFirstCmd .type FlashProgFirstCmd, %function FlashProgFirstCmd: @@ -308,7 +285,7 @@ FlashEraseCmd: add x5, x4, x0 ldr x4, [x4,x0] ldrb w0, [x5,8] - cbz w2, .L44 + cbz w2, .L39 add x2, x4, x0, lsl 8 mov w5, 96 str w5, [x2,2056] @@ -320,7 +297,7 @@ FlashEraseCmd: str w5, [x2,2052] ldr w2, [x3,12] add w1, w1, w2 -.L44: +.L39: add x0, x4, x0, lsl 8 mov w2, 96 str w2, [x0,2056] @@ -398,26 +375,50 @@ FlashProgDpFirstCmd: ret .size FlashProgDpFirstCmd, .-FlashProgDpFirstCmd .align 2 - .global JSHash - .type JSHash, %function -JSHash: + .global FlashReadStatus + .type FlashReadStatus, %function +FlashReadStatus: + adrp x1, .LANCHOR0 + ubfiz x0, x0, 4, 8 + stp x29, x30, [sp, -32]! + add x1, x1, :lo12:.LANCHOR0 + add x1, x1, 24 + add x29, sp, 0 + add x2, x1, x0 + str x19, [sp,16] + ldrb w2, [x2,8] + ldr x19, [x1,x0] + mov w0, 112 + add x19, x19, x2, lsl 8 + str w0, [x19,2056] + mov x0, 400 + bl __const_udelay + ldr w0, [x19,2048] + ldr x19, [sp,16] + ldp x29, x30, [sp], 32 + ret + .size FlashReadStatus, .-FlashReadStatus + .align 2 + .global js_hash + .type js_hash, %function +js_hash: mov x5, x0 mov w0, 42982 mov x2, 0 movk w0, 0x47c6, lsl 16 -.L52: +.L48: cmp w1, w2 - bls .L54 + bls .L50 lsl w3, w0, 5 ldrb w4, [x5,x2] add w3, w3, w0, lsr 2 add x2, x2, 1 add w3, w3, w4 eor w0, w0, w3 - b .L52 -.L54: + b .L48 +.L50: ret - .size JSHash, .-JSHash + .size js_hash, .-js_hash .align 2 .global FlashLoadIdbInfo .type FlashLoadIdbInfo, %function @@ -432,6 +433,110 @@ FlashPrintInfo: ret .size FlashPrintInfo, .-FlashPrintInfo .align 2 + .global ToshibaSetRRPara + .type ToshibaSetRRPara, %function +ToshibaSetRRPara: + uxtb w1, w1 + mov w3, 5 + add w2, w1, 1 + stp x29, x30, [sp, -96]! + smull x3, w2, w3 + adrp x2, .LANCHOR1 + add x29, sp, 0 + add x2, x2, :lo12:.LANCHOR1 + stp x21, x22, [sp,32] + stp x23, x24, [sp,48] + add x23, x2, x1, sxtw + add x24, x2, 256 + add x21, x2, 304 + stp x19, x20, [sp,16] + stp x25, x26, [sp,64] + str x27, [sp,80] + mov x22, x0 + add x24, x24, x3 + add x21, x21, x3 + mov x20, 0 + adrp x26, .LANCHOR0 + mov w27, 85 + mov x19, x2 +.L54: + add x25, x26, :lo12:.LANCHOR0 + ldrb w0, [x25,121] + cmp w0, w20 + bls .L60 + add x0, x19, 256 + str w27, [x22,8] + ldrsb w0, [x20,x0] + str w0, [x22,4] + mov x0, 1000 + bl __const_udelay + ldrb w0, [x25,120] + cmp w0, 34 + bne .L55 + ldrsb w0, [x24,x20] + b .L59 +.L55: + cmp w0, 35 + bne .L57 + ldrsb w0, [x21,x20] + b .L59 +.L57: + ldrsb w0, [x23,400] +.L59: + str w0, [x22] + add x20, x20, 1 + b .L54 +.L60: + ldp x19, x20, [sp,16] + ldp x21, x22, [sp,32] + ldp x23, x24, [sp,48] + ldp x25, x26, [sp,64] + ldr x27, [sp,80] + ldp x29, x30, [sp], 96 + ret + .size ToshibaSetRRPara, .-ToshibaSetRRPara + .align 2 + .global SamsungSetRRPara + .type SamsungSetRRPara, %function +SamsungSetRRPara: + stp x29, x30, [sp, -64]! + adrp x2, .LANCHOR1 + add x2, x2, :lo12:.LANCHOR1 + add x29, sp, 0 + add x1, x2, x1, uxtb 2 + stp x19, x20, [sp,16] + stp x21, x22, [sp,32] + stp x23, x24, [sp,48] + mov x21, x0 + add x22, x1, 412 + mov x20, 0 + adrp x23, .LANCHOR0 + mov w24, 161 + mov x19, x2 +.L62: + add x0, x23, :lo12:.LANCHOR0 + ldrb w0, [x0,121] + cmp w0, w20 + bls .L64 + str w24, [x21,8] + add x0, x19, 408 + str wzr, [x21] + ldrsb w0, [x20,x0] + str w0, [x21] + ldrsb w0, [x22,x20] + add x20, x20, 1 + str w0, [x21] + mov x0, 1500 + bl __const_udelay + b .L62 +.L64: + ldp x19, x20, [sp,16] + ldp x21, x22, [sp,32] + ldp x23, x24, [sp,48] + ldp x29, x30, [sp], 64 + ret + .size SamsungSetRRPara, .-SamsungSetRRPara + .align 2 .global ftl_flash_suspend .type ftl_flash_suspend, %function ftl_flash_suspend: @@ -479,40 +584,126 @@ LogAddr2PhyAddr: udiv w10, w6, w5 msub w5, w10, w5, w6 uxth w6, w5 - bne .L60 + bne .L68 add x1, x7, :lo12:.LANCHOR0 - ldrb w5, [x1,120] - cbnz w5, .L60 - add x1, x1, 196 + ldrb w5, [x1,196] + cbnz w5, .L68 + add x1, x1, 200 ldrh w8, [x1,w8,sxtw 1] -.L60: +.L68: add x7, x7, :lo12:.LANCHOR0 cmp w4, 1 - add x7, x7, 708 + add x7, x7, 712 mov w1, 0 ldr w5, [x7,w10,uxtw 2] madd w5, w6, w9, w5 add w5, w5, w8 str w5, [x2] str w10, [x3] - bls .L61 + bls .L69 ldr w1, [x0,4] ldr w0, [x0,60] add w1, w1, 1024 cmp w1, w0 cset w1, eq -.L61: +.L69: mov w0, w1 ret .size LogAddr2PhyAddr, .-LogAddr2PhyAddr .align 2 + .global FlashReadStatusEN + .type FlashReadStatusEN, %function +FlashReadStatusEN: + stp x29, x30, [sp, -32]! + adrp x3, .LANCHOR0 + ubfiz x0, x0, 4, 8 + add x4, x3, :lo12:.LANCHOR0 + add x29, sp, 0 + add x5, x4, 24 + stp x19, x20, [sp,16] + add x6, x5, x0 + uxtb w2, w2 + ldr x20, [x5,x0] + ldr x0, [x4,744] + ldrb w19, [x6,8] + ldrb w0, [x0,8] + cmp w0, 2 + bne .L72 + add x4, x4, 88 + cbnz w2, .L73 + ldrb w2, [x4,13] + b .L81 +.L73: + ldrb w2, [x4,14] +.L81: + add x0, x19, 8 + add x3, x3, :lo12:.LANCHOR0 + add x0, x20, x0, lsl 8 + str w2, [x0,8] + mov w2, 0 + ldrb w4, [x3,103] + cbz w4, .L76 + add x3, x19, 8 + lsl x3, x3, 8 +.L80: + cmp w2, w4 + bcs .L76 + add x5, x20, x3 + lsl w0, w2, 3 + lsr w0, w1, w0 + add w2, w2, 1 + and w0, w0, 255 + str w0, [x5,4] + b .L80 +.L72: + add x0, x19, 8 + mov w1, 112 + add x0, x20, x0, lsl 8 + str w1, [x0,8] +.L76: + add x19, x19, 8 + mov x0, 400 + lsl x19, x19, 8 + bl __const_udelay + ldr w0, [x20,x19] + ldp x19, x20, [sp,16] + ldp x29, x30, [sp], 32 + uxtb w0, w0 + ret + .size FlashReadStatusEN, .-FlashReadStatusEN + .align 2 + .global FlashWaitReadyEN + .type FlashWaitReadyEN, %function +FlashWaitReadyEN: + stp x29, x30, [sp, -48]! + add x29, sp, 0 + stp x19, x20, [sp,16] + str x21, [sp,32] + uxtb w19, w0 + mov w20, w1 + uxtb w21, w2 +.L86: + mov w0, w19 + mov w1, w20 + mov w2, w21 + bl FlashReadStatusEN + cmp w0, 255 + mov w3, w0 + beq .L86 + tbz x3, 6, .L86 + ldp x19, x20, [sp,16] + ldr x21, [sp,32] + ldp x29, x30, [sp], 48 + ret + .size FlashWaitReadyEN, .-FlashWaitReadyEN + .align 2 .global FlashScheduleEnSet .type FlashScheduleEnSet, %function FlashScheduleEnSet: adrp x1, .LANCHOR0 add x1, x1, :lo12:.LANCHOR0 - ldr w2, [x1,740] - str w0, [x1,740] + ldr w2, [x1,752] + str w0, [x1,752] mov w0, w2 ret .size FlashScheduleEnSet, .-FlashScheduleEnSet @@ -594,7 +785,7 @@ NandcSetMode: tst w0, 6 ldr x2, [x1,#:lo12:.LANCHOR0+128] ldr w1, [x2] - beq .L73 + beq .L99 and w0, w0, 4 orr w1, w1, 24576 cmp w0, wzr @@ -611,10 +802,10 @@ NandcSetMode: csel w1, w3, w1, ne mov w0, 39 str w0, [x2,308] - b .L75 -.L73: + b .L101 +.L99: and w1, w1, -8193 -.L75: +.L101: str w1, [x2] mov w0, 0 ret @@ -653,149 +844,6 @@ NandcFlashDeCs: ret .size NandcFlashDeCs, .-NandcFlashDeCs .align 2 - .global NandcDelayns - .type NandcDelayns, %function -NandcDelayns: - sub sp, sp, #16 - lsr w0, w0, 4 - str w0, [sp,12] -.L81: - ldr w0, [sp,12] - sub w1, w0, #1 - str w1, [sp,12] - cbnz w0, .L81 - add sp, sp, 16 - ret - .size NandcDelayns, .-NandcDelayns - .align 2 - .global FlashReadStatus - .type FlashReadStatus, %function -FlashReadStatus: - adrp x1, .LANCHOR0 - ubfiz x0, x0, 4, 8 - stp x29, x30, [sp, -32]! - add x1, x1, :lo12:.LANCHOR0 - add x1, x1, 24 - add x29, sp, 0 - add x2, x1, x0 - str x19, [sp,16] - ldrb w2, [x2,8] - ldr x19, [x1,x0] - mov w0, 112 - add x19, x19, x2, lsl 8 - str w0, [x19,2056] - mov w0, 80 - bl NandcDelayns - ldr w0, [x19,2048] - ldr x19, [sp,16] - ldp x29, x30, [sp], 32 - ret - .size FlashReadStatus, .-FlashReadStatus - .align 2 - .global ToshibaSetRRPara - .type ToshibaSetRRPara, %function -ToshibaSetRRPara: - uxtb w1, w1 - mov w3, 5 - add w2, w1, 1 - stp x29, x30, [sp, -96]! - smull x3, w2, w3 - adrp x2, .LANCHOR1 - add x29, sp, 0 - add x2, x2, :lo12:.LANCHOR1 - stp x21, x22, [sp,32] - stp x23, x24, [sp,48] - add x23, x2, x1, sxtw - add x24, x2, 256 - add x21, x2, 304 - stp x19, x20, [sp,16] - stp x25, x26, [sp,64] - str x27, [sp,80] - mov x22, x0 - add x24, x24, x3 - add x21, x21, x3 - mov x20, 0 - adrp x26, .LANCHOR0 - mov w27, 85 - mov x19, x2 -.L85: - add x25, x26, :lo12:.LANCHOR0 - ldrb w0, [x25,753] - cmp w0, w20 - bls .L91 - add x0, x19, 256 - str w27, [x22,8] - ldrsb w0, [x20,x0] - str w0, [x22,4] - mov w0, 200 - bl NandcDelayns - ldrb w0, [x25,752] - cmp w0, 34 - bne .L86 - ldrsb w0, [x24,x20] - b .L90 -.L86: - cmp w0, 35 - bne .L88 - ldrsb w0, [x21,x20] - b .L90 -.L88: - ldrsb w0, [x23,400] -.L90: - str w0, [x22] - add x20, x20, 1 - b .L85 -.L91: - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] - ldr x27, [sp,80] - ldp x29, x30, [sp], 96 - ret - .size ToshibaSetRRPara, .-ToshibaSetRRPara - .align 2 - .global SamsungSetRRPara - .type SamsungSetRRPara, %function -SamsungSetRRPara: - stp x29, x30, [sp, -64]! - adrp x2, .LANCHOR1 - add x2, x2, :lo12:.LANCHOR1 - add x29, sp, 0 - add x1, x2, x1, uxtb 2 - stp x19, x20, [sp,16] - stp x21, x22, [sp,32] - stp x23, x24, [sp,48] - mov x21, x0 - add x22, x1, 412 - mov x20, 0 - adrp x23, .LANCHOR0 - mov w24, 161 - mov x19, x2 -.L93: - add x0, x23, :lo12:.LANCHOR0 - ldrb w0, [x0,753] - cmp w0, w20 - bls .L95 - str w24, [x21,8] - add x0, x19, 408 - str wzr, [x21] - ldrsb w0, [x20,x0] - str w0, [x21] - ldrsb w0, [x22,x20] - add x20, x20, 1 - str w0, [x21] - mov w0, 300 - bl NandcDelayns - b .L93 -.L95: - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x29, x30, [sp], 64 - ret - .size SamsungSetRRPara, .-SamsungSetRRPara - .align 2 .global HynixSetRRPara .type HynixSetRRPara, %function HynixSetRRPara: @@ -806,72 +854,77 @@ HynixSetRRPara: str x27, [sp,80] add x19, x20, :lo12:.LANCHOR0 uxtb w27, w1 - stp x21, x22, [sp,32] stp x25, x26, [sp,64] + stp x21, x22, [sp,32] stp x23, x24, [sp,48] - uxtb x25, w0 - mov x22, x2 + uxtb x24, w0 + mov x21, x2 ldr x0, [x19,744] - mov x26, x25 - uxtb w21, w3 - add x19, x19, 760 + mov x26, x24 + uxtb w25, w3 ldrb w0, [x0,19] cmp w0, 6 - bne .L97 - add x19, x19, x25, lsl 6 - lsl w4, w21, 2 - add x19, x19, 20 - b .L102 -.L97: + bne .L107 + add x19, x19, x24, lsl 6 + lsl w4, w25, 2 + add x19, x19, 780 + b .L113 +.L107: cmp w0, 7 - bne .L99 + bne .L109 mov x2, 160 mov w4, 10 - madd x19, x25, x2, x19 - mul w4, w21, w4 - add x19, x19, 28 -.L102: + madd x19, x24, x2, x19 + mul w4, w25, w4 + add x19, x19, 788 +.L113: add x19, x19, x4, sxtw - b .L98 -.L99: - lsl x4, x25, 3 - add x4, x4, x21, sxtw + b .L108 +.L109: + cmp w0, 8 + bne .L110 + add x19, x19, 788 + add w4, w25, w25, lsl 2 + b .L113 +.L110: + lsl x4, x24, 3 + add x4, x4, x25, sxtw add x19, x19, x4, lsl 3 - add x19, x19, 20 -.L98: + add x19, x19, 780 +.L108: add x2, x20, :lo12:.LANCHOR0 - lsl x0, x25, 4 + lsl x0, x24, 4 add x2, x2, 24 uxtb x27, w27 add x1, x2, x0 - ldr x23, [x2,x0] + ldr x22, [x2,x0] mov w0, w26 - ldrb w24, [x1,8] + ldrb w23, [x1,8] bl NandcFlashCs - ubfiz x24, x24, 8, 8 + ubfiz x23, x23, 8, 8 mov w0, 54 - add x23, x23, x24 - mov x24, 0 - str w0, [x23,2056] -.L100: - cmp x24, x27 - beq .L103 - ldrb w0, [x22,x24] - str w0, [x23,2052] - mov w0, 200 - bl NandcDelayns - ldrsb w0, [x19,x24] - add x24, x24, 1 - str w0, [x23,2048] - b .L100 -.L103: + add x22, x22, x23 + mov x23, 0 + str w0, [x22,2056] +.L111: + cmp x23, x27 + beq .L114 + ldrb w0, [x21,x23] + str w0, [x22,2052] + mov x0, 1000 + bl __const_udelay + ldrsb w0, [x19,x23] + add x23, x23, 1 + str w0, [x22,2048] + b .L111 +.L114: add x20, x20, :lo12:.LANCHOR0 mov w0, 22 - add x25, x20, x25 - str w0, [x23,2056] + add x24, x20, x24 + str w0, [x22,2056] mov w0, w26 bl NandcFlashDeCs - strb w21, [x25,1616] + strb w25, [x24,1616] ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -895,117 +948,31 @@ FlashSetReadRetryDefault: ldrb w0, [x0,19] sub w0, w0, #1 uxtb w0, w0 - cmp w0, 6 - bhi .L104 + cmp w0, 7 + bhi .L115 add x21, x19, 1620 add x22, x19, 764 -.L109: +.L120: lsl x1, x20, 3 uxtb w0, w20 ldrb w1, [x1,x21] cmp w1, 173 - bne .L106 + bne .L117 ldrb w1, [x19,761] mov x2, x22 mov w3, 0 bl HynixSetRRPara -.L106: +.L117: add x20, x20, 1 cmp x20, 4 - bne .L109 -.L104: + bne .L120 +.L115: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x29, x30, [sp], 48 ret .size FlashSetReadRetryDefault, .-FlashSetReadRetryDefault .align 2 - .global FlashReadStatusEN - .type FlashReadStatusEN, %function -FlashReadStatusEN: - stp x29, x30, [sp, -32]! - adrp x3, .LANCHOR0 - ubfiz x0, x0, 4, 8 - add x4, x3, :lo12:.LANCHOR0 - add x29, sp, 0 - add x5, x4, 24 - stp x19, x20, [sp,16] - add x6, x5, x0 - uxtb w2, w2 - ldr x20, [x5,x0] - ldr x0, [x4,744] - ldrb w19, [x6,8] - ldrb w0, [x0,8] - cmp w0, 2 - bne .L112 - add x4, x4, 88 - cbnz w2, .L113 - ldrb w2, [x4,13] - b .L121 -.L113: - ldrb w2, [x4,14] -.L121: - add x0, x19, 8 - add x3, x3, :lo12:.LANCHOR0 - add x0, x20, x0, lsl 8 - str w2, [x0,8] - mov w2, 0 - ldrb w4, [x3,103] - cbz w4, .L116 - add x3, x19, 8 - lsl x3, x3, 8 -.L120: - cmp w2, w4 - bcs .L116 - add x5, x20, x3 - lsl w0, w2, 3 - lsr w0, w1, w0 - add w2, w2, 1 - and w0, w0, 255 - str w0, [x5,4] - b .L120 -.L112: - add x0, x19, 8 - mov w1, 112 - add x0, x20, x0, lsl 8 - str w1, [x0,8] -.L116: - add x19, x19, 8 - mov w0, 80 - lsl x19, x19, 8 - bl NandcDelayns - ldr w0, [x20,x19] - ldp x19, x20, [sp,16] - ldp x29, x30, [sp], 32 - uxtb w0, w0 - ret - .size FlashReadStatusEN, .-FlashReadStatusEN - .align 2 - .global FlashWaitReadyEN - .type FlashWaitReadyEN, %function -FlashWaitReadyEN: - stp x29, x30, [sp, -48]! - add x29, sp, 0 - stp x19, x20, [sp,16] - str x21, [sp,32] - uxtb w19, w0 - mov w20, w1 - uxtb w21, w2 -.L126: - mov w0, w19 - mov w1, w20 - mov w2, w21 - bl FlashReadStatusEN - cmp w0, 255 - mov w3, w0 - beq .L126 - tbz x3, 6, .L126 - ldp x19, x20, [sp,16] - ldr x21, [sp,32] - ldp x29, x30, [sp], 48 - ret - .size FlashWaitReadyEN, .-FlashWaitReadyEN - .align 2 .global FlashWaitCmdDone .type FlashWaitCmdDone, %function FlashWaitCmdDone: @@ -1023,9 +990,9 @@ FlashWaitCmdDone: add x19, x0, x1 ldrb w21, [x0,x1] ldr x0, [x19,8] - cbz x0, .L131 + cbz x0, .L124 mov w0, w21 - add x20, x20, 708 + add x20, x20, 712 bl NandcFlashCs ldr w0, [x20,w22,sxtw 2] ldr w1, [x19,4] @@ -1041,10 +1008,10 @@ FlashWaitCmdDone: str w0, [x1] str xzr, [x19,8] ldr x1, [x19,16] - cbz x1, .L131 + cbz x1, .L124 str w0, [x1] str xzr, [x19,16] -.L131: +.L124: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -1052,6 +1019,50 @@ FlashWaitCmdDone: ret .size FlashWaitCmdDone, .-FlashWaitCmdDone .align 2 + .global NandcDelayns + .type NandcDelayns, %function +NandcDelayns: + stp x29, x30, [sp, -16]! + uxtw x0, w0 + add x29, sp, 0 + bl __ndelay + mov w0, 0 + ldp x29, x30, [sp], 16 + ret + .size NandcDelayns, .-NandcDelayns + .align 2 + .global NandcWaitFlashReadyNoDelay + .type NandcWaitFlashReadyNoDelay, %function +NandcWaitFlashReadyNoDelay: + stp x29, x30, [sp, -48]! + adrp x1, .LANCHOR0 + ubfiz x0, x0, 4, 8 + add x1, x1, :lo12:.LANCHOR0 + add x29, sp, 0 + add x1, x1, 24 + stp x19, x20, [sp,16] + mov w19, 34464 + ldr x20, [x1,x0] + movk w19, 0x1, lsl 16 +.L132: + ldr w0, [x20] + str w0, [x29,40] + ldr w0, [x29,40] + tbnz x0, 9, .L133 + mov x0, 50 + bl __const_udelay + subs w19, w19, #1 + bne .L132 + mov w0, -1 + b .L131 +.L133: + mov w0, 0 +.L131: + ldp x19, x20, [sp,16] + ldp x29, x30, [sp], 48 + ret + .size NandcWaitFlashReadyNoDelay, .-NandcWaitFlashReadyNoDelay + .align 2 .global NandcWaitFlashReady .type NandcWaitFlashReady, %function NandcWaitFlashReady: @@ -1065,20 +1076,22 @@ NandcWaitFlashReady: mov w19, 34464 ldr x20, [x1,x0] movk w19, 0x1, lsl 16 -.L138: - mov w0, 100 - bl NandcDelayns + mov x0, 750 + bl __const_udelay +.L137: ldr w0, [x20] str w0, [x29,40] ldr w0, [x29,40] - tbnz x0, 9, .L139 + tbnz x0, 9, .L138 + mov x0, 50 + bl __const_udelay subs w19, w19, #1 - bne .L138 + bne .L137 mov w0, -1 - b .L137 -.L139: + b .L136 +.L138: mov w0, 0 -.L137: +.L136: ldp x19, x20, [sp,16] ldp x29, x30, [sp], 48 ret @@ -1115,6 +1128,95 @@ FlashReset: ret .size FlashReset, .-FlashReset .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] + adrp x19, .LANCHOR0 + uxtb w20, w0 + add x19, x19, :lo12:.LANCHOR0 + ldrb w0, [x19,196] + cbz w0, .L141 + mov w0, w20 + add x19, x19, 24 + bl NandcFlashCs + sbfiz x0, x20, 4, 32 + add x1, x19, x0 + ldr x19, [x19,x0] + mov w0, 239 + ldrb w1, [x1,8] + add x19, x19, x1, lsl 8 + str w0, [x19,2056] + mov w0, 145 + str w0, [x19,2052] + mov x0, 500 + bl __const_udelay + str wzr, [x19,2048] + mov w0, 1 + str w0, [x19,2048] + str wzr, [x19,2048] + mov x0, 500 + str wzr, [x19,2048] + bl __const_udelay + mov w0, w20 + bl NandcWaitFlashReadyNoDelay + mov w0, 218 + str w0, [x19,2056] + mov w0, w20 + bl NandcWaitFlashReady +.L141: + ldp x19, x20, [sp,16] + ldp x29, x30, [sp], 32 + ret + .size flash_enter_slc_mode, .-flash_enter_slc_mode + .align 2 + .global flash_exit_slc_mode + .type flash_exit_slc_mode, %function +flash_exit_slc_mode: + stp x29, x30, [sp, -32]! + add x29, sp, 0 + stp x19, x20, [sp,16] + adrp x19, .LANCHOR0 + uxtb w20, w0 + add x19, x19, :lo12:.LANCHOR0 + ldrb w0, [x19,196] + cbz w0, .L146 + mov w0, w20 + add x19, x19, 24 + bl NandcFlashCs + sbfiz x0, x20, 4, 32 + add x1, x19, x0 + ldr x19, [x19,x0] + mov w0, 239 + ldrb w1, [x1,8] + add x19, x19, x1, lsl 8 + str w0, [x19,2056] + mov w0, 145 + str w0, [x19,2052] + mov x0, 500 + bl __const_udelay + mov w0, 2 + str w0, [x19,2048] + mov w0, 1 + str w0, [x19,2048] + str wzr, [x19,2048] + mov x0, 500 + str wzr, [x19,2048] + bl __const_udelay + mov w0, w20 + bl NandcWaitFlashReadyNoDelay + mov w0, 223 + str w0, [x19,2056] + mov w0, w20 + bl NandcWaitFlashReady +.L146: + ldp x19, x20, [sp,16] + ldp x29, x30, [sp], 32 + ret + .size flash_exit_slc_mode, .-flash_exit_slc_mode + .align 2 .global FlashEraseBlock .type FlashEraseBlock, %function FlashEraseBlock: @@ -1166,68 +1268,68 @@ FlashSetInterfaceMode: mov w13, 32 mov w14, 5 uxtb w5, w2 -.L154: +.L163: ldrb w3, [x6,x4] ldr x1, [x7] cmp w3, 152 ldrb w2, [x7,8] - beq .L144 + beq .L153 cmp w3, 69 - beq .L144 + beq .L153 cmp w3, 173 - beq .L144 + beq .L153 cmp w3, 44 - bne .L145 -.L144: + bne .L154 +.L153: cmp w0, 1 - bne .L147 - cbz w11, .L145 + bne .L156 + cbz w11, .L154 ubfiz x2, x2, 8, 8 cmp w3, 173 add x1, x1, x2 str w8, [x1,2056] - bne .L148 + bne .L157 str w0, [x1,2052] - b .L165 -.L148: + b .L174 +.L157: cmp w3, 44 - bne .L150 + bne .L159 str w0, [x1,2052] str w14, [x1,2048] - b .L152 -.L150: + b .L161 +.L159: str w9, [x1,2052] str w0, [x1,2048] - b .L152 -.L147: - cbz w5, .L145 + b .L161 +.L156: + cbz w5, .L154 ubfiz x2, x2, 8, 8 cmp w3, 173 add x1, x1, x2 str w8, [x1,2056] - bne .L151 + bne .L160 str w10, [x1,2052] str w13, [x1,2048] - b .L152 -.L151: + b .L161 +.L160: cmp w3, 44 - bne .L153 + bne .L162 str w10, [x1,2052] str w12, [x1,2048] - b .L152 -.L153: + b .L161 +.L162: str w9, [x1,2052] -.L165: +.L174: str wzr, [x1,2048] -.L152: +.L161: str wzr, [x1,2048] str wzr, [x1,2048] str wzr, [x1,2048] -.L145: +.L154: add x6, x6, 8 add x7, x7, 16 cmp x6, 32 - bne .L154 + bne .L163 mov w0, 0 bl NandcWaitFlashReady mov w0, 0 @@ -1307,8 +1409,8 @@ SandiskProgTestBadBlock: bl NandcWaitFlashReady mov w0, 112 str w0, [x19,2056] - mov w0, 80 - bl NandcDelayns + mov x0, 400 + bl __const_udelay ldr w0, [x19,2048] ldr x19, [sp,16] and w0, w0, 1 @@ -1329,8 +1431,8 @@ SandiskSetRRPara: str w0, [x20,8] mov w0, 17 str w0, [x20,4] - mov w0, 200 - bl NandcDelayns + mov x0, 1000 + bl __const_udelay mov w1, 5 adrp x2, .LANCHOR1 add x2, x2, :lo12:.LANCHOR1 @@ -1341,23 +1443,23 @@ SandiskSetRRPara: add x0, x0, x1 add x1, x2, x1 mov x2, 0 -.L169: +.L178: add x3, x5, :lo12:.LANCHOR0 - ldrb w4, [x3,753] + ldrb w4, [x3,121] cmp w4, w2 - bls .L174 - ldrb w3, [x3,752] + bls .L183 + ldrb w3, [x3,120] cmp w3, 67 - bne .L170 + bne .L179 ldrsb w3, [x0,x2] - b .L173 -.L170: + b .L182 +.L179: ldrsb w3, [x1,x2] -.L173: +.L182: str w3, [x20] add x2, x2, 1 - b .L169 -.L174: + b .L178 +.L183: mov w0, 0 bl NandcWaitFlashReady ldp x19, x20, [sp,16] @@ -1387,8 +1489,8 @@ micron_auto_read_calibration_config: str w0, [x19,2056] mov w0, 150 str w0, [x19,2052] - mov w0, 200 - bl NandcDelayns + mov x0, 1000 + bl __const_udelay ldr x1, [x29,40] str w1, [x19,2048] str wzr, [x19,2048] @@ -1416,9 +1518,9 @@ FlashEraseSLc2KBlocks: mov w22, 0 add x25, x21, 1652 add x23, x23, :lo12:.LC0 -.L177: +.L186: cmp w22, w24 - beq .L186 + beq .L195 add x2, x29, 88 sub w4, w24, w22 mov x0, x20 @@ -1428,11 +1530,11 @@ FlashEraseSLc2KBlocks: ldr w2, [x29,92] ldrb w0, [x21,1845] cmp w2, w0 - bcc .L178 + bcc .L187 mov w0, -1 str w0, [x20] - b .L179 -.L178: + b .L188 +.L187: uxtw x2, w2 add x0, x21, x2 ldrb w19, [x0,1848] @@ -1465,24 +1567,24 @@ FlashEraseSLc2KBlocks: ldr w1, [x29,88] mov w0, w19 bl FlashReadStatus - tbz x0, 0, .L180 + tbz x0, 0, .L189 mov w0, -1 str w0, [x20] -.L180: +.L189: ldr w0, [x20] cmn w0, #1 - bne .L181 + bne .L190 ldr w1, [x29,88] mov x0, x23 bl printk -.L181: +.L190: mov w0, w19 bl NandcFlashDeCs -.L179: +.L188: add w22, w22, 1 add x20, x20, 56 - b .L177 -.L186: + b .L186 +.L195: mov w0, 0 ldr x25, [sp,64] ldp x19, x20, [sp,16] @@ -1517,7 +1619,7 @@ FlashReadDpCmd: cmp w0, 1 and w5, w1, 255 lsr w0, w1, 16 - bne .L188 + bne .L197 add x19, x6, x19, lsl 8 ldrb w2, [x3,8] str x1, [x29,72] @@ -1540,8 +1642,8 @@ FlashReadDpCmd: str w20, [x19,2052] str w0, [x19,2056] ldr x1, [x29,72] - b .L189 -.L188: + b .L198 +.L197: add x19, x6, x19, lsl 8 ldrb w2, [x3,8] str w2, [x19,2056] @@ -1555,7 +1657,7 @@ FlashReadDpCmd: str w22, [x19,2052] str w20, [x19,2052] str w0, [x19,2056] -.L189: +.L198: mov w0, w21 bl FlashSetRandomizer ldr x23, [sp,48] @@ -1576,25 +1678,25 @@ ftl_flash_de_init: adrp x19, .LANCHOR0 bl FlashSetReadRetryDefault add x0, x19, :lo12:.LANCHOR0 - ldr w1, [x0,1856] - mov w0, 12336 - movk w0, 0x5638, lsl 16 - cmp w1, w0 - bne .L191 + ldr w0, [x0,1856] + cbz w0, .L200 mov w0, 0 bl flash_enter_slc_mode -.L191: + b .L201 +.L200: + bl flash_exit_slc_mode +.L201: add x20, x19, :lo12:.LANCHOR0 ldrb w0, [x20,1860] - cbz w0, .L192 + cbz w0, .L202 ldrb w0, [x20,1844] - tbz x0, 0, .L192 + tbz x0, 0, .L202 mov w0, 1 bl FlashSetInterfaceMode mov w0, 1 bl NandcSetMode strb wzr, [x20,1860] -.L192: +.L202: add x19, x19, :lo12:.LANCHOR0 ldr x0, [x19,24] str wzr, [x0,336] @@ -1631,37 +1733,37 @@ NandcTimeCfg: add x1, x1, :lo12:.LANCHOR0 sdiv w0, w0, w2 cmp w0, 250 - ble .L201 + ble .L211 ldr x0, [x1,128] mov w1, 8354 - b .L208 -.L201: + b .L218 +.L211: cmp w0, 220 - ble .L203 + ble .L213 ldr x0, [x1,128] - b .L209 -.L203: + b .L219 +.L213: cmp w0, 185 - ble .L204 + ble .L214 ldr x0, [x1,128] mov w1, 4226 - b .L208 -.L204: + b .L218 +.L214: cmp w0, 160 ldr x0, [x1,128] - ble .L205 + ble .L215 mov w1, 4194 - b .L208 -.L205: + b .L218 +.L215: cmp w19, 35 mov w1, 4193 - bls .L208 + bls .L218 cmp w19, 99 mov w1, 4225 - bls .L208 -.L209: + bls .L218 +.L219: mov w1, 8322 -.L208: +.L218: str w1, [x0,4] ldr x19, [sp,16] ldp x29, x30, [sp], 32 @@ -1677,15 +1779,15 @@ FlashTimingCfg: and w1, w1, -33 cmp w1, 1 add x29, sp, 0 - bls .L211 + bls .L221 mov w1, 8322 cmp w0, w1 - bne .L212 -.L211: + bne .L222 +.L221: adrp x1, .LANCHOR0+128 ldr x1, [x1,#:lo12:.LANCHOR0+128] str w0, [x1,4] -.L212: +.L222: adrp x0, .LANCHOR1+493 ldrb w0, [x0,#:lo12:.LANCHOR1+493] bl NandcTimeCfg @@ -1722,12 +1824,12 @@ NandcInit: ubfx x3, x3, 16, 4 str w3, [x1,1868] ldr w3, [x0,352] - str w3, [x1,1856] + str w3, [x1,1872] cmp w3, 2049 - bne .L214 + bne .L224 mov w3, 8 str w3, [x1,1868] -.L214: +.L224: add x19, x19, :lo12:.LANCHOR0 str w2, [x0] ldr x0, [x19,128] @@ -1742,12 +1844,12 @@ NandcInit: str w1, [x0,304] mov w0, 36864 bl ftl_malloc - str wzr, [x19,1920] - str x0, [x19,1872] - str x0, [x19,1880] - add x0, x0, 32768 str wzr, [x19,1928] + str x0, [x19,1880] str x0, [x19,1888] + add x0, x0, 32768 + str wzr, [x19,1936] + str x0, [x19,1896] ldr x19, [sp,16] ldp x29, x30, [sp], 32 ret @@ -1785,24 +1887,24 @@ NandcBchSel: mov w3, 1 cmp w0, 16 ldr x2, [x1,128] - str w0, [x1,1932] + str w0, [x1,1940] mov w1, 4096 str w3, [x2,8] - bne .L217 -.L220: + bne .L227 +.L230: and w1, w1, -17 - b .L218 -.L217: + b .L228 +.L227: cmp w0, 24 - bne .L219 + bne .L229 orr w1, w1, 16 - b .L218 -.L219: + b .L228 +.L229: cmp w0, 40 orr w1, w1, 262144 orr w1, w1, 16 - beq .L220 -.L218: + beq .L230 +.L228: orr w1, w1, 1 str w1, [x2,12] ret @@ -1812,10 +1914,10 @@ NandcBchSel: .type FlashBchSel, %function FlashBchSel: stp x29, x30, [sp, -16]! - adrp x1, .LANCHOR0+1936 + adrp x1, .LANCHOR0+1944 uxtb w0, w0 add x29, sp, 0 - strb w0, [x1,#:lo12:.LANCHOR0+1936] + strb w0, [x1,#:lo12:.LANCHOR0+1944] bl NandcBchSel ldp x29, x30, [sp], 16 ret @@ -1828,60 +1930,61 @@ ftl_flash_resume: add x29, sp, 0 stp x19, x20, [sp,16] adrp x20, .LANCHOR0 - add x1, x20, :lo12:.LANCHOR0 - stp x21, x22, [sp,32] - add x19, x1, 1620 + str x21, [sp,32] + add x0, x20, :lo12:.LANCHOR0 mov x21, 0 - ldr x0, [x1,128] - ldr w2, [x1,136] - ldr w22, [x1,152] - str w2, [x0] - ldr w2, [x1,140] - ldr x0, [x1,128] - str w2, [x0,4] - ldr w0, [x1,144] - ldr x2, [x1,128] - str w0, [x2,8] - ldr w0, [x1,148] - str w0, [x2,12] - str w22, [x2,304] - ldr w0, [x1,156] - str w0, [x2,308] - ldr w0, [x1,160] - str w0, [x2,336] - ldr w0, [x1,164] - str w0, [x2,344] -.L227: + add x19, x0, 1620 + ldr x1, [x0,128] + ldr w2, [x0,136] + str w2, [x1] + ldr w2, [x0,140] + ldr x1, [x0,128] + str w2, [x1,4] + ldr w2, [x0,144] + ldr x1, [x0,128] + str w2, [x1,8] + ldr w2, [x0,148] + str w2, [x1,12] + ldr w2, [x0,152] + str w2, [x1,304] + ldr w2, [x0,156] + str w2, [x1,308] + ldr w2, [x0,160] + str w2, [x1,336] + ldr w2, [x0,164] + str w2, [x1,344] +.L237: lsl x0, x21, 3 - ldrb w1, [x0,x19] - sub w1, w1, #1 - uxtb w1, w1 - cmp w1, 253 - bhi .L226 + ldrb w0, [x0,x19] + sub w0, w0, #1 + uxtb w0, w0 + cmp w0, 253 + bhi .L236 mov w0, w21 bl FlashReset -.L226: +.L236: add x21, x21, 1 cmp x21, 4 - bne .L227 + bne .L237 add x19, x20, :lo12:.LANCHOR0 ldrb w0, [x19,1860] - cbz w0, .L228 + cbz w0, .L238 mov w0, 1 bl NandcSetMode ldrb w0, [x19,1844] bl FlashSetInterfaceMode ldrb w0, [x19,1844] bl NandcSetMode - lsr w0, w22, 8 + ldr w0, [x19,152] + lsr w0, w0, 8 bl NandcSetDdrPara -.L228: +.L238: add x20, x20, :lo12:.LANCHOR0 ldr x0, [x20,744] ldrb w0, [x0,20] bl FlashBchSel + ldr x21, [sp,32] ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] ldp x29, x30, [sp], 48 ret .size ftl_flash_resume, .-ftl_flash_resume @@ -1920,18 +2023,18 @@ NandcIqrWaitFlashReady: orr w0, w0, 2 str w0, [x19,364] ldr w0, [x19] - tbnz x0, 9, .L236 + tbnz x0, 9, .L246 mov x0, x19 bl wait_for_nand_flash_ready - b .L235 -.L236: + b .L245 +.L246: ldr w0, [x19,368] orr w0, w0, 2 str w0, [x19,368] ldr w0, [x19,364] and w0, w0, -3 str w0, [x19,364] -.L235: +.L245: ldr x19, [sp,16] ldp x29, x30, [sp], 32 ret @@ -1955,17 +2058,17 @@ FlashEraseBlocks: mov w20, 0 stp x21, x22, [sp,32] stp x25, x26, [sp,64] - cbz w2, .L239 + cbz w2, .L249 mov w1, w23 bl FlashEraseSLc2KBlocks - b .L240 -.L239: + b .L250 +.L249: mov w28, 56 add x25, x19, 1652 mov x26, 24 -.L270: +.L280: cmp w20, w23 - bcs .L271 + bcs .L281 umull x5, w20, w28 mov w1, 0 sub w4, w23, w20 @@ -1980,32 +2083,32 @@ FlashEraseBlocks: ldr w0, [x29,124] ldr x5, [x29,96] cmp w0, w1 - bcc .L241 + bcc .L251 mov w0, -1 str w0, [x24,x5] - b .L242 -.L241: - ldrb w1, [x19,1937] + b .L252 +.L251: + ldrb w1, [x19,1945] cmp w1, wzr uxtw x1, w0 csel w22, w22, wzr, ne madd x1, x1, x26, x25 ldr x1, [x1,8] - cbz x1, .L244 + cbz x1, .L254 bl FlashWaitCmdDone -.L244: +.L254: ldr w0, [x29,124] ldr w1, [x29,120] madd x2, x0, x26, x25 str x21, [x2,8] str xzr, [x2,16] str w1, [x2,4] - cbz w22, .L245 + cbz w22, .L255 add w1, w20, 1 umull x1, w1, w28 add x1, x24, x1 str x1, [x2,16] -.L245: +.L255: add x1, x19, x0 mul x0, x0, x26 ldrb w21, [x1,1848] @@ -2013,18 +2116,18 @@ FlashEraseBlocks: mov w0, w21 bl NandcFlashCs cmp w27, 1 - bne .L246 - ldrb w0, [x19,120] - cbz w0, .L246 + bne .L256 + ldrb w0, [x19,196] + cbz w0, .L256 mov w0, w21 bl flash_enter_slc_mode - b .L247 -.L246: + b .L257 +.L256: mov w0, w21 bl flash_exit_slc_mode -.L247: +.L257: ldr w1, [x29,124] - add x0, x19, 708 + add x0, x19, 712 add w20, w20, w22 ldr w0, [x0,x1,lsl 2] ldr w1, [x29,120] @@ -2038,10 +2141,10 @@ FlashEraseBlocks: bl FlashEraseCmd mov w0, w21 bl NandcFlashDeCs -.L242: +.L252: add w20, w20, 1 - b .L270 -.L271: + b .L280 +.L281: ldr x0, [x29,104] mov x20, 0 mov x22, 24 @@ -2049,42 +2152,42 @@ FlashEraseBlocks: add x21, x19, 1652 ldr x0, [x19,128] bl NandcIqrWaitFlashReady -.L249: +.L259: ldrb w0, [x19,1845] cmp w0, w20 - bls .L272 + bls .L282 mov w0, w20 bl FlashWaitCmdDone cmp w27, 1 - bne .L250 - ldrb w0, [x19,120] - cbz w0, .L250 + bne .L260 + ldrb w0, [x19,196] + cbz w0, .L260 mul x0, x20, x22 ldrb w0, [x0,x21] bl flash_exit_slc_mode -.L250: +.L260: add x20, x20, 1 - b .L249 -.L272: - ldr w0, [x19,1940] - cbnz w0, .L252 -.L254: + b .L259 +.L282: + ldr w0, [x19,1948] + cbnz w0, .L262 +.L264: mov w0, 0 - b .L240 -.L252: + b .L250 +.L262: ldrb w0, [x19,1620] cmp w0, 69 - bne .L254 + bne .L264 mov x0, 0 mov x1, 56 -.L253: +.L263: cmp w23, w0 - bls .L254 + bls .L264 mul x2, x0, x1 add x0, x0, 1 str wzr, [x24,x2] - b .L253 -.L240: + b .L263 +.L250: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -2134,11 +2237,11 @@ NandcSendDumpDataStart: .type NandcSendDumpDataDone, %function NandcSendDumpDataDone: sub sp, sp, #16 -.L276: +.L286: ldr w1, [x0,8] str w1, [sp,8] ldr w1, [sp,8] - tbz x1, 20, .L276 + tbz x1, 20, .L286 add sp, sp, 16 ret .size NandcSendDumpDataDone, .-NandcSendDumpDataDone @@ -2177,7 +2280,7 @@ NandcXferStart: cmp w0, 3 orr w20, w20, 1024 bfi w20, w3, 4, 1 - bls .L280 + bls .L290 ldr w0, [x21,16] cmp x5, xzr str w0, [x29,88] @@ -2185,11 +2288,11 @@ NandcXferStart: ldr w0, [x29,88] and w0, w0, -5 str w0, [x29,88] - cbnz w7, .L294 - cbz x22, .L281 -.L294: - cbnz w25, .L283 -.L291: + cbnz w7, .L304 + cbz x22, .L291 +.L304: + cbnz w25, .L293 +.L301: mov x0, x21 add w23, w23, 1 asr w23, w23, 1 @@ -2202,62 +2305,62 @@ NandcXferStart: orr w0, w0, 1 str w0, [x21,364] mov x0, x22 - cbnz x22, .L285 + cbnz x22, .L295 add x0, x19, :lo12:.LANCHOR0 - ldr x0, [x0,1880] - b .L285 -.L283: + ldr x0, [x0,1888] + b .L295 +.L293: add x1, x19, :lo12:.LANCHOR0 mov w4, 128 mov w2, 0 lsr w8, w23, 1 mov w3, w2 mov w9, -1 - ldr w0, [x1,1932] + ldr w0, [x1,1940] cmp w0, 25 mov w0, 64 csel w4, w0, w4, cc -.L287: +.L297: cmp w3, w8 - bcs .L291 + bcs .L301 lsr w0, w2, 2 ubfiz x0, x0, 2, 30 - cbz w7, .L288 + cbz w7, .L298 ldrh w6, [x5,2] - ldr x10, [x1,1888] + ldr x10, [x1,1896] ldrh w11, [x5],4 orr w6, w11, w6, lsl 16 str w6, [x10,x0] - b .L289 -.L288: - ldr x6, [x1,1888] + b .L299 +.L298: + ldr x6, [x1,1896] str w9, [x6,x0] -.L289: +.L299: add w3, w3, 1 add w2, w2, w4 - b .L287 -.L285: + b .L297 +.L295: add x19, x19, :lo12:.LANCHOR0 ubfx x23, x20, 22, 5 mov w2, w25 and x22, x22, 3 - ldr x1, [x19,1888] - str x1, [x19,1904] + ldr x1, [x19,1896] + str x1, [x19,1912] lsl w1, w23, 10 - str x0, [x19,1896] + str x0, [x19,1904] bl rknand_dma_map_single - str w0, [x19,1912] - ldr x0, [x19,1904] + str w0, [x19,1920] + ldr x0, [x19,1912] lsl w1, w23, 7 mov w2, w25 bl rknand_dma_map_single - str w0, [x19,1916] + str w0, [x19,1924] mov w0, 1 - str w0, [x19,1920] - ldr w0, [x19,1912] + str w0, [x19,1928] + ldr w0, [x19,1920] mov w1, 16 str w0, [x21,20] - ldr w0, [x19,1916] + ldr w0, [x19,1924] str w0, [x21,24] str wzr, [x29,88] ldr w0, [x29,88] @@ -2266,12 +2369,12 @@ NandcXferStart: ldr w0, [x29,88] orr w0, w0, 448 str w0, [x29,88] - cbnz x22, .L292 + cbnz x22, .L302 ldr w0, [x29,88] mov w1, 2 bfi w0, w1, 3, 3 str w0, [x29,88] -.L292: +.L302: ldr w0, [x29,88] cmp w25, wzr cset w1, eq @@ -2283,10 +2386,10 @@ NandcXferStart: ldr w0, [x29,88] orr w0, w0, 1 str w0, [x29,88] -.L281: +.L291: ldr w0, [x29,88] str w0, [x21,16] -.L280: +.L290: str w24, [x21,12] str w20, [x21,8] orr w20, w20, 4 @@ -2304,14 +2407,14 @@ NandcXferStart: Ftl_log2: mov w2, 1 mov w1, 0 -.L299: +.L309: cmp w2, w0 - bhi .L301 + bhi .L311 add w1, w1, 1 lsl w2, w2, 1 uxth w1, w1 - b .L299 -.L301: + b .L309 +.L311: sub w0, w1, #1 ret .size Ftl_log2, .-Ftl_log2 @@ -2331,17 +2434,17 @@ FtlSysBlkNumInit: csel w0, w0, w1, hi adrp x1, .LANCHOR0 add x1, x1, :lo12:.LANCHOR0 - ldrh w2, [x1,1948] - ldrh w3, [x1,1958] - str w0, [x1,1944] + ldrh w2, [x1,1956] + ldrh w3, [x1,1966] + str w0, [x1,1952] mul w2, w0, w2 sub w0, w3, w0 - strh w0, [x1,1956] - ldr w0, [x1,1964] - str w2, [x1,1952] + strh w0, [x1,1964] + ldr w0, [x1,1972] + str w2, [x1,1960] sub w2, w0, w2 mov w0, 0 - str w2, [x1,1960] + str w2, [x1,1968] ret .size FtlSysBlkNumInit, .-FtlSysBlkNumInit .align 2 @@ -2353,212 +2456,209 @@ FtlConstantsInit: add x29, sp, 0 stp x19, x20, [sp,16] stp x23, x24, [sp,48] + adrp x20, .LANCHOR0 + mov x23, x0 stp x21, x22, [sp,32] stp x25, x26, [sp,64] str x27, [sp,80] - mov x23, x0 - adrp x20, .LANCHOR0 - ldrh w6, [x0,8] - add x0, x20, :lo12:.LANCHOR0 - ldrh w2, [x23,10] - ldrh w1, [x23,12] + add x1, x20, :lo12:.LANCHOR0 ldrh w4, [x23,14] - strh w6, [x0,1968] - strh w2, [x0,1970] - strh w1, [x0,1972] - strh w4, [x0,1958] -.L306: - add x5, x0, 1976 + ldrh w6, [x0,8] + ldrh w2, [x0,10] + ldrh w0, [x0,12] + strh w6, [x1,1976] + strh w2, [x1,1978] + strh w0, [x1,1980] + strh w4, [x1,1966] +.L316: + add x5, x1, 1984 strb w3, [x3,x5] add x3, x3, 1 cmp x3, 32 - bne .L306 + bne .L316 ldrh w3, [x23,20] - ldrb w0, [x23,15] - cmp w3, w0 - bcs .L307 - uxtb w8, w1 + ldrb w1, [x23,15] + cmp w3, w1 + bcs .L317 + uxtb w8, w0 mov w3, 0 - mul w11, w1, w2 + mul w11, w0, w2 ubfiz w10, w8, 1, 7 add x12, x20, :lo12:.LANCHOR0 -.L308: - cmp w3, w1 - bcs .L310 - uxtb w0, w3 +.L318: + cmp w3, w0 + bcs .L320 + uxtb w1, w3 mov w5, w3 mov w7, 0 -.L311: +.L321: cmp w7, w2 - bcs .L333 - add x9, x12, 1976 + bcs .L343 + add x9, x12, 1984 add w13, w5, w11 - add w14, w0, w8 + add w14, w1, w8 add w7, w7, 1 - strb w0, [x9,w5,uxtw] - add w0, w0, w10 + strb w1, [x9,w5,uxtw] + add w1, w1, w10 strb w14, [x9,x13] - add w5, w5, w1 - uxtb w0, w0 - b .L311 -.L333: + add w5, w5, w0 + uxtb w1, w1 + b .L321 +.L343: add w3, w3, 1 - b .L308 -.L310: - add x0, x20, :lo12:.LANCHOR0 + b .L318 +.L320: + add x1, x20, :lo12:.LANCHOR0 lsl w2, w2, 1 lsr w4, w4, 1 - strh w2, [x0,1970] - strh w4, [x0,1958] -.L307: - add x0, x20, :lo12:.LANCHOR0 + strh w2, [x1,1978] + strh w4, [x1,1966] +.L317: + add x1, x20, :lo12:.LANCHOR0 mov w2, 5 cmp w6, 1 - strh w2, [x0,2008] - strh wzr, [x0,2010] - bne .L312 - strh w6, [x0,2008] -.L312: - add x0, x20, :lo12:.LANCHOR0 + strh w2, [x1,2016] + strh wzr, [x1,2018] + bne .L322 + strh w6, [x1,2016] +.L322: + add x1, x20, :lo12:.LANCHOR0 mov w2, 4352 - ldrb w26, [x0,8] - strh w2, [x0,2012] - cbz w26, .L313 + ldrb w26, [x1,8] + strh w2, [x1,2020] + cbz w26, .L323 mov w2, 384 - strh w2, [x0,2012] -.L313: + strh w2, [x1,2020] +.L323: add x21, x20, :lo12:.LANCHOR0 - ldrh w19, [x21,1958] - ldrh w22, [x21,1970] - mul w22, w1, w22 - mul w1, w19, w1 - uxth w22, w22 - strh w22, [x21,1948] - uxth w0, w1 - strh w0, [x21,2014] - bl Ftl_log2 ldrh w25, [x23,16] ldrh w24, [x23,20] - strh w0, [x21,2016] - mul w0, w22, w25 + ldrh w27, [x23,18] + ldrh w22, [x21,1978] + ldrh w19, [x21,1966] + strh w25, [x21,2024] + mul w22, w0, w22 + mul w0, w19, w0 strh w0, [x21,2022] + uxth w22, w22 + strh w27, [x21,2026] + strh w22, [x21,1956] + mul w0, w22, w25 + strh w0, [x21,2028] mov w0, w24 - ldrh w27, [x23,18] - strh w25, [x21,2018] - strh w27, [x21,2020] - strh w24, [x21,2024] + strh w24, [x21,2030] bl Ftl_log2 - lsl w2, w24, 9 uxth w3, w0 - strh w0, [x21,2026] - cmp w19, 1024 + lsl w2, w24, 9 + strh w0, [x21,2032] ldrh w0, [x23,26] - strh w2, [x21,2028] + cmp w19, 1024 + strh w2, [x21,2034] ubfx x2, x2, 9, 7 - strh w0, [x21,2032] + strh w0, [x21,2038] lsl w2, w2, 1 mul w0, w22, w19 - strh w2, [x21,2030] - str w0, [x21,1964] - bls .L314 + strh w2, [x21,2036] + str w0, [x21,1972] + bls .L324 and w0, w19, 255 - strh w0, [x21,2010] -.L314: + strh w0, [x21,2018] +.L324: add x2, x20, :lo12:.LANCHOR0 mul w0, w24, w27 - ldrh w1, [x2,2010] + ldrh w1, [x2,2018] sub w1, w19, w1 mul w1, w22, w1 mul w1, w1, w24 mul w1, w1, w25 asr w1, w1, 11 - str w1, [x2,2036] - ldrh w1, [x2,2012] + str w1, [x2,2040] + ldrh w1, [x2,2020] lsl w1, w1, 3 sdiv w0, w1, w0 uxth w0, w0 cmp w0, 4 - bhi .L330 + bhi .L340 mov w0, 4 -.L330: - strh w0, [x2,2040] - cbz w26, .L317 +.L340: + strh w0, [x2,2044] + cbz w26, .L327 add x0, x20, :lo12:.LANCHOR0 mov w1, 640 - strh w1, [x0,2012] -.L317: + strh w1, [x0,2020] +.L327: add x1, x20, :lo12:.LANCHOR0 lsl w19, w19, 6 cmp w22, 1 - ldrh w0, [x1,2012] + ldrh w0, [x1,2020] asr w0, w0, w3 add w3, w3, 9 asr w19, w19, w3 - strh w19, [x1,2044] + strh w19, [x1,2048] and w19, w19, 65535 add w0, w0, 2 - strh w0, [x1,2042] + strh w0, [x1,2046] mul w0, w19, w22 - str w0, [x1,2048] + str w0, [x1,2052] add w19, w19, 8 - ldrh w0, [x1,2040] + ldrh w0, [x1,2044] udiv w0, w0, w22 add w19, w19, w0 - bne .L331 + bne .L341 add w19, w19, 4 -.L331: - str w19, [x1,1944] +.L341: + str w19, [x1,1952] add x19, x20, :lo12:.LANCHOR0 - ldrh w0, [x19,1944] + ldrh w0, [x19,1952] bl FtlSysBlkNumInit - str wzr, [x19,2060] - ldr w0, [x19,1944] - str w0, [x19,2052] - ldr w0, [x19,1960] - ldrh w1, [x19,2018] + str wzr, [x19,2064] + ldr w0, [x19,1952] + str w0, [x19,2056] + ldr w0, [x19,1968] + ldrh w1, [x19,2024] lsl w0, w0, 2 - ldrh w3, [x19,2024] - ldrh w2, [x19,2040] + ldrh w3, [x19,2030] + ldrh w2, [x19,2044] mul w1, w0, w1 - ldrh w0, [x19,2026] - ldrb w5, [x19,120] + ldrh w0, [x19,2032] + ldrb w5, [x19,196] add w0, w0, 9 lsr w0, w1, w0 mov w1, 2048 add w0, w0, 2 sdiv w1, w1, w3 - strh w1, [x19,2058] + strh w1, [x19,2062] uxth w0, w0 - strh w0, [x19,2056] + strh w0, [x19,2060] add w1, w2, 3 - strh w1, [x19,2040] - ldr w1, [x19,2048] + strh w1, [x19,2044] + ldr w1, [x19,2052] add w4, w1, 3 - str w4, [x19,2048] - cbz w5, .L320 + str w4, [x19,2052] + cbz w5, .L330 add w2, w2, 4 add w1, w1, 5 - strh w2, [x19,2040] - b .L332 -.L320: + strh w2, [x19,2044] + b .L342 +.L330: cmp w4, 7 - bhi .L321 + bhi .L331 mov w1, 8 -.L332: - str w1, [x19,2048] -.L321: +.L342: + str w1, [x19,2052] +.L331: add x20, x20, :lo12:.LANCHOR0 - ldrh w1, [x20,1956] - strh wzr, [x20,2064] + ldrh w1, [x20,1964] + strh wzr, [x20,2068] lsr w2, w1, 3 add w1, w2, w1, lsl 1 add w1, w1, 52 add w0, w1, w0, lsl 2 cmp w0, w3, lsl 9 - bcs .L322 + bcs .L332 mov w0, 1 - strh w0, [x20,2064] -.L322: + strh w0, [x20,2068] +.L332: mov w0, 0 ldr x27, [sp,80] ldp x19, x20, [sp,16] @@ -2576,24 +2676,24 @@ IsBlkInVendorPart: uxth w4, w0 add x1, x1, :lo12:.LANCHOR0 mov w0, 0 - ldrh w2, [x1,2066] - cbz w2, .L335 - ldrh w2, [x1,2040] + ldrh w2, [x1,2070] + cbz w2, .L345 + ldrh w2, [x1,2044] ldr x3, [x1,2072] mov x1, 0 -.L336: +.L346: cmp w2, w1, uxth - bls .L341 + bls .L351 add x1, x1, 1 add x0, x3, x1, lsl 1 ldrh w0, [x0,-2] cmp w0, w4 - bne .L336 + bne .L346 mov w0, 1 - b .L335 -.L341: + b .L345 +.L351: mov w0, 0 -.L335: +.L345: ret .size IsBlkInVendorPart, .-IsBlkInVendorPart .align 2 @@ -2605,41 +2705,41 @@ FtlCacheMetchLpa: add x2, x2, :lo12:.LANCHOR0 mov w0, 0 ldr w3, [x2,2080] - cbz w3, .L343 + cbz w3, .L353 ldr x5, [x2,2088] mov x0, 56 mov x2, 0 -.L344: +.L354: cmp w3, w2 - bls .L353 + bls .L363 madd x4, x2, x0, x5 add x2, x2, 1 ldr w4, [x4,24] cmp w4, w6 - bcc .L344 + bcc .L354 cmp w4, w1 - bhi .L344 + bhi .L354 mov w0, 1 - b .L343 -.L353: + b .L353 +.L363: mov w0, 0 -.L343: +.L353: ret .size FtlCacheMetchLpa, .-FtlCacheMetchLpa .align 2 .global FtlGetCap .type FtlGetCap, %function FtlGetCap: - adrp x0, .LANCHOR0+2060 - ldr w0, [x0,#:lo12:.LANCHOR0+2060] + adrp x0, .LANCHOR0+2064 + ldr w0, [x0,#:lo12:.LANCHOR0+2064] ret .size FtlGetCap, .-FtlGetCap .align 2 .global ftl_get_density .type ftl_get_density, %function ftl_get_density: - adrp x0, .LANCHOR0+2060 - ldr w0, [x0,#:lo12:.LANCHOR0+2060] + adrp x0, .LANCHOR0+2064 + ldr w0, [x0,#:lo12:.LANCHOR0+2064] ret .size ftl_get_density, .-ftl_get_density .align 2 @@ -2662,7 +2762,7 @@ FtlBbmMapBadBlock: adrp x19, .LANCHOR0 add x19, x19, :lo12:.LANCHOR0 add x19, x19, 2104 - ldrh w3, [x19,-90] + ldrh w3, [x19,-82] udiv w2, w1, w3 add x0, x19, x2, uxth 3 ldr x0, [x0,32] @@ -2692,7 +2792,7 @@ FtlBbmIsBadBlock: adrp x2, .LANCHOR0 uxth w0, w0 add x3, x2, :lo12:.LANCHOR0 - ldrh w1, [x3,2014] + ldrh w1, [x3,2022] udiv w2, w0, w1 msub w0, w2, w1, w0 add x2, x3, x2, uxth 3 @@ -2722,22 +2822,22 @@ FtlBbtCalcTotleCnt: str x21, [sp,32] mov w19, 0 mov w20, w19 - ldrh w1, [x0,2014] - ldrh w21, [x0,1970] + ldrh w1, [x0,2022] + ldrh w21, [x0,1978] mul w21, w1, w21 -.L361: +.L371: cmp w20, w21 - bge .L367 + bge .L377 mov w0, w20 bl FtlBbmIsBadBlock - cbz w0, .L362 + cbz w0, .L372 add w19, w19, 1 uxth w19, w19 -.L362: +.L372: add w20, w20, 1 uxth w20, w20 - b .L361 -.L367: + b .L371 +.L377: mov w0, w19 ldr x21, [sp,32] ldp x19, x20, [sp,16] @@ -2752,11 +2852,11 @@ V2P_block: uxth w0, w0 add x3, x3, :lo12:.LANCHOR0 uxth w1, w1 - ldrh w4, [x3,1972] + ldrh w4, [x3,1980] udiv w2, w0, w4 msub w0, w2, w4, w0 madd w0, w1, w4, w0 - ldrh w1, [x3,2014] + ldrh w1, [x3,2022] madd w0, w2, w1, w0 ret .size V2P_block, .-V2P_block @@ -2767,8 +2867,8 @@ P2V_plane: adrp x2, .LANCHOR0 uxth w0, w0 add x2, x2, :lo12:.LANCHOR0 - ldrh w1, [x2,1972] - ldrh w3, [x2,2014] + ldrh w1, [x2,1980] + ldrh w3, [x2,2022] udiv w2, w0, w1 udiv w3, w0, w3 msub w0, w2, w1, w0 @@ -2782,10 +2882,10 @@ P2V_block_in_plane: adrp x2, .LANCHOR0 uxth w0, w0 add x2, x2, :lo12:.LANCHOR0 - ldrh w3, [x2,2014] + ldrh w3, [x2,2022] udiv w1, w0, w3 msub w0, w1, w3, w0 - ldrh w1, [x2,1972] + ldrh w1, [x2,1980] uxth w0, w0 udiv w0, w0, w1 ret @@ -2796,16 +2896,16 @@ P2V_block_in_plane: ftl_cmp_data_ver: cmp w0, w1 mov w2, -2147483648 - bls .L372 + bls .L382 sub w1, w0, w1 cmp w1, w2 cset w0, ls - b .L373 -.L372: + b .L383 +.L382: sub w1, w1, w0 cmp w1, w2 cset w0, hi -.L373: +.L383: ret .size ftl_cmp_data_ver, .-ftl_cmp_data_ver .align 2 @@ -2841,18 +2941,18 @@ FtlFreeSysBlkQueueIn: mov w0, 65533 sub w2, w21, #1 cmp w0, w2, uxth - bcc .L376 + bcc .L386 adrp x2, .LANCHOR0 add x0, x2, :lo12:.LANCHOR0 mov x19, x2 ldrh w0, [x0,2206] cmp w0, 1024 - beq .L376 - cbz w1, .L378 + beq .L386 + cbz w1, .L388 adrp x20, .LANCHOR2 add x20, x20, :lo12:.LANCHOR2 ldr w0, [x20,-96] - cbnz w0, .L378 + cbnz w0, .L388 mov w0, w21 bl P2V_block_in_plane uxth w22, w0 @@ -2871,7 +2971,7 @@ FtlFreeSysBlkQueueIn: ldr w0, [x20,-72] add w0, w0, 1 str w0, [x20,-72] -.L378: +.L388: add x1, x19, :lo12:.LANCHOR0 add x1, x1, 2200 ldrh w0, [x1,6] @@ -2883,7 +2983,7 @@ FtlFreeSysBlkQueueIn: and w2, w2, 1023 strh w21, [x0,8] strh w2, [x1,4] -.L376: +.L386: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x29, x30, [sp], 48 @@ -2899,15 +2999,15 @@ FtlFreeSysBLkSort: add x1, x0, :lo12:.LANCHOR0 add x1, x1, 2200 ldrh w2, [x1,6] - cbz w2, .L385 + cbz w2, .L395 mov w5, 0 ldrh w3, [x1,2] ldrh w2, [x1,4] mov w4, w5 and w6, w6, 31 -.L387: +.L397: cmp w4, w6 - bge .L395 + bge .L405 add x5, x1, x3, sxtw 1 ldrh w7, [x5,8] add x5, x1, x2, sxtw 1 @@ -2919,13 +3019,13 @@ FtlFreeSysBLkSort: uxth w4, w4 and w3, w3, 1023 and w2, w2, 1023 - b .L387 -.L395: - cbz w5, .L385 + b .L397 +.L405: + cbz w5, .L395 add x0, x0, :lo12:.LANCHOR0 strh w3, [x0,2202] strh w2, [x0,2204] -.L385: +.L395: ret .size FtlFreeSysBLkSort, .-FtlFreeSysBLkSort .align 2 @@ -2944,9 +3044,9 @@ FtlFreeSysBlkQueueOut: add x22, x21, 2200 add x23, x23, :lo12:.LC3 mov x24, x21 -.L397: +.L407: ldrh w1, [x22,6] - cbz w1, .L398 + cbz w1, .L408 adrp x19, .LANCHOR2 ldrh w2, [x22,2] add x25, x19, :lo12:.LANCHOR2 @@ -2958,7 +3058,7 @@ FtlFreeSysBlkQueueOut: ldr w1, [x25,-96] and w2, w2, 1023 strh w2, [x22,2] - cbnz w1, .L399 + cbnz w1, .L409 mov w0, w20 str x1, [x29,88] bl P2V_block_in_plane @@ -2967,12 +3067,12 @@ FtlFreeSysBlkQueueOut: lsl w2, w20, 10 ldr x1, [x29,88] str w2, [x0,4] - ldrb w0, [x21,120] - cbz w0, .L400 + ldrb w0, [x21,196] + cbz w0, .L410 ldr x0, [x25,-88] mov w2, 1 bl FlashEraseBlocks -.L400: +.L410: add x19, x19, :lo12:.LANCHOR2 mov w1, 1 mov w2, w1 @@ -2986,24 +3086,24 @@ FtlFreeSysBlkQueueOut: ldr w0, [x19,-72] add w0, w0, 1 str w0, [x19,-72] - b .L399 -.L398: + b .L409 +.L408: adrp x0, .LC2 add x0, x0, :lo12:.LC2 bl printk -.L401: - b .L401 -.L399: +.L411: + b .L411 +.L409: sub w0, w20, #1 mov w1, 65533 cmp w1, w0, uxth - bcs .L402 + bcs .L412 ldrh w2, [x24,2206] mov x0, x23 mov w1, w20 bl printk - b .L397 -.L402: + b .L407 +.L412: mov w0, w20 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -3027,21 +3127,21 @@ test_node_in_list: madd x0, x4, x0, x0 mov w4, 6 uxth w0, w0 -.L408: +.L418: cmp w1, w0 - beq .L409 + beq .L419 ldrh w0, [x2] cmp w0, w5 - beq .L410 + beq .L420 umull x2, w0, w4 add x2, x3, x2 - b .L408 -.L409: + b .L418 +.L419: mov w0, 1 - b .L407 -.L410: + b .L417 +.L420: mov w0, 0 -.L407: +.L417: ret .size test_node_in_list, .-test_node_in_list .align 2 @@ -3051,9 +3151,9 @@ insert_data_list: adrp x9, .LANCHOR0 uxth w0, w0 add x9, x9, :lo12:.LANCHOR0 - ldrh w1, [x9,1956] + ldrh w1, [x9,1964] cmp w1, w0 - bls .L413 + bls .L423 adrp x2, .LANCHOR2 mov w7, 6 add x5, x2, :lo12:.LANCHOR2 @@ -3065,10 +3165,10 @@ insert_data_list: strh w1, [x4,2] strh w1, [x11,x10] ldr x1, [x5,-8] - cbnz x1, .L414 + cbnz x1, .L424 str x4, [x5,-8] - b .L413 -.L414: + b .L423 +.L424: ubfiz x8, x0, 1, 16 ldr x13, [x2,#:lo12:.LANCHOR2] ldrh w2, [x4,4] @@ -3077,7 +3177,7 @@ insert_data_list: mov w18, 65535 ldrh w6, [x13,x8] cmp w2, wzr - ldrh w17, [x9,1956] + ldrh w17, [x9,1964] mul w6, w6, w2 sub x2, x1, x12 asr x2, x2, 1 @@ -3088,13 +3188,13 @@ insert_data_list: add x9, x14, x8 uxth w2, w2 mov w8, w7 -.L422: +.L432: add w5, w5, 1 cmp w0, w2 uxth w5, w5 - beq .L413 + beq .L423 cmp w5, w17 - bhi .L413 + bhi .L423 ubfiz x15, x2, 1, 16 ldrh w16, [x1,4] cmp w16, wzr @@ -3102,47 +3202,47 @@ insert_data_list: mul w7, w7, w16 csinv w7, w7, wzr, ne cmp w7, w6 - bne .L418 + bne .L428 ldrh w15, [x14,x15] ldrh w7, [x9] cmp w15, w7 - bcc .L420 - b .L419 -.L418: - bhi .L419 -.L420: + bcc .L430 + b .L429 +.L428: + bhi .L429 +.L430: ldrh w7, [x1] cmp w7, w18 - bne .L421 + bne .L431 strh w2, [x4,2] add x2, x3, :lo12:.LANCHOR2 strh w0, [x1] str x4, [x2,8] - b .L413 -.L421: + b .L423 +.L431: umull x1, w7, w8 mov w2, w7 add x1, x12, x1 - b .L422 -.L419: + b .L432 +.L429: strh w2, [x11,x10] ldrh w2, [x1,2] strh w2, [x4,2] add x2, x3, :lo12:.LANCHOR2 ldr x3, [x2,-8] cmp x1, x3 - bne .L423 + bne .L433 strh w0, [x1,2] str x4, [x2,-8] - b .L413 -.L423: + b .L423 +.L433: ldrh w3, [x1,2] mov w4, 6 ldr x2, [x2,-16] umull x3, w3, w4 strh w0, [x2,x3] strh w0, [x1,2] -.L413: +.L423: mov w0, 0 ret .size insert_data_list, .-insert_data_list @@ -3168,7 +3268,7 @@ insert_free_list: uxth w0, w0 mov w7, 65535 cmp w0, w7 - beq .L428 + beq .L438 adrp x2, .LANCHOR2 mov w6, 6 add x5, x2, :lo12:.LANCHOR2 @@ -3180,10 +3280,10 @@ insert_free_list: strh w1, [x4,2] strh w1, [x9,x8] ldr x1, [x5,24] - cbnz x1, .L429 + cbnz x1, .L439 str x4, [x5,24] - b .L428 -.L429: + b .L438 +.L439: ldr x11, [x5,-80] ubfiz x2, x0, 1, 16 ldr x10, [x5,-16] @@ -3193,41 +3293,41 @@ insert_free_list: asr x2, x2, 1 madd x2, x5, x2, x2 uxth w2, w2 -.L432: +.L442: ubfiz x5, x2, 1, 16 ldrh w5, [x11,x5] cmp w5, w12 - bcs .L430 + bcs .L440 ldrh w5, [x1] cmp w5, w7 - bne .L431 + bne .L441 strh w2, [x4,2] strh w0, [x1] - b .L428 -.L431: + b .L438 +.L441: umull x1, w5, w6 mov w2, w5 add x1, x10, x1 - b .L432 -.L430: + b .L442 +.L440: ldrh w5, [x1,2] strh w5, [x4,2] strh w2, [x9,x8] add x2, x3, :lo12:.LANCHOR2 ldr x3, [x2,24] cmp x1, x3 - bne .L433 + bne .L443 strh w0, [x1,2] str x4, [x2,24] - b .L428 -.L433: + b .L438 +.L443: ldrh w3, [x1,2] mov w4, 6 ldr x2, [x2,-16] umull x3, w3, w4 strh w0, [x2,x3] strh w0, [x1,2] -.L428: +.L438: mov w0, 0 ret .size insert_free_list, .-insert_free_list @@ -3260,31 +3360,31 @@ List_remove_node: ldr x2, [x6,-16] add x4, x2, x1 cmp x4, x3 - bne .L436 + bne .L446 ldrh w3, [x2,x1] cmp w3, w7 - bne .L437 + bne .L447 str xzr, [x0] - b .L438 -.L437: + b .L448 +.L447: umull x3, w3, w5 add x3, x2, x3 str x3, [x0] mov w0, -1 strh w0, [x3,2] - b .L438 -.L436: + b .L448 +.L446: ldrh w0, [x2,x1] ldrh w3, [x4,2] cmp w0, w7 - bne .L439 + bne .L449 cmp w3, w0 - beq .L438 + beq .L448 umull x3, w3, w5 mov w0, -1 strh w0, [x2,x3] - b .L438 -.L439: + b .L448 +.L449: umull x0, w0, w5 add x0, x2, x0 strh w3, [x0,2] @@ -3293,7 +3393,7 @@ List_remove_node: ldrh w7, [x2,x1] umull x3, w3, w5 strh w7, [x0,x3] -.L438: +.L448: mov w0, -1 strh w0, [x2,x1] strh w0, [x4,2] @@ -3310,14 +3410,14 @@ List_pop_index_node: str x19, [sp,16] mov w19, 65535 ldr x2, [x0] - cbz x2, .L441 + cbz x2, .L451 adrp x3, .LANCHOR2-16 mov w5, w19 mov w6, 6 ldr x4, [x3,#:lo12:.LANCHOR2-16] -.L442: - cbnz w1, .L443 -.L445: +.L452: + cbnz w1, .L453 +.L455: sub x2, x2, x4 mov x1, -6148914691236517206 asr x2, x2, 1 @@ -3325,17 +3425,17 @@ List_pop_index_node: uxth w19, w2 mov w1, w19 bl List_remove_node - b .L441 -.L443: + b .L451 +.L453: ldrh w3, [x2] cmp w3, w5 - beq .L445 + beq .L455 umull x3, w3, w6 sub w1, w1, #1 add x2, x4, x3 uxth w1, w1 - b .L442 -.L441: + b .L452 +.L451: mov w0, w19 ldr x19, [sp,16] ldp x29, x30, [sp], 32 @@ -3350,26 +3450,26 @@ List_get_gc_head_node: add x2, x2, :lo12:.LANCHOR2 mov w0, 65535 ldr x1, [x2,-8] - cbz x1, .L453 + cbz x1, .L463 ldr x4, [x2,-16] mov w5, 6 -.L449: - cbz w3, .L450 +.L459: + cbz w3, .L460 ldrh w2, [x1] cmp w2, w0 - beq .L453 + beq .L463 umull x2, w2, w5 sub w3, w3, #1 add x1, x4, x2 uxth w3, w3 - b .L449 -.L450: + b .L459 +.L460: sub x1, x1, x4 mov x0, -6148914691236517206 asr x1, x1, 1 madd x1, x0, x1, x1 uxth w0, w1 -.L453: +.L463: ret .size List_get_gc_head_node, .-List_get_gc_head_node .align 2 @@ -3384,20 +3484,20 @@ List_update_data_list: add x0, x19, :lo12:.LANCHOR2 ldrh w1, [x0,40] cmp w1, w20 - beq .L455 + beq .L465 ldrh w1, [x0,88] cmp w1, w20 - beq .L455 + beq .L465 ldrh w1, [x0,136] cmp w1, w20 - beq .L455 + beq .L465 mov w3, 6 ldr x4, [x0,-16] ldr x0, [x0,-8] umull x3, w20, w3 add x1, x4, x3 cmp x1, x0 - beq .L455 + beq .L465 ubfiz x0, x20, 1, 16 ldr x5, [x19,#:lo12:.LANCHOR2] ldrh w2, [x5,x0] @@ -3408,11 +3508,11 @@ List_update_data_list: mov w0, 65535 csinv w2, w2, wzr, ne cmp w1, w0 - bne .L457 + bne .L467 ldrh w0, [x4,x3] cmp w0, w1 - beq .L455 -.L457: + beq .L465 +.L467: mov w0, 6 mov x3, -6148914691236517206 umull x1, w1, w0 @@ -3425,7 +3525,7 @@ List_update_data_list: mul w0, w0, w1 csinv w0, w0, wzr, ne cmp w2, w0 - bcs .L455 + bcs .L465 add x19, x19, :lo12:.LANCHOR2 mov w1, w20 sub x0, x19, #8 @@ -3435,7 +3535,7 @@ List_update_data_list: strh w0, [x19,16] mov w0, w20 bl INSERT_DATA_LIST -.L455: +.L465: mov w0, 0 ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 @@ -3452,12 +3552,12 @@ ftl_map_blk_alloc_new_blk: mov w20, 0 ldrh w2, [x0,10] ldr x1, [x0,16] -.L462: +.L472: cmp w20, w2 - beq .L466 + beq .L476 mov x22, x1 ldrh w21, [x1],2 - cbnz w21, .L463 + cbnz w21, .L473 mov x19, x0 bl FtlFreeSysBlkQueueOut strh w0, [x22] @@ -3465,15 +3565,15 @@ ftl_map_blk_alloc_new_blk: sub w2, w1, #1 mov w0, 65533 cmp w0, w2, uxth - bcs .L464 + bcs .L474 adrp x2, .LANCHOR0+2206 adrp x0, .LC4 add x0, x0, :lo12:.LC4 ldrh w2, [x2,#:lo12:.LANCHOR0+2206] bl printk -.L465: - b .L465 -.L464: +.L475: + b .L475 +.L474: ldr w0, [x19,48] strh w21, [x19,2] add w0, w0, 1 @@ -3482,12 +3582,12 @@ ftl_map_blk_alloc_new_blk: strh w20, [x19] add w0, w0, 1 strh w0, [x19,8] - b .L466 -.L463: + b .L476 +.L473: add w20, w20, 1 uxth w20, w20 - b .L462 -.L466: + b .L472 +.L476: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -3498,71 +3598,71 @@ ftl_map_blk_alloc_new_blk: .global select_l2p_ram_region .type select_l2p_ram_region, %function select_l2p_ram_region: - adrp x0, .LANCHOR0+2058 + adrp x0, .LANCHOR0+2062 mov x4, 0 mov w5, 65535 - ldrh w2, [x0,#:lo12:.LANCHOR0+2058] + ldrh w2, [x0,#:lo12:.LANCHOR0+2062] adrp x0, .LANCHOR2 add x1, x0, :lo12:.LANCHOR2 mov x3, x0 ldr x1, [x1,184] -.L469: +.L479: uxth w0, w4 cmp w0, w2 - bcs .L485 + bcs .L495 add x4, x4, 1 add x6, x1, x4, lsl 4 ldrh w6, [x6,-16] cmp w6, w5 - bne .L469 - b .L470 -.L485: + bne .L479 + b .L480 +.L495: mov w0, w2 mov x4, 0 mov w7, -2147483648 -.L472: +.L482: uxth w6, w4 cmp w6, w2 - bcs .L486 + bcs .L496 add x5, x1, x4, lsl 4 ldr w5, [x5,4] - tbnz w5, #31, .L481 + tbnz w5, #31, .L491 cmp w5, w7 - bcc .L473 -.L481: + bcc .L483 +.L491: mov w5, w7 mov w6, w0 -.L473: +.L483: add x4, x4, 1 mov w7, w5 mov w0, w6 - b .L472 -.L486: + b .L482 +.L496: cmp w0, w2 - bcc .L470 + bcc .L480 add x0, x3, :lo12:.LANCHOR2 add x1, x1, 4 mov w4, -1 mov w3, 0 ldrh w5, [x0,192] mov w0, w2 -.L476: +.L486: cmp w3, w2 - beq .L470 + beq .L480 ldr w7, [x1] cmp w7, w4 - bcs .L477 + bcs .L487 ldrh w6, [x1,-4] cmp w6, w5 csel w4, w4, w7, eq cmp w6, w5 csel w0, w0, w3, eq -.L477: +.L487: add w3, w3, 1 add x1, x1, 16 uxth w3, w3 - b .L476 -.L470: + b .L486 +.L480: ret .size select_l2p_ram_region, .-select_l2p_ram_region .align 2 @@ -3572,35 +3672,35 @@ FtlUpdateVaildLpn: adrp x1, .LANCHOR2 add x3, x1, :lo12:.LANCHOR2 ldrh w2, [x3,194] - cbnz w0, .L488 + cbnz w0, .L498 cmp w2, 4 - bhi .L488 + bhi .L498 add w2, w2, 1 strh w2, [x3,194] - b .L487 -.L488: + b .L497 +.L498: add x0, x1, :lo12:.LANCHOR2 ldr x6, [x1,#:lo12:.LANCHOR2] mov w7, 65535 strh wzr, [x0,194] str wzr, [x0,196] - adrp x0, .LANCHOR0+1956 - ldrh w5, [x0,#:lo12:.LANCHOR0+1956] + adrp x0, .LANCHOR0+1964 + ldrh w5, [x0,#:lo12:.LANCHOR0+1964] mov x0, 0 -.L489: +.L499: cmp w5, w0, uxth - bls .L487 + bls .L497 ldrh w4, [x6,x0,lsl 1] cmp w4, w7 - beq .L490 + beq .L500 add x3, x1, :lo12:.LANCHOR2 ldr w2, [x3,196] add w2, w4, w2 str w2, [x3,196] -.L490: +.L500: add x0, x0, 1 - b .L489 -.L487: + b .L499 +.L497: ret .size FtlUpdateVaildLpn, .-FtlUpdateVaildLpn .align 2 @@ -3610,10 +3710,10 @@ ftl_set_blk_mode: stp x29, x30, [sp, -16]! uxth w0, w0 add x29, sp, 0 - cbz w1, .L494 + cbz w1, .L504 bl ftl_set_blk_mode.part.9 - b .L493 -.L494: + b .L503 +.L504: adrp x1, .LANCHOR0 ubfx x2, x0, 5, 11 lsl x2, x2, 2 @@ -3623,7 +3723,7 @@ ftl_set_blk_mode: ldr w1, [x3,x2] bic w0, w1, w0 str w0, [x3,x2] -.L493: +.L503: ldp x29, x30, [sp], 16 ret .size ftl_set_blk_mode, .-ftl_set_blk_mode @@ -3650,42 +3750,42 @@ ftl_sb_update_avl_pages: uxth w2, w2 strh wzr, [x0,4] mov w6, 65535 - ldrh w4, [x4,1948] -.L498: + ldrh w4, [x4,1956] +.L508: cmp w2, w4 - bcs .L504 + bcs .L514 add x5, x0, x2, sxtw 1 ldrh w5, [x5,16] cmp w5, w6 - beq .L499 + beq .L509 ldrh w5, [x0,4] add w5, w5, 1 strh w5, [x0,4] -.L499: +.L509: add w2, w2, 1 uxth w2, w2 - b .L498 -.L504: + b .L508 +.L514: add x3, x3, :lo12:.LANCHOR0 mov w6, 65535 add x4, x0, x4, uxth 1 - ldrh w5, [x3,2018] + ldrh w5, [x3,2024] mov x3, x0 -.L501: +.L511: cmp x3, x4 - beq .L505 + beq .L515 ldrh w2, [x3,16] cmp w2, w6 - beq .L502 + beq .L512 ldrh w2, [x0,4] add w2, w5, w2 sub w2, w2, #1 sub w2, w2, w1 strh w2, [x0,4] -.L502: +.L512: add x3, x3, 2 - b .L501 -.L505: + b .L511 +.L515: ret .size ftl_sb_update_avl_pages, .-ftl_sb_update_avl_pages .align 2 @@ -3707,50 +3807,50 @@ make_superblock: mov x21, 0 mov x23, x0 mov w25, -1 - ldrh w24, [x0,1948] -.L507: + ldrh w24, [x0,1956] +.L517: cmp w24, w21, uxth - bls .L518 - add x0, x23, 1976 + bls .L528 + add x0, x23, 1984 ldrh w1, [x19] ldrb w0, [x0,x21] bl V2P_block strh w25, [x22] mov w26, w0 bl FtlBbmIsBadBlock - cbnz w0, .L508 + cbnz w0, .L518 strh w26, [x22] ldrb w0, [x19,7] add w0, w0, 1 strb w0, [x19,7] -.L508: +.L518: add x21, x21, 1 add x22, x22, 2 - b .L507 -.L518: + b .L517 +.L528: add x1, x20, :lo12:.LANCHOR0 ldrb w0, [x19,7] strb wzr, [x19,9] - ldrh w2, [x1,2018] + ldrh w2, [x1,2024] mul w0, w0, w2 strh w0, [x19,4] - ldr w0, [x1,1940] - cbz w0, .L510 + ldr w0, [x1,1948] + cbz w0, .L520 adrp x0, .LANCHOR2-80 ldrh w1, [x19] ldr x0, [x0,#:lo12:.LANCHOR2-80] ldrh w0, [x0,x1,lsl 1] cmp w0, 79 - bhi .L510 + bhi .L520 mov w0, 1 strb w0, [x19,9] -.L510: +.L520: add x20, x20, :lo12:.LANCHOR0 ldrb w0, [x20,8] - cbz w0, .L511 + cbz w0, .L521 mov w0, 1 strb w0, [x19,9] -.L511: +.L521: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -3772,29 +3872,29 @@ update_multiplier_value: stp x23, x24, [sp,48] mov x22, 0 uxth w21, w0 - ldrh w23, [x1,1948] + ldrh w23, [x1,1956] mov w19, w22 - ldrh w24, [x1,2018] + ldrh w24, [x1,2024] mov x20, x1 -.L520: +.L530: cmp w23, w22, uxth - bls .L527 - add x0, x20, 1976 + bls .L537 + add x0, x20, 1984 mov w1, w21 ldrb w0, [x0,x22] bl V2P_block bl FtlBbmIsBadBlock - cbnz w0, .L521 + cbnz w0, .L531 add w19, w19, w24 uxth w19, w19 -.L521: +.L531: add x22, x22, 1 - b .L520 -.L527: - cbz w19, .L523 + b .L530 +.L537: + cbz w19, .L533 mov w0, 32768 sdiv w19, w0, w19 -.L523: +.L533: mov w0, 6 umull x21, w21, w0 adrp x0, .LANCHOR2-16 @@ -3816,7 +3916,7 @@ GetFreeBlockMinEraseCount: add x2, x2, :lo12:.LANCHOR2 ldr x1, [x2,24] mov w0, w1 - cbz x1, .L529 + cbz x1, .L539 ldr x0, [x2,-16] sub x1, x1, x0 mov x0, -6148914691236517206 @@ -3825,7 +3925,7 @@ GetFreeBlockMinEraseCount: ldr x0, [x2,-80] and x1, x1, 65535 ldrh w0, [x0,x1,lsl 1] -.L529: +.L539: ret .size GetFreeBlockMinEraseCount, .-GetFreeBlockMinEraseCount .align 2 @@ -3837,7 +3937,7 @@ GetFreeBlockMaxEraseCount: add x5, x2, :lo12:.LANCHOR2 ldr x1, [x5,24] mov w0, w1 - cbz x1, .L532 + cbz x1, .L542 ldrh w3, [x5,32] mov w0, 7 mov w6, 6 @@ -3853,25 +3953,25 @@ GetFreeBlockMaxEraseCount: madd x1, x3, x1, x1 mov w3, 0 uxth w1, w1 -.L534: +.L544: cmp w3, w4 - beq .L537 + beq .L547 umull x5, w1, w6 ldrh w5, [x0,x5] cmp w5, w7 - bne .L535 -.L537: + bne .L545 +.L547: add x2, x2, :lo12:.LANCHOR2 ubfiz x1, x1, 1, 16 ldr x0, [x2,-80] ldrh w0, [x0,x1] - b .L532 -.L535: + b .L542 +.L545: add w3, w3, 1 mov w1, w5 uxth w3, w3 - b .L534 -.L532: + b .L544 +.L542: ret .size GetFreeBlockMaxEraseCount, .-GetFreeBlockMaxEraseCount .align 2 @@ -3899,7 +3999,7 @@ FtlPrintInfo2buf: bl sprintf add x20, x20, x0, sxtw adrp x1, .LC7 - ldr w2, [x24,2036] + ldr w2, [x24,2040] mov x0, x20 add x1, x1, :lo12:.LC7 bl sprintf @@ -3907,10 +4007,10 @@ FtlPrintInfo2buf: adrp x0, .LANCHOR1+504 ldr w0, [x0,#:lo12:.LANCHOR1+504] cmp w0, 1 - beq .L540 + beq .L550 sub w0, w20, w22 - b .L541 -.L540: + b .L551 +.L550: add x0, x29, 96 add x1, x29, 100 add x2, x29, 104 @@ -4068,19 +4168,19 @@ FtlPrintInfo2buf: add x1, x1, :lo12:.LC31 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x24,2060] + ldr w2, [x24,2064] adrp x1, .LC32 mov x0, x21 add x1, x1, :lo12:.LC32 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x24,2052] + ldr w2, [x24,2056] adrp x1, .LC33 mov x0, x21 add x1, x1, :lo12:.LC33 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x24,1944] + ldr w2, [x24,1952] adrp x1, .LC34 mov x0, x21 add x1, x1, :lo12:.LC34 @@ -4092,7 +4192,7 @@ FtlPrintInfo2buf: add x1, x1, :lo12:.LC35 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x24,1956] + ldrh w2, [x24,1964] adrp x1, .LC36 mov x0, x21 add x1, x1, :lo12:.LC36 @@ -4104,7 +4204,7 @@ FtlPrintInfo2buf: add x1, x1, :lo12:.LC37 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x24,1960] + ldr w2, [x24,1968] adrp x1, .LC38 mov x0, x21 add x1, x1, :lo12:.LC38 @@ -4260,7 +4360,7 @@ FtlPrintInfo2buf: add x21, x21, x0, sxtw ldr w3, [x23,328] adrp x1, .LC63 - ldr w2, [x24,1940] + ldr w2, [x24,1948] add x1, x1, :lo12:.LC63 ldr w4, [x23,420] mov x0, x21 @@ -4323,7 +4423,7 @@ FtlPrintInfo2buf: ldrh w0, [x23,280] mov w1, 65535 cmp w0, w1 - beq .L542 + beq .L552 ubfiz x2, x0, 1, 16 ldr x3, [x25,#:lo12:.LANCHOR2] adrp x1, .LC72 @@ -4332,7 +4432,7 @@ FtlPrintInfo2buf: ldrh w2, [x3,x2] bl sprintf add x19, x19, x0, sxtw -.L542: +.L552: mov w0, 0 adrp x23, .LC73 mov w20, 0 @@ -4341,9 +4441,9 @@ FtlPrintInfo2buf: mov w26, 6 uxth w3, w0 add x23, x23, :lo12:.LC73 -.L544: +.L554: cmp w3, w27 - beq .L543 + beq .L553 add x21, x25, :lo12:.LANCHOR2 ubfiz x6, x3, 1, 16 umull x24, w3, w26 @@ -4363,8 +4463,8 @@ FtlPrintInfo2buf: ldr x0, [x21,-16] cmp w20, 16 ldrh w3, [x0,x24] - bne .L544 -.L543: + bne .L554 +.L553: add x1, x25, :lo12:.LANCHOR2 adrp x23, .LC74 mov w20, 0 @@ -4378,9 +4478,9 @@ FtlPrintInfo2buf: asr x3, x3, 1 madd x3, x0, x3, x3 uxth w3, w3 -.L546: +.L556: cmp w3, w27 - beq .L545 + beq .L555 add x21, x25, :lo12:.LANCHOR2 ubfiz x5, x3, 1, 16 umull x24, w3, w26 @@ -4398,10 +4498,10 @@ FtlPrintInfo2buf: ldr x0, [x21,-16] cmp w20, 4 ldrh w3, [x0,x24] - bne .L546 -.L545: + bne .L556 +.L555: sub w0, w19, w22 -.L541: +.L551: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -4447,48 +4547,48 @@ GetSwlReplaceBlock: ldr w2, [x0,248] ldr w1, [x0,256] cmp w2, w1 - bcs .L551 + bcs .L561 adrp x1, .LANCHOR0 str wzr, [x0,240] add x2, x1, :lo12:.LANCHOR0 ldr x5, [x0,-80] mov x0, 0 - ldrh w3, [x2,1956] -.L552: + ldrh w3, [x2,1964] +.L562: cmp w3, w0 - bls .L584 + bls .L594 add x4, x19, :lo12:.LANCHOR2 ldrh w6, [x5,x0,lsl 1] add x0, x0, 1 ldr w2, [x4,240] add w2, w6, w2 str w2, [x4,240] - b .L552 -.L584: + b .L562 +.L594: add x2, x19, :lo12:.LANCHOR2 add x1, x1, :lo12:.LANCHOR0 ldr w0, [x2,240] - ldrh w1, [x1,2008] + ldrh w1, [x1,2016] udiv w3, w0, w3 str w3, [x2,248] ldr w3, [x2,244] sub w0, w0, w3 udiv w0, w0, w1 str w0, [x2,240] - b .L554 -.L551: + b .L564 +.L561: ldr w1, [x0,252] cmp w2, w1 - bls .L554 + bls .L564 add w1, w1, 1 adrp x4, .LANCHOR0 str w1, [x0,252] mov w0, 0 -.L556: +.L566: add x1, x4, :lo12:.LANCHOR0 - ldrh w1, [x1,1956] + ldrh w1, [x1,1964] cmp w0, w1 - bcs .L554 + bcs .L564 add x1, x19, :lo12:.LANCHOR2 ubfiz x2, x0, 1, 32 add w0, w0, 1 @@ -4496,27 +4596,27 @@ GetSwlReplaceBlock: ldrh w1, [x3,x2] add w1, w1, 1 strh w1, [x3,x2] - b .L556 -.L554: + b .L566 +.L564: add x1, x19, :lo12:.LANCHOR2 ldr w21, [x1,256] ldr w24, [x1,248] add w0, w21, 256 cmp w0, w24 - bls .L559 + bls .L569 ldr w1, [x1,252] add w0, w21, 768 cmp w0, w1 - bls .L559 - adrp x0, .LANCHOR0+1940 - ldr w0, [x0,#:lo12:.LANCHOR0+1940] - cbz w0, .L562 + bls .L569 + adrp x0, .LANCHOR0+1948 + ldr w0, [x0,#:lo12:.LANCHOR0+1948] + cbz w0, .L572 cmp w21, 40 - bls .L559 -.L562: + bls .L569 +.L572: mov w0, 65535 - b .L561 -.L559: + b .L571 +.L569: add x0, x19, :lo12:.LANCHOR2 ldrh w0, [x0,32] add w0, w0, w0, lsl 1 @@ -4525,34 +4625,34 @@ GetSwlReplaceBlock: uxth w6, w0 add w0, w21, 64 cmp w6, w0 - bcs .L571 + bcs .L581 cmp w21, 40 - bhi .L562 -.L571: + bhi .L572 +.L581: add x0, x19, :lo12:.LANCHOR2 ldr x3, [x0,-8] - cbz x3, .L562 - adrp x1, .LANCHOR0+1956 + cbz x3, .L572 + adrp x1, .LANCHOR0+1964 mov w23, 65535 ldr x7, [x0,-16] mov w20, w23 ldr x26, [x0,-80] mov x0, -6148914691236517206 - ldrh w9, [x1,#:lo12:.LANCHOR0+1956] + ldrh w9, [x1,#:lo12:.LANCHOR0+1964] mov w8, w23 mov w1, 0 add x0, x0, 1 mov w10, 6 -.L564: +.L574: ldrh w2, [x3] cmp w2, w8 - beq .L566 + beq .L576 add w1, w1, 1 uxth w1, w1 cmp w1, w9 - bhi .L562 + bhi .L572 ldrh w4, [x3,4] - cbz w4, .L565 + cbz w4, .L575 sub x4, x3, x7 asr x4, x4, 1 mul x4, x4, x0 @@ -4560,47 +4660,47 @@ GetSwlReplaceBlock: and x4, x4, 65535 ldrh w3, [x26,x4,lsl 1] cmp w3, w21 - bls .L570 + bls .L580 cmp w3, w23 - bcs .L565 + bcs .L575 mov w23, w3 mov w20, w5 -.L565: +.L575: umull x3, w2, w10 add x3, x7, x3 - b .L564 -.L570: + b .L574 +.L580: mov w20, w5 -.L566: +.L576: mov w0, 65535 cmp w20, w0 - beq .L562 + beq .L572 ubfiz x25, x20, 1, 16 ldrh w22, [x26,x25] cmp w22, w21 - bls .L568 + bls .L578 str x6, [x29,88] bl GetFreeBlockMinEraseCount ldr x6, [x29,88] cmp w21, w0, uxth - bcs .L568 + bcs .L578 add x0, x19, :lo12:.LANCHOR2 str w23, [x0,256] -.L568: +.L578: cmp w22, w24 - bcs .L562 + bcs .L572 add w0, w22, 128 cmp w6, w0 - ble .L562 + ble .L572 add w0, w22, 256 cmp w0, w24 - bcc .L569 + bcc .L579 add x0, x19, :lo12:.LANCHOR2 add w22, w22, 768 ldr w0, [x0,252] cmp w22, w0 - bcs .L562 -.L569: + bcs .L572 +.L579: add x21, x19, :lo12:.LANCHOR2 ldr x4, [x19,#:lo12:.LANCHOR2] adrp x0, .LC77 @@ -4614,7 +4714,7 @@ GetSwlReplaceBlock: mov w0, 1 str w0, [x21,860] mov w0, w20 -.L561: +.L571: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -4631,13 +4731,13 @@ free_data_superblock: mov w1, 65535 cmp w0, w1 add x29, sp, 0 - beq .L586 + beq .L596 adrp x2, .LANCHOR2 ubfiz x1, x0, 1, 16 ldr x2, [x2,#:lo12:.LANCHOR2] strh wzr, [x2,x1] bl INSERT_FREE_LIST -.L586: +.L596: mov w0, 0 ldp x29, x30, [sp], 16 ret @@ -4655,24 +4755,24 @@ FtlGcBufInit: mov w6, 4 mov w13, 56 str wzr, [x0,864] -.L588: +.L598: add x5, x10, :lo12:.LANCHOR0 adrp x9, .LANCHOR0 - ldrh w0, [x5,1948] + ldrh w0, [x5,1956] cmp w1, w0 - bcs .L592 + bcs .L602 add x2, x3, :lo12:.LANCHOR2 umull x4, w1, w11 ldr x7, [x2,872] ldr x8, [x2,880] add x0, x7, x4 str w12, [x0,16] - ldrh w0, [x5,2028] + ldrh w0, [x5,2034] mul w0, w1, w0 sdiv w0, w0, w6 add x0, x8, x0, sxtw 2 str x0, [x7,x4] - ldrh w0, [x5,2030] + ldrh w0, [x5,2036] ldr x8, [x2,872] ldr x5, [x2,888] mul w0, w1, w0 @@ -4689,27 +4789,27 @@ FtlGcBufInit: str x2, [x0,8] ldr x2, [x7,8] str x2, [x0,16] - b .L588 -.L592: + b .L598 +.L602: mov w8, 24 mov w5, 4 -.L590: +.L600: add x2, x3, :lo12:.LANCHOR2 ldr w1, [x2,904] cmp w0, w1 - bcs .L593 + bcs .L603 umull x4, w0, w8 ldr x7, [x2,872] add x6, x9, :lo12:.LANCHOR0 ldr x10, [x2,880] add x1, x7, x4 str wzr, [x1,16] - ldrh w1, [x6,2028] + ldrh w1, [x6,2034] mul w1, w0, w1 sdiv w1, w1, w5 add x1, x10, x1, sxtw 2 str x1, [x7,x4] - ldrh w1, [x6,2030] + ldrh w1, [x6,2036] ldr x6, [x2,872] ldr x2, [x2,888] mul w1, w0, w1 @@ -4719,8 +4819,8 @@ FtlGcBufInit: uxth w0, w0 add x1, x2, x1, sxtw 2 str x1, [x4,8] - b .L590 -.L593: + b .L600 +.L603: ret .size FtlGcBufInit, .-FtlGcBufInit .align 2 @@ -4734,32 +4834,32 @@ FtlGcBufFree: mov w9, 24 ldr w8, [x2,904] ldr x5, [x2,872] -.L595: +.L605: cmp w3, w1 - bcs .L594 + bcs .L604 umull x4, w3, w7 mov w2, 0 add x4, x0, x4 -.L600: +.L610: cmp w2, w8 - bcs .L597 + bcs .L607 umull x6, w2, w9 add x10, x5, x6 ldr x11, [x5,x6] ldr x6, [x4,8] cmp x11, x6 - bne .L596 + bne .L606 str wzr, [x10,16] - b .L597 -.L596: + b .L607 +.L606: add w2, w2, 1 uxth w2, w2 - b .L600 -.L597: + b .L610 +.L607: add w3, w3, 1 uxth w3, w3 - b .L595 -.L594: + b .L605 +.L604: ret .size FtlGcBufFree, .-FtlGcBufFree .align 2 @@ -4774,17 +4874,17 @@ FtlGcBufAlloc: ldr w5, [x2,904] ldr x6, [x2,872] mov w2, 0 -.L602: +.L612: cmp w2, w1 - bcs .L608 + bcs .L618 mov w3, 0 -.L606: +.L616: cmp w3, w5 - bcs .L604 + bcs .L614 umull x4, w3, w7 add x4, x6, x4 ldr w10, [x4,16] - cbnz w10, .L603 + cbnz w10, .L613 umull x3, w2, w9 str w8, [x4,16] add x3, x0, x3 @@ -4792,16 +4892,16 @@ FtlGcBufAlloc: str x10, [x3,8] ldr x4, [x4,8] str x4, [x3,16] - b .L604 -.L603: + b .L614 +.L613: add w3, w3, 1 uxth w3, w3 - b .L606 -.L604: + b .L616 +.L614: add w2, w2, 1 uxth w2, w2 - b .L602 -.L608: + b .L612 +.L618: ret .size FtlGcBufAlloc, .-FtlGcBufAlloc .align 2 @@ -4814,19 +4914,19 @@ IsBlkInGcList: ldrh w2, [x1,908] ldr x3, [x1,912] mov x1, 0 -.L610: +.L620: cmp w2, w1, uxth - bls .L614 + bls .L624 add x1, x1, 1 add x4, x3, x1, lsl 1 ldrh w4, [x4,-2] cmp w4, w0 - bne .L610 + bne .L620 mov w0, 1 - b .L611 -.L614: + b .L621 +.L624: mov w0, 0 -.L611: +.L621: ret .size IsBlkInGcList, .-IsBlkInGcList .align 2 @@ -4849,25 +4949,25 @@ FtlGcUpdatePage: mov x5, 0 ldrh w7, [x4,908] ldr x6, [x4,912] -.L616: +.L626: uxth w4, w5 cmp w4, w7 - bcs .L620 + bcs .L630 add x5, x5, 1 add x9, x6, x5, lsl 1 ldrh w9, [x9,-2] cmp w9, w8 - bne .L616 -.L620: + bne .L626 +.L630: cmp w4, w7 - bne .L618 + bne .L628 ubfiz x4, x4, 1, 16 strh w0, [x6,x4] add x0, x3, :lo12:.LANCHOR2 ldrh w4, [x0,908] add w4, w4, 1 strh w4, [x0,908] -.L618: +.L628: add x3, x3, :lo12:.LANCHOR2 mov w0, 12 ldrh w4, [x3,920] @@ -4902,36 +5002,36 @@ FtlGcRefreshOpenBlock: add x2, x2, :lo12:.LANCHOR2 ldrh w5, [x2,936] cmp w5, w19 - beq .L623 + beq .L633 ldrh w4, [x2,938] cmp w4, w19 - beq .L623 + beq .L633 ldrh w3, [x2,940] cmp w3, w19 - beq .L623 + beq .L633 ldrh w1, [x2,942] cmp w1, w19 - beq .L623 + beq .L633 mov w0, 65535 cmp w5, w0 - bne .L624 + bne .L634 strh w19, [x2,936] - b .L623 -.L624: + b .L633 +.L634: cmp w4, w0 - bne .L625 + bne .L635 strh w19, [x2,938] - b .L623 -.L625: + b .L633 +.L635: cmp w3, w0 - bne .L626 + bne .L636 strh w19, [x2,940] - b .L623 -.L626: + b .L633 +.L636: cmp w1, w0 - bne .L623 + bne .L633 strh w19, [x2,942] -.L623: +.L633: mov w0, 0 ldr x19, [sp,16] ldp x29, x30, [sp], 32 @@ -4954,39 +5054,39 @@ FtlGcRefreshBlock: add x2, x2, :lo12:.LANCHOR2 ldrh w6, [x2,936] cmp w6, w19 - beq .L628 + beq .L638 ldrh w5, [x2,938] cmp w5, w19 - beq .L628 + beq .L638 ldrh w4, [x2,940] cmp w4, w19 - beq .L628 + beq .L638 ldrh w3, [x2,942] cmp w3, w19 - beq .L628 + beq .L638 mov w1, 65535 cmp w6, w1 - bne .L629 + bne .L639 strh w19, [x2,936] - b .L628 -.L629: + b .L638 +.L639: cmp w5, w1 - bne .L630 + bne .L640 strh w19, [x2,938] - b .L637 -.L630: + b .L647 +.L640: cmp w4, w1 - bne .L631 + bne .L641 strh w19, [x2,940] - b .L637 -.L631: + b .L647 +.L641: cmp w3, w1 mov w0, -1 - bne .L628 + bne .L638 strh w19, [x2,942] -.L637: +.L647: mov w0, 0 -.L628: +.L638: ldr x19, [sp,16] ldp x29, x30, [sp], 32 ret @@ -5013,39 +5113,39 @@ FtlGcMarkBadPhyBlk: bl printk mov w0, w21 bl FtlGcRefreshBlock - adrp x0, .LANCHOR0+1940 - ldr w0, [x0,#:lo12:.LANCHOR0+1940] - cbz w0, .L639 + adrp x0, .LANCHOR0+1948 + ldr w0, [x0,#:lo12:.LANCHOR0+1948] + cbz w0, .L649 ubfiz x0, x21, 1, 16 ldr x2, [x22,-80] ldrh w1, [x2,x0] cmp w1, 39 - bls .L639 + bls .L649 sub w1, w1, #40 strh w1, [x2,x0] -.L639: +.L649: add x2, x19, :lo12:.LANCHOR2 mov x0, 0 add x2, x2, 952 ldrh w1, [x2,-8] -.L640: +.L650: cmp w1, w0, uxth - bls .L646 + bls .L656 add x0, x0, 1 add x3, x2, x0, lsl 1 ldrh w3, [x3,-2] cmp w3, w20 - bne .L640 - b .L641 -.L646: + bne .L650 + b .L651 +.L656: cmp w1, 15 - bhi .L641 + bhi .L651 add x19, x19, :lo12:.LANCHOR2 add w0, w1, 1 add x19, x19, 952 strh w0, [x19,-8] strh w20, [x19,w1,sxtw 1] -.L641: +.L651: mov w0, 0 ldr x23, [sp,48] ldp x19, x20, [sp,16] @@ -5063,16 +5163,16 @@ FtlGcReFreshBadBlk: adrp x19, .LANCHOR2 add x0, x19, :lo12:.LANCHOR2 ldrh w1, [x0,944] - cbz w1, .L648 + cbz w1, .L658 ldrh w3, [x0,936] mov w2, 65535 cmp w3, w2 - bne .L648 + bne .L658 ldrh w2, [x0,986] cmp w2, w1 - bcc .L649 + bcc .L659 strh wzr, [x0,986] -.L649: +.L659: add x19, x19, :lo12:.LANCHOR2 add x0, x19, 952 ldrh w1, [x19,986] @@ -5082,7 +5182,7 @@ FtlGcReFreshBadBlk: ldrh w0, [x19,986] add w0, w0, 1 strh w0, [x19,986] -.L648: +.L658: mov w0, 0 ldr x19, [sp,16] ldp x29, x30, [sp], 32 @@ -5107,17 +5207,17 @@ BuildFlashLsbPageTable: add x29, sp, 0 stp x19, x20, [sp,16] mov w20, w1 - cbnz w0, .L655 + cbnz w0, .L665 adrp x1, .LANCHOR0 mov x0, 0 add x1, x1, :lo12:.LANCHOR0 -.L656: - add x2, x1, 196 +.L666: + add x2, x1, 200 strh w0, [x2,x0,lsl 1] add x0, x0, 1 cmp x0, 256 - bne .L656 -.L662: + bne .L666 +.L672: adrp x19, .LANCHOR2 mov w1, 255 add x19, x19, :lo12:.LANCHOR2 @@ -5129,42 +5229,42 @@ BuildFlashLsbPageTable: adrp x1, .LANCHOR0 mov x0, 0 add x1, x1, :lo12:.LANCHOR0 - b .L657 -.L655: + b .L667 +.L665: cmp w0, 1 - bne .L658 + bne .L668 adrp x3, .LANCHOR0 mov x0, 0 mov w4, 3 mov w5, 2 add x3, x3, :lo12:.LANCHOR0 -.L661: +.L671: cmp x0, 3 uxth w1, w0 mov w2, w1 - bls .L659 + bls .L669 ubfiz w2, w1, 1, 15 and w1, w1, 1 cmp w1, wzr csel w1, w4, w5, ne sub w2, w2, w1 uxth w2, w2 -.L659: - add x1, x3, 196 +.L669: + add x1, x3, 200 strh w2, [x1,x0,lsl 1] add x0, x0, 1 cmp x0, 256 - bne .L661 - b .L662 -.L658: + bne .L671 + b .L672 +.L668: cmp w0, 2 - bne .L663 + bne .L673 adrp x3, .LANCHOR0 mov w1, 65535 mov x0, 0 add x3, x3, :lo12:.LANCHOR0 -.L665: - add x4, x3, 196 +.L675: + add x4, x3, 200 cmp x0, 1 uxth w2, w0 csel w2, w1, w2, hi @@ -5173,45 +5273,45 @@ BuildFlashLsbPageTable: add x0, x0, 1 cmp x0, 256 uxth w1, w1 - bne .L665 - b .L662 -.L663: + bne .L675 + b .L672 +.L673: cmp w0, 3 - bne .L666 + bne .L676 adrp x3, .LANCHOR0 mov x0, 0 mov w4, 5 mov w5, 4 add x3, x3, :lo12:.LANCHOR0 -.L669: +.L679: cmp x0, 5 uxth w1, w0 mov w2, w1 - bls .L667 + bls .L677 ubfiz w2, w1, 1, 15 and w1, w1, 1 cmp w1, wzr csel w1, w4, w5, ne sub w2, w2, w1 uxth w2, w2 -.L667: - add x1, x3, 196 +.L677: + add x1, x3, 200 strh w2, [x1,x0,lsl 1] add x0, x0, 1 cmp x0, 256 - bne .L669 - b .L662 -.L666: + bne .L679 + b .L672 +.L676: cmp w0, 4 - bne .L670 + bne .L680 adrp x1, .LANCHOR0 mov w5, 7 add x1, x1, :lo12:.LANCHOR0 mov w4, 6 - add x2, x1, 196 + add x2, x1, 200 strh w0, [x2,8] mov w0, 5 - strh wzr, [x1,196] + strh wzr, [x1,200] mov w1, 1 strh w0, [x2,10] mov w0, 7 @@ -5224,7 +5324,7 @@ BuildFlashLsbPageTable: strh w0, [x2,14] mov w0, 8 strh w1, [x2,6] -.L672: +.L682: and w3, w0, 1 ubfiz w1, w0, 1, 15 add w0, w0, 1 @@ -5235,42 +5335,42 @@ BuildFlashLsbPageTable: sub w1, w1, w3 cmp w0, 256 strh w1, [x2,14] - bne .L672 - b .L662 -.L670: + bne .L682 + b .L672 +.L680: cmp w0, 5 - bne .L673 + bne .L683 adrp x2, .LANCHOR0 mov x0, 0 add x2, x2, :lo12:.LANCHOR0 -.L674: - add x1, x2, 196 +.L684: + add x1, x2, 200 strh w0, [x1,x0,lsl 1] add x0, x0, 1 cmp x0, 16 - bne .L674 + bne .L684 mov x0, 0 -.L675: +.L685: add x2, x1, x0 add w3, w0, 16 add x0, x0, 2 cmp x0, 480 strh w3, [x2,32] - bne .L675 - b .L662 -.L673: + bne .L685 + b .L672 +.L683: cmp w0, 6 - bne .L662 + bne .L686 adrp x1, .LANCHOR0 mov x2, 0 mov w4, 12 mov w5, 10 add x1, x1, :lo12:.LANCHOR0 -.L678: +.L689: cmp x2, 5 uxth w3, w2 mov w0, w3 - bls .L676 + bls .L687 add w0, w3, w3, lsl 1 and w3, w3, 1 cmp w3, wzr @@ -5278,22 +5378,42 @@ BuildFlashLsbPageTable: csel w3, w4, w5, ne sub w0, w0, w3 uxth w0, w0 -.L676: - add x3, x1, 196 +.L687: + add x3, x1, 200 strh w0, [x3,x2,lsl 1] add x2, x2, 1 cmp x2, 256 - bne .L678 - b .L662 -.L657: + bne .L689 + b .L672 +.L686: + cmp w0, 9 + bne .L672 + adrp x0, .LANCHOR0 + add x0, x0, :lo12:.LANCHOR0 + add x1, x0, 200 + strh wzr, [x0,200] + mov w0, 1 + strh w0, [x1,2] + mov w0, 2 + strh w0, [x1,4] + mov x0, 0 +.L690: + add x2, x1, x0 + add w3, w0, 3 + add x0, x0, 2 + cmp x0, 506 + strh w3, [x2,6] + bne .L690 + b .L672 +.L667: cmp w20, w0, uxth - bls .L696 - add x2, x1, 196 + bls .L709 + add x2, x1, 200 ldrh w2, [x2,x0,lsl 1] add x0, x0, 1 strh w2, [x19,w2,sxtw 1] - b .L657 -.L696: + b .L667 +.L709: ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 ret @@ -5302,42 +5422,30 @@ BuildFlashLsbPageTable: .global FlashDieInfoInit .type FlashDieInfoInit, %function FlashDieInfoInit: - stp x29, x30, [sp, -96]! + stp x29, x30, [sp, -80]! add x29, sp, 0 stp x21, x22, [sp,32] adrp x22, .LANCHOR2 - str x27, [sp,80] - add x1, x22, :lo12:.LANCHOR2 adrp x21, .LANCHOR0 + add x0, x22, :lo12:.LANCHOR2 stp x19, x20, [sp,16] stp x23, x24, [sp,48] stp x25, x26, [sp,64] - strb wzr, [x1,2012] - adrp x1, .LANCHOR1+482 - add x0, x21, :lo12:.LANCHOR0 - ldrh w1, [x1,#:lo12:.LANCHOR1+482] - strb wzr, [x0,1845] - cmp w1, 256 - bls .L698 - mov w1, 512 - b .L714 -.L698: - cmp w1, 128 - bls .L714 - mov w1, 256 -.L714: + strb wzr, [x0,2012] + adrp x0, .LANCHOR1+482 add x19, x21, :lo12:.LANCHOR0 - str w1, [x0,12] - mov w2, 8 + mov x24, 0 + add x25, x19, 1620 + ldrh w0, [x0,#:lo12:.LANCHOR1+482] + strb wzr, [x19,1845] + bl FlashBlockAlignInit mov w1, 0 + mov w2, 8 add x0, x19, 1848 - add x25, x19, 708 - mov x24, 0 - add x26, x19, 1620 bl ftl_memset mov w1, 0 mov w2, 32 - mov x0, x25 + add x0, x19, 712 bl ftl_memset add x0, x19, 1652 mov w1, 0 @@ -5345,34 +5453,34 @@ FlashDieInfoInit: bl ftl_memset ldr x20, [x19,744] add x23, x20, 1 -.L702: +.L712: ldrb w2, [x20] mov x0, x23 - add x1, x26, x24, lsl 3 + add x1, x25, x24, lsl 3 bl FlashMemCmp8 - cbnz w0, .L701 + cbnz w0, .L711 ldrb w1, [x19,1845] - str w0, [x25,w1,sxtw 2] + add x2, x19, 712 + str w0, [x2,w1,sxtw 2] add w0, w1, 1 add x1, x19, x1, sxtw strb w0, [x19,1845] strb w24, [x1,1848] -.L701: +.L711: add x24, x24, 1 cmp x24, 4 - bne .L702 + bne .L712 add x19, x21, :lo12:.LANCHOR0 add x0, x22, :lo12:.LANCHOR2 ldrb w1, [x19,1845] strb w1, [x0,2012] ldrb w0, [x20,8] cmp w0, 2 - beq .L703 -.L707: + beq .L713 +.L717: add x21, x21, :lo12:.LANCHOR0 ldrb w1, [x20,13] add x22, x22, :lo12:.LANCHOR2 - ldr x27, [sp,80] ldp x23, x24, [sp,48] ldrb w0, [x21,1845] ldp x25, x26, [sp,64] @@ -5382,41 +5490,41 @@ FlashDieInfoInit: mul w0, w0, w1 strh w0, [x22,2014] ldp x21, x22, [sp,32] - ldp x29, x30, [sp], 96 + ldp x29, x30, [sp], 80 ret -.L703: - ldr w26, [x19,12] +.L713: + ldr w25, [x19,12] mov x24, 0 - add x27, x19, 1620 - add x25, x19, 708 -.L706: + add x26, x19, 1620 +.L716: ldrb w2, [x20] mov x0, x23 - add x1, x27, x24, lsl 3 + add x1, x26, x24, lsl 3 bl FlashMemCmp8 - cbnz w0, .L704 + cbnz w0, .L714 ldrb w1, [x20,13] + add x4, x19, 712 ldrb w3, [x19,1845] - mul w0, w1, w26 + mul w0, w1, w25 ldrh w1, [x20,14] mov x2, x3 and w1, w1, 65280 mul w1, w0, w1 - str w1, [x25,w3,sxtw 2] + str w1, [x4,w3,sxtw 2] ldrb w0, [x20,23] - cbz w0, .L705 + cbz w0, .L715 lsl w1, w1, 1 - str w1, [x25,w3,sxtw 2] -.L705: + str w1, [x4,w3,sxtw 2] +.L715: add x0, x19, x3 add w2, w2, 1 strb w2, [x19,1845] strb w24, [x0,1848] -.L704: +.L714: add x24, x24, 1 cmp x24, 4 - bne .L706 - b .L707 + bne .L716 + b .L717 .size FlashDieInfoInit, .-FlashDieInfoInit .align 2 .global ftl_read_flash_info @@ -5437,9 +5545,9 @@ ftl_read_flash_info: ldr w0, [x1,12] mul w0, w0, w2 strh w0, [x19,4] - ldrb w0, [x1,1936] + ldrb w0, [x1,1944] strb w0, [x19,7] - ldr w0, [x1,2060] + ldr w0, [x1,2064] str w0, [x19] ldr x0, [x1,744] ldrb w4, [x1,1845] @@ -5452,9 +5560,9 @@ ftl_read_flash_info: strb w0, [x19,9] mov x0, 0 strb wzr, [x19,10] -.L716: +.L725: cmp w4, w0, uxtb - bls .L718 + bls .L727 add x2, x1, 1848 ldrb w3, [x19,10] ldrb w2, [x0,x2] @@ -5462,8 +5570,8 @@ ftl_read_flash_info: lsl w2, w5, w2 orr w2, w2, w3 strb w2, [x19,10] - b .L716 -.L718: + b .L725 +.L727: ldr x19, [sp,16] ldp x29, x30, [sp], 32 ret @@ -5511,36 +5619,36 @@ FtlMemInit: strh w1, [x0,940] strh w1, [x0,942] mov w1, 32 - ldrh w2, [x3,2024] + ldrh w2, [x3,2030] strh w1, [x0,848] mov w1, 128 strh w1, [x0,850] mov w1, 1024 strh wzr, [x0,856] sdiv w2, w1, w2 - ldrh w1, [x3,1948] + ldrh w1, [x3,1956] strh wzr, [x0,944] lsl w1, w1, 2 strh wzr, [x0,2040] strh wzr, [x0,986] cmp w2, w1 str w2, [x0,2044] - bls .L720 + bls .L729 str w1, [x0,2044] -.L720: +.L729: add x20, x22, :lo12:.LANCHOR0 add x19, x21, :lo12:.LANCHOR2 mov w24, 56 - ldrh w0, [x20,2022] + ldrh w0, [x20,2028] str wzr, [x20,2080] lsl w0, w0, 1 bl ftl_malloc str x0, [x19,912] - ldrh w1, [x20,2022] + ldrh w1, [x20,2028] mov w0, 12 mul w0, w1, w0 bl ftl_malloc - ldrh w23, [x20,1948] + ldrh w23, [x20,1956] str x0, [x19,928] mul w23, w23, w24 lsl w25, w23, 3 @@ -5563,8 +5671,8 @@ FtlMemInit: mul w0, w0, w24 bl ftl_malloc str x0, [x20,2088] - ldrh w0, [x20,1948] - ldrh w23, [x20,2028] + ldrh w0, [x20,1956] + ldrh w23, [x20,2034] lsl w0, w0, 1 add w0, w0, 1 str w0, [x19,904] @@ -5595,9 +5703,9 @@ FtlMemInit: mov w0, 24 mul w0, w1, w0 bl ftl_malloc - ldrh w23, [x20,1948] + ldrh w23, [x20,1956] str x0, [x19,872] - ldrh w0, [x20,2030] + ldrh w0, [x20,2036] mul w23, w0, w23 mov w0, w23 bl ftl_malloc @@ -5605,17 +5713,17 @@ FtlMemInit: lsl w0, w23, 3 bl ftl_malloc str x0, [x19,2128] - ldrh w1, [x20,2030] + ldrh w1, [x20,2036] ldr w0, [x19,904] mul w0, w1, w0 bl ftl_malloc str x0, [x19,888] - ldrh w1, [x20,2030] + ldrh w1, [x20,2036] ldr w0, [x19,2044] mul w0, w1, w0 bl ftl_malloc str x0, [x19,2136] - ldrh w0, [x20,1958] + ldrh w0, [x20,1966] lsl w0, w0, 1 strh w0, [x19,2144] and w0, w0, 65534 @@ -5627,7 +5735,7 @@ FtlMemInit: strh w0, [x19,2144] lsl w0, w0, 9 bl ftl_malloc - ldrh w23, [x20,1958] + ldrh w23, [x20,1966] str x0, [x19,2160] add x0, x0, 32 lsl w23, w23, 1 @@ -5637,7 +5745,7 @@ FtlMemInit: str x0, [x19,2168] mov w0, w23 bl ftl_malloc - ldr w23, [x20,2048] + ldr w23, [x20,2052] str x0, [x21,#:lo12:.LANCHOR2] lsl w23, w23, 1 mov w0, w23 @@ -5646,32 +5754,32 @@ FtlMemInit: mov w0, w23 bl ftl_malloc str x0, [x19,2184] - ldrh w0, [x20,1958] + ldrh w0, [x20,1966] lsr w0, w0, 3 add w0, w0, 4 bl ftl_malloc str x0, [x22,#:lo12:.LANCHOR0] - ldrh w0, [x20,2040] + ldrh w0, [x20,2044] lsl w0, w0, 1 bl ftl_malloc str x0, [x20,2072] - ldrh w0, [x20,2040] + ldrh w0, [x20,2044] lsl w0, w0, 1 bl ftl_malloc str x0, [x19,2192] - ldrh w0, [x20,2040] + ldrh w0, [x20,2044] lsl w0, w0, 2 bl ftl_malloc str x0, [x19,2200] - ldrh w0, [x20,2042] + ldrh w0, [x20,2046] lsl w0, w0, 2 bl ftl_malloc str x0, [x19,2208] - ldrh w2, [x20,2042] + ldrh w2, [x20,2046] mov w1, 0 lsl w2, w2, 2 bl ftl_memset - ldrh w23, [x20,2056] + ldrh w23, [x20,2060] lsl w23, w23, 2 mov w0, w23 bl ftl_malloc @@ -5679,26 +5787,26 @@ FtlMemInit: mov w0, w23 bl ftl_malloc str x0, [x19,2224] - ldr w0, [x20,2048] + ldr w0, [x20,2052] lsl w0, w0, 2 bl ftl_malloc str x0, [x19,2232] - ldrh w0, [x20,2058] + ldrh w0, [x20,2062] lsl w0, w0, 4 bl ftl_malloc str x0, [x19,184] - ldrh w1, [x20,2058] - ldrh w0, [x20,2028] + ldrh w1, [x20,2062] + ldrh w0, [x20,2034] mul w0, w1, w0 bl ftl_malloc str x0, [x19,2240] - ldrh w1, [x20,1958] + ldrh w1, [x20,1966] mov w0, 6 mul w0, w1, w0 bl ftl_malloc str x0, [x19,-16] - ldrh w0, [x20,2014] - ldrh w1, [x20,1970] + ldrh w0, [x20,2022] + ldrh w1, [x20,1978] add w0, w0, 31 asr w0, w0, 5 strh w0, [x19,2248] @@ -5708,112 +5816,112 @@ FtlMemInit: str x0, [x20,2136] add x1, x20, 2104 ldrh w4, [x19,2248] - ldrh w5, [x20,1970] + ldrh w5, [x20,1978] mov w0, 1 mov w2, w4 -.L721: +.L730: cmp w0, w5 add x1, x1, 8 - bcs .L821 + bcs .L830 ldr x3, [x20,2136] add w0, w0, 1 add x3, x3, x2, uxtw 2 add w2, w2, w4 str x3, [x1,32] - b .L721 -.L821: + b .L730 +.L830: add x1, x22, :lo12:.LANCHOR0 -.L723: +.L732: cmp w0, 8 - beq .L822 + beq .L831 add x2, x1, x0, uxtw 3 add w0, w0, 1 str xzr, [x2,2136] - b .L723 -.L822: + b .L732 +.L831: add x0, x21, :lo12:.LANCHOR2 ldr x1, [x0,2176] - cbnz x1, .L725 -.L727: + cbnz x1, .L734 +.L736: adrp x0, .LC80 adrp x1, .LANCHOR3 add x0, x0, :lo12:.LC80 add x1, x1, :lo12:.LANCHOR3 bl printk mov w0, -1 - b .L726 -.L725: + b .L735 +.L734: ldr x1, [x0,2184] - cbz x1, .L727 + cbz x1, .L736 ldr x1, [x0,2216] - cbz x1, .L727 + cbz x1, .L736 ldr x1, [x0,2232] - cbz x1, .L727 + cbz x1, .L736 ldr x1, [x0,184] - cbz x1, .L727 + cbz x1, .L736 ldr x1, [x0,2240] - cbz x1, .L727 + cbz x1, .L736 ldr x0, [x0,-16] - cbz x0, .L727 + cbz x0, .L736 add x22, x22, :lo12:.LANCHOR0 ldr x0, [x22,2136] - cbz x0, .L727 + cbz x0, .L736 adrp x0, .LANCHOR2 ldr x0, [x0,#:lo12:.LANCHOR2] - cbz x0, .L727 + cbz x0, .L736 add x0, x21, :lo12:.LANCHOR2 ldr x1, [x0,912] - cbz x1, .L727 + cbz x1, .L736 ldr x1, [x0,928] - cbz x1, .L727 + cbz x1, .L736 ldr x1, [x0,2048] - cbz x1, .L727 + cbz x1, .L736 ldr x1, [x0,2064] - cbz x1, .L727 + cbz x1, .L736 ldr x1, [x0,-88] - cbz x1, .L727 + cbz x1, .L736 ldr x1, [x0,896] - cbz x1, .L727 + cbz x1, .L736 ldr x1, [x0,2056] - cbz x1, .L727 + cbz x1, .L736 ldr x1, [x0,2072] - cbz x1, .L727 + cbz x1, .L736 ldr x1, [x0,2080] - cbz x1, .L727 + cbz x1, .L736 ldr x0, [x0,2088] - cbz x0, .L727 + cbz x0, .L736 add x0, x21, :lo12:.LANCHOR2 ldr x1, [x0,880] - cbz x1, .L727 + cbz x1, .L736 ldr x1, [x0,2104] - cbz x1, .L727 + cbz x1, .L736 ldr x1, [x0,2112] - cbz x1, .L727 + cbz x1, .L736 ldr x1, [x0,872] - cbz x1, .L727 + cbz x1, .L736 ldr x1, [x0,2120] - cbz x1, .L727 + cbz x1, .L736 ldr x1, [x0,2128] - cbz x1, .L727 + cbz x1, .L736 ldr x1, [x0,888] - cbz x1, .L727 + cbz x1, .L736 ldr x1, [x0,-80] - cbz x1, .L727 + cbz x1, .L736 ldr x0, [x0,2152] - cbz x0, .L727 + cbz x0, .L736 adrp x0, .LANCHOR0+2072 ldr x0, [x0,#:lo12:.LANCHOR0+2072] - cbz x0, .L727 + cbz x0, .L736 adrp x0, .LANCHOR2 add x0, x0, :lo12:.LANCHOR2 ldr x1, [x0,2192] - cbz x1, .L727 + cbz x1, .L736 ldr x1, [x0,2200] - cbz x1, .L727 + cbz x1, .L736 ldr x0, [x0,2208] - cbz x0, .L727 + cbz x0, .L736 mov w0, 0 -.L726: +.L735: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -5839,10 +5947,10 @@ FtlBbt2Bitmap: mov x3, 0 mov w0, 65535 mov w5, 1 -.L825: +.L834: ldrh w2, [x20,x3] cmp w2, w0 - beq .L823 + beq .L832 ubfx x4, x2, 5, 11 add x3, x3, 2 lsl x4, x4, 2 @@ -5851,8 +5959,8 @@ FtlBbt2Bitmap: ldr w1, [x19,x4] orr w2, w1, w2 str w2, [x19,x4] - bne .L825 -.L823: + bne .L834 +.L832: ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 ret @@ -5915,76 +6023,76 @@ ftl_free_no_use_map_blk: mov x0, x21 bl ftl_memset mov w0, 0 -.L831: +.L840: ldrh w1, [x19,6] cmp w1, w0 - bls .L853 + bls .L862 ubfiz x1, x0, 2, 16 ldr w2, [x20,x1] mov w1, 0 ubfx x2, x2, 10, 16 -.L832: +.L841: ldrh w3, [x19,10] cmp w3, w1 - bls .L854 + bls .L863 ubfiz x3, x1, 1, 16 ldrh w4, [x22,x3] cmp w2, w4 - bne .L833 - cbz w4, .L833 + bne .L842 + cbz w4, .L842 ldrh w4, [x21,x3] add w4, w4, 1 strh w4, [x21,x3] -.L833: +.L842: add w1, w1, 1 uxth w1, w1 - b .L832 -.L854: + b .L841 +.L863: add w0, w0, 1 uxth w0, w0 - b .L831 -.L853: - adrp x0, .LANCHOR0+2020 + b .L840 +.L862: + adrp x0, .LANCHOR0+2026 mov w23, 0 mov w20, w23 - ldrh w1, [x0,#:lo12:.LANCHOR0+2020] + ldrh w1, [x0,#:lo12:.LANCHOR0+2026] ldrh w0, [x19] strh w1, [x21,x0,lsl 1] ldrh w24, [x21] -.L836: +.L845: ldrh w0, [x19,10] cmp w0, w20 - bls .L855 + bls .L864 ubfiz x2, x20, 1, 16 ldrh w1, [x21,x2] cmp w24, w1 - bls .L837 + bls .L846 ldrh w0, [x22,x2] add x25, x22, x2 - cbnz w0, .L838 - b .L839 -.L837: - cbnz w1, .L839 + cbnz w0, .L847 + b .L848 +.L846: + cbnz w1, .L848 ldrh w0, [x22,x2] add x25, x22, x2 - cbz w0, .L839 -.L841: + cbz w0, .L848 +.L850: mov w1, 1 bl FtlFreeSysBlkQueueIn strh wzr, [x25] ldrh w0, [x19,8] sub w0, w0, #1 strh w0, [x19,8] -.L839: +.L848: add w20, w20, 1 uxth w20, w20 - b .L836 -.L838: + b .L845 +.L847: mov w23, w20 mov w24, w1 - cbz w1, .L841 - b .L839 -.L855: + cbz w1, .L850 + b .L848 +.L864: mov w0, w23 ldr x25, [sp,64] ldp x19, x20, [sp,16] @@ -6006,23 +6114,23 @@ FtlL2PDataInit: stp x21, x22, [sp,32] add x21, x20, :lo12:.LANCHOR0 add x22, x19, :lo12:.LANCHOR2 - ldr w2, [x21,2048] + ldr w2, [x21,2052] ldr x0, [x22,2184] lsl w2, w2, 1 bl ftl_memset - ldrh w3, [x21,2028] + ldrh w3, [x21,2034] mov w1, 255 - ldrh w2, [x21,2058] + ldrh w2, [x21,2062] ldr x0, [x22,2240] mul w2, w3, w2 bl ftl_memset mov w1, 0 mov w5, -1 -.L857: +.L866: add x3, x20, :lo12:.LANCHOR0 - ldrh w0, [x3,2058] + ldrh w0, [x3,2062] cmp w0, w1 - bls .L859 + bls .L868 add x4, x19, :lo12:.LANCHOR2 ubfiz x0, x1, 4, 16 ldr x2, [x4,184] @@ -6032,7 +6140,7 @@ FtlL2PDataInit: strh w5, [x2,x0] ldr x2, [x4,184] add x2, x2, x0 - ldrh w0, [x3,2028] + ldrh w0, [x3,2034] ldr x3, [x4,2240] mul w0, w0, w1 add w1, w1, 1 @@ -6041,20 +6149,20 @@ FtlL2PDataInit: and x0, x0, -4 add x0, x3, x0 str x0, [x2,8] - b .L857 -.L859: + b .L866 +.L868: add x0, x19, :lo12:.LANCHOR2 mov w2, -1 add x1, x0, 2256 strh w2, [x0,2258] strh w2, [x0,2256] - ldr w2, [x3,2048] + ldr w2, [x3,2052] strh w2, [x0,2266] mov w2, -3902 strh w2, [x0,2260] ldrh w2, [x0,2320] strh w2, [x0,2264] - ldrh w2, [x3,2056] + ldrh w2, [x3,2060] strh w2, [x0,2262] ldr x2, [x0,2176] str x2, [x0,2272] @@ -6084,22 +6192,22 @@ FtlVariablesInit: add x20, x20, :lo12:.LANCHOR0 strh w0, [x19,2336] mov w0, -1 - ldrh w2, [x20,2040] + ldrh w2, [x20,2044] str w0, [x19,2348] ldr x0, [x20,2072] lsl w2, w2, 1 str xzr, [x19,2328] str wzr, [x19,2340] str wzr, [x19,2344] - str wzr, [x20,1940] - strh wzr, [x20,2066] + str wzr, [x20,1948] + strh wzr, [x20,2070] bl ftl_memset - ldrh w2, [x20,1958] + ldrh w2, [x20,1966] mov w1, 0 ldr x0, [x19,-80] lsl w2, w2, 1 bl ftl_memset - ldrh w2, [x20,1958] + ldrh w2, [x20,1966] mov w1, 0 ldr x0, [x19,2152] lsl w2, w2, 1 @@ -6137,7 +6245,7 @@ SupperBlkListInit: adrp x21, .LANCHOR2 mov w25, 0 add x19, x21, :lo12:.LANCHOR2 - ldrh w2, [x0,1958] + ldrh w2, [x0,1966] mov w22, w25 mov w26, 32768 ldr x0, [x19,-16] @@ -6150,20 +6258,20 @@ SupperBlkListInit: strh wzr, [x19,32] strh wzr, [x19,2016] mov w19, w25 -.L862: +.L871: add x0, x23, :lo12:.LANCHOR0 - ldrh w1, [x0,1956] + ldrh w1, [x0,1964] cmp w19, w1 - bge .L869 + bge .L878 mov w20, 0 - ldrh w3, [x0,1948] - ldrh w2, [x0,2018] + ldrh w3, [x0,1956] + ldrh w2, [x0,2024] mov w28, w20 mov x27, x0 -.L870: +.L879: cmp w28, w3 - bge .L871 - add x0, x27, 1976 + bge .L880 + add x0, x27, 1984 mov w1, w19 str x2, [x29,96] str x3, [x29,104] @@ -6172,54 +6280,54 @@ SupperBlkListInit: bl FtlBbmIsBadBlock ldr x3, [x29,104] ldr x2, [x29,96] - cbnz w0, .L863 + cbnz w0, .L872 add w20, w2, w20 sxth w20, w20 -.L863: +.L872: add w28, w28, 1 sxth w28, w28 - b .L870 -.L871: - cbz w20, .L865 + b .L879 +.L880: + cbz w20, .L874 sdiv w20, w26, w20 sxth w20, w20 - b .L866 -.L865: + b .L875 +.L874: ldr x0, [x21,#:lo12:.LANCHOR2] mov w1, -1 strh w1, [x0,w19,sxtw 1] -.L866: +.L875: add x0, x21, :lo12:.LANCHOR2 ldr x1, [x0,-16] smaddl x1, w19, w24, x1 strh w20, [x1,4] ldrh w1, [x0,40] cmp w19, w1 - beq .L867 + beq .L876 ldrh w1, [x0,88] cmp w19, w1 - beq .L867 + beq .L876 ldrh w0, [x0,136] cmp w19, w0 - beq .L867 + beq .L876 ldr x0, [x21,#:lo12:.LANCHOR2] ldrh w0, [x0,w19,sxtw 1] - cbnz w0, .L868 + cbnz w0, .L877 add w4, w25, 1 mov w0, w19 uxth w25, w4 bl INSERT_FREE_LIST - b .L867 -.L868: + b .L876 +.L877: add w22, w22, 1 mov w0, w19 uxth w22, w22 bl INSERT_DATA_LIST -.L867: +.L876: add w19, w19, 1 sxth w19, w19 - b .L862 -.L869: + b .L871 +.L878: add x21, x21, :lo12:.LANCHOR2 mov w0, 0 ldp x19, x20, [sp,16] @@ -6244,13 +6352,13 @@ FtlGcPageVarInit: adrp x19, .LANCHOR2 add x20, x20, :lo12:.LANCHOR0 add x19, x19, :lo12:.LANCHOR2 - ldrh w2, [x20,2022] + ldrh w2, [x20,2028] ldr x0, [x19,912] lsl w2, w2, 1 strh wzr, [x19,908] strh wzr, [x19,920] bl ftl_memset - ldrh w3, [x20,2022] + ldrh w3, [x20,2028] mov w2, 12 ldr x0, [x19,928] mov w1, 255 @@ -6295,64 +6403,67 @@ FlashLoadPhyInfoInRam: add x29, sp, 0 stp x19, x20, [sp,16] stp x21, x22, [sp,32] - adrp x20, .LANCHOR1 + adrp x19, .LANCHOR1 adrp x22, .LANCHOR0 - add x21, x20, :lo12:.LANCHOR1 + add x21, x19, :lo12:.LANCHOR1 add x22, x22, :lo12:.LANCHOR0 str x23, [sp,48] add x21, x21, 512 - mov w19, 0 + mov w20, 0 add x22, x22, 1620 -.L879: +.L888: ldrb w2, [x21] add x0, x21, 1 mov x1, x22 bl FlashMemCmp8 mov w23, w0 - cbnz w0, .L876 - add x0, x20, :lo12:.LANCHOR1 - ubfiz x19, x19, 5, 32 + cbnz w0, .L885 + add x0, x19, :lo12:.LANCHOR1 + ubfiz x20, x20, 5, 32 add x1, x0, 512 - adds x19, x1, x19 - beq .L882 - ldrb w3, [x19,22] + adds x20, x1, x20 + beq .L891 + ldrb w3, [x20,22] mov x2, 0 mov x1, x0 - b .L881 -.L876: - add w19, w19, 1 + b .L890 +.L885: + add w20, w20, 1 add x21, x21, 32 - cmp w19, 77 - bne .L879 - b .L882 -.L881: + cmp w20, 81 + bne .L888 + b .L891 +.L890: add x4, x1, x2, lsl 5 mov w0, w2 - ldrb w4, [x4,2976] + ldrb w4, [x4,3104] cmp w4, w3 - beq .L880 + beq .L889 add x2, x2, 1 cmp x2, 4 - bne .L881 + bne .L890 mov w0, w2 -.L880: - add x20, x20, :lo12:.LANCHOR1 +.L889: + add x19, x19, :lo12:.LANCHOR1 ubfiz x1, x0, 5, 32 adrp x0, .LANCHOR0 - add x2, x20, 2976 + add x2, x19, 3104 add x0, x0, :lo12:.LANCHOR0 add x1, x2, x1 add x0, x0, 88 mov w2, 32 + add x19, x19, 472 bl ftl_memcpy - add x0, x20, 472 - mov x1, x19 + mov x0, x19 + mov x1, x20 mov w2, 32 bl ftl_memcpy - b .L877 -.L882: + ldrh w0, [x19,10] + bl FlashBlockAlignInit + b .L886 +.L891: mov w23, -1 -.L877: +.L886: mov w0, w23 ldr x23, [sp,48] ldp x19, x20, [sp,16] @@ -6376,14 +6487,14 @@ NandcCopy1KB: add x4, x0, 4096 add x21, x0, 512 add x2, x4, x2 - bne .L887 - cbz x3, .L888 + bne .L896 + cbz x3, .L897 mov x0, x2 mov x1, x3 mov w2, 1024 bl ftl_memcpy -.L888: - cbz x20, .L886 +.L897: + cbz x20, .L895 mov w0, 48 lsr w19, w19, 1 ldrb w1, [x20,1] @@ -6397,15 +6508,15 @@ NandcCopy1KB: ldrb w1, [x20,3] orr w0, w0, w1, lsl 24 str w0, [x21,w19,sxtw 2] - b .L886 -.L887: - cbz x3, .L891 + b .L895 +.L896: + cbz x3, .L900 mov x1, x2 mov x0, x3 mov w2, 1024 bl ftl_memcpy -.L891: - cbz x20, .L886 +.L900: + cbz x20, .L895 mov w0, 48 lsr w19, w19, 1 mul w19, w19, w0 @@ -6418,7 +6529,7 @@ NandcCopy1KB: lsr w0, w0, 24 strb w1, [x20,2] strb w0, [x20,3] -.L886: +.L895: ldp x19, x20, [sp,16] ldr x21, [sp,32] ldp x29, x30, [sp], 48 @@ -6429,14 +6540,14 @@ NandcCopy1KB: .type ftl_memcpy32, %function ftl_memcpy32: mov x3, 0 -.L903: +.L912: cmp w2, w3 - bls .L905 + bls .L914 ldr w4, [x1,x3,lsl 2] str w4, [x0,x3,lsl 2] add x3, x3, 1 - b .L903 -.L905: + b .L912 +.L914: ret .size ftl_memcpy32, .-ftl_memcpy32 .align 2 @@ -6451,27 +6562,6 @@ ftl_memcmp: ret .size ftl_memcmp, .-ftl_memcmp .align 2 - .global js_hash - .type js_hash, %function -js_hash: - mov x5, x0 - mov w0, 42982 - mov x2, 0 - movk w0, 0x47c6, lsl 16 -.L908: - cmp w1, w2 - bls .L910 - lsl w3, w0, 5 - ldrb w4, [x5,x2] - add w3, w3, w0, lsr 2 - add x2, x2, 1 - add w3, w3, w4 - eor w0, w0, w3 - b .L908 -.L910: - ret - .size js_hash, .-js_hash - .align 2 .global timer_get_time .type timer_get_time, %function timer_get_time: @@ -6494,13 +6584,13 @@ FlashSramLoadStore: add x29, sp, 0 ldr x4, [x4,#:lo12:.LANCHOR4+48] add x4, x4, 4096 - cbnz w2, .L913 + cbnz w2, .L918 add x1, x4, x1 - b .L915 -.L913: + b .L920 +.L918: add x0, x4, x1 mov x1, x6 -.L915: +.L920: mov w2, w3 bl ftl_memcpy ldp x29, x30, [sp], 16 @@ -6536,8 +6626,8 @@ rk_nand_resume: .global rk_ftl_get_capacity .type rk_ftl_get_capacity, %function rk_ftl_get_capacity: - adrp x0, .LANCHOR0+2060 - ldr w0, [x0,#:lo12:.LANCHOR0+2060] + adrp x0, .LANCHOR0+2064 + ldr w0, [x0,#:lo12:.LANCHOR0+2064] ret .size rk_ftl_get_capacity, .-rk_ftl_get_capacity .align 2 @@ -6590,42 +6680,42 @@ rknand_print_hex: add x23, x23, :lo12:.LC81 add x21, x21, :lo12:.LC82 add x24, x24, :lo12:.LC75 -.L924: +.L929: cmp x19, x26 - beq .L932 - cbnz w20, .L925 + beq .L937 + cbnz w20, .L930 mov x0, x23 mov x1, x27 mov x2, x22 mov w3, w19 bl printk -.L925: +.L930: cmp w25, 4 mov x0, x21 - bne .L926 + bne .L931 ldr w1, [x22,x19,lsl 2] - b .L931 -.L926: + b .L936 +.L931: cmp w25, 2 - bne .L928 + bne .L933 ldrsh w1, [x22,x19,lsl 1] - b .L931 -.L928: + b .L936 +.L933: ldrb w1, [x22,x19] -.L931: +.L936: bl printk add w20, w20, 1 cmp w20, 15 - bls .L929 + bls .L934 adrp x1, .LC83 mov x0, x24 add x1, x1, :lo12:.LC83 mov w20, 0 bl printk -.L929: +.L934: add x19, x19, 1 - b .L924 -.L932: + b .L929 +.L937: adrp x0, .LC75 adrp x1, .LC83 add x1, x1, :lo12:.LC83 @@ -6649,31 +6739,31 @@ HynixGetReadRetryDefault: add x29, sp, 0 stp x19, x20, [sp,16] adrp x19, .LANCHOR0 - stp x25, x26, [sp,64] - mov w26, w0 + stp x27, x28, [sp,80] + mov w27, w0 add x0, x19, :lo12:.LANCHOR0 add x1, x0, 760 - cmp w26, 2 + cmp w27, 2 stp x21, x22, [sp,32] stp x23, x24, [sp,48] - stp x27, x28, [sp,80] - strb w26, [x0,760] + stp x25, x26, [sp,64] + strb w27, [x0,760] mov w0, -84 strb w4, [x1,5] strb w0, [x1,4] mov w0, -81 strb w2, [x1,6] strb w0, [x1,7] - bne .L934 + bne .L939 mov w0, -89 strb w0, [x1,4] - adrp x0, .LANCHOR1+3121 + adrp x0, .LANCHOR1+3249 mov w1, -9 - strb w1, [x0,#:lo12:.LANCHOR1+3121] - b .L989 -.L934: - cmp w26, 3 - bne .L936 + strb w1, [x0,#:lo12:.LANCHOR1+3249] + b .L1002 +.L939: + cmp w27, 3 + bne .L941 mov w0, -80 strb w0, [x1,4] mov w0, -79 @@ -6689,10 +6779,10 @@ HynixGetReadRetryDefault: mov w0, -74 strb w0, [x1,10] mov w0, -73 - b .L1022 -.L936: - cmp w26, 4 - bne .L937 + b .L1042 +.L941: + cmp w27, 4 + bne .L942 mov w5, -52 strb w5, [x1,4] mov w5, -65 @@ -6705,40 +6795,40 @@ HynixGetReadRetryDefault: mov w5, -51 strb w2, [x1,10] strb w5, [x1,8] -.L1022: - mov w27, 8 +.L1042: + mov w26, 8 strb w0, [x1,11] - mov w28, w27 - b .L935 -.L937: - cmp w26, 5 - bne .L938 + mov w28, w26 + b .L940 +.L942: + cmp w27, 5 + bne .L943 mov w0, 56 strb w0, [x1,4] mov w0, 57 strb w0, [x1,5] mov w0, 58 - mov w27, 8 + mov w26, 8 strb w0, [x1,6] mov w0, 59 strb w0, [x1,7] - b .L1021 -.L938: - cmp w26, 6 - bne .L939 + b .L1043 +.L943: + cmp w27, 6 + bne .L944 mov w0, 14 strb w0, [x1,4] mov w0, 15 strb w0, [x1,5] mov w0, 16 - mov w27, 12 + mov w26, 12 strb w0, [x1,6] mov w0, 17 strb w0, [x1,7] - b .L1021 -.L939: - cmp w26, 7 - bne .L989 + b .L1043 +.L944: + cmp w27, 7 + bne .L945 mov w0, -80 strb w0, [x1,4] mov w0, -79 @@ -6756,63 +6846,78 @@ HynixGetReadRetryDefault: mov w0, -73 strb w0, [x1,11] mov w0, -44 - mov w27, 12 + mov w26, 12 strb w0, [x1,12] mov w28, 10 mov w0, -43 strb w0, [x1,13] - b .L935 -.L989: - mov w27, 7 -.L1021: + b .L940 +.L945: + cmp w27, 8 + bne .L1002 + mov w0, 6 + strb w0, [x1,4] + mov w0, 7 + strb w0, [x1,5] + mov w0, 9 + strb w27, [x1,6] + strb w0, [x1,7] + mov w26, 50 + mov w0, 10 + mov w28, 5 + strb w0, [x1,8] + b .L940 +.L1002: + mov w26, 7 +.L1043: mov w28, 4 -.L935: - sub w0, w26, #1 +.L940: + sub w0, w27, #1 cmp w0, 1 - bhi .L1018 + bhi .L1039 adrp x22, .LANCHOR1 add x25, x19, :lo12:.LANCHOR0 add x22, x22, :lo12:.LANCHOR1 mov w21, 0 - add x26, x25, 760 - add x4, x25, 24 - add x22, x22, 3104 -.L940: + add x4, x25, 760 + add x27, x25, 24 + add x22, x22, 3232 +.L946: ldrb w0, [x25,1845] cmp w0, w21 - bls .L947 + bls .L953 add x0, x25, x21, sxtw ldrb w0, [x0,1848] mov x23, 0 - add x20, x26, x0, lsl 6 + add x20, x4, x0, lsl 6 lsl x0, x0, 4 - add x1, x4, x0 + add x1, x27, x0 add x20, x20, 20 - ldr x24, [x4,x0] + ldr x24, [x27,x0] ldrb w0, [x1,8] mov w1, 55 add x24, x24, x0, lsl 8 -.L942: - add x0, x26, x23 +.L948: + add x0, x4, x23 str w1, [x24,2056] - str x4, [x29,128] - str x1, [x29,136] + str x1, [x29,128] + str x4, [x29,136] ldrb w0, [x0,4] str w0, [x24,2052] - mov w0, 80 - bl NandcDelayns + mov x0, 400 + bl __const_udelay ldr w0, [x24,2048] strb w0, [x20,x23] add x23, x23, 1 - ldr x1, [x29,136] + ldr x4, [x29,136] cmp w28, w23, uxtb - ldr x4, [x29,128] - bhi .L942 + ldr x1, [x29,128] + bhi .L948 mov x0, 0 -.L943: +.L949: add w2, w0, 8 mov x1, 0 -.L944: +.L950: add x3, x1, x0 add x1, x1, 4 add x3, x22, x3 @@ -6822,10 +6927,10 @@ HynixGetReadRetryDefault: add w3, w6, w3 strb w3, [x20,w2,sxtw] add w2, w2, 8 - bne .L944 + bne .L950 add x0, x0, 1 cmp x0, 4 - bne .L943 + bne .L949 add w21, w21, 1 strb wzr, [x20,16] strb wzr, [x20,24] @@ -6835,264 +6940,301 @@ HynixGetReadRetryDefault: strb wzr, [x20,48] strb wzr, [x20,41] strb wzr, [x20,49] - b .L940 -.L1018: - sub w0, w26, #3 - cmp w0, 4 - bhi .L947 - mul w25, w28, w27 - sub w23, w28, #1 - add x21, x19, :lo12:.LANCHOR0 + b .L946 +.L1039: + sub w0, w27, #3 + cmp w0, 5 + bhi .L953 + mul w25, w28, w26 + sub w24, w28, #1 + add x20, x19, :lo12:.LANCHOR0 lsl w0, w25, 4 - asr w22, w25, 2 + asr w23, w25, 1 str w0, [x29,128] - lsl w0, w22, 1 - uxtb x23, w23 + lsl w0, w23, 1 + uxtb x24, w24 str w0, [x29,124] - add x0, x21, 24 - mov w20, 0 - str x0, [x29,136] - sub w25, w26, #5 - add x0, x23, 1 + sub w0, w27, #5 + mov w21, 0 + str w0, [x29,136] + add x25, x20, 24 + add x0, x24, 1 str x0, [x29,112] -.L948: - ldrb w0, [x21,1845] - cmp w0, w20 - bhi .L988 -.L947: +.L954: + ldrb w0, [x20,1845] + cmp w0, w21 + bhi .L1000 +.L953: add x19, x19, :lo12:.LANCHOR0 ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] strb w28, [x19,761] - strb w27, [x19,762] - ldp x25, x26, [sp,64] - ldp x19, x20, [sp,16] + strb w26, [x19,762] ldp x27, x28, [sp,80] + ldp x19, x20, [sp,16] + ldp x25, x26, [sp,64] ldp x29, x30, [sp], 144 ret -.L988: - add x0, x21, x20, sxtw - ldrb w1, [x0,1848] - str x1, [x29,104] - lsl x0, x1, 4 - mov x24, x1 - ldr x1, [x29,136] - add x2, x1, x0 - ldr x0, [x1,x0] - ldrb w2, [x2,8] - add x23, x0, x2, lsl 8 +.L1000: + add x0, x20, x21, sxtw + ldrb w6, [x0,1848] + str x6, [x29,104] + lsl x0, x6, 4 + mov x22, x6 + add x1, x25, x0 + ldr x0, [x25,x0] + ldrb w2, [x1,8] + add x24, x0, x2, lsl 8 mov w0, 255 - str w0, [x23,2056] - mov w0, w24 + str w0, [x24,2056] + mov w0, w6 bl NandcWaitFlashReady - cmp w26, 7 - add x6, x21, 760 - ldr x1, [x29,104] - beq .L949 - add x1, x6, x1, lsl 6 - add x6, x1, 20 - b .L950 -.L949: + cmp w27, 7 + ldr x6, [x29,104] + bne .L955 mov x0, 160 - madd x1, x1, x0, x6 - add x6, x1, 28 -.L950: + madd x6, x6, x0, x20 + add x6, x6, 788 + b .L956 +.L955: + cmp w27, 8 + beq .L957 + add x6, x20, x6, lsl 6 + add x6, x6, 780 +.L956: mov w0, 54 - cmp w26, 4 - str w0, [x23,2056] - bne .L951 + cmp w27, 4 + str w0, [x24,2056] + bne .L958 mov w0, 255 - str w0, [x23,2052] + str w0, [x24,2052] mov w0, 64 - str w0, [x23,2048] + str w0, [x24,2048] mov w0, 204 - b .L1023 -.L951: - cmp w25, 1 - bhi .L953 - ldrb w0, [x21,764] - str w0, [x23,2052] + b .L1044 +.L958: + ldr w0, [x29,136] + cmp w0, 1 + bhi .L960 + ldrb w0, [x20,764] + str w0, [x24,2052] mov w0, 82 - b .L1024 -.L953: + b .L1045 +.L960: + cmp w27, 7 + bne .L959 mov w0, 174 - str w0, [x23,2052] - str wzr, [x23,2048] + str w0, [x24,2052] + str wzr, [x24,2048] mov w0, 176 -.L1023: - str w0, [x23,2052] +.L1044: + str w0, [x24,2052] mov w0, 77 -.L1024: - str w0, [x23,2048] +.L1045: + str w0, [x24,2048] +.L959: mov w0, 22 - str w0, [x23,2056] + str w0, [x24,2056] mov w0, 23 - str w0, [x23,2056] + str w0, [x24,2056] mov w0, 4 - str w0, [x23,2056] + str w0, [x24,2056] mov w0, 25 - str w0, [x23,2056] - cmp w26, 6 - str wzr, [x23,2056] - str wzr, [x23,2052] - str wzr, [x23,2052] - bne .L954 + str w0, [x24,2056] + str wzr, [x24,2056] + cmp w27, 6 + str wzr, [x24,2052] + str wzr, [x24,2052] + bne .L961 mov w0, 31 - str w0, [x23,2052] - b .L955 -.L954: - str wzr, [x23,2052] -.L955: - mov w1, 2 - str w1, [x23,2052] - str wzr, [x23,2052] + str w0, [x24,2052] + b .L962 +.L961: + str wzr, [x24,2052] +.L962: + mov w0, 2 + str w0, [x24,2052] + str wzr, [x24,2052] +.L1001: mov w0, 48 - str w0, [x23,2056] - mov w0, w24 - str x6, [x29,96] - str x1, [x29,104] + str w0, [x24,2056] + mov w0, w22 + str x6, [x29,104] bl NandcWaitFlashReady - cmp w25, 1 - mov w7, 16 - ldr x6, [x29,96] - bls .L957 - ldr x1, [x29,104] - cmp w26, 7 + ldr w0, [x29,136] + ldr x6, [x29,104] + cmp w0, 1 + cset w9, ls + cmp w27, 8 + cset w8, eq + cbnz w9, .L1004 + cbnz w8, .L1004 + cmp w27, 7 mov w7, 32 - csel w7, w7, w1, eq -.L957: - adrp x0, .LANCHOR4 - mov x8, 0 - add x1, x0, :lo12:.LANCHOR4 - ldr x1, [x1,56] -.L958: - ldr w9, [x23,2048] - strb w9, [x1,x8] - add x8, x8, 1 - cmp w7, w8, uxtb - bhi .L958 - cmp w26, 7 - bne .L959 + mov w0, 2 + csel w7, w0, w7, ne + b .L963 +.L1004: + mov w7, 16 +.L963: + adrp x1, .LANCHOR4 + mov x10, 0 + add x0, x1, :lo12:.LANCHOR4 + ldr x0, [x0,56] +.L964: + ldr w11, [x24,2048] + strb w11, [x0,x10] + add x10, x10, 1 + cmp w7, w10, uxtb + bhi .L964 + cbz w8, .L965 mov w7, 0 -.L961: - ldrb w8, [x1] - cmp w8, 12 - beq .L960 - ldrb w8, [x1,1] - cmp w8, 10 - beq .L960 +.L967: + ldrb w10, [x0] + cmp w10, 50 + beq .L966 + ldrb w10, [x0,1] + cmp w10, 5 + beq .L966 add w7, w7, 1 - add x1, x1, 4 + add x0, x0, 4 uxtb w7, w7 cmp w7, 8 - bne .L961 - b .L962 -.L960: - cmp w7, 7 - bne .L963 -.L962: + bne .L967 + b .L968 +.L966: + cmp w7, 6 + bls .L969 +.L968: adrp x0, .LC84 mov w1, 0 add x0, x0, :lo12:.LC84 bl printk -.L964: - b .L964 -.L959: - cmp w26, 6 - bne .L963 - mov x7, 0 +.L970: + b .L970 .L965: - ldrb w8, [x1,x7] - cmp w8, 12 - beq .L963 - add x8, x1, x7 - ldrb w8, [x8,8] - cmp w8, 4 - beq .L963 - add x7, x7, 1 - cmp x7, 8 - bne .L965 + cmp w27, 7 + bne .L971 + mov w7, w8 +.L973: + ldrb w10, [x0] + cmp w10, 12 + beq .L972 + ldrb w10, [x0,1] + cmp w10, 10 + beq .L972 + add w7, w7, 1 + add x0, x0, 4 + uxtb w7, w7 + cmp w7, 8 + bne .L973 + b .L974 +.L972: + cmp w7, 7 + bne .L969 +.L974: adrp x0, .LC84 mov w1, 0 add x0, x0, :lo12:.LC84 bl printk -.L967: - b .L967 -.L963: - add x1, x0, :lo12:.LANCHOR4 - ldr x10, [x1,56] - mov x1, 0 -.L968: - ldr w2, [x29,128] - cmp w2, w1 - ble .L1025 - ldr w7, [x23,2048] - strb w7, [x10,x1] - add x1, x1, 1 - b .L968 -.L1025: - add x1, x0, :lo12:.LANCHOR4 - mov w9, w22 - mov w8, 8 - ldr x12, [x1,56] +.L975: + b .L975 .L971: - mov w1, 0 -.L970: - add w7, w1, w9 - add w1, w1, 1 - sbfiz x7, x7, 2, 32 - cmp w1, w22 - ldr w11, [x12,x7] - mvn w11, w11 - str w11, [x12,x7] - bne .L970 - ldr w1, [x29,124] - subs w8, w8, #1 - add w9, w9, w1 - bne .L971 - mov x8, 0 - mov w16, 1 -.L972: - add x1, x0, :lo12:.LANCHOR4 - ldr x15, [x1,56] - mov w1, 0 - mov w11, w1 + cmp w27, 6 + bne .L969 + mov x7, 0 .L976: - lsl w9, w16, w11 - mov w13, w8 - mov w7, 16 - mov w12, 0 -.L974: - ldr w14, [x15,w13,sxtw 2] - add w13, w13, w22 - and w14, w9, w14 - cmp w14, w9 - csinc w12, w12, w12, ne - subs w7, w7, #1 - bne .L974 - cmp w12, 9 - orr w9, w1, w9 - add w11, w11, 1 - csel w1, w9, w1, cs - cmp w11, 32 + ldrb w10, [x0,x7] + cmp w10, 12 + beq .L969 + add x10, x0, x7 + ldrb w10, [x10,8] + cmp w10, 4 + beq .L969 + add x7, x7, 1 + cmp x7, 8 bne .L976 - str w1, [x15,x8,lsl 2] - add x8, x8, 1 - cmp w22, w8 - bgt .L972 - add x0, x0, :lo12:.LANCHOR4 - ldr x1, [x0,56] + adrp x0, .LC84 + mov w1, 0 + add x0, x0, :lo12:.LC84 + bl printk +.L978: + b .L978 +.L969: + add x0, x1, :lo12:.LANCHOR4 + ldr x11, [x0,56] mov x0, 0 - mov w8, w0 .L979: - ldr w9, [x1,x0] - add x0, x0, 4 - cmp w9, wzr - csinc w8, w8, w8, ne - cmp x0, 32 - bne .L979 - cmp w8, 7 - ble .L980 + ldr w2, [x29,128] + cmp w2, w0 + ble .L1047 + ldr w7, [x24,2048] + strb w7, [x11,x0] + add x0, x0, 1 + b .L979 +.L1047: + add x0, x1, :lo12:.LANCHOR4 + mov w12, w23 + mov w10, 8 + ldr x13, [x0,56] +.L982: + mov w0, 0 +.L981: + add w7, w0, w12 + add w0, w0, 1 + sbfiz x7, x7, 1, 32 + cmp w0, w23 + ldrh w14, [x13,x7] + mvn w14, w14 + strh w14, [x13,x7] + bne .L981 + ldr w0, [x29,124] + subs w10, w10, #1 + add w12, w12, w0 + bne .L982 + mov x10, 0 + mov w18, 1 +.L983: + mov w7, 0 + mov w12, w7 +.L987: + lsl w14, w18, w12 + mov w16, w10 + mov w0, 16 + mov w15, 0 +.L985: + ldrh w17, [x13,w16,sxtw 1] + add w16, w16, w23 + and w17, w17, w14 + cmp w17, w14 + csinc w15, w15, w15, ne + subs w0, w0, #1 + bne .L985 + cmp w15, 8 + bls .L986 + orr w7, w7, w14 + uxth w7, w7 +.L986: + add w12, w12, 1 + cmp w12, 16 + bne .L987 + strh w7, [x13,x10,lsl 1] + add x10, x10, 1 + cmp w23, w10 + bgt .L983 + add x1, x1, :lo12:.LANCHOR4 + mov x7, 0 + mov w10, w7 + ldr x1, [x1,56] +.L990: + ldr w12, [x1,x7] + add x7, x7, 4 + cmp w12, wzr + csinc w10, w10, w10, ne + cmp x7, 32 + bne .L990 + cmp w10, 7 + ble .L991 adrp x0, .LC85 mov w2, 1 add x0, x0, :lo12:.LC85 @@ -7102,60 +7244,92 @@ HynixGetReadRetryDefault: mov w1, 0 add x0, x0, :lo12:.LC84 bl printk -.L981: - b .L981 -.L980: - cmp w26, 6 - mov w1, 4 - beq .L982 - cmp w26, 7 - mov w1, 10 - mov w0, 8 - csel w1, w0, w1, ne -.L982: - mov w8, 0 -.L983: - mov x0, 0 -.L984: - add w9, w7, w0 - ldrb w11, [x10,x0] - add x0, x0, 1 - cmp w28, w0, uxtb - strb w11, [x6,w9,sxtw] - bhi .L984 - add w8, w8, 1 - ldr x0, [x29,112] - cmp w8, w27 - add w7, w7, w1 - add x10, x10, x0 - blt .L983 +.L992: + b .L992 +.L991: + cmp w27, 6 + mov w7, 4 + beq .L993 + cmp w27, 7 + mov w7, 10 + beq .L993 + cmp w8, wzr + mov w7, 5 + mov w1, 8 + csel w7, w1, w7, eq +.L993: + mov w10, 0 +.L994: + mov x1, 0 +.L995: + add w12, w0, w1 + ldrb w13, [x11,x1] + add x1, x1, 1 + cmp w28, w1, uxtb + strb w13, [x6,w12,sxtw] + bhi .L995 + add w10, w10, 1 + ldr x1, [x29,112] + cmp w10, w26 + add w0, w0, w7 + add x11, x11, x1 + blt .L994 mov w0, 255 - str w0, [x23,2056] - mov w0, w24 + str w0, [x24,2056] + mov w0, w22 + str x8, [x29,96] + str x9, [x29,104] bl NandcWaitFlashReady - cmp w25, 1 - bhi .L986 + ldr x9, [x29,104] + ldr x8, [x29,96] + cbz w9, .L997 mov w0, 54 - str w0, [x23,2056] + str w0, [x24,2056] adrp x0, .LANCHOR0+764 mov w1, -1 ldrb w0, [x0,#:lo12:.LANCHOR0+764] - str w0, [x23,2052] + str w0, [x24,2052] mov w0, 22 - str wzr, [x23,2048] - str w0, [x23,2056] - mov w0, w20 + str wzr, [x24,2048] + str w0, [x24,2056] + mov w0, w21 bl FlashReadCmd - b .L987 -.L986: + b .L998 +.L997: + mov w0, 190 + cbnz w8, .L1046 mov w0, 56 - str w0, [x23,2056] -.L987: - mov w0, w24 - add w20, w20, 1 +.L1046: + str w0, [x24,2056] +.L998: + mov w0, w22 + add w21, w21, 1 bl NandcWaitFlashReady - uxtb w20, w20 - b .L948 + uxtb w21, w21 + b .L954 +.L957: + mov w0, 120 + str w0, [x24,2056] + str wzr, [x24,2052] + mov w0, 23 + str wzr, [x24,2052] + mov w1, 25 + str wzr, [x24,2052] + add x6, x20, 788 + str w0, [x24,2056] + mov w0, 4 + str w0, [x24,2056] + str w1, [x24,2056] + mov w1, 218 + str w1, [x24,2056] + mov w1, 21 + str wzr, [x24,2056] + str wzr, [x24,2052] + str wzr, [x24,2052] + str w1, [x24,2052] + str w0, [x24,2052] + str wzr, [x24,2052] + b .L1001 .size HynixGetReadRetryDefault, .-HynixGetReadRetryDefault .align 2 .global FlashGetReadRetryDefault @@ -7164,15 +7338,15 @@ FlashGetReadRetryDefault: stp x29, x30, [sp, -16]! mov w1, w0 add x29, sp, 0 - cbz w0, .L1026 + cbz w0, .L1048 sub w2, w0, #1 - cmp w2, 6 - bhi .L1028 + cmp w2, 7 + bhi .L1050 bl HynixGetReadRetryDefault - b .L1026 -.L1028: + b .L1048 +.L1050: cmp w0, 49 - bne .L1029 + bne .L1051 adrp x0, .LANCHOR0 mov w2, 64 add x0, x0, :lo12:.LANCHOR0 @@ -7185,30 +7359,30 @@ FlashGetReadRetryDefault: adrp x1, .LANCHOR1 add x1, x1, :lo12:.LANCHOR1 add x1, x1, 408 - b .L1044 -.L1029: + b .L1066 +.L1051: sub w0, w0, #65 cmp w0, 1 - bls .L1035 + bls .L1057 cmp w1, 33 - bne .L1030 -.L1035: + bne .L1052 +.L1057: adrp x0, .LANCHOR0 add x0, x0, :lo12:.LANCHOR0 strb w1, [x0,760] mov w1, 4 - b .L1045 -.L1030: + b .L1067 +.L1052: cmp w1, 67 - beq .L1036 + beq .L1058 cmp w1, 34 - bne .L1032 -.L1036: + bne .L1054 +.L1058: adrp x0, .LANCHOR0 add x0, x0, :lo12:.LANCHOR0 strb w1, [x0,760] mov w1, 5 -.L1045: +.L1067: strb w1, [x0,761] mov w1, 7 strb w1, [x0,762] @@ -7217,13 +7391,13 @@ FlashGetReadRetryDefault: add x0, x0, 764 add x1, x1, 256 mov w2, 45 - b .L1044 -.L1032: + b .L1066 +.L1054: cmp w1, 68 - beq .L1037 + beq .L1059 cmp w1, 35 - bne .L1026 -.L1037: + bne .L1048 +.L1059: adrp x0, .LANCHOR0 mov w2, 95 add x0, x0, :lo12:.LANCHOR0 @@ -7236,9 +7410,9 @@ FlashGetReadRetryDefault: adrp x1, .LANCHOR1 add x1, x1, :lo12:.LANCHOR1 add x1, x1, 304 -.L1044: +.L1066: bl ftl_memcpy -.L1026: +.L1048: ldp x29, x30, [sp], 16 ret .size FlashGetReadRetryDefault, .-FlashGetReadRetryDefault @@ -7258,36 +7432,36 @@ NandcXferComp: ldr x19, [x2,x0] ldr w0, [x1,1868] cmp w0, 3 - bls .L1077 + bls .L1099 ldr w0, [x19,16] - tbz x0, 2, .L1077 + tbz x0, 2, .L1099 mov x0, x19 bl wait_for_nandc_xfer_completed ldr w21, [x19,16] ldr w0, [x19,8] ubfx x21, x21, 1, 1 str w0, [x29,64] - cbz w21, .L1048 + cbz w21, .L1070 adrp x22, .LC86 adrp x23, .LC87 mov w21, 0 add x22, x22, :lo12:.LC86 add x23, x23, :lo12:.LC87 -.L1049: +.L1071: ldr w2, [x19,28] ldr w1, [x29,64] ubfx x2, x2, 16, 5 ubfx x1, x1, 22, 6 cmp w2, w1 - bge .L1057 + bge .L1079 add x0, x20, :lo12:.LANCHOR0 ldr w0, [x0,1868] cmp w0, 5 - bhi .L1050 -.L1053: + bhi .L1072 +.L1075: add w21, w21, 1 and w0, w21, 16777215 - cbnz w0, .L1049 + cbnz w0, .L1071 ldr w2, [x19,28] mov w1, w21 ldr w3, [x29,64] @@ -7300,19 +7474,19 @@ NandcXferComp: mov w2, 4 mov w3, 512 bl rknand_print_hex - b .L1049 -.L1050: + b .L1071 +.L1072: ldr w0, [x19] str w0, [x29,72] ldr w0, [x29,72] - tbz x0, 13, .L1053 + tbz x0, 13, .L1075 ldr w0, [x29,72] - tbz x0, 17, .L1053 -.L1057: + tbz x0, 17, .L1075 +.L1079: add x19, x20, :lo12:.LANCHOR0 - add x19, x19, 1880 + add x19, x19, 1888 ldr w0, [x19,40] - cbz w0, .L1058 + cbz w0, .L1080 ldr w1, [x29,64] mov w2, 0 ldr w0, [x19,32] @@ -7325,20 +7499,20 @@ NandcXferComp: ubfx x1, x1, 22, 5 lsl w1, w1, 7 bl rknand_dma_unmap_single - b .L1058 -.L1048: + b .L1080 +.L1070: adrp x22, .LC88 adrp x23, .LC87 add x22, x22, :lo12:.LC88 add x23, x23, :lo12:.LC87 -.L1059: +.L1081: ldr w0, [x29,64] - tbnz x0, 20, .L1085 + tbnz x0, 20, .L1107 ldr w0, [x19,8] add w21, w21, 1 str w0, [x29,64] and w0, w21, 16777215 - cbnz w0, .L1059 + cbnz w0, .L1081 ldr w2, [x29,64] mov w1, w21 ldr w3, [x19,28] @@ -7350,18 +7524,18 @@ NandcXferComp: mov w2, 4 mov w3, 512 bl rknand_print_hex - b .L1059 -.L1085: + b .L1081 +.L1107: add x0, x20, :lo12:.LANCHOR0 - ldr w0, [x0,1928] - cbz w0, .L1062 + ldr w0, [x0,1936] + cbz w0, .L1084 mov x0, x19 bl NandcSendDumpDataStart -.L1062: +.L1084: add x21, x20, :lo12:.LANCHOR0 - add x21, x21, 1880 + add x21, x21, 1888 ldr w0, [x21,40] - cbz w0, .L1063 + cbz w0, .L1085 ldr w1, [x29,64] mov w2, 1 ldr w0, [x21,32] @@ -7374,22 +7548,22 @@ NandcXferComp: ubfx x1, x1, 22, 5 lsl w1, w1, 7 bl rknand_dma_unmap_single -.L1063: +.L1085: add x0, x20, :lo12:.LANCHOR0 - ldr w0, [x0,1928] - cbz w0, .L1058 + ldr w0, [x0,1936] + cbz w0, .L1080 mov x0, x19 bl NandcSendDumpDataDone -.L1058: +.L1080: add x20, x20, :lo12:.LANCHOR0 - str wzr, [x20,1920] - b .L1046 -.L1077: + str wzr, [x20,1928] + b .L1068 +.L1099: ldr w0, [x19,8] str w0, [x29,64] ldr w0, [x29,64] - tbz x0, 20, .L1077 -.L1046: + tbz x0, 20, .L1099 +.L1068: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldr x23, [sp,48] @@ -7417,14 +7591,14 @@ NandcXferData: uxtb w24, w2 mov x26, x3 mov x22, x4 - cbnz x0, .L1087 - cbnz x4, .L1088 + cbnz x0, .L1109 + cbnz x4, .L1110 add x0, x29, 112 mov w1, 255 mov w2, 64 add x22, x29, 112 bl ftl_memset -.L1088: +.L1110: mov w0, w25 mov w1, w21 mov w2, w24 @@ -7435,21 +7609,21 @@ NandcXferData: bl NandcXferStart mov w0, w25 bl NandcXferComp - cbnz w21, .L1089 + cbnz w21, .L1111 add x1, x19, :lo12:.LANCHOR0 ubfx x2, x24, 1, 7 mov w3, 128 add x2, x22, x2, lsl 2 - ldr w0, [x1,1932] + ldr w0, [x1,1940] cmp w0, 25 mov w0, 64 csel w3, w0, w3, cc mov w0, w21 -.L1091: +.L1113: cmp x22, x2 add w4, w0, w3 - beq .L1133 - ldr x5, [x1,1888] + beq .L1155 + ldr x5, [x1,1896] and x0, x0, 4294967292 add x22, x22, 4 ldr w0, [x5,x0] @@ -7461,29 +7635,29 @@ NandcXferData: lsr w0, w0, 24 strb w0, [x22,-1] mov w0, w4 - b .L1091 -.L1133: + b .L1113 +.L1155: add x0, x19, :lo12:.LANCHOR0 lsr w24, w24, 2 - ldr w5, [x0,1932] + ldr w5, [x0,1940] ldr w4, [x0,1868] mov w0, 0 mov w23, w0 -.L1093: +.L1115: cmp w0, w24 - bcs .L1089 - cbz w5, .L1089 + bcs .L1111 + cbz w5, .L1111 uxtw x1, w0 add x1, x1, 8 ldr w1, [x20,x1,lsl 2] str w1, [x29,104] ldr w1, [x29,104] - tbnz x1, 2, .L1117 + tbnz x1, 2, .L1139 ldr w3, [x29,104] ubfx x3, x3, 15, 1 - cbnz w3, .L1117 + cbnz w3, .L1139 cmp w4, 5 - bls .L1095 + bls .L1117 ldr w2, [x29,104] ubfx x6, x2, 3, 5 ldr w2, [x29,104] @@ -7496,20 +7670,20 @@ NandcXferData: orr w1, w3, w1, lsl 5 ldr w3, [x29,104] cmp w2, w1 - bls .L1096 + bls .L1118 ldr w1, [x29,104] ubfx x3, x3, 3, 5 ubfx x1, x1, 27, 1 orr w3, w3, w1, lsl 5 - b .L1097 -.L1096: + b .L1119 +.L1118: ubfx x1, x3, 16, 5 ldr w3, [x29,104] ubfx x3, x3, 29, 1 - b .L1132 -.L1095: + b .L1154 +.L1117: cmp w4, 3 - bls .L1097 + bls .L1119 ldr w2, [x29,104] ubfx x6, x2, 3, 5 ldr w2, [x29,104] @@ -7522,43 +7696,43 @@ NandcXferData: orr w1, w3, w1, lsl 5 ldr w3, [x29,104] cmp w2, w1 - bls .L1098 + bls .L1120 ubfx x1, x3, 3, 5 ldr w3, [x29,104] ubfx x3, x3, 28, 1 - b .L1132 -.L1098: + b .L1154 +.L1120: ubfx x1, x3, 16, 5 ldr w3, [x29,104] ubfx x3, x3, 30, 1 -.L1132: +.L1154: orr w3, w1, w3, lsl 5 -.L1097: +.L1119: cmp w23, w3 csel w23, w23, w3, cs - b .L1094 -.L1117: + b .L1116 +.L1139: mov w23, -1 -.L1094: +.L1116: add w0, w0, 1 - b .L1093 -.L1089: + b .L1115 +.L1111: str wzr, [x20,16] - b .L1100 -.L1087: + b .L1122 +.L1109: cmp w21, 1 - bne .L1131 + bne .L1153 mov w23, 0 mov w28, 2 -.L1101: +.L1123: cmp w23, w24 - bcs .L1134 + bcs .L1156 and w27, w23, 3 mov x3, x26 - cbz x26, .L1103 + cbz x26, .L1125 ubfiz x0, x23, 9, 23 add x3, x26, x0 -.L1103: +.L1125: cmp x22, xzr mov x0, x20 csel w4, w28, wzr, ne @@ -7577,11 +7751,11 @@ NandcXferData: bl NandcXferStart mov w0, w25 bl NandcXferComp - b .L1101 -.L1134: + b .L1123 +.L1156: mov w23, 0 - b .L1100 -.L1131: + b .L1122 +.L1153: mov w1, 0 mov x4, 0 mov w27, 0 @@ -7591,16 +7765,16 @@ NandcXferData: mov x5, x4 mov w23, w27 bl NandcXferStart -.L1106: +.L1128: cmp w27, w24 - bcs .L1100 + bcs .L1122 mov w0, w25 add w28, w27, 2 bl NandcXferComp ldr w0, [x20,32] cmp w28, w24 str w0, [x29,104] - bcs .L1107 + bcs .L1129 mov x4, 0 mov w0, w25 mov w1, 0 @@ -7608,9 +7782,9 @@ NandcXferData: and w3, w28, 3 mov x5, x4 bl NandcXferStart -.L1107: +.L1129: ldr w0, [x29,104] - tbnz x0, 2, .L1122 + tbnz x0, 2, .L1144 ldr w0, [x29,104] ubfx x1, x0, 3, 5 ldr w0, [x29,104] @@ -7618,16 +7792,16 @@ NandcXferData: orr w0, w1, w0, lsl 5 cmp w23, w0 csel w23, w23, w0, cs - b .L1108 -.L1122: + b .L1130 +.L1144: mov w23, -1 -.L1108: +.L1130: and w2, w27, 3 mov x3, x26 - cbz x26, .L1109 + cbz x26, .L1131 ubfiz x3, x27, 9, 23 add x3, x26, x3 -.L1109: +.L1131: cmp x22, xzr mov w0, 2 csel w4, w0, wzr, ne @@ -7637,23 +7811,23 @@ NandcXferData: mov w27, w28 add x4, x22, x4 bl NandcCopy1KB - b .L1106 -.L1100: - cbnz w21, .L1112 + b .L1128 +.L1122: + cbnz w21, .L1134 add x19, x19, :lo12:.LANCHOR0 ldr w0, [x19,1868] cmp w0, 5 - bls .L1112 + bls .L1134 ldr w0, [x20] mov w1, 8192 movk w1, 0x2, lsl 16 and w1, w0, w1 cmp w1, 139264 - bne .L1112 + bne .L1134 orr w0, w0, 131072 mov w23, -1 str w0, [x20] -.L1112: +.L1134: mov w0, w23 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -7676,7 +7850,7 @@ FlashReadRawPage: str x21, [sp,32] mov x21, x2 ldrb w20, [x0,#:lo12:.LANCHOR1+481] - cbnz w19, .L1136 + cbnz w19, .L1158 adrp x0, .LANCHOR0 add x0, x0, :lo12:.LANCHOR0 ldrb w5, [x0,9] @@ -7685,7 +7859,7 @@ FlashReadRawPage: cmp w1, w0 mov w0, 4 csel w20, w20, w0, cs -.L1136: +.L1158: mov w0, w19 str x4, [x29,48] str x1, [x29,56] @@ -7739,7 +7913,7 @@ FlashDdrTunningRead: cmp w0, 8 mov w0, 12 csel w22, w22, w0, cc - cbz w4, .L1139 + cbz w4, .L1161 mov w0, 1 bl FlashSetInterfaceMode mov w0, 1 @@ -7757,42 +7931,42 @@ FlashDdrTunningRead: ldrb w0, [x19,1844] bl NandcSetMode cmn w21, #1 - bne .L1140 -.L1149: + bne .L1162 +.L1171: mov w21, -1 - b .L1141 -.L1140: + b .L1163 +.L1162: adrp x0, .LC89 mov w1, w24 add x0, x0, :lo12:.LC89 mov w2, w21 bl printk cmp w21, 9 - bhi .L1142 + bhi .L1164 add x19, x19, x23, sxtw 4 ldr x0, [x19,24] ldr w1, [x0,3840] ldr w1, [x0] orr w1, w1, 131072 str w1, [x0] -.L1142: +.L1164: adrp x0, .LANCHOR4 add x0, x0, :lo12:.LANCHOR4 ldr w1, [x0,64] add w1, w1, 1 str w1, [x0,64] cmp w1, 2047 - bls .L1141 + bls .L1163 mov x27, 0 str wzr, [x0,64] mov x28, x27 -.L1139: +.L1161: mov w19, 0 mov w26, -1 mov w5, w19 mov w6, w19 mov w20, w19 -.L1147: +.L1169: mov w0, w22 str x5, [x29,104] str x6, [x29,112] @@ -7806,63 +7980,63 @@ FlashDdrTunningRead: ldr x6, [x29,112] cmp w0, w1 ldr x5, [x29,104] - bhi .L1143 + bhi .L1165 cmp w0, 2 - bhi .L1153 + bhi .L1175 add w20, w20, 1 cmp w20, 9 - bls .L1153 + bls .L1175 sub w19, w22, w20 mov w21, w0 mov w26, 0 - b .L1145 -.L1143: + b .L1167 +.L1165: cmp w6, w20 - bcs .L1154 + bcs .L1176 cmp w20, 7 sub w5, w19, w20 - bhi .L1155 + bhi .L1177 mov w6, w20 - b .L1154 -.L1153: + b .L1176 +.L1175: mov x27, 0 mov w19, w22 mov w21, w0 mov w26, 0 mov x28, x27 - b .L1144 -.L1154: + b .L1166 +.L1176: mov w20, 0 -.L1144: +.L1166: add w22, w22, 2 cmp w22, 69 - bls .L1147 -.L1145: + bls .L1169 +.L1167: cmp w6, w20 csel w19, w19, w5, cc - b .L1146 -.L1155: + b .L1168 +.L1177: mov w19, w5 -.L1146: - cbz w19, .L1148 +.L1168: + cbz w19, .L1170 adrp x0, .LC90 mov w1, w19 add x0, x0, :lo12:.LC90 bl printk mov w0, w19 bl NandcSetDdrPara -.L1148: - cbz w26, .L1141 +.L1170: + cbz w26, .L1163 adrp x0, .LC91 mov w1, w23 add x0, x0, :lo12:.LC91 mov w2, w24 bl printk - cbz w25, .L1149 + cbz w25, .L1171 ldr w0, [x29,124] lsr w0, w0, 8 bl NandcSetDdrPara -.L1141: +.L1163: mov w0, w21 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -7890,17 +8064,17 @@ FlashReadPage: bl FlashReadRawPage cmn w0, #1 mov w19, w0 - bne .L1165 + bne .L1187 adrp x21, .LANCHOR0 add x25, x21, :lo12:.LANCHOR0 ldrb w26, [x25,16] - cbnz w26, .L1166 -.L1168: + cbnz w26, .L1188 +.L1190: add x21, x21, :lo12:.LANCHOR0 ldrb w0, [x21,1860] - cbz w0, .L1165 - b .L1186 -.L1166: + cbz w0, .L1187 + b .L1208 +.L1188: mov w0, w20 mov w1, w22 mov x2, x24 @@ -7909,10 +8083,10 @@ FlashReadPage: bl FlashReadRawPage strb w26, [x25,16] cmn w0, #1 - beq .L1168 + beq .L1190 mov w19, w0 - b .L1165 -.L1186: + b .L1187 +.L1208: ldr x0, [x21,128] mov w1, w22 mov x2, x24 @@ -7923,20 +8097,20 @@ FlashReadPage: bl FlashDdrTunningRead cmn w0, #1 mov w19, w0 - beq .L1169 - ldrb w0, [x21,1936] + beq .L1191 + ldrb w0, [x21,1944] cmp w19, w0, lsr 1 - bls .L1165 -.L1169: + bls .L1187 +.L1191: lsr w0, w25, 8 bl NandcSetDdrPara -.L1165: +.L1187: adrp x21, .LANCHOR4 cmn w19, #1 add x21, x21, :lo12:.LANCHOR4 ldr x4, [x21,72] - bne .L1170 - cbz x4, .L1170 + bne .L1192 + cbz x4, .L1192 mov w1, w22 mov x2, x24 mov x3, x23 @@ -7950,10 +8124,10 @@ FlashReadPage: mov w3, w22 bl printk cmn w19, #1 - bne .L1170 - adrp x0, .LANCHOR0+120 - ldrb w0, [x0,#:lo12:.LANCHOR0+120] - cbz w0, .L1170 + bne .L1192 + adrp x0, .LANCHOR0+196 + ldrb w0, [x0,#:lo12:.LANCHOR0+196] + cbz w0, .L1192 mov w0, w20 bl flash_enter_slc_mode ldr x4, [x21,72] @@ -7965,7 +8139,7 @@ FlashReadPage: mov w19, w0 mov w0, w20 bl flash_exit_slc_mode -.L1170: +.L1192: mov w0, w19 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -8003,24 +8177,24 @@ FlashDdrParaScan: mov x3, x2 bl FlashReadRawPage cmn w0, #1 - beq .L1191 + beq .L1213 cmn w22, #1 - bne .L1188 -.L1191: + bne .L1210 +.L1213: add x20, x19, :lo12:.LANCHOR0 ldrb w0, [x20,1844] - tbz x0, 0, .L1188 + tbz x0, 0, .L1210 mov w0, 1 bl FlashSetInterfaceMode mov w0, 1 bl NandcSetMode strb wzr, [x20,1860] - b .L1190 -.L1188: + b .L1212 +.L1210: add x19, x19, :lo12:.LANCHOR0 mov w0, 1 strb w0, [x19,1860] -.L1190: +.L1212: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -8036,7 +8210,7 @@ FlashLoadPhyInfo: add x29, sp, 0 stp x23, x24, [sp,48] adrp x23, .LANCHOR4 - mov w24, -1 + adrp x24, .LANCHOR1 strb w0, [x29,120] mov w0, 40 strb w0, [x29,121] @@ -8047,27 +8221,27 @@ FlashLoadPhyInfo: add x0, x23, :lo12:.LANCHOR4 stp x21, x22, [sp,32] stp x25, x26, [sp,64] - stp x19, x20, [sp,16] stp x27, x28, [sp,80] - adrp x22, .LANCHOR1 - adrp x25, .LANCHOR0 - add x21, x22, :lo12:.LANCHOR1 + stp x19, x20, [sp,16] + adrp x22, .LANCHOR0 + add x24, x24, :lo12:.LANCHOR1 ldr x1, [x0,56] - add x21, x21, 472 - add x25, x25, :lo12:.LANCHOR0 + add x21, x22, :lo12:.LANCHOR0 str x1, [x0,80] mov w20, 0 str wzr, [x0,88] - mov w26, 4 + mov w25, 4 mov w0, 0 - add x28, x25, 88 - ldrh w27, [x21,10] + mov w28, -1 + add x24, x24, 472 + add x27, x21, 88 + ldr w26, [x21,12] bl flash_enter_slc_mode -.L1199: +.L1221: add w0, w20, 1 mov x19, 0 str w0, [x29,104] -.L1201: +.L1223: add x0, x29, 120 ldrb w0, [x19,x0] bl FlashBchSel @@ -8079,7 +8253,7 @@ FlashLoadPhyInfo: ldr x2, [x5,56] bl FlashReadRawPage cmn w0, #1 - bne .L1200 + bne .L1222 ldr x5, [x29,96] mov w0, 0 ldr w1, [x29,104] @@ -8087,29 +8261,29 @@ FlashLoadPhyInfo: ldr x2, [x5,56] bl FlashReadRawPage cmn w0, #1 - bne .L1200 + bne .L1222 add x19, x19, 1 cmp x19, 4 - beq .L1202 - b .L1201 -.L1203: + beq .L1224 + b .L1223 +.L1225: add x0, x2, 12 mov w1, 2036 str x2, [x29,104] - mov w24, -1 - bl JSHash + mov w28, -1 + bl js_hash ldr x2, [x29,104] ldr w1, [x2,8] cmp w1, w0 - beq .L1213 -.L1202: - subs w26, w26, #1 - add w20, w20, w27 - bne .L1199 - mov w0, w26 -.L1212: + beq .L1235 +.L1224: + subs w25, w25, #1 + add w20, w20, w26 + bne .L1221 + mov w0, w25 +.L1234: bl flash_exit_slc_mode - mov w0, w24 + mov w0, w28 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -8117,56 +8291,59 @@ FlashLoadPhyInfo: ldp x27, x28, [sp,80] ldp x29, x30, [sp], 128 ret -.L1200: +.L1222: add x19, x23, :lo12:.LANCHOR4 mov w0, 20036 movk w0, 0x4e41, lsl 16 ldr x2, [x19,80] ldr w1, [x2] cmp w1, w0 - bne .L1202 - cbnz w24, .L1203 - add x22, x22, :lo12:.LANCHOR1 - ldrh w0, [x22,482] + bne .L1224 + cbnz w28, .L1225 + add x22, x22, :lo12:.LANCHOR0 + ldr w0, [x22,12] udiv w20, w20, w0 - mov w0, w24 + mov w0, w28 add w20, w20, 1 str w20, [x19,92] - b .L1212 -.L1213: + b .L1234 +.L1235: add x1, x2, 160 - mov x0, x21 + mov x0, x24 mov w2, 32 bl ftl_memcpy ldr x1, [x19,80] mov w2, 32 - mov x0, x28 + mov x0, x27 add x1, x1, 192 bl ftl_memcpy ldr x1, [x19,80] mov w2, 852 - add x0, x25, 760 + add x0, x21, 760 add x1, x1, 224 bl ftl_memcpy + ldrh w0, [x24,10] + bl FlashBlockAlignInit str w20, [x19,88] - ldr x1, [x19,80] - ldr w0, [x1,1076] - strb w0, [x25,1860] - ldrh w0, [x21,10] - udiv w0, w20, w0 - add w2, w0, 1 - cbz w0, .L1205 - str w2, [x19,92] - b .L1206 -.L1205: + ldr w1, [x21,12] + ldr x2, [x19,80] + udiv w1, w20, w1 + ldr w0, [x2,1076] + add w1, w1, 1 + strb w0, [x21,1860] + cmp w1, 1 + bls .L1227 + str w1, [x19,92] + b .L1228 +.L1227: mov w0, 2 str w0, [x19,92] -.L1206: +.L1228: add x0, x23, :lo12:.LANCHOR4 - ldrh w1, [x1,14] - mov w24, 0 + ldrh w1, [x2,14] + mov w28, 0 strb w1, [x0,96] - b .L1202 + b .L1224 .size FlashLoadPhyInfo, .-FlashLoadPhyInfo .align 2 .global ToshibaReadRetrial @@ -8196,25 +8373,25 @@ ToshibaReadRetrial: str x0, [x29,120] add x20, x0, 8 mov x28, x0 - ldrb w0, [x2,752] + ldrb w0, [x2,120] add x20, x24, x20, lsl 8 sub w0, w0, #67 uxtb w0, w0 cmp w0, 1 - bls .L1215 + bls .L1237 ldrb w0, [x2,1860] - cbz w0, .L1216 + cbz w0, .L1238 mov w0, w22 mov w22, 1 bl NandcSetDdrMode -.L1216: +.L1238: ubfiz x0, x28, 8, 8 mov w2, 92 add x0, x24, x0 str w2, [x0,2056] mov w2, 197 str w2, [x0,2056] -.L1215: +.L1237: ldr x0, [x29,120] mov w21, 1 mov w25, -1 @@ -8223,48 +8400,48 @@ ToshibaReadRetrial: str x0, [x29,104] ubfiz x0, x28, 8, 8 str x0, [x29,96] -.L1217: +.L1239: adrp x0, .LANCHOR4 add x0, x0, :lo12:.LANCHOR4 ldrb w0, [x0,97] add w0, w0, 1 cmp w21, w0 - bcs .L1242 + bcs .L1264 add x0, x19, :lo12:.LANCHOR0 mov w1, w21 - ldrb w0, [x0,752] + ldrb w0, [x0,120] sub w0, w0, #67 uxtb w0, w0 cmp w0, 1 mov x0, x20 - bhi .L1218 + bhi .L1240 bl SandiskSetRRPara - b .L1219 -.L1218: + b .L1241 +.L1240: bl ToshibaSetRRPara -.L1219: +.L1241: add x0, x19, :lo12:.LANCHOR0 - ldrb w0, [x0,752] + ldrb w0, [x0,120] cmp w0, 34 - bne .L1220 + bne .L1242 adrp x0, .LANCHOR4 add x0, x0, :lo12:.LANCHOR4 ldrb w0, [x0,97] sub w0, w0, #3 cmp w21, w0 - bne .L1220 + bne .L1242 ldr x0, [x29,104] mov w1, 179 add x0, x24, x0 str w1, [x0,8] -.L1220: +.L1242: ldr x0, [x29,96] mov w1, 38 add x0, x24, x0 str w1, [x0,2056] mov w1, 93 str w1, [x0,2056] - cbz w22, .L1221 + cbz w22, .L1243 mov w0, 4 bl NandcSetDdrMode ldr w1, [x29,116] @@ -8275,65 +8452,65 @@ ToshibaReadRetrial: mov w28, w0 mov w0, 0 bl NandcSetDdrMode - b .L1222 -.L1221: + b .L1244 +.L1243: ldr w1, [x29,116] mov w0, w23 mov x2, x27 mov x3, x26 bl FlashReadRawPage mov w28, w0 -.L1222: +.L1244: cmn w28, #1 - beq .L1223 + beq .L1245 add x0, x19, :lo12:.LANCHOR0 cmn w25, #1 csel w25, w25, w28, ne - ldrb w0, [x0,1936] + ldrb w0, [x0,1944] add w0, w0, w0, lsl 1 cmp w28, w0, lsr 2 - bcc .L1225 + bcc .L1247 mov x26, 0 mov x27, x26 -.L1223: +.L1245: add w21, w21, 1 - b .L1217 -.L1242: + b .L1239 +.L1264: mov w28, w25 -.L1225: +.L1247: add x0, x19, :lo12:.LANCHOR0 mov w1, 0 - ldrb w0, [x0,752] + ldrb w0, [x0,120] sub w0, w0, #67 uxtb w0, w0 cmp w0, 1 mov x0, x20 - bhi .L1227 + bhi .L1249 bl SandiskSetRRPara - b .L1228 -.L1227: + b .L1250 +.L1249: bl ToshibaSetRRPara -.L1228: +.L1250: ldr x0, [x29,120] add x19, x19, :lo12:.LANCHOR0 add x0, x0, 8 add x24, x24, x0, lsl 8 mov w0, 255 str w0, [x24,8] - ldrb w0, [x19,1936] + ldrb w0, [x19,1944] add w0, w0, w0, lsl 1 cmp w28, w0, lsr 2 - bcc .L1229 + bcc .L1251 cmn w28, #1 mov w0, 256 csel w28, w28, w0, eq -.L1229: +.L1251: mov w0, w23 bl NandcWaitFlashReady - cbz w22, .L1230 + cbz w22, .L1252 mov w0, 4 bl NandcSetDdrMode -.L1230: +.L1252: mov w0, w28 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -8372,12 +8549,12 @@ SamsungReadRetrial: ldrb w21, [x2,8] add x21, x21, 8 add x21, x0, x21, lsl 8 -.L1244: +.L1266: add x0, x27, :lo12:.LANCHOR4 ldrb w0, [x0,97] add w0, w0, 1 cmp w26, w0 - bcs .L1247 + bcs .L1269 mov x0, x21 mov w1, w26 bl SamsungSetRRPara @@ -8387,34 +8564,34 @@ SamsungReadRetrial: mov x3, x23 bl FlashReadRawPage cmn w0, #1 - beq .L1245 + beq .L1267 add x1, x20, :lo12:.LANCHOR0 cmn w19, #1 csel w19, w19, w0, ne - ldrb w1, [x1,1936] + ldrb w1, [x1,1944] add w1, w1, w1, lsl 1 cmp w0, w1, lsr 2 - bcc .L1250 + bcc .L1272 mov x23, 0 mov x24, x23 -.L1245: +.L1267: add w26, w26, 1 - b .L1244 -.L1250: + b .L1266 +.L1272: mov w19, w0 -.L1247: +.L1269: mov x0, x21 mov w1, 0 add x20, x20, :lo12:.LANCHOR0 bl SamsungSetRRPara - ldrb w0, [x20,1936] + ldrb w0, [x20,1944] add w0, w0, w0, lsl 1 cmp w19, w0, lsr 2 - bcc .L1249 + bcc .L1271 cmn w19, #1 mov w0, 256 csel w19, w19, w0, eq -.L1249: +.L1271: mov w0, w19 ldr x27, [sp,80] ldp x19, x20, [sp,16] @@ -8440,17 +8617,17 @@ MicronReadRetrial: stp x23, x24, [sp,48] mov w28, w1 mov x26, x2 - ldrb w19, [x0,1936] + ldrb w19, [x0,1944] mov x22, x3 - ldrb w0, [x0,120] - cbnz w0, .L1257 + ldrb w0, [x0,196] + cbnz w0, .L1279 add w19, w19, w19, lsl 1 ubfx x19, x19, 2, 8 - b .L1258 -.L1257: + b .L1280 +.L1279: mov w0, 3 sdiv w19, w19, w0 -.L1258: +.L1280: adrp x27, .LC93 mov w25, 0 add x0, x27, :lo12:.LC93 @@ -8458,7 +8635,7 @@ MicronReadRetrial: add x20, x20, :lo12:.LANCHOR0 add x23, x20, 24 add x23, x23, x21, sxtw 4 -.L1269: +.L1291: mov w0, w21 mov w24, 0 mov w27, -1 @@ -8468,14 +8645,14 @@ MicronReadRetrial: ldr x6, [x23] mov w10, 137 lsl x8, x4, 8 -.L1259: +.L1281: adrp x0, .LANCHOR4 add x0, x0, :lo12:.LANCHOR4 ldrb w0, [x0,97] cmp w24, w0 - bcs .L1262 + bcs .L1284 add x2, x6, x8 - mov w0, 200 + mov x0, 1000 str x4, [x29,104] str x8, [x29,112] str w9, [x2,2056] @@ -8484,7 +8661,7 @@ MicronReadRetrial: str x9, [x29,128] str x10, [x29,136] str x2, [x29,144] - bl NandcDelayns + bl __const_udelay ldr x2, [x29,144] add w7, w24, 1 mov w0, w21 @@ -8504,47 +8681,47 @@ MicronReadRetrial: ldr x6, [x29,120] ldr x8, [x29,112] ldr x4, [x29,104] - beq .L1260 + beq .L1282 cmn w27, #1 csel w27, w27, w0, ne cmp w0, w19 - bcc .L1271 + bcc .L1293 mov x22, 0 mov x26, x22 -.L1260: +.L1282: mov w24, w7 - b .L1259 -.L1271: + b .L1281 +.L1293: mov x22, 0 mov w27, w0 mov x26, x22 -.L1262: +.L1284: add x1, x6, x4, lsl 8 mov w0, 239 str x1, [x29,144] str w0, [x1,2056] mov w0, 137 str w0, [x1,2052] - mov w0, 200 - bl NandcDelayns + mov x0, 1000 + bl __const_udelay ldr x1, [x29,144] cmp w27, w19 str wzr, [x1,2048] str wzr, [x1,2048] str wzr, [x1,2048] str wzr, [x1,2048] - bcc .L1264 + bcc .L1286 cmn w27, #1 mov w0, 256 csel w27, w27, w0, eq -.L1264: +.L1286: cmn w27, #1 cset w6, eq - cbnz w6, .L1273 + cbnz w6, .L1295 cmp w27, 256 cset w1, eq - cbz w1, .L1265 -.L1273: + cbz w1, .L1287 +.L1295: ldr x0, [x29,152] mov w1, w24 mov w2, w28 @@ -8552,30 +8729,30 @@ MicronReadRetrial: mov w4, w27 str x6, [x29,144] bl printk - cbnz w25, .L1267 + cbnz w25, .L1289 ldr x6, [x29,144] - cbz w6, .L1278 - ldrb w0, [x20,120] - cbz w0, .L1278 + cbz w6, .L1300 + ldrb w0, [x20,196] + cbz w0, .L1300 mov w0, w21 mov w1, 3 mov w25, 1 bl micron_auto_read_calibration_config - b .L1269 -.L1267: + b .L1291 +.L1289: mov w0, w21 mov w1, 0 bl micron_auto_read_calibration_config cmn w27, #1 mov w0, 256 csel w27, w27, w0, eq - b .L1278 -.L1265: - cbz w25, .L1278 + b .L1300 +.L1287: + cbz w25, .L1300 mov w0, w21 mov w27, 256 bl micron_auto_read_calibration_config -.L1278: +.L1300: mov w0, w27 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -8594,34 +8771,36 @@ HynixReadRetrial: stp x21, x22, [sp,32] adrp x21, .LANCHOR0 uxtb x22, w0 - stp x27, x28, [sp,80] - mov w27, w1 - add x1, x21, :lo12:.LANCHOR0 + add x0, x21, :lo12:.LANCHOR0 stp x23, x24, [sp,48] stp x25, x26, [sp,64] + stp x27, x28, [sp,80] stp x19, x20, [sp,16] mov x26, x2 - add x2, x1, 760 - ldrb w25, [x1,762] - add x0, x2, x22 - ldr x1, [x1,744] + add x2, x0, 760 + ldrb w25, [x0,762] + mov w27, w1 + ldr x0, [x0,744] + add x1, x2, x22 mov x23, x22 mov x24, x3 - ldrb w19, [x0,12] - ldrb w1, [x1,19] - cmp w1, 7 - bne .L1287 - ldrb w19, [x0,20] -.L1287: + ldrb w0, [x0,19] + ldrb w19, [x1,12] + sub w0, w0, #7 + uxtb w0, w0 + cmp w0, 1 + bhi .L1309 + ldrb w19, [x1,20] +.L1309: mov w0, w23 mov w28, 0 mov w20, -1 bl NandcWaitFlashReady add x4, x21, :lo12:.LANCHOR0 add x5, x4, 764 -.L1288: +.L1310: cmp w28, w25 - bcs .L1292 + bcs .L1314 add w19, w19, 1 ldrb w1, [x4,761] mov x2, x5 @@ -8641,42 +8820,44 @@ HynixReadRetrial: cmn w0, #1 ldr x5, [x29,104] ldr x4, [x29,96] - beq .L1290 - ldrb w1, [x4,1936] + beq .L1312 + ldrb w1, [x4,1944] cmn w20, #1 csel w20, w20, w0, ne add w1, w1, w1, lsl 1 cmp w0, w1, lsr 2 - bcc .L1297 + bcc .L1319 mov x24, 0 mov x26, x24 -.L1290: +.L1312: add w28, w28, 1 - b .L1288 -.L1297: + b .L1310 +.L1319: mov w20, w0 -.L1292: +.L1314: add x0, x21, :lo12:.LANCHOR0 add x0, x0, 760 ldr x1, [x0,-16] add x0, x0, x22 ldrb w1, [x1,19] - cmp w1, 7 - bne .L1294 + sub w1, w1, #7 + uxtb w1, w1 + cmp w1, 1 + bhi .L1316 strb w19, [x0,20] - b .L1295 -.L1294: + b .L1317 +.L1316: strb w19, [x0,12] -.L1295: +.L1317: add x21, x21, :lo12:.LANCHOR0 - ldrb w0, [x21,1936] + ldrb w0, [x21,1944] add w0, w0, w0, lsl 1 cmp w20, w0, lsr 2 - bcc .L1296 + bcc .L1318 cmn w20, #1 mov w0, 256 csel w20, w20, w0, eq -.L1296: +.L1318: mov w0, w20 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -8700,21 +8881,21 @@ FlashProgPage: mov w20, w1 mov x22, x2 ldrb w21, [x0,#:lo12:.LANCHOR1+481] - cbnz w19, .L1304 + cbnz w19, .L1326 adrp x0, .LANCHOR0 add x0, x0, :lo12:.LANCHOR0 ldrb w1, [x0,9] ldr w2, [x0,12] mul w1, w1, w2 cmp w20, w1 - bcs .L1304 + bcs .L1326 ldrb w0, [x0,8] - cbnz w0, .L1305 + cbnz w0, .L1327 sub w21, w21, #2 - b .L1304 -.L1305: + b .L1326 +.L1327: mov w21, 4 -.L1304: +.L1326: mov w0, w19 str x4, [x29,56] bl NandcWaitFlashReady @@ -8790,7 +8971,7 @@ FlashSavePhyInfo: add x0, x0, 80 bl ftl_memcpy ldr x0, [x19,80] - add x1, x20, 708 + add x1, x20, 712 mov w2, 32 add x0, x0, 96 bl ftl_memcpy @@ -8814,7 +8995,7 @@ FlashSavePhyInfo: ldr x20, [x19,80] mov w1, 2036 add x0, x20, 12 - bl JSHash + bl js_hash str w0, [x20,8] mov w0, 1592 str w0, [x20,4] @@ -8823,7 +9004,7 @@ FlashSavePhyInfo: mov w0, 0 mov w19, w21 bl flash_enter_slc_mode -.L1309: +.L1331: add x22, x24, :lo12:.LANCHOR0 mov w2, 0 mov w0, 0 @@ -8852,34 +9033,34 @@ FlashSavePhyInfo: mul w1, w19, w1 bl FlashReadRawPage cmn w0, #1 - beq .L1307 + beq .L1329 ldr x25, [x20,80] mov w0, 20036 movk w0, 0x4e41, lsl 16 ldr w1, [x25] cmp w1, w0 - bne .L1307 + bne .L1329 mov w1, 2036 add x0, x25, 12 - bl JSHash + bl js_hash ldr w1, [x25,8] cmp w1, w0 - bne .L1307 + bne .L1329 ldr w0, [x22,12] cmp w21, 1 str w26, [x20,92] mul w19, w19, w0 str w19, [x20,88] - beq .L1310 + beq .L1332 mov w21, 1 -.L1307: +.L1329: cmp w26, 4 mov w19, w26 - bne .L1309 - b .L1308 -.L1310: + bne .L1331 + b .L1330 +.L1332: mov w21, 2 -.L1308: +.L1330: mov w0, 0 bl flash_exit_slc_mode cmp w21, wzr @@ -8913,15 +9094,12 @@ FlashReadIdbDataRaw: stp x21, x22, [sp,32] stp x23, x24, [sp,48] stp x27, x28, [sp,80] - ldr w1, [x0,1856] - ldrb w27, [x0,1936] - mov w0, 12336 - movk w0, 0x5638, lsl 16 - cmp w1, w0 - bne .L1316 + ldrb w27, [x0,1944] + ldr w0, [x0,1856] + cbz w0, .L1338 mov w0, 0 bl flash_enter_slc_mode -.L1316: +.L1338: mov x0, x26 mov w1, 0 mov w2, 2048 @@ -8932,13 +9110,13 @@ FlashReadIdbDataRaw: adrp x28, .LANCHOR4 add x0, x24, :lo12:.LC94 str x0, [x29,104] -.L1317: +.L1339: add x0, x19, :lo12:.LANCHOR0 ldrb w0, [x0,9] cmp w20, w0 - bcs .L1321 + bcs .L1343 mov x22, 0 -.L1319: +.L1341: add x0, x29, 120 add x24, x19, :lo12:.LANCHOR0 add x21, x28, :lo12:.LANCHOR4 @@ -8952,18 +9130,18 @@ FlashReadIdbDataRaw: mul w1, w20, w1 bl FlashReadRawPage cmn w0, #1 - bne .L1318 + bne .L1340 add x22, x22, 1 cmp x22, 4 - bne .L1319 - b .L1320 -.L1318: + bne .L1341 + b .L1342 +.L1340: ldr x0, [x21,56] ldr w1, [x0] mov w0, 35899 movk w0, 0xfcdc, lsl 16 cmp w1, w0 - bne .L1320 + bne .L1342 ldr x0, [x29,104] mov w1, w25 bl printk @@ -8976,27 +9154,24 @@ FlashReadIdbDataRaw: strb w0, [x24,9] ldr w0, [x21,92] cmp w0, w20 - bls .L1324 + bls .L1346 mov w23, 0 str w20, [x21,92] bl FlashSavePhyInfo -.L1320: +.L1342: add w20, w20, 1 - b .L1317 -.L1324: + b .L1339 +.L1346: mov w23, 0 -.L1321: +.L1343: mov w0, w27 add x19, x19, :lo12:.LANCHOR0 bl FlashBchSel - ldr w1, [x19,1856] - mov w0, 12336 - movk w0, 0x5638, lsl 16 - cmp w1, w0 - bne .L1326 + ldr w0, [x19,1856] + cbz w0, .L1350 mov w0, 0 bl flash_exit_slc_mode -.L1326: +.L1350: mov w0, w23 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -9010,7 +9185,7 @@ FlashReadIdbDataRaw: .global FlashInit .type FlashInit, %function FlashInit: - stp x29, x30, [sp, -112]! + stp x29, x30, [sp, -96]! add x29, sp, 0 stp x21, x22, [sp,32] adrp x21, .LANCHOR4 @@ -9026,13 +9201,13 @@ FlashInit: mov w0, 32768 adrp x19, .LANCHOR0 add x20, x19, :lo12:.LANCHOR0 - adrp x25, .LC95 + adrp x24, .LC95 bl ftl_malloc str x0, [x22,104] mov w0, 4096 - add x24, x20, 24 - mov w27, 0 - mov w28, 44 + add x27, x20, 24 + mov w26, 0 + add x24, x24, :lo12:.LC95 bl ftl_malloc str x0, [x22,112] mov w0, 32768 @@ -9042,37 +9217,35 @@ FlashInit: bl ftl_malloc str x0, [x22,128] mov w0, 128 + mov w1, 50 str w0, [x20,12] mov w0, 60 - mov w1, 50 - strb w0, [x22,98] - mov x0, x23 strb wzr, [x20,1860] strb w1, [x20,9] strb wzr, [x20,8] add x20, x20, 1620 + strb w0, [x22,98] + mov x25, x20 + mov x0, x23 strb w1, [x22,96] - mov x26, x20 str wzr, [x22,92] str wzr, [x22,64] bl NandcInit - add x0, x25, :lo12:.LC95 - str x0, [x29,104] -.L1333: - uxtb w25, w27 - mov w0, w25 - bl FlashReset - ldrb w23, [x24,8] - ldr x22, [x24] - mov w0, w25 +.L1361: + uxtb w28, w26 + ldrb w23, [x27,8] + mov w0, w28 + ldr x22, [x27] ubfiz x23, x23, 8, 8 + bl FlashReset add x22, x22, x23 + mov w0, w28 bl NandcFlashCs mov w0, 144 str w0, [x22,2056] - mov w0, 200 str wzr, [x22,2052] - bl NandcDelayns + mov x0, 1000 + bl __const_udelay ldr w0, [x22,2048] strb w0, [x20] ldr w0, [x22,2048] @@ -9085,171 +9258,191 @@ FlashInit: strb w0, [x20,4] ldr w0, [x22,2048] strb w0, [x20,5] - mov w0, w25 + mov w0, w28 bl NandcFlashDeCs ldrb w2, [x20] sub w0, w2, #1 uxtb w0, w0 cmp w0, 253 - bhi .L1329 - ldr x0, [x29,104] - add w1, w27, 1 + bhi .L1357 ldrb w3, [x20,1] + mov x0, x24 ldrb w4, [x20,2] + add w1, w26, 1 ldrb w5, [x20,3] ldrb w6, [x20,4] ldrb w7, [x20,5] bl printk -.L1329: - cbnz w27, .L1330 - ldrb w0, [x26] +.L1357: + cbnz w26, .L1358 + ldrb w0, [x25] sub w0, w0, #1 uxtb w0, w0 cmp w0, 253 - bhi .L1378 - ldrb w0, [x26,1] + bhi .L1409 + ldrb w0, [x25,1] cmp w0, 255 - beq .L1378 -.L1330: + beq .L1409 +.L1358: ldrb w0, [x20] cmp w0, 181 - bne .L1332 - strb w28, [x20] -.L1332: - add w27, w27, 1 - add x24, x24, 16 - cmp w27, 4 + bne .L1360 + mov w0, 44 + strb w0, [x20] +.L1360: + add w26, w26, 1 + add x27, x27, 16 + cmp w26, 4 add x20, x20, 8 - bne .L1333 + bne .L1361 add x0, x19, :lo12:.LANCHOR0 ldrb w1, [x0,1620] cmp w1, 173 - beq .L1334 + beq .L1362 ldr w0, [x0,1864] bl NandcSetDdrMode -.L1334: - add x22, x19, :lo12:.LANCHOR0 +.L1362: + add x20, x19, :lo12:.LANCHOR0 mov w1, 0 - add x0, x22, 760 + add x0, x20, 760 mov w2, 852 - adrp x20, .LANCHOR1 bl ftl_memset - strb wzr, [x22,16] - add x0, x20, :lo12:.LANCHOR1 + strb wzr, [x20,16] + adrp x1, .LANCHOR1 + ldr w4, [x20,1872] + add x0, x1, :lo12:.LANCHOR1 add x0, x0, 472 - str x0, [x22,744] - ldrb w0, [x22,1621] - add x22, x22, 1620 + str x0, [x20,744] + mov w0, 12336 + movk w0, 0x5638, lsl 16 + cmp w4, w0 + bne .L1363 + mov w0, 1 + str w0, [x20,1856] +.L1363: + add x3, x19, :lo12:.LANCHOR0 + add x3, x3, 1620 + ldrb w0, [x3,1] cmp w0, 218 - cset w2, eq + cset w5, eq + cmp w0, 241 + cset w6, eq cmp w0, 161 - cset w1, eq - orr w1, w2, w1 - cbnz w1, .L1335 - and w1, w0, -33 - cmp w1, 209 - beq .L1335 + cset w2, eq + orr w2, w6, w2 + orr w2, w5, w2 + cbnz w2, .L1364 + and w2, w0, -3 + cmp w2, 209 + beq .L1364 cmp w0, 220 - bne .L1336 - ldrb w1, [x22,3] - cmp w1, 149 - bne .L1336 -.L1335: - add x1, x19, :lo12:.LANCHOR0 + bne .L1365 + ldrb w2, [x3,3] + cmp w2, 149 + bne .L1365 +.L1364: + add x2, x19, :lo12:.LANCHOR0 mov w3, 1 - mov w4, 16 - add x5, x1, 1620 - strb w3, [x1,8] + mov w6, 16 + add x7, x2, 1620 + strb w3, [x2,8] add x3, x21, :lo12:.LANCHOR4 - strb w4, [x1,9] - strb w4, [x3,98] - ldrb w4, [x1,1620] - add x1, x20, :lo12:.LANCHOR1 - cmp w4, 152 - strb w4, [x1,3137] - strb w0, [x1,3138] - bne .L1337 - ldrsb w1, [x5,4] - tbnz w1, #31, .L1337 - mov w1, 24 - strb w1, [x3,98] -.L1337: - add x1, x19, :lo12:.LANCHOR0 - ldr w3, [x1,1856] - cmp w3, 2049 - beq .L1380 - mov w1, 12336 - movk w1, 0x5638, lsl 16 - cmp w3, w1 - bne .L1338 -.L1380: - add x1, x21, :lo12:.LANCHOR4 + strb w6, [x2,9] + strb w6, [x3,98] + ldrb w6, [x2,1620] + add x2, x1, :lo12:.LANCHOR1 + cmp w6, 152 + strb w6, [x2,3265] + strb w0, [x2,3266] + bne .L1366 + ldrsb w2, [x7,4] + tbnz w2, #31, .L1366 + mov w2, 24 + strb w2, [x3,98] +.L1366: + cmp w4, 2049 + beq .L1412 + mov w2, 12336 + movk w2, 0x5638, lsl 16 + cmp w4, w2 + bne .L1367 +.L1412: + add x2, x21, :lo12:.LANCHOR4 mov w3, 16 - strb w3, [x1,98] -.L1338: - cbz w2, .L1340 - add x0, x20, :lo12:.LANCHOR1 - mov w1, 2048 - strh w1, [x0,3150] - mov w1, -38 - b .L1413 -.L1340: + strb w3, [x2,98] +.L1367: + cbz w5, .L1369 + add x0, x1, :lo12:.LANCHOR1 + mov w2, 2048 + strh w2, [x0,3278] + mov w2, -38 + b .L1452 +.L1369: cmp w0, 220 - bne .L1341 - add x0, x20, :lo12:.LANCHOR1 - mov w1, 4096 - strh w1, [x0,3150] - mov w1, -36 -.L1413: - strb w1, [x0,3138] -.L1341: - add x20, x20, :lo12:.LANCHOR1 + bne .L1371 + add x0, x1, :lo12:.LANCHOR1 + mov w2, 4096 + strh w2, [x0,3278] + mov w2, -36 +.L1452: + strb w2, [x0,3266] + b .L1370 +.L1371: + cmp w0, 211 + bne .L1370 + add x0, x1, :lo12:.LANCHOR1 + mov w2, 4096 + strh w2, [x0,3278] + mov w2, 2 + strb w2, [x0,3277] +.L1370: + add x20, x1, :lo12:.LANCHOR1 add x0, x19, :lo12:.LANCHOR0 - add x1, x20, 3008 + add x1, x20, 3136 mov w2, 32 add x0, x0, 88 bl ftl_memcpy add x0, x20, 472 - add x1, x20, 3136 + add x1, x20, 3264 mov w2, 32 bl ftl_memcpy -.L1336: +.L1365: add x20, x19, :lo12:.LANCHOR0 ldrb w0, [x20,8] - cbnz w0, .L1342 + cbnz w0, .L1372 bl FlashLoadPhyInfoInRam - cbnz w0, .L1344 + cbnz w0, .L1374 ldr x0, [x20,744] ldrb w1, [x0,17] and w0, w1, 7 strb w0, [x20,1844] - tbnz x1, 0, .L1344 + tbnz x1, 0, .L1374 mov w1, 1 strb w1, [x20,1860] bl FlashSetInterfaceMode ldrb w0, [x20,1844] bl NandcSetMode -.L1344: +.L1374: add x20, x19, :lo12:.LANCHOR0 ldr x0, [x20,744] ldrb w0, [x0,26] - strb w0, [x20,120] + strb w0, [x20,196] bl FlashLoadPhyInfo - cbz w0, .L1342 + cbz w0, .L1372 ldr w0, [x20,1864] - cbz w0, .L1347 + cbz w0, .L1377 mov w0, 1 bl FlashSetInterfaceMode mov w0, 1 - b .L1414 -.L1347: + b .L1449 +.L1377: ldrb w0, [x20,1844] bl FlashSetInterfaceMode ldrb w0, [x20,1844] -.L1414: +.L1449: bl NandcSetMode bl FlashLoadPhyInfo - cbz w0, .L1342 + cbz w0, .L1372 mov w0, 1 add x20, x19, :lo12:.LANCHOR0 bl FlashSetInterfaceMode @@ -9262,7 +9455,7 @@ FlashInit: bl printk bl FlashLoadPhyInfoInRam cmn w0, #1 - beq .L1331 + beq .L1359 bl FlashDieInfoInit ldr x0, [x20,744] ldrb w0, [x0,19] @@ -9273,34 +9466,34 @@ FlashInit: ldrb w2, [x0,9] add w1, w1, 4095 cmp w2, w1, lsr 12 - blt .L1349 + blt .L1379 ldrh w1, [x0,14] add w1, w1, 255 cmp w2, w1, lsr 8 - bge .L1350 -.L1349: + bge .L1380 +.L1379: ldrh w1, [x0,14] and w1, w1, -256 strh w1, [x0,14] -.L1350: +.L1380: add x0, x19, :lo12:.LANCHOR0 ldrb w0, [x0,1844] tst w0, 6 - beq .L1351 + beq .L1381 bl FlashSavePhyInfo add x1, x21, :lo12:.LANCHOR4 mov w0, 0 ldr w1, [x1,88] bl FlashDdrParaScan -.L1351: +.L1381: bl FlashSavePhyInfo -.L1342: +.L1372: add x20, x19, :lo12:.LANCHOR0 add x22, x21, :lo12:.LANCHOR4 ldr x2, [x20,744] str xzr, [x22,72] ldrb w0, [x2,26] - strb w0, [x20,120] + strb w0, [x20,196] ldrh w0, [x2,16] ldrh w3, [x2,10] ubfx x1, x0, 7, 1 @@ -9308,7 +9501,7 @@ FlashInit: ubfx x1, x0, 3, 1 strb w1, [x22,136] ubfx x1, x0, 4, 1 - strb w1, [x20,1937] + strb w1, [x20,1945] ldrb w1, [x2,12] ubfx x0, x0, 8, 3 strb w0, [x20,1844] @@ -9318,85 +9511,91 @@ FlashInit: bl FlashDieInfoInit ldr x0, [x20,744] ldrh w1, [x0,16] - tbz x1, 6, .L1353 + tbz x1, 6, .L1383 ldrb w0, [x0,19] ldrb w1, [x20,762] strb w1, [x22,97] sub w1, w0, #1 ldrb w2, [x20,761] uxtb w1, w1 - strb w0, [x20,752] - strb w2, [x20,753] - cmp w1, 6 - bhi .L1354 + strb w0, [x20,120] + strb w2, [x20,121] + cmp w1, 7 + bhi .L1384 adrp x1, HynixReadRetrial + cmp w0, 8 add x1, x1, :lo12:HynixReadRetrial str x1, [x22,72] sub w1, w0, #5 + cset w2, eq uxtb w1, w1 cmp w1, 1 - bhi .L1355 - mov w1, 1 - str w1, [x20,1928] - b .L1356 -.L1355: + bls .L1413 + cbz w2, .L1385 +.L1413: + add x1, x19, :lo12:.LANCHOR0 + mov w3, 1 + str w3, [x1,1936] +.L1385: cmp w0, 7 - add x20, x20, 788 - beq .L1357 -.L1356: - add x20, x19, :lo12:.LANCHOR0 - add x20, x20, 780 -.L1357: - mov x1, 0 - mov w2, w1 -.L1359: - ldrsb w3, [x20,x1] - add x1, x1, 1 - cmp w3, wzr - csinc w2, w2, w2, ne - cmp x1, 32 - bne .L1359 - cmp w2, 27 - bls .L1353 + add x1, x19, :lo12:.LANCHOR0 + beq .L1411 + cbnz w2, .L1411 + add x1, x1, 780 + b .L1388 +.L1411: + add x1, x1, 788 +.L1388: + mov x2, 0 + mov w3, w2 +.L1390: + ldrsb w4, [x1,x2] + add x2, x2, 1 + cmp w4, wzr + csinc w3, w3, w3, ne + cmp x2, 32 + bne .L1390 + cmp w3, 27 + bls .L1383 bl FlashGetReadRetryDefault bl FlashSavePhyInfo - b .L1353 -.L1354: + b .L1383 +.L1384: sub w1, w0, #17 uxtb w1, w1 cmp w1, 2 - bhi .L1361 + bhi .L1392 adrp x1, MicronReadRetrial cmp w0, 19 add x1, x1, :lo12:MicronReadRetrial str x1, [x22,72] - beq .L1362 + beq .L1393 mov w0, 7 - b .L1415 -.L1362: + b .L1450 +.L1393: mov w0, 15 -.L1415: +.L1450: strb w0, [x22,97] - b .L1353 -.L1361: + b .L1383 +.L1392: sub w1, w0, #65 uxtb w1, w1 cmp w1, 1 - bls .L1381 + bls .L1414 cmp w0, 33 - bne .L1363 -.L1381: + bne .L1394 +.L1414: add x0, x21, :lo12:.LANCHOR4 adrp x1, ToshibaReadRetrial add x1, x1, :lo12:ToshibaReadRetrial mov w2, 4 str x1, [x0,72] add x1, x19, :lo12:.LANCHOR0 - strb w2, [x1,753] + strb w2, [x1,121] mov w1, 7 strb w1, [x0,97] - b .L1353 -.L1363: + b .L1383 +.L1394: sub w1, w0, #67 uxtb w1, w1 cmp w1, 1 @@ -9404,89 +9603,89 @@ FlashInit: cset w2, ls uxtb w1, w1 cmp w1, 1 - bls .L1382 - cbz w2, .L1365 -.L1382: + bls .L1415 + cbz w2, .L1396 +.L1415: add x3, x21, :lo12:.LANCHOR4 adrp x1, ToshibaReadRetrial add x1, x1, :lo12:ToshibaReadRetrial cmp w0, 35 str x1, [x3,72] - beq .L1367 + beq .L1398 cmp w0, 68 - beq .L1367 + beq .L1398 mov w0, 7 strb w0, [x3,97] - b .L1368 -.L1367: + b .L1399 +.L1398: add x0, x21, :lo12:.LANCHOR4 mov w1, 17 strb w1, [x0,97] -.L1368: +.L1399: add x0, x19, :lo12:.LANCHOR0 mov w1, 4 - cbnz w2, .L1416 + cbnz w2, .L1451 mov w1, 5 -.L1416: - strb w1, [x0,753] - b .L1353 -.L1365: +.L1451: + strb w1, [x0,121] + b .L1383 +.L1396: cmp w0, 49 - bne .L1353 + bne .L1383 adrp x0, SamsungReadRetrial add x0, x0, :lo12:SamsungReadRetrial str x0, [x22,72] -.L1353: +.L1383: add x0, x19, :lo12:.LANCHOR0 mov w1, 12336 movk w1, 0x5638, lsl 16 - ldr w2, [x0,1856] + ldr w2, [x0,1872] cmp w2, w1 - bne .L1370 - ldrb w1, [x0,120] - cbz w1, .L1370 + bne .L1401 + ldrb w1, [x0,196] + cbz w1, .L1401 ldr x0, [x0,744] strb wzr, [x0,18] -.L1370: +.L1401: add x0, x19, :lo12:.LANCHOR0 ldrb w1, [x0,1620] cmp w1, 44 - bne .L1371 + bne .L1402 ldrb w1, [x0,1860] - cbz w1, .L1371 + cbz w1, .L1402 mov w1, 12336 movk w1, 0x5638, lsl 16 cmp w2, w1 - bne .L1372 - ldrb w0, [x0,120] - cbnz w0, .L1371 -.L1372: + bne .L1403 + ldrb w0, [x0,196] + cbnz w0, .L1402 +.L1403: add x0, x19, :lo12:.LANCHOR0 strb wzr, [x0,1860] mov w0, 1 bl FlashSetInterfaceMode mov w0, 1 bl NandcSetMode -.L1371: - mov w0, 0 - bl flash_enter_slc_mode +.L1402: add x1, x19, :lo12:.LANCHOR0 ldrb w0, [x1,1844] tst w0, 6 - beq .L1373 + beq .L1404 ldrb w1, [x1,1860] - cbnz w1, .L1374 - tbnz x0, 0, .L1373 -.L1374: - add x21, x21, :lo12:.LANCHOR4 + cbnz w1, .L1405 + tbnz x0, 0, .L1404 +.L1405: mov w0, 0 + add x21, x21, :lo12:.LANCHOR4 + bl flash_enter_slc_mode ldr w1, [x21,88] + mov w0, 0 bl FlashDdrParaScan -.L1373: - add x19, x19, :lo12:.LANCHOR0 mov w0, 0 - mov w20, 16 bl flash_exit_slc_mode +.L1404: + add x19, x19, :lo12:.LANCHOR0 + mov w20, 16 ldr x0, [x19,744] ldrb w0, [x0,20] bl FlashBchSel @@ -9530,7 +9729,7 @@ FlashInit: ldrb w5, [x19,8] strh w2, [x19,190] cmp w5, 1 - bne .L1376 + bne .L1407 lsl w2, w2, 1 lsr w4, w4, 1 lsl w3, w3, 1 @@ -9540,21 +9739,21 @@ FlashInit: strh w4, [x19,182] strh w3, [x19,188] strh w2, [x19,194] -.L1376: +.L1407: ldrb w0, [x1,20] bl FlashBchSel bl ftl_flash_suspend mov w0, 0 - b .L1331 -.L1378: + b .L1359 +.L1409: mov w0, -2 -.L1331: +.L1359: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] ldp x25, x26, [sp,64] ldp x27, x28, [sp,80] - ldp x29, x30, [sp], 112 + ldp x29, x30, [sp], 96 ret .size FlashInit, .-FlashInit .align 2 @@ -9563,65 +9762,66 @@ FlashInit: FlashPageProgMsbFFData: stp x29, x30, [sp, -80]! add x29, sp, 0 - stp x19, x20, [sp,16] - uxth w19, w2 - adrp x2, .LANCHOR0 stp x21, x22, [sp,32] - uxtb w21, w0 - add x0, x2, :lo12:.LANCHOR0 + adrp x21, .LANCHOR0 stp x23, x24, [sp,48] + uxtb w23, w0 + add x0, x21, :lo12:.LANCHOR0 + stp x19, x20, [sp,16] stp x25, x26, [sp,64] - mov x23, x2 - ldr x3, [x0,744] - ldrb w4, [x0,120] - ldrb w3, [x3,19] - cbz w4, .L1418 - ldr w2, [x0,1856] - mov w0, 12336 - movk w0, 0x5638, lsl 16 - cmp w2, w0 - beq .L1417 -.L1418: - sub w2, w3, #5 + uxth w19, w2 + ldr x2, [x0,744] + ldrb w22, [x2,19] + ldrb w2, [x0,196] + cbz w2, .L1454 + ldr w0, [x0,1856] + cbnz w0, .L1453 +.L1454: + sub w0, w22, #5 + uxtb w0, w0 + cmp w0, 3 + bls .L1455 + cmp w22, 68 + beq .L1455 + sub w2, w22, #19 + and w2, w2, -17 uxtb w2, w2 - cmp w2, 2 - bls .L1419 - cmp w3, 68 - beq .L1419 - sub w3, w3, #19 - and w3, w3, -17 - uxtb w3, w3 - cbnz w3, .L1417 -.L1419: + cbnz w2, .L1453 +.L1455: adrp x20, .LANCHOR2 - mov w24, w1 + mov w25, w1 add x20, x20, :lo12:.LANCHOR2 - mov w25, 65535 + mov w26, 65535 add x20, x20, 988 - adrp x26, .LANCHOR4 -.L1421: - add x0, x23, :lo12:.LANCHOR0 + adrp x24, .LANCHOR4 +.L1457: + add x0, x21, :lo12:.LANCHOR0 ldr x0, [x0,744] ldrh w0, [x0,10] cmp w0, w19 - bls .L1417 + bls .L1453 ldrh w0, [x20,w19,sxtw 1] - cmp w0, w25 - bne .L1417 - add x22, x26, :lo12:.LANCHOR4 + cmp w0, w26 + bne .L1453 + add x0, x24, :lo12:.LANCHOR4 + cmp w22, 8 + mov w1, 0 + ldr x0, [x0,104] + beq .L1467 mov w1, 255 +.L1467: mov w2, 32768 - ldr x0, [x22,104] bl ftl_memset - ldr x2, [x22,104] - add w1, w19, w24 - mov w0, w21 - mov x3, 0 + add x0, x24, :lo12:.LANCHOR4 + add w1, w19, w25 add w19, w19, 1 - bl FlashProgPage + ldr x2, [x0,104] + mov w0, w23 uxth w19, w19 - b .L1421 -.L1417: + mov x3, x2 + bl FlashProgPage + b .L1457 +.L1453: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -9652,9 +9852,9 @@ FlashReadSlc2KPages: add x21, x21, :lo12:.LANCHOR0 add x23, x23, :lo12:.LC97 add x24, x24, :lo12:.LC99 -.L1427: +.L1469: cmp w22, w25 - beq .L1461 + beq .L1503 mov w1, w27 sub w4, w25, w22 mov x0, x19 @@ -9665,11 +9865,11 @@ FlashReadSlc2KPages: adrp x5, .LANCHOR0 ldrb w1, [x21,1845] cmp w0, w1 - bcc .L1428 + bcc .L1470 mov w0, -1 str w0, [x19] - b .L1429 -.L1428: + b .L1471 +.L1470: add x0, x21, x0, uxtw ldrb w28, [x0,1848] str x5, [x29,96] @@ -9715,64 +9915,64 @@ FlashReadSlc2KPages: add x0, x5, :lo12:.LANCHOR0 cmp w20, w6 csel w3, w20, w6, cs - ldrb w0, [x0,1936] + ldrb w0, [x0,1944] add w0, w0, w0, lsl 1 cmp w3, w0, lsr 2 - bls .L1432 + bls .L1474 cmn w3, #1 mov w0, 256 csel w3, w3, w0, eq -.L1432: +.L1474: cmp w3, 256 - beq .L1443 + beq .L1485 cmn w3, #1 - bne .L1433 -.L1443: + bne .L1475 +.L1485: str w3, [x19] - b .L1435 -.L1433: + b .L1477 +.L1475: str wzr, [x19] -.L1435: +.L1477: ldr x0, [x19,16] - cbz x0, .L1436 + cbz x0, .L1478 ldr w1, [x0,12] cmn w1, #1 - bne .L1436 + bne .L1478 ldr w1, [x0,8] cmn w1, #1 - bne .L1436 + bne .L1478 ldr w0, [x0] cmn w0, #1 - beq .L1436 + beq .L1478 str w1, [x19] -.L1436: +.L1478: ldr w3, [x19] cmn w3, #1 - bne .L1429 + bne .L1471 add x5, x5, :lo12:.LANCHOR0 ldr w1, [x19,4] mov x0, x23 - ldrb w2, [x5,1936] + ldrb w2, [x5,1944] bl printk ldr x1, [x19,8] - cbz x1, .L1438 + cbz x1, .L1480 adrp x0, .LC98 mov w2, 4 add x0, x0, :lo12:.LC98 mov w3, 8 bl rknand_print_hex -.L1438: +.L1480: ldr x1, [x19,16] - cbz x1, .L1429 + cbz x1, .L1471 mov w2, 4 mov x0, x24 mov w3, w2 bl rknand_print_hex -.L1429: +.L1471: add w22, w22, 1 add x19, x19, 56 - b .L1427 -.L1461: + b .L1469 +.L1503: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -9804,10 +10004,10 @@ FlashReadPages: ldrb w23, [x3,8] str w2, [x29,140] str w4, [x29,136] - cbz w23, .L1502 + cbz w23, .L1544 bl FlashReadSlc2KPages - b .L1551 -.L1502: + b .L1593 +.L1544: adrp x0, .LC97 mov w24, w23 add x0, x0, :lo12:.LC97 @@ -9818,10 +10018,10 @@ FlashReadPages: adrp x0, .LC100 add x0, x0, :lo12:.LC100 str x0, [x29,112] -.L1463: +.L1505: ldr w0, [x29,144] cmp w24, w0 - bcs .L1553 + bcs .L1595 mov w27, 56 ldr w0, [x29,144] ldr w1, [x29,140] @@ -9838,11 +10038,11 @@ FlashReadPages: ldr w0, [x29,168] ldrb w2, [x1,1845] cmp w0, w2 - bcc .L1465 + bcc .L1507 mov w0, -1 str w0, [x26,x27] - b .L1466 -.L1465: + b .L1508 +.L1507: add x0, x1, x0, uxtw adrp x25, .LANCHOR4 ldrb w19, [x0,1848] @@ -9855,29 +10055,31 @@ FlashReadPages: bl NandcWaitFlashReady ldr x1, [x29,152] ldr x0, [x1,744] - ldrb w2, [x0,19] - sub w0, w2, #1 - uxtb w0, w0 - cmp w0, 6 - bhi .L1468 - add x1, x1, 760 - sxtw x0, w19 - add x1, x1, x0 + ldrb w0, [x0,19] + sub w2, w0, #1 + uxtb w2, w2 cmp w2, 7 + bhi .L1510 + sub w0, w0, #7 + add x1, x1, 760 + sxtw x4, w19 + add x1, x1, x4 + uxtb w0, w0 + cmp w0, 1 ldrb w3, [x1,12] - bne .L1469 + bhi .L1511 ldrb w3, [x1,20] -.L1469: +.L1511: add x2, x22, :lo12:.LANCHOR0 - add x0, x2, x0 - ldrb w0, [x0,1616] + add x4, x2, x4 + ldrb w0, [x4,1616] cmp w0, w3 - beq .L1468 + beq .L1510 ldrb w1, [x2,761] mov w0, w19 add x2, x2, 764 bl HynixSetRRPara -.L1468: +.L1510: mov w0, w19 bl NandcFlashCs ldr w0, [x29,140] @@ -9885,38 +10087,38 @@ FlashReadPages: cset w0, eq orr w0, w0, w28, lsr 31 str w0, [x29,152] - cbz w0, .L1470 + cbz w0, .L1512 add x0, x22, :lo12:.LANCHOR0 - ldrb w0, [x0,120] - cbz w0, .L1470 + ldrb w0, [x0,196] + cbz w0, .L1512 mov w0, w19 bl flash_enter_slc_mode - b .L1471 -.L1470: + b .L1513 +.L1512: mov w0, w19 bl flash_exit_slc_mode -.L1471: +.L1513: cmp w19, 255 ldr w1, [x29,172] - bne .L1509 + bne .L1551 cmn w1, #1 cset w0, ne - cbz w0, .L1503 -.L1509: - cbz w20, .L1475 + cbz w0, .L1545 +.L1551: + cbz w20, .L1517 add x0, x22, :lo12:.LANCHOR0 ldr w2, [x0,12] mov w0, w19 add w2, w1, w2 bl FlashReadDpCmd - b .L1476 -.L1475: + b .L1518 +.L1517: mov w0, w19 bl FlashReadCmd - b .L1476 -.L1503: + b .L1518 +.L1545: mov w20, w0 -.L1473: +.L1515: ldrb w2, [x29,148] mov w0, w19 ldr x3, [x21,8] @@ -9925,15 +10127,15 @@ FlashReadPages: bl NandcXferData cmn w0, #1 mov w28, w0 - bne .L1477 + bne .L1519 add x0, x22, :lo12:.LANCHOR0 ldrb w1, [x0,16] - cbz w1, .L1477 + cbz w1, .L1519 strb wzr, [x0,16] mov w20, 0 - b .L1471 -.L1477: - cbz w20, .L1478 + b .L1513 +.L1519: + cbz w20, .L1520 add x0, x22, :lo12:.LANCHOR0 ldr w1, [x29,172] ldr w2, [x0,12] @@ -9953,22 +10155,22 @@ FlashReadPages: cmn w0, #1 mov w23, w0 csel w20, w20, wzr, ne -.L1478: +.L1520: mov w0, w19 bl NandcFlashDeCs add x6, x22, :lo12:.LANCHOR0 ldrb w0, [x29,136] cmn w28, #1 strb w0, [x6,16] - bne .L1485 + bne .L1527 ldrb w0, [x6,1860] - cbnz w0, .L1480 -.L1484: + cbnz w0, .L1522 +.L1526: add x0, x25, :lo12:.LANCHOR4 ldr x20, [x0,72] - cbnz x20, .L1481 - b .L1554 -.L1480: + cbnz x20, .L1523 + b .L1596 +.L1522: ldr x0, [x6,128] mov w4, 1 ldr w1, [x29,172] @@ -9980,18 +10182,18 @@ FlashReadPages: bl FlashDdrTunningRead cmn w0, #1 mov w28, w0 - beq .L1483 + beq .L1525 ldr x6, [x29,104] - ldrb w0, [x6,1936] + ldrb w0, [x6,1944] cmp w28, w0, lsr 1 - bls .L1505 -.L1483: + bls .L1547 +.L1525: lsr w0, w20, 8 bl NandcSetDdrPara cmn w28, #1 - beq .L1484 - b .L1505 -.L1481: + beq .L1526 + b .L1547 +.L1523: ldr w1, [x29,172] mov w0, w19 ldr x2, [x21,8] @@ -10000,20 +10202,20 @@ FlashReadPages: cmn w0, #1 mov w28, w0 mov w20, 0 - bne .L1486 + bne .L1528 add x2, x22, :lo12:.LANCHOR0 ldr x0, [x2,744] ldrb w0, [x0,19] sub w0, w0, #1 uxtb w0, w0 - cmp w0, 6 - bhi .L1487 + cmp w0, 7 + bhi .L1529 ldrb w1, [x2,761] mov w0, w19 add x2, x2, 764 mov w3, w20 bl HynixSetRRPara -.L1487: +.L1529: ldr w1, [x29,172] mov w0, w19 ldr x2, [x21,8] @@ -10026,22 +10228,22 @@ FlashReadPages: ldr w1, [x21,4] mov w3, w28 str x4, [x29,104] - ldrb w2, [x4,1936] + ldrb w2, [x4,1944] bl printk cmn w28, #1 ldr x4, [x29,104] - bne .L1486 - ldrb w0, [x4,120] - cbz w0, .L1486 + bne .L1528 + ldrb w0, [x4,196] + cbz w0, .L1528 ldr w0, [x29,152] - cbz w0, .L1488 + cbz w0, .L1530 mov w0, w19 bl flash_enter_slc_mode - b .L1489 -.L1488: + b .L1531 +.L1530: mov w0, w19 bl flash_exit_slc_mode -.L1489: +.L1531: add x0, x25, :lo12:.LANCHOR4 ldr w1, [x29,172] ldr x2, [x21,8] @@ -10051,102 +10253,102 @@ FlashReadPages: mov w0, w19 blr x4 mov w28, w0 - b .L1486 -.L1554: + b .L1528 +.L1596: ldr w1, [x29,172] mov w0, w19 ldr x2, [x21,8] ldr x3, [x21,16] bl FlashReadRawPage mov w28, w0 - b .L1486 -.L1505: + b .L1528 +.L1547: mov w20, 0 -.L1485: +.L1527: add x0, x22, :lo12:.LANCHOR0 - ldrb w0, [x0,1936] + ldrb w0, [x0,1944] add w0, w0, w0, lsl 1 cmp w28, w0, lsr 2 - bls .L1486 + bls .L1528 add x0, x25, :lo12:.LANCHOR4 ldr x0, [x0,72] cmp x0, xzr mov w0, 256 csel w28, w28, w0, ne -.L1486: +.L1528: cmp w28, 256 - beq .L1510 + beq .L1552 cmn w28, #1 - bne .L1490 -.L1510: + bne .L1532 +.L1552: str w28, [x26,x27] - b .L1492 -.L1490: + b .L1534 +.L1532: str wzr, [x26,x27] -.L1492: +.L1534: ldr w3, [x26,x27] cmn w3, #1 - bne .L1494 + bne .L1536 add x2, x22, :lo12:.LANCHOR0 ldr w1, [x21,4] ldr x0, [x29,128] - ldrb w2, [x2,1936] + ldrb w2, [x2,1944] bl printk ldr x1, [x21,16] - cbz x1, .L1494 + cbz x1, .L1536 mov w2, 4 ldr x0, [x29,120] mov w3, w2 bl rknand_print_hex -.L1494: - cbz w20, .L1496 +.L1536: + cbz w20, .L1538 add x0, x22, :lo12:.LANCHOR0 - ldrb w0, [x0,1936] + ldrb w0, [x0,1944] add w0, w0, w0, lsl 1 cmp w23, w0, lsr 2 - bls .L1497 + bls .L1539 add x25, x25, :lo12:.LANCHOR4 ldr x0, [x25,72] cmp x0, xzr mov w0, 256 csel w23, w23, w0, ne -.L1497: +.L1539: add w0, w24, 1 mov w1, 56 cmp w23, 256 umull x0, w0, w1 - beq .L1511 + beq .L1553 cmn w23, #1 - bne .L1498 -.L1511: + bne .L1540 +.L1553: str w23, [x26,x0] - b .L1496 -.L1498: + b .L1538 +.L1540: str wzr, [x26,x0] -.L1496: +.L1538: ldr w0, [x29,152] add w24, w24, w20 - cbz w0, .L1466 + cbz w0, .L1508 add x0, x22, :lo12:.LANCHOR0 - ldrb w0, [x0,120] - cbz w0, .L1466 + ldrb w0, [x0,196] + cbz w0, .L1508 mov w0, w19 bl flash_exit_slc_mode -.L1466: +.L1508: add w24, w24, 1 - b .L1463 -.L1553: + b .L1505 +.L1595: mov w0, 0 - b .L1551 -.L1476: + b .L1593 +.L1518: mov w0, w19 bl NandcWaitFlashReady - cbz w20, .L1473 + cbz w20, .L1515 ldr w1, [x29,172] mov w0, w19 bl FlashReadDpDataOutCmd - b .L1473 -.L1551: + b .L1515 +.L1593: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -10190,18 +10392,18 @@ FlashLoadFactorBbt: str xzr, [x29,144] uxth w25, w25 str w0, [x29,124] -.L1556: +.L1598: add x1, x22, :lo12:.LANCHOR0 ldrb w1, [x1,1845] cmp w1, w19 - bls .L1566 + bls .L1608 mul w3, w19, w21 mov w20, w25 mov w4, 61664 -.L1557: +.L1599: ldr w0, [x29,124] cmp w20, w0 - ble .L1559 + ble .L1601 add w1, w3, w20 add x0, x29, 136 lsl w1, w1, 10 @@ -10215,12 +10417,12 @@ FlashLoadFactorBbt: ldr x3, [x29,112] cmn w0, #1 ldr x4, [x29,104] - beq .L1558 + beq .L1600 add x24, x23, :lo12:.LANCHOR4 ldr x0, [x24,112] ldrh w0, [x0] cmp w0, w4 - bne .L1558 + bne .L1600 mov x0, x26 mov w1, w19 mov w2, w20 @@ -10229,20 +10431,20 @@ FlashLoadFactorBbt: bl printk uxth w28, w28 strh w20, [x24,144] - b .L1559 -.L1558: + b .L1601 +.L1600: sub w20, w20, #1 uxth w20, w20 - b .L1557 -.L1559: + b .L1599 +.L1601: add x1, x22, :lo12:.LANCHOR0 add w19, w19, 1 uxtb w19, w19 ldrb w1, [x1,1845] cmp w1, w28 csel w27, w27, wzr, ne - b .L1556 -.L1566: + b .L1598 +.L1608: mov w0, w27 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -10274,9 +10476,9 @@ FlashProgSlc2KPages: mov w25, 0 add x22, x22, :lo12:.LANCHOR0 mov w28, -1 -.L1568: +.L1610: cmp w25, w23 - beq .L1597 + beq .L1639 mov w1, w24 sub w4, w23, w25 mov x0, x21 @@ -10286,10 +10488,10 @@ FlashProgSlc2KPages: ldr w0, [x29,100] ldrb w1, [x22,1845] cmp w0, w1 - bcc .L1569 + bcc .L1611 str w28, [x21] - b .L1570 -.L1569: + b .L1612 +.L1611: add x0, x22, x0, uxtw ldrb w20, [x0,1848] mov w0, w20 @@ -10344,36 +10546,36 @@ FlashProgSlc2KPages: ldr w1, [x29,96] mov w0, w20 bl FlashReadStatus - tbz x0, 0, .L1573 + tbz x0, 0, .L1615 str w28, [x21] -.L1573: +.L1615: mov w0, w20 bl NandcFlashDeCs -.L1570: +.L1612: add w25, w25, 1 add x21, x21, 56 - b .L1568 -.L1597: + b .L1610 +.L1639: mov w21, 0 - cbz w27, .L1595 + cbz w27, .L1637 adrp x25, .LC105 adrp x26, .LC104 adrp x27, .LC103 add x25, x25, :lo12:.LC105 add x26, x26, :lo12:.LC104 add x27, x27, :lo12:.LC103 -.L1596: +.L1638: cmp w21, w23 - beq .L1595 + beq .L1637 ldr w0, [x19] cmn w0, #1 - bne .L1576 + bne .L1618 adrp x0, .LC102 ldr w1, [x19,4] add x0, x0, :lo12:.LC102 bl printk - b .L1577 -.L1576: + b .L1619 +.L1618: adrp x20, .LANCHOR4 sub w4, w23, w21 add x22, x20, :lo12:.LANCHOR4 @@ -10400,44 +10602,44 @@ FlashProgSlc2KPages: bl FlashReadPages ldr w22, [x29,104] cmn w22, #1 - bne .L1578 + bne .L1620 ldr w1, [x19,4] mov x0, x27 bl printk str w22, [x19] -.L1578: +.L1620: ldr x0, [x19,16] - cbz x0, .L1579 + cbz x0, .L1621 ldr w2, [x0] add x0, x20, :lo12:.LANCHOR4 ldr x0, [x0,128] ldr w3, [x0] cmp w2, w3 - beq .L1579 + beq .L1621 ldr w1, [x19,4] mov x0, x26 bl printk mov w0, -1 str w0, [x19] -.L1579: +.L1621: ldr x0, [x19,8] - cbz x0, .L1577 + cbz x0, .L1619 add x20, x20, :lo12:.LANCHOR4 ldr w2, [x0] ldr x0, [x20,120] ldr w3, [x0] cmp w2, w3 - beq .L1577 + beq .L1619 ldr w1, [x19,4] mov x0, x25 bl printk mov w0, -1 str w0, [x19] -.L1577: +.L1619: add w21, w21, 1 add x19, x19, 56 - b .L1596 -.L1595: + b .L1638 +.L1637: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -10472,21 +10674,21 @@ FtlLoadFactoryBbt: str x24, [x19,16] mov w25, -1 mov w26, 61664 -.L1599: +.L1641: add x0, x22, :lo12:.LANCHOR0 - ldrh w1, [x0,1970] + ldrh w1, [x0,1978] cmp w23, w1 - bcs .L1608 - ldrh w20, [x0,2014] + bcs .L1650 + ldrh w20, [x0,2022] strh w25, [x21,12] -.L1601: +.L1643: add x0, x22, :lo12:.LANCHOR0 sub w20, w20, #1 uxth w20, w20 - ldrh w0, [x0,2014] + ldrh w0, [x0,2022] sub w1, w0, #16 cmp w20, w1 - ble .L1602 + ble .L1644 madd w0, w23, w0, w20 mov w1, 1 lsl w0, w0, 10 @@ -10496,16 +10698,16 @@ FtlLoadFactoryBbt: bl FlashReadPages ldr w0, [x19] cmn w0, #1 - beq .L1601 + beq .L1643 ldrh w0, [x24] cmp w0, w26 - bne .L1601 + bne .L1643 strh w20, [x21,12] -.L1602: +.L1644: add w23, w23, 1 add x21, x21, 2 - b .L1599 -.L1608: + b .L1641 +.L1650: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -10528,12 +10730,12 @@ FtlGetLastWrittenPage: str x25, [sp,64] mov w23, w1 add x3, x3, :lo12:.LANCHOR0 - bne .L1610 - ldrh w19, [x3,2020] - b .L1611 -.L1610: - ldrh w19, [x3,2018] -.L1611: + bne .L1652 + ldrh w19, [x3,2026] + b .L1653 +.L1652: + ldrh w19, [x3,2024] +.L1653: sub w19, w19, #1 lsl w21, w0, 10 mov w1, 1 @@ -10548,12 +10750,12 @@ FtlGetLastWrittenPage: bl FlashReadPages ldr w0, [x29,144] cmn w0, #1 - bne .L1612 + bne .L1654 mov w22, 0 mov w25, 2 -.L1613: +.L1655: cmp w22, w19 - bgt .L1612 + bgt .L1654 add w3, w22, w19 mov w1, 1 mov w2, w23 @@ -10565,21 +10767,21 @@ FtlGetLastWrittenPage: bl FlashReadPages ldr w0, [x24] cmn w0, #1 - bne .L1614 + bne .L1656 ldr w0, [x24,4] cmn w0, #1 - bne .L1614 + bne .L1656 ldr w0, [x29,88] cmn w0, #1 - beq .L1614 + beq .L1656 sub w19, w20, #1 sxth w19, w19 - b .L1613 -.L1614: + b .L1655 +.L1656: add w20, w20, 1 sxth w22, w20 - b .L1613 -.L1612: + b .L1655 +.L1654: mov w0, w19 ldr x25, [sp,64] ldp x19, x20, [sp,16] @@ -10611,15 +10813,15 @@ FtlLoadBbt: str x22, [x19,16] bl FtlBbtMemInit add x0, x20, :lo12:.LANCHOR0 - ldrh w21, [x0,2014] + ldrh w21, [x0,2022] sub w21, w21, #1 uxth w21, w21 -.L1621: +.L1663: add x0, x20, :lo12:.LANCHOR0 - ldrh w0, [x0,2014] + ldrh w0, [x0,2022] sub w0, w0, #48 cmp w21, w0 - ble .L1624 + ble .L1666 lsl w0, w21, 10 mov w1, 1 str w0, [x19,4] @@ -10628,7 +10830,7 @@ FtlLoadBbt: bl FlashReadPages ldr w0, [x19] cmn w0, #1 - bne .L1622 + bne .L1664 ldr w0, [x19,4] mov w1, 1 mov w2, w1 @@ -10636,13 +10838,13 @@ FtlLoadBbt: str w0, [x19,4] mov x0, x19 bl FlashReadPages -.L1622: +.L1664: ldr w0, [x19] cmn w0, #1 - beq .L1623 + beq .L1665 ldrh w0, [x22] cmp w0, w25 - bne .L1623 + bne .L1665 add x1, x20, :lo12:.LANCHOR0 add x0, x1, 2104 strh w21, [x1,2104] @@ -10650,21 +10852,21 @@ FtlLoadBbt: str w1, [x0,8] ldrh w1, [x22,8] strh w1, [x0,4] - b .L1624 -.L1623: + b .L1666 +.L1665: sub w21, w21, #1 uxth w21, w21 - b .L1621 -.L1624: + b .L1663 +.L1666: add x21, x20, :lo12:.LANCHOR0 mov w2, 65535 mov w0, -1 ldrh w1, [x21,2104] cmp w1, w2 - beq .L1626 + beq .L1668 ldrh w1, [x21,2108] cmp w1, w2 - beq .L1628 + beq .L1670 add x25, x23, :lo12:.LANCHOR4 lsl w1, w1, 10 add x0, x25, 160 @@ -10674,21 +10876,21 @@ FtlLoadBbt: bl FlashReadPages ldr w0, [x25,160] cmn w0, #1 - beq .L1628 + beq .L1670 ldrh w1, [x22] mov w0, 61649 cmp w1, w0 - bne .L1628 + bne .L1670 ldr w0, [x22,4] ldr w1, [x21,2112] cmp w0, w1 - bls .L1628 + bls .L1670 str w0, [x21,2112] ldrh w1, [x21,2108] ldrh w0, [x22,8] strh w1, [x21,2104] strh w0, [x21,2108] -.L1628: +.L1670: add x25, x20, :lo12:.LANCHOR0 mov w1, 1 add x21, x23, :lo12:.LANCHOR4 @@ -10699,8 +10901,8 @@ FtlLoadBbt: sxth w19, w0 add w0, w0, 1 strh w0, [x25,2106] -.L1630: - tbnz w19, #31, .L1635 +.L1672: + tbnz w19, #31, .L1677 ldrh w0, [x25,2104] mov w1, 1 mov w2, w1 @@ -10713,45 +10915,45 @@ FtlLoadBbt: bl FlashReadPages ldr w0, [x21] cmn w0, #1 - beq .L1631 + beq .L1673 ldrh w0, [x22] cmp w0, w26 - bne .L1631 -.L1635: + bne .L1673 +.L1677: add x1, x20, :lo12:.LANCHOR0 ldrh w0, [x22,10] mov w2, 65535 strh w0, [x1,2110] ldrh w0, [x22,12] cmp w0, w2 - bne .L1632 - b .L1633 -.L1631: + bne .L1674 + b .L1675 +.L1673: sub w19, w19, #1 sxth w19, w19 - b .L1630 -.L1632: - ldr w2, [x1,1944] + b .L1672 +.L1674: + ldr w2, [x1,1952] cmp w0, w2 - beq .L1633 - ldrh w1, [x1,1958] + beq .L1675 + ldrh w1, [x1,1966] lsr w1, w1, 2 cmp w0, w1 - bcs .L1633 + bcs .L1675 cmp w2, w1 - bcs .L1633 + bcs .L1675 bl FtlSysBlkNumInit -.L1633: +.L1675: add x20, x20, :lo12:.LANCHOR0 mov x19, 0 add x21, x20, 2104 add x23, x23, :lo12:.LANCHOR4 -.L1636: - ldrh w0, [x20,1970] +.L1678: + ldrh w0, [x20,1978] mov w1, w19 add x19, x19, 1 cmp w1, w0 - bcs .L1654 + bcs .L1696 add x0, x24, :lo12:.LANCHOR2 ldr x3, [x23,168] ldrh w2, [x0,2248] @@ -10761,10 +10963,10 @@ FtlLoadBbt: lsl w2, w2, 2 add x1, x3, x1, lsl 2 bl ftl_memcpy - b .L1636 -.L1654: + b .L1678 +.L1696: mov w0, 0 -.L1626: +.L1668: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -10790,46 +10992,46 @@ FtlScanSysBlk: stp x27, x28, [sp,80] strh wzr, [x21,2320] mov x24, x22 - ldr w2, [x20,2048] + ldr w2, [x20,2052] mov w22, 65535 ldr x0, [x21,2232] lsl w2, w2, 2 - strh wzr, [x20,2066] + strh wzr, [x20,2070] bl ftl_memset - ldr w2, [x20,2048] + ldr w2, [x20,2052] mov w1, 0 ldr x0, [x21,2176] lsl w2, w2, 1 bl ftl_memset - ldrh w2, [x20,2040] + ldrh w2, [x20,2044] mov w1, 0 ldr x0, [x21,2200] lsl w2, w2, 2 bl ftl_memset - ldrh w2, [x20,2040] + ldrh w2, [x20,2044] mov w1, 0 ldr x0, [x20,2072] lsl w2, w2, 1 bl ftl_memset add x0, x21, 264 mov w1, 255 - mov w2, 12 + mov w2, 16 bl ftl_memset - ldrh w21, [x20,1956] -.L1656: + ldrh w21, [x20,1964] +.L1698: add x1, x19, :lo12:.LANCHOR0 - ldrh w0, [x1,1958] + ldrh w0, [x1,1966] cmp w0, w21 - bls .L1697 + bls .L1739 mov x27, 0 - ldrh w5, [x1,1948] - ldrh w4, [x1,2030] + ldrh w5, [x1,1956] + ldrh w4, [x1,2036] mov w20, w27 mov x23, x1 -.L1698: +.L1740: cmp w5, w27, uxth - bls .L1731 - add x0, x23, 1976 + bls .L1773 + add x0, x23, 1984 mov w1, w21 str x4, [x29,112] str x5, [x29,120] @@ -10839,7 +11041,7 @@ FtlScanSysBlk: bl FtlBbmIsBadBlock ldr x5, [x29,120] ldr x4, [x29,112] - cbnz w0, .L1657 + cbnz w0, .L1699 add x2, x24, :lo12:.LANCHOR2 mov w0, 56 lsl w28, w28, 10 @@ -10859,11 +11061,11 @@ FtlScanSysBlk: uxth w20, w20 add x1, x2, x1, sxtw 2 str x1, [x0,16] -.L1657: +.L1699: add x27, x27, 1 - b .L1698 -.L1731: - cbz w20, .L1660 + b .L1740 +.L1773: + cbz w20, .L1702 add x0, x24, :lo12:.LANCHOR2 mov w1, w20 mov w2, 1 @@ -10872,9 +11074,9 @@ FtlScanSysBlk: mov w28, 61604 ldr x0, [x0,2048] bl FlashReadPages -.L1661: +.L1703: cmp w20, w23, uxth - bls .L1660 + bls .L1702 mov x0, 56 mul x6, x23, x0 add x0, x24, :lo12:.LANCHOR2 @@ -10885,9 +11087,9 @@ FtlScanSysBlk: cmn w0, #1 ldr x26, [x1,16] ubfx x25, x5, 10, 16 - bne .L1663 + bne .L1705 mov w7, 16 -.L1662: +.L1704: add x8, x24, :lo12:.LANCHOR2 str x7, [x29,104] str x8, [x29,112] @@ -10908,64 +11110,64 @@ FtlScanSysBlk: ldr x6, [x29,120] ldr x7, [x29,104] ldr x0, [x8,2048] - bne .L1664 + bne .L1706 str w27, [x0,x6] - b .L1663 -.L1664: + b .L1705 +.L1706: ldr w0, [x0,x6] cmn w0, #1 - bne .L1663 + bne .L1705 sub w7, w7, #1 uxth w7, w7 - cbnz w7, .L1662 -.L1663: + cbnz w7, .L1704 +.L1705: add x0, x24, :lo12:.LANCHOR2 ldr x1, [x0,2048] ldr w1, [x1,x6] cmn w1, #1 - beq .L1666 + beq .L1708 ldr w0, [x0,232] cmn w0, #1 - beq .L1667 + beq .L1709 ldr w1, [x26,4] cmp w0, w1 - bhi .L1668 -.L1667: + bhi .L1710 +.L1709: ldr w0, [x26,4] cmn w0, #1 - beq .L1668 + beq .L1710 add x1, x24, :lo12:.LANCHOR2 add w0, w0, 1 str w0, [x1,232] -.L1668: +.L1710: ldrh w0, [x26] cmp w0, w28 - beq .L1670 - bhi .L1671 + beq .L1712 + bhi .L1713 mov w1, 61574 cmp w0, w1 - bne .L1669 + bne .L1711 add x0, x19, :lo12:.LANCHOR0 add x7, x24, :lo12:.LANCHOR2 - ldrh w6, [x0,2040] - ldrh w0, [x0,2066] + ldrh w6, [x0,2044] + ldrh w0, [x0,2070] sub w2, w6, #1 ldr x7, [x7,2200] sxth x1, w2 sub w2, w2, w0 - b .L1684 -.L1671: + b .L1726 +.L1713: mov w1, 61634 cmp w0, w1 - beq .L1673 + beq .L1715 cmp w0, w22 - bne .L1669 + bne .L1711 mov w0, w25 - b .L1730 -.L1673: + b .L1772 +.L1715: add x0, x19, :lo12:.LANCHOR0 add x7, x24, :lo12:.LANCHOR2 - ldr w6, [x0,2048] + ldr w6, [x0,2052] ldrh w0, [x7,2320] ldr x7, [x7,2232] uxth w2, w6 @@ -10974,27 +11176,27 @@ FtlScanSysBlk: sub w2, w2, #1 sxth x1, w1 sxth w2, w2 -.L1675: +.L1717: cmp w1, w2 - ble .L1732 + ble .L1774 sbfiz x8, x1, 2, 32 ldr w11, [x26,4] sxth x9, w1 ldr w10, [x7,x8] cmp w11, w10 - bls .L1676 + bls .L1718 ldr w2, [x7] - cbnz w2, .L1677 + cbnz w2, .L1719 cmp w0, w6 - beq .L1677 + beq .L1719 add x2, x24, :lo12:.LANCHOR2 add w0, w0, 1 strh w0, [x2,2320] -.L1677: +.L1719: mov w0, 0 -.L1678: +.L1720: cmp w0, w1 - beq .L1733 + beq .L1775 add x6, x24, :lo12:.LANCHOR2 sxtw x2, w0 lsl x7, x2, 2 @@ -11009,32 +11211,32 @@ FtlScanSysBlk: add x7, x6, x2 ldrh w7, [x7,2] strh w7, [x6,x2] - b .L1678 -.L1733: + b .L1720 +.L1775: add x0, x24, :lo12:.LANCHOR2 ldr w6, [x26,4] ldr x2, [x0,2232] str w6, [x2,x8] ldr x2, [x0,2176] strh w25, [x2,x9,lsl 1] - tbz w1, #31, .L1680 - b .L1669 -.L1676: + tbz w1, #31, .L1722 + b .L1711 +.L1718: sub w1, w1, #1 sxth x1, w1 - b .L1675 -.L1732: - tbz w1, #31, .L1713 - b .L1669 -.L1680: + b .L1717 +.L1774: + tbz w1, #31, .L1755 + b .L1711 +.L1722: add x2, x19, :lo12:.LANCHOR0 ldrh w0, [x0,2320] - ldr w2, [x2,2048] + ldr w2, [x2,2052] sub w2, w2, w0 sub w2, w2, #1 cmp w1, w2, sxth - bgt .L1669 -.L1713: + bgt .L1711 +.L1755: add x2, x24, :lo12:.LANCHOR2 add w0, w0, 1 ldr w4, [x26,4] @@ -11042,33 +11244,33 @@ FtlScanSysBlk: ldr x0, [x2,2232] str w4, [x0,x1,lsl 2] ldr x0, [x2,2176] - b .L1729 -.L1690: + b .L1771 +.L1732: sbfiz x8, x1, 2, 32 ldr w11, [x26,4] sxth x9, w1 ldr w10, [x7,x8] cmp w11, w10 - bhi .L1734 + bhi .L1776 sub w1, w1, #1 sxth x1, w1 -.L1684: +.L1726: cmp w1, w2 - bgt .L1690 - b .L1689 -.L1734: + bgt .L1732 + b .L1731 +.L1776: ldr w2, [x7] - cbnz w2, .L1686 + cbnz w2, .L1728 cmp w0, w6 - beq .L1686 + beq .L1728 add x2, x19, :lo12:.LANCHOR0 add w0, w0, 1 - strh w0, [x2,2066] -.L1686: + strh w0, [x2,2070] +.L1728: mov w0, 0 -.L1687: +.L1729: cmp w0, w1 - beq .L1735 + beq .L1777 add x2, x24, :lo12:.LANCHOR2 ldr x7, [x2,2200] sxtw x2, w0 @@ -11084,8 +11286,8 @@ FtlScanSysBlk: add x7, x6, x2 ldrh w7, [x7,2] strh w7, [x6,x2] - b .L1687 -.L1735: + b .L1729 +.L1777: add x0, x24, :lo12:.LANCHOR2 ldr w2, [x26,4] ldr x0, [x0,2200] @@ -11093,99 +11295,99 @@ FtlScanSysBlk: add x0, x19, :lo12:.LANCHOR0 ldr x0, [x0,2072] strh w25, [x0,x9,lsl 1] -.L1689: - tbnz w1, #31, .L1669 +.L1731: + tbnz w1, #31, .L1711 add x2, x19, :lo12:.LANCHOR0 - ldrh w0, [x2,2040] - ldrh w6, [x2,2066] + ldrh w0, [x2,2044] + ldrh w6, [x2,2070] sub w0, w0, #1 sub w0, w0, w6 cmp w1, w0, sxth - bgt .L1669 + bgt .L1711 add x0, x24, :lo12:.LANCHOR2 add w6, w6, 1 ldr w4, [x26,4] - strh w6, [x2,2066] + strh w6, [x2,2070] ldr x0, [x0,2200] str w4, [x0,x1,lsl 2] ldr x0, [x2,2072] -.L1729: +.L1771: strh w25, [x0,x1,lsl 1] - b .L1669 -.L1670: + b .L1711 +.L1712: add x0, x24, :lo12:.LANCHOR2 add x1, x0, 264 ldrh w2, [x0,264] cmp w2, w22 - bne .L1691 + bne .L1733 strh w25, [x0,264] ldr w0, [x26,4] str w0, [x1,8] - b .L1669 -.L1691: + b .L1711 +.L1733: ldrh w0, [x1,4] cmp w0, w22 - beq .L1692 + beq .L1734 mov w1, 1 bl FtlFreeSysBlkQueueIn -.L1692: +.L1734: add x1, x24, :lo12:.LANCHOR2 ldr w2, [x26,4] add x0, x1, 264 ldr w6, [x0,8] cmp w6, w2 - bcs .L1693 + bcs .L1735 ldrh w2, [x1,264] strh w2, [x0,4] strh w25, [x1,264] ldr w1, [x26,4] str w1, [x0,8] - b .L1669 -.L1693: + b .L1711 +.L1735: strh w25, [x0,4] - b .L1669 -.L1666: + b .L1711 +.L1708: add x0, x19, :lo12:.LANCHOR0 - ldrb w1, [x0,120] + ldrb w1, [x0,196] mov w0, w25 - cbz w1, .L1694 -.L1730: + cbz w1, .L1736 +.L1772: mov w1, 0 -.L1694: +.L1736: bl FtlFreeSysBlkQueueIn -.L1669: +.L1711: add x23, x23, 1 - b .L1661 -.L1660: + b .L1703 +.L1702: add w21, w21, 1 uxth w21, w21 - b .L1656 -.L1697: + b .L1698 +.L1739: add x4, x24, :lo12:.LANCHOR2 ldr x2, [x4,2176] ldrh w0, [x2] - cbz w0, .L1699 -.L1702: + cbz w0, .L1741 +.L1744: add x1, x19, :lo12:.LANCHOR0 ldr x2, [x1,2072] ldrh w0, [x2] - cbz w0, .L1700 - b .L1723 -.L1699: + cbz w0, .L1742 + b .L1765 +.L1741: ldrh w4, [x4,2320] - cbz w4, .L1702 - ldr w1, [x1,2048] -.L1703: + cbz w4, .L1744 + ldr w1, [x1,2052] +.L1745: cmp w0, w1 - bcs .L1702 + bcs .L1744 ldrh w4, [x2,w0,sxtw 1] - cbz w4, .L1704 + cbz w4, .L1746 mov w7, w0 -.L1705: +.L1747: add x1, x19, :lo12:.LANCHOR0 - ldr w1, [x1,2048] + ldr w1, [x1,2052] cmp w0, w1 - bcs .L1702 + bcs .L1744 add x2, x24, :lo12:.LANCHOR2 sxtw x6, w0 sub w1, w0, w7 @@ -11201,26 +11403,26 @@ FtlScanSysBlk: str w6, [x5,x1,lsl 2] ldr x1, [x2,2176] strh wzr, [x1,x4] - b .L1705 -.L1704: + b .L1747 +.L1746: add w0, w0, 1 sxth w0, w0 - b .L1703 -.L1700: - ldrh w4, [x1,2066] - cbz w4, .L1723 - ldrh w1, [x1,2040] -.L1708: + b .L1745 +.L1742: + ldrh w4, [x1,2070] + cbz w4, .L1765 + ldrh w1, [x1,2044] +.L1750: cmp w0, w1 mov w7, w0 - bge .L1723 + bge .L1765 ldrh w4, [x2,w0,sxtw 1] - cbz w4, .L1709 -.L1710: + cbz w4, .L1751 +.L1752: add x2, x19, :lo12:.LANCHOR0 - ldrh w1, [x2,2040] + ldrh w1, [x2,2044] cmp w0, w1 - bge .L1723 + bge .L1765 sxtw x6, w0 sub w1, w0, w7 ldr x5, [x2,2072] @@ -11236,12 +11438,12 @@ FtlScanSysBlk: str w6, [x5,x1,lsl 2] ldr x1, [x2,2072] strh wzr, [x1,x4] - b .L1710 -.L1709: + b .L1752 +.L1751: add w0, w0, 1 sxth w0, w0 - b .L1708 -.L1723: + b .L1750 +.L1765: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -11255,85 +11457,108 @@ FtlScanSysBlk: .global FtlLoadSysInfo .type FtlLoadSysInfo, %function FtlLoadSysInfo: - stp x29, x30, [sp, -80]! + stp x29, x30, [sp, -96]! mov w1, 0 add x29, sp, 0 stp x19, x20, [sp,16] stp x23, x24, [sp,48] - adrp x19, .LANCHOR2 - adrp x23, .LANCHOR4 + adrp x20, .LANCHOR2 + adrp x24, .LANCHOR4 stp x21, x22, [sp,32] - add x22, x19, :lo12:.LANCHOR2 - add x21, x23, :lo12:.LANCHOR4 - str x25, [sp,64] + add x23, x20, :lo12:.LANCHOR2 + add x21, x24, :lo12:.LANCHOR4 add x21, x21, 160 - adrp x20, .LANCHOR0 - add x25, x22, 264 - ldr x0, [x22,2072] + adrp x19, .LANCHOR0 + stp x25, x26, [sp,64] + stp x27, x28, [sp,80] + ldr x0, [x23,2072] + add x25, x23, 264 str x0, [x21,8] - ldr x0, [x22,2120] + ldr x0, [x23,2120] str x0, [x21,16] - add x0, x20, :lo12:.LANCHOR0 - ldrh w2, [x0,1956] - ldr x0, [x19,#:lo12:.LANCHOR2] + add x0, x19, :lo12:.LANCHOR0 + ldrh w2, [x0,1964] + ldr x0, [x20,#:lo12:.LANCHOR2] lsl w2, w2, 1 bl ftl_memset - ldrh w0, [x22,264] + ldrh w0, [x23,264] mov w1, 65535 cmp w0, w1 - bne .L1737 -.L1745: + bne .L1779 +.L1790: mov w19, -1 - b .L1738 -.L1737: + b .L1780 +.L1779: mov w1, 1 + mov w26, -1 bl FtlGetLastWrittenPage - sxth w24, w0 + sxth w22, w0 add w0, w0, 1 strh w0, [x25,2] - mov w25, 61604 -.L1739: - tbnz w24, #31, .L1744 - ldrh w0, [x22,264] + ldrsh w25, [x23,264] +.L1781: + tbnz w22, #31, .L1789 + orr w0, w22, w25, lsl 10 mov w1, 1 - mov w2, w1 - orr w0, w24, w0, lsl 10 str w0, [x21,4] - ldr x0, [x22,2072] + mov w2, w1 + ldr x0, [x23,2072] + add x27, x19, :lo12:.LANCHOR0 str x0, [x21,8] mov x0, x21 bl FlashReadPages + ldrb w0, [x27,8] + cbz w0, .L1782 + ldr x0, [x21,16] + ldr w28, [x0,12] + cbz w28, .L1782 + ldr x0, [x21,8] + ldrh w1, [x27,2034] + bl js_hash + cmp w28, w0 + beq .L1782 + cbnz w22, .L1783 + ldrh w0, [x23,268] + cmp w25, w0 + beq .L1783 + sxth w25, w0 + ldrh w22, [x27,2026] + b .L1785 +.L1783: + str w26, [x21] +.L1782: ldr w0, [x21] cmn w0, #1 - beq .L1740 - ldr x0, [x22,2072] + beq .L1785 + ldr x0, [x23,2072] ldr w1, [x0] mov w0, 19539 movk w0, 0x4654, lsl 16 cmp w1, w0 - bne .L1740 - ldr x0, [x22,2120] + bne .L1785 + ldr x0, [x23,2120] + mov w1, 61604 ldrh w0, [x0] - cmp w0, w25 - bne .L1740 -.L1744: - add x21, x23, :lo12:.LANCHOR4 - add x24, x19, :lo12:.LANCHOR2 + cmp w0, w1 + bne .L1785 +.L1789: + add x21, x24, :lo12:.LANCHOR4 + add x23, x20, :lo12:.LANCHOR2 add x21, x21, 160 - add x22, x20, :lo12:.LANCHOR0 + add x22, x19, :lo12:.LANCHOR0 mov w2, 48 - sub x0, x24, #64 + sub x0, x23, #64 ldr x1, [x21,8] bl ftl_memcpy ldr x1, [x21,8] - ldrh w2, [x22,1956] - ldr x0, [x19,#:lo12:.LANCHOR2] + ldrh w2, [x22,1964] + ldr x0, [x20,#:lo12:.LANCHOR2] add x1, x1, 48 lsl w2, w2, 1 bl ftl_memcpy - ldrh w2, [x22,1956] + ldrh w2, [x22,1964] ldr x3, [x21,8] - ldr x0, [x20,#:lo12:.LANCHOR0] + ldr x0, [x19,#:lo12:.LANCHOR0] uxth x1, w2 lsr w2, w2, 3 add x1, x1, 24 @@ -11341,50 +11566,50 @@ FtlLoadSysInfo: lsr x1, x1, 1 add x1, x3, x1, lsl 2 bl ftl_memcpy - ldrh w0, [x22,2064] - cbz w0, .L1742 - ldrh w0, [x22,1956] + ldrh w0, [x22,2068] + cbz w0, .L1787 + ldrh w0, [x22,1964] ldr x3, [x21,8] lsr w1, w0, 3 - ldrh w2, [x22,2056] + ldrh w2, [x22,2060] add w1, w1, w0, lsl 1 - ldr x0, [x24,2224] + ldr x0, [x23,2224] add w1, w1, 52 lsl w2, w2, 2 and x1, x1, 65532 add x1, x3, x1 bl ftl_memcpy - b .L1742 -.L1740: - sub w24, w24, #1 - sxth w24, w24 - b .L1739 -.L1742: - add x0, x19, :lo12:.LANCHOR2 + b .L1787 +.L1785: + sub w22, w22, #1 + sxth w22, w22 + b .L1781 +.L1787: + add x0, x20, :lo12:.LANCHOR2 mov w1, 19539 movk w1, 0x4654, lsl 16 ldr w2, [x0,-64] cmp w2, w1 - bne .L1745 - add x1, x20, :lo12:.LANCHOR0 + bne .L1790 + add x1, x19, :lo12:.LANCHOR0 ldrb w3, [x0,-54] ldrh w4, [x0,-56] strh w4, [x0,270] - ldrh w2, [x1,1970] + ldrh w2, [x1,1978] cmp w3, w2 - bne .L1745 - ldrh w3, [x1,2018] - add x23, x23, :lo12:.LANCHOR4 - ldrh w2, [x1,2024] + bne .L1790 + ldrh w3, [x1,2024] + add x24, x24, :lo12:.LANCHOR4 + ldrh w2, [x1,2030] strh wzr, [x0,282] mul w3, w3, w4 str w3, [x1,2096] - str w4, [x23,216] + str w4, [x24,216] mul w3, w3, w2 - str w3, [x1,2060] + str w3, [x1,2064] ldrh w2, [x1,2110] - ldr w3, [x1,1960] - ldrh w1, [x1,1948] + ldr w3, [x1,1968] + ldrh w1, [x1,1956] sub w2, w3, w2 ldrh w3, [x0,-50] sub w2, w2, w4 @@ -11432,54 +11657,55 @@ FtlLoadSysInfo: str wzr, [x0,244] str wzr, [x0,252] str wzr, [x0,212] - bls .L1746 + bls .L1791 str w1, [x0,232] -.L1746: - add x0, x19, :lo12:.LANCHOR2 +.L1791: + add x0, x20, :lo12:.LANCHOR2 ldr w1, [x0,-28] ldr w2, [x0,236] cmp w1, w2 - bls .L1747 + bls .L1792 str w1, [x0,236] -.L1747: +.L1792: mov w0, 65535 cmp w3, w0 - beq .L1748 - add x0, x19, :lo12:.LANCHOR2 + beq .L1793 + add x0, x20, :lo12:.LANCHOR2 add x0, x0, 40 bl make_superblock -.L1748: - add x1, x19, :lo12:.LANCHOR2 +.L1793: + add x1, x20, :lo12:.LANCHOR2 add x0, x1, 88 ldrh w2, [x1,88] mov w1, 65535 cmp w2, w1 - beq .L1749 + beq .L1794 bl make_superblock -.L1749: - add x1, x19, :lo12:.LANCHOR2 +.L1794: + add x1, x20, :lo12:.LANCHOR2 add x0, x1, 136 ldrh w2, [x1,136] mov w1, 65535 cmp w2, w1 - beq .L1750 + beq .L1795 bl make_superblock -.L1750: - add x19, x19, :lo12:.LANCHOR2 +.L1795: + add x20, x20, :lo12:.LANCHOR2 mov w1, 65535 - add x0, x19, 280 - ldrh w2, [x19,280] + add x0, x20, 280 mov w19, 0 + ldrh w2, [x20,280] cmp w2, w1 - beq .L1738 + beq .L1780 bl make_superblock -.L1738: +.L1780: mov w0, w19 - ldr x25, [sp,64] ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] - ldp x29, x30, [sp], 80 + ldp x25, x26, [sp,64] + ldp x27, x28, [sp,80] + ldp x29, x30, [sp], 96 ret .size FtlLoadSysInfo, .-FtlLoadSysInfo .align 2 @@ -11506,7 +11732,7 @@ FtlDumpBlockInfo: add x1, x1, 16 add x0, x0, :lo12:.LC106 adrp x21, .LANCHOR2 - ldrh w24, [x19,2018] + ldrh w24, [x19,2024] bl printk ubfiz x2, x23, 1, 16 adrp x0, .LC107 @@ -11518,47 +11744,47 @@ FtlDumpBlockInfo: strh w23, [x29,112] add x0, x29, 112 bl make_superblock - cbnz w25, .L1764 - ldrb w0, [x19,120] - cbz w0, .L1764 + cbnz w25, .L1815 + ldrb w0, [x19,196] + cbz w0, .L1815 mov w0, w23 bl ftl_get_blk_mode cmp w0, 1 mov w23, w0 - bne .L1756 - ldrh w24, [x19,2020] - b .L1756 -.L1764: + bne .L1807 + ldrh w24, [x19,2026] + b .L1807 +.L1815: mov w23, 0 -.L1756: +.L1807: add x3, x22, :lo12:.LANCHOR0 adrp x0, .LC108 adrp x25, .LC109 add x0, x0, :lo12:.LC108 mov w1, w23 mov w2, w24 - ldrh w3, [x3,2018] + ldrh w3, [x3,2024] mov w20, 0 mov w27, 65535 mov w28, 56 mov w26, 4 add x25, x25, :lo12:.LC109 bl printk -.L1757: +.L1808: add x0, x22, :lo12:.LANCHOR0 - ldrh w5, [x0,1948] - ldrh w6, [x0,2028] - ldrh w7, [x0,2030] + ldrh w5, [x0,1956] + ldrh w6, [x0,2034] + ldrh w7, [x0,2036] mov x0, 0 mov w19, w0 -.L1758: +.L1809: cmp w5, w0, uxth - bls .L1772 + bls .L1823 add x1, x29, 112 add x1, x1, x0, lsl 1 ldrh w2, [x1,16] cmp w2, w27 - beq .L1759 + beq .L1810 add x3, x21, :lo12:.LANCHOR2 orr w2, w20, w2, lsl 10 umull x1, w19, w28 @@ -11579,10 +11805,10 @@ FtlDumpBlockInfo: sdiv w2, w2, w26 add x2, x3, x2, sxtw 2 str x2, [x1,16] -.L1759: +.L1810: add x0, x0, 1 - b .L1758 -.L1772: + b .L1809 +.L1823: add x0, x21, :lo12:.LANCHOR2 mov w1, w19 mov w2, w23 @@ -11590,9 +11816,9 @@ FtlDumpBlockInfo: bl FlashReadPages mov x8, 0 mov x9, 56 -.L1761: +.L1812: cmp w19, w8, uxth - bls .L1773 + bls .L1824 add x0, x21, :lo12:.LANCHOR2 ldrh w1, [x29,112] mul x2, x8, x9 @@ -11617,13 +11843,13 @@ FtlDumpBlockInfo: ldr x8, [x29,104] ldr x9, [x29,96] add x8, x8, 1 - b .L1761 -.L1773: + b .L1812 +.L1824: add w20, w20, 1 uxth w20, w20 cmp w20, w24 - bne .L1757 -.L1763: + bne .L1808 +.L1814: sub sp, x29, #16 mov w0, 0 ldp x19, x20, [sp,32] @@ -11659,12 +11885,12 @@ FtlScanAllBlock: add x24, x24, :lo12:.LC112 stp x25, x26, [sp,80] bl printk -.L1775: +.L1826: adrp x19, .LANCHOR0 add x19, x19, :lo12:.LANCHOR0 - ldrh w0, [x19,1958] + ldrh w0, [x19,1966] cmp w0, w20 - bls .L1784 + bls .L1835 mov w0, w20 adrp x21, .LANCHOR2 strh w20, [x29,80] @@ -11679,21 +11905,21 @@ FtlScanAllBlock: add x0, x29, 80 bl make_superblock mov x1, 0 - ldrh w6, [x19,1948] - ldrh w7, [x19,2028] + ldrh w6, [x19,1956] + ldrh w7, [x19,2034] mov w9, 65535 - ldrh w8, [x19,2030] + ldrh w8, [x19,2036] mov w10, 56 mov w19, w1 mov w5, 4 -.L1776: +.L1827: cmp w6, w1, uxth - bls .L1785 + bls .L1836 add x0, x29, 80 add x0, x0, x1, lsl 1 ldrh w2, [x0,16] cmp w2, w9 - beq .L1777 + beq .L1828 add x3, x21, :lo12:.LANCHOR2 lsl w2, w2, 10 umull x0, w19, w10 @@ -11714,10 +11940,10 @@ FtlScanAllBlock: sdiv w0, w0, w5 add x0, x3, x0, sxtw 2 str x0, [x2,16] -.L1777: +.L1828: add x1, x1, 1 - b .L1776 -.L1785: + b .L1827 +.L1836: add x0, x21, :lo12:.LANCHOR2 mov w1, w19 mov w2, 0 @@ -11725,10 +11951,10 @@ FtlScanAllBlock: mov x26, 56 ldr x0, [x0,2048] bl FlashReadPages -.L1779: +.L1830: add x0, x21, :lo12:.LANCHOR2 cmp w19, w25, uxth - bls .L1786 + bls .L1837 ldr x4, [x0,2048] mul x2, x25, x26 ldrh w1, [x29,80] @@ -11748,17 +11974,17 @@ FtlScanAllBlock: ldr w3, [x3,4] ldr w7, [x7,12] bl printk - b .L1779 -.L1786: + b .L1830 +.L1837: ldr x0, [x0,2048] mov w1, w19 mov w2, 1 mov x25, 0 mov x26, 56 bl FlashReadPages -.L1781: +.L1832: cmp w19, w25, uxth - bls .L1787 + bls .L1838 add x0, x21, :lo12:.LANCHOR2 ldrh w1, [x29,80] mul x2, x25, x26 @@ -11779,12 +12005,12 @@ FtlScanAllBlock: ldr w3, [x3,4] ldr w7, [x7,12] bl printk - b .L1781 -.L1787: + b .L1832 +.L1838: add w20, w20, 1 uxth w20, w20 - b .L1775 -.L1784: + b .L1826 +.L1835: sub sp, x29, #16 mov w0, 0 ldp x19, x20, [sp,32] @@ -11796,223 +12022,6 @@ FtlScanAllBlock: ret .size FtlScanAllBlock, .-FtlScanAllBlock .align 2 - .global FtlGcScanTempBlk - .type FtlGcScanTempBlk, %function -FtlGcScanTempBlk: - stp x29, x30, [sp, -160]! - add x29, sp, 0 - stp x19, x20, [sp,16] - adrp x20, .LANCHOR1 - mov x19, x0 - add x0, x20, :lo12:.LANCHOR1 - str w1, [x29,152] - stp x21, x22, [sp,32] - stp x23, x24, [sp,48] - stp x25, x26, [sp,64] - stp x27, x28, [sp,80] - str x20, [x29,144] - ldrh w28, [x0,3168] - mov w0, 65535 - cmp w28, w0 - beq .L1810 - cbnz w28, .L1789 - b .L1790 -.L1810: - mov w28, 0 -.L1789: - adrp x0, .LANCHOR0+2018 - ldr w1, [x29,152] - ldrh w0, [x0,#:lo12:.LANCHOR0+2018] - cmp w1, w0 - bne .L1791 -.L1790: - bl FtlGcPageVarInit -.L1791: - mov w0, -1 - str w0, [x29,156] - adrp x0, .LC113 - mov w21, 0 - add x0, x0, :lo12:.LC113 - mov w22, 65535 - adrp x23, .LANCHOR0 - str x0, [x29,136] -.L1804: - ldrh w0, [x19] - strb wzr, [x19,8] - cmp w0, w22 - beq .L1811 -.L1793: - adrp x27, .LANCHOR2 -.L1807: - add x0, x23, :lo12:.LANCHOR0 - mov x2, x19 - mov w20, 0 - mov w9, 4 - ldrh w5, [x0,1948] - ldrh w8, [x0,2030] - add x5, x19, x5, lsl 1 -.L1794: - cmp x2, x5 - beq .L1819 - ldrh w1, [x2,16] - cmp w1, w22 - beq .L1795 - add x6, x27, :lo12:.LANCHOR2 - mov w0, 56 - orr w1, w28, w1, lsl 10 - add w4, w20, 1 - umull x0, w20, w0 - ldr x7, [x6,2048] - add x7, x7, x0 - str w1, [x7,4] - ldr x1, [x6,2048] - ldr x6, [x6,888] - add x0, x1, x0 - mul w1, w20, w8 - uxth w20, w4 - str xzr, [x0,8] - sdiv w1, w1, w9 - add x1, x6, x1, sxtw 2 - str x1, [x0,16] -.L1795: - add x2, x2, 2 - b .L1794 -.L1819: - add x0, x27, :lo12:.LANCHOR2 - mov w1, w20 - mov w2, 0 - mov x24, 0 - adrp x25, .LANCHOR2 - ldr x0, [x0,2048] - bl FlashReadPages -.L1797: - cmp w20, w24, uxth - bls .L1820 - add x1, x25, :lo12:.LANCHOR2 - mov x0, 56 - str x1, [x29,104] - mul x26, x24, x0 - ldr x10, [x1,2048] - str x10, [x29,112] - add x9, x10, x26 - str x9, [x29,120] - ldr w2, [x9,4] - str x2, [x29,128] - lsr x0, x2, 10 - bl P2V_plane - uxth w7, w0 - ldr x10, [x29,112] - ldr x2, [x29,128] - ldr w0, [x10,x26] - cbnz w0, .L1798 - ldr x9, [x29,120] - add x24, x24, 1 - ldr x1, [x29,104] - ldr x5, [x9,16] - ldrh w0, [x5] - cmp w0, w22 - bne .L1799 - mov w0, 1 - str w0, [x1,2344] - b .L1792 -.L1799: - mov w1, w2 - ldr w0, [x5,12] - ldr w2, [x5,8] - bl FtlGcUpdatePage - b .L1797 -.L1798: - ldrh w1, [x19] - ldr x0, [x29,136] - bl printk - adrp x0, .LANCHOR0 - add x0, x0, :lo12:.LANCHOR0 - ldr w1, [x0,1940] - cbnz w1, .L1800 - ldrb w0, [x0,120] - cbz w0, .L1801 -.L1800: - add x0, x25, :lo12:.LANCHOR2 - ldrh w1, [x19] - ldr x0, [x0,-80] - ldrh w0, [x0,x1,lsl 1] - cmp w0, 159 - bls .L1802 -.L1801: - add x0, x25, :lo12:.LANCHOR2 - ldr x0, [x0,2048] - ldr w0, [x0,x26] - cmn w0, #1 - bne .L1803 -.L1802: - add x0, x25, :lo12:.LANCHOR2 - ldr x0, [x0,2048] - add x5, x0, x26 - ldr w0, [x5,4] - str w0, [x29,156] -.L1803: - ldrh w1, [x19] - mov w28, 0 - ldr x0, [x25,#:lo12:.LANCHOR2] - strh wzr, [x0,x1,lsl 1] - ldrh w0, [x19] - bl INSERT_FREE_LIST - mov w0, -1 - strh w0, [x19] - bl FtlGcPageVarInit - b .L1804 -.L1820: - ldr w0, [x29,152] - add w21, w21, 1 - add w3, w28, 1 - cmp w21, w0 - uxth w28, w3 - bcs .L1806 -.L1808: - adrp x0, .LANCHOR0 - add x0, x0, :lo12:.LANCHOR0 - ldrh w0, [x0,2018] - cmp w0, w28 - bhi .L1807 - b .L1811 -.L1806: - ldr x0, [x29,144] - add x1, x0, :lo12:.LANCHOR1 - ldrh w0, [x1,3168] - cmp w0, w22 - beq .L1808 - add w0, w0, w21 - strh w0, [x1,3168] - adrp x0, .LANCHOR0 - add x0, x0, :lo12:.LANCHOR0 - ldrh w0, [x0,2018] - cmp w0, w28 - bls .L1808 - b .L1809 -.L1811: - mov w7, 0 -.L1792: - ldr x0, [x29,144] - mov w1, w28 - strh w28, [x19,2] - mov w2, w7 - add x20, x0, :lo12:.LANCHOR1 - mov w0, -1 - strb w7, [x19,6] - strh w0, [x20,3168] - mov x0, x19 - bl ftl_sb_update_avl_pages -.L1809: - ldr w0, [x29,156] - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] - ldp x27, x28, [sp,80] - ldp x29, x30, [sp], 160 - ret - .size FtlGcScanTempBlk, .-FtlGcScanTempBlk - .align 2 .global FlashProgPages .type FlashProgPages, %function FlashProgPages: @@ -12036,17 +12045,17 @@ FlashProgPages: mov w23, w2 mov w22, 0 ldrb w5, [x5,19] - cbz w4, .L1822 + cbz w4, .L1840 bl FlashProgSlc2KPages - b .L1823 -.L1822: + b .L1841 +.L1840: sub w0, w5, #1 mov w27, 56 mov x28, 24 str w0, [x29,116] -.L1874: +.L1892: cmp w22, w25 - bcs .L1875 + bcs .L1893 umull x20, w22, w27 sub w4, w25, w22 add x2, x29, 128 @@ -12060,27 +12069,27 @@ FlashProgPages: ldr w0, [x29,132] ldrb w4, [x2,1845] cmp w0, w4 - bcc .L1824 + bcc .L1842 mov w0, -1 str w0, [x19,x20] - b .L1825 -.L1824: - ldrb w1, [x2,1937] + b .L1843 +.L1842: + ldrb w1, [x2,1945] add x3, x2, 1652 cmp w1, wzr uxtw x1, w0 csel w24, w24, wzr, ne madd x0, x1, x28, x3 ldr x0, [x0,8] - cbz x0, .L1827 + cbz x0, .L1845 cmp w4, 1 - bne .L1828 + bne .L1846 ldr x0, [x2,128] bl NandcIqrWaitFlashReady -.L1828: +.L1846: ldrb w0, [x29,132] bl FlashWaitCmdDone -.L1827: +.L1845: add x0, x21, :lo12:.LANCHOR0 ldr w2, [x29,132] add x0, x0, 1652 @@ -12089,12 +12098,12 @@ FlashProgPages: str x26, [x0,8] str xzr, [x0,16] str w1, [x0,4] - cbz w24, .L1829 + cbz w24, .L1847 add w1, w22, 1 umull x1, w1, w27 add x1, x19, x1 str x1, [x0,16] -.L1829: +.L1847: add x1, x21, :lo12:.LANCHOR0 add x0, x1, x2 madd x2, x2, x28, x1 @@ -12102,17 +12111,17 @@ FlashProgPages: ldrb w0, [x1,1845] strb w20, [x2,1652] cmp w0, 1 - bne .L1830 + bne .L1848 mov w0, w20 bl NandcWaitFlashReady - b .L1831 -.L1830: + b .L1849 +.L1848: mov w0, w20 str x1, [x29,104] bl NandcFlashCs ldr x1, [x29,104] ldr w0, [x29,132] - add x1, x1, 708 + add x1, x1, 712 ldr w0, [x1,x0,lsl 2] ldr w1, [x29,128] cmp w0, wzr @@ -12121,34 +12130,34 @@ FlashProgPages: bl FlashWaitReadyEN mov w0, w20 bl NandcFlashDeCs -.L1831: +.L1849: ldr w0, [x29,116] - cmp w0, 6 - bhi .L1832 + cmp w0, 7 + bhi .L1850 add x2, x21, :lo12:.LANCHOR0 add x0, x2, x20, sxtw ldrb w0, [x0,1616] - cbz w0, .L1832 + cbz w0, .L1850 ldrb w1, [x2,761] mov w0, w20 add x2, x2, 764 mov w3, 0 bl HynixSetRRPara -.L1832: +.L1850: mov w0, w20 bl NandcFlashCs cmp w23, 1 - bne .L1833 + bne .L1851 add x0, x21, :lo12:.LANCHOR0 - ldrb w0, [x0,120] - cbz w0, .L1833 + ldrb w0, [x0,196] + cbz w0, .L1851 mov w0, w20 bl flash_enter_slc_mode - b .L1834 -.L1833: + b .L1852 +.L1851: mov w0, w20 bl flash_exit_slc_mode -.L1834: +.L1852: ldr w1, [x29,128] mov w0, w20 bl FlashProgFirstCmd @@ -12158,13 +12167,13 @@ FlashProgPages: mov w1, 1 ldr x4, [x26,16] bl NandcXferData - cbz w24, .L1835 + cbz w24, .L1853 ldr w1, [x29,128] mov w0, w20 add x26, x21, :lo12:.LANCHOR0 bl FlashProgDpFirstCmd ldr w1, [x29,132] - add x0, x26, 708 + add x0, x26, 712 ldr w0, [x0,x1,lsl 2] ldr w1, [x29,128] cmp w0, wzr @@ -12185,46 +12194,46 @@ FlashProgPages: ldr x3, [x4,8] ldr x4, [x4,16] bl NandcXferData -.L1835: +.L1853: ldr w1, [x29,128] mov w0, w20 add w22, w22, w24 bl FlashProgSecondCmd mov w0, w20 bl NandcFlashDeCs -.L1825: +.L1843: add w22, w22, 1 - b .L1874 -.L1875: + b .L1892 +.L1893: add x21, x21, :lo12:.LANCHOR0 mov x20, 0 add x22, x21, 1652 mov x24, 24 ldr x0, [x21,128] bl NandcIqrWaitFlashReady -.L1837: +.L1855: ldrb w0, [x21,1845] cmp w0, w20 - bls .L1876 + bls .L1894 mov w0, w20 bl FlashWaitCmdDone cmp w23, 1 - bne .L1838 - ldrb w0, [x21,120] - cbz w0, .L1838 + bne .L1856 + ldrb w0, [x21,196] + cbz w0, .L1856 mul x0, x20, x24 ldrb w0, [x0,x22] bl flash_exit_slc_mode -.L1838: +.L1856: add x20, x20, 1 - b .L1837 -.L1876: + b .L1855 +.L1894: ldr w0, [x29,120] - cbnz w0, .L1840 -.L1848: + cbnz w0, .L1858 +.L1866: mov w0, 0 - b .L1823 -.L1840: + b .L1841 +.L1858: adrp x24, .LC105 adrp x26, .LC104 adrp x27, .LC103 @@ -12232,18 +12241,18 @@ FlashProgPages: add x24, x24, :lo12:.LC105 add x26, x26, :lo12:.LC104 add x27, x27, :lo12:.LC103 -.L1841: +.L1859: cmp w21, w25 - beq .L1848 + beq .L1866 ldr w0, [x19] cmn w0, #1 - bne .L1842 + bne .L1860 adrp x0, .LC102 ldr w1, [x19,4] add x0, x0, :lo12:.LC102 bl printk - b .L1843 -.L1842: + b .L1861 +.L1860: adrp x20, .LANCHOR4 sub w4, w25, w21 add x22, x20, :lo12:.LANCHOR4 @@ -12270,44 +12279,44 @@ FlashProgPages: bl FlashReadPages ldr w22, [x29,136] cmn w22, #1 - bne .L1844 + bne .L1862 ldr w1, [x19,4] mov x0, x27 bl printk str w22, [x19] -.L1844: +.L1862: ldr x0, [x19,16] - cbz x0, .L1845 + cbz x0, .L1863 ldr w2, [x0] add x0, x20, :lo12:.LANCHOR4 ldr x0, [x0,128] ldr w3, [x0] cmp w2, w3 - beq .L1845 + beq .L1863 ldr w1, [x19,4] mov x0, x26 bl printk mov w0, -1 str w0, [x19] -.L1845: +.L1863: ldr x0, [x19,8] - cbz x0, .L1843 + cbz x0, .L1861 add x20, x20, :lo12:.LANCHOR4 ldr w2, [x0] ldr x0, [x20,120] ldr w3, [x0] cmp w2, w3 - beq .L1843 + beq .L1861 ldr w1, [x19,4] mov x0, x24 bl printk mov w0, -1 str w0, [x19] -.L1843: +.L1861: add w21, w21, 1 add x19, x19, 56 - b .L1841 -.L1823: + b .L1859 +.L1841: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -12370,10 +12379,10 @@ FlashTestBlk: ldr w2, [x0,#:lo12:.LANCHOR4+92] mov w0, 0 cmp w1, w2 - bcc .L1879 + bcc .L1897 mov w0, w1 bl FlashTestBlk.part.15 -.L1879: +.L1897: ldp x29, x30, [sp], 16 ret .size FlashTestBlk, .-FlashTestBlk @@ -12381,156 +12390,165 @@ FlashTestBlk: .global FlashMakeFactorBbt .type FlashMakeFactorBbt, %function FlashMakeFactorBbt: - stp x29, x30, [sp, -240]! + stp x29, x30, [sp, -224]! add x29, sp, 0 stp x19, x20, [sp,16] - adrp x20, .LANCHOR4 - adrp x19, .LANCHOR0 - add x0, x20, :lo12:.LANCHOR4 + adrp x19, .LANCHOR4 + mov w20, 0 + add x0, x19, :lo12:.LANCHOR4 stp x21, x22, [sp,32] - stp x27, x28, [sp,80] stp x23, x24, [sp,48] stp x25, x26, [sp,64] - mov w21, 0 + stp x27, x28, [sp,80] + adrp x21, .LANCHOR0 ldr x0, [x0,112] - str x0, [x29,160] - add x0, x19, :lo12:.LANCHOR0 - add x19, x19, :lo12:.LANCHOR0 - add x28, x19, 708 + str x0, [x29,136] + add x0, x21, :lo12:.LANCHOR0 ldrh w1, [x0,180] ldrh w23, [x0,182] + ldrh w26, [x0,12] mul w23, w1, w23 ldr x1, [x0,744] + ldrb w0, [x0,8] uxth w23, w23 ldrb w1, [x1,24] - str w1, [x29,128] - ldrh w1, [x0,12] - str w1, [x29,172] - ldrb w0, [x0,8] - ubfiz w1, w1, 1, 15 cmp w0, 1 - ldr w0, [x29,172] - csel w0, w1, w0, eq - str w0, [x29,172] - adrp x0, .LC114 + str w1, [x29,132] + adrp x0, .LC113 + ubfiz w1, w26, 1, 15 + add x0, x0, :lo12:.LC113 + csel w26, w1, w26, eq mov w1, 1 - add x0, x0, :lo12:.LC114 bl printk - add x0, x20, :lo12:.LANCHOR4 + add x0, x19, :lo12:.LANCHOR4 mov w1, 0 mov w2, 4096 ldr x0, [x0,112] bl ftl_memset lsr w0, w23, 4 - str w0, [x29,168] - ldr w0, [x29,128] + str w0, [x29,128] + ldr w0, [x29,132] and w0, w0, 1 str w0, [x29,116] + ldr w0, [x29,132] + and w0, w0, 2 + uxtb w0, w0 + str w0, [x29,112] sub w0, w23, #1 uxth w0, w0 str w0, [x29,124] -.L1883: - ldrb w0, [x19,1845] - cmp w0, w21 - bls .L1934 - sxtw x25, w21 - add x0, x20, :lo12:.LANCHOR4 +.L1901: + add x24, x21, :lo12:.LANCHOR0 + ldrb w0, [x24,1845] + cmp w0, w20 + bls .L1952 + sxtw x25, w20 + add x0, x19, :lo12:.LANCHOR4 add x1, x0, x25, lsl 1 ldrh w22, [x1,144] - cbnz w22, .L1913 - ldrh w2, [x19,188] + cbnz w22, .L1931 + ldrh w2, [x24,188] mov w1, w22 ldr x0, [x0,56] - mov w26, w22 + add x24, x24, x25 lsl w2, w2, 9 - mov w24, w22 + mov w27, w22 bl ftl_memset - add x0, x19, x25 - ldrb w27, [x0,1848] - ldr w0, [x29,128] - and w0, w0, 2 + ldrb w28, [x24,1848] + ldr w0, [x29,132] + mov w24, w22 + and w0, w0, 4 uxtb w0, w0 str w0, [x29,120] -.L1885: - uxth w0, w26 +.L1903: + uxth w0, w27 str w0, [x29,144] cmp w0, w23 - bcs .L1895 + bcs .L1913 mov w0, -1 - strb w0, [x29,182] - strb w0, [x29,183] + strb w0, [x29,166] + strb w0, [x29,167] ldr w0, [x29,116] - cbz w0, .L1887 - ldr w3, [x28,x25,lsl 2] - mov w0, w27 - add x2, x29, 182 + cbz w0, .L1905 + add x4, x21, :lo12:.LANCHOR0 + add x2, x29, 166 + add x0, x4, 712 + str x4, [x29,96] + ldr w3, [x0,x25,lsl 2] + mov w0, w28 add w3, w22, w3 str x3, [x29,104] mov w1, w3 bl FlashReadSpare - ldrb w0, [x19,8] + ldr x4, [x29,96] ldr x3, [x29,104] + ldrb w0, [x4,8] cmp w0, 1 - bne .L1887 - ldr w1, [x19,12] - mov w0, w27 - add x2, x29, 183 + bne .L1905 + ldr w1, [x4,12] + mov w0, w28 + add x2, x29, 167 add w1, w3, w1 bl FlashReadSpare - ldrb w0, [x29,182] - ldrb w1, [x29,183] + ldrb w0, [x29,166] + ldrb w1, [x29,167] and w0, w1, w0 - strb w0, [x29,182] -.L1887: - ldr w0, [x29,120] - cbz w0, .L1889 - ldr x0, [x19,744] - add x2, x29, 183 - ldrh w1, [x0,10] - ldr w0, [x28,x25,lsl 2] + strb w0, [x29,166] +.L1905: + ldr w0, [x29,112] + cbz w0, .L1907 + add x0, x21, :lo12:.LANCHOR0 + add x2, x29, 167 + add x0, x0, 712 + ldr x1, [x0,32] + ldr w0, [x0,x25,lsl 2] + ldrh w1, [x1,10] sub w1, w1, #1 add w1, w1, w0 - mov w0, w27 + mov w0, w28 add w1, w1, w22 bl FlashReadSpare -.L1889: - ldr x0, [x19,744] - ldrb w1, [x29,182] +.L1907: + add x0, x21, :lo12:.LANCHOR0 + ldrb w1, [x29,166] + ldr x0, [x0,744] ldrb w0, [x0,7] cmp w0, 8 - beq .L1914 + beq .L1932 cmp w0, 1 - bne .L1890 -.L1914: + bne .L1908 +.L1932: mov w0, 1 - cbz w1, .L1892 - ldrb w0, [x29,183] + cbz w1, .L1910 + ldrb w0, [x29,167] cmp w0, wzr cset w0, eq - b .L1892 -.L1890: + b .L1910 +.L1908: cmp w1, 255 mov w0, 1 - bne .L1892 - ldrb w0, [x29,183] + bne .L1910 + ldrb w0, [x29,167] cmp w0, 255 cset w0, ne -.L1892: - ldr x1, [x29,128] - tbz x1, 2, .L1893 - ldr w1, [x28,x25,lsl 2] - mov w0, w27 +.L1910: + ldr w1, [x29,120] + cbz w1, .L1911 + add x0, x21, :lo12:.LANCHOR0 + add x0, x0, 712 + ldr w1, [x0,x25,lsl 2] + mov w0, w28 add w1, w22, w1 bl SandiskProgTestBadBlock -.L1893: - cbz w0, .L1894 - adrp x0, .LC115 - mov w1, w21 - mov w2, w26 - add x0, x0, :lo12:.LC115 +.L1911: + cbz w0, .L1912 + adrp x0, .LC114 + mov w1, w20 + mov w2, w27 + add x0, x0, :lo12:.LC114 add w24, w24, 1 bl printk - add x0, x20, :lo12:.LANCHOR4 + add x0, x19, :lo12:.LANCHOR4 ldr x1, [x29,144] ldrb w3, [x29,144] uxth w24, w24 @@ -12542,80 +12560,82 @@ FlashMakeFactorBbt: ldr w3, [x2,x1] orr w0, w3, w0 str w0, [x2,x1] - ldr w1, [x29,168] - ldrb w0, [x19,1845] + add x0, x21, :lo12:.LANCHOR0 + ldr w1, [x29,128] + ldrb w0, [x0,1845] mul w0, w1, w0 cmp w24, w0 - bgt .L1895 -.L1894: - ldr w0, [x29,172] - add w26, w26, 1 - add w22, w22, w0 - b .L1885 -.L1895: - adrp x0, .LC116 - mov w1, w21 - add x0, x0, :lo12:.LC116 + bgt .L1913 +.L1912: + add w27, w27, 1 + add w22, w22, w26 + b .L1903 +.L1913: + adrp x0, .LC115 + mov w1, w20 mov w2, w24 + add x0, x0, :lo12:.LC115 bl printk - ldrb w0, [x19,1845] - ldr w1, [x29,168] - mul w0, w1, w0 + add x1, x21, :lo12:.LANCHOR0 + ldr w2, [x29,128] + ldrb w0, [x1,1845] + mul w0, w2, w0 cmp w24, w0 - blt .L1897 - add x0, x20, :lo12:.LANCHOR4 - ldrh w2, [x19,188] + blt .L1915 + add x0, x19, :lo12:.LANCHOR4 + ldrh w2, [x1,188] mov w1, 0 lsl w2, w2, 9 ldr x0, [x0,56] bl ftl_memset -.L1897: - cbnz w21, .L1899 - add x0, x20, :lo12:.LANCHOR4 - adrp x26, .LC117 - mov w22, w21 - add x26, x26, :lo12:.LC117 +.L1915: + cbnz w20, .L1917 + add x0, x19, :lo12:.LANCHOR4 + adrp x27, .LC116 + mov w22, w20 + add x27, x27, :lo12:.LC116 mov w24, 1 - ldrh w27, [x0,92] -.L1900: - ldrb w0, [x19,9] - cmp w0, w27 - bls .L1935 - mov w0, w27 + ldrh w28, [x0,92] +.L1918: + add x0, x21, :lo12:.LANCHOR0 + ldrb w0, [x0,9] + cmp w0, w28 + bls .L1953 + mov w0, w28 bl FlashTestBlk - cbz w0, .L1901 - mov w1, w27 - mov x0, x26 + cbz w0, .L1919 + mov w1, w28 + mov x0, x27 add w22, w22, 1 bl printk - add x0, x20, :lo12:.LANCHOR4 - ubfx x1, x27, 5, 11 + add x0, x19, :lo12:.LANCHOR4 + ubfx x1, x28, 5, 11 lsl x1, x1, 2 uxth w22, w22 ldr x2, [x0,56] - lsl w0, w24, w27 + lsl w0, w24, w28 ldr w3, [x2,x1] orr w0, w3, w0 str w0, [x2,x1] -.L1901: - add w27, w27, 1 - uxth w27, w27 - b .L1900 -.L1935: - adrp x26, .LC117 +.L1919: + add w28, w28, 1 + uxth w28, w28 + b .L1918 +.L1953: + adrp x27, .LC116 ldr w24, [x29,124] - sub w27, w23, #50 - add x26, x26, :lo12:.LC117 -.L1903: - cmp w24, w27 - ble .L1936 + sub w28, w23, #50 + add x27, x27, :lo12:.LC116 +.L1921: + cmp w24, w28 + ble .L1954 mov w0, w24 bl FlashTestBlk - cbz w0, .L1904 + cbz w0, .L1922 mov w1, w24 - mov x0, x26 + mov x0, x27 bl printk - add x0, x20, :lo12:.LANCHOR4 + add x0, x19, :lo12:.LANCHOR4 ubfx x1, x24, 5, 11 lsl x1, x1, 2 ldr x3, [x0,56] @@ -12624,85 +12644,86 @@ FlashMakeFactorBbt: ldr w4, [x3,x1] orr w0, w4, w0 str w0, [x3,x1] -.L1904: +.L1922: sub w2, w24, #1 uxth w24, w2 - b .L1903 -.L1936: - add x1, x20, :lo12:.LANCHOR4 - ldrb w0, [x19,9] - ldr w2, [x1,92] - sub w0, w0, w2 + b .L1921 +.L1954: + add x2, x21, :lo12:.LANCHOR0 + add x1, x19, :lo12:.LANCHOR4 + ldrb w0, [x2,9] + ldr w3, [x1,92] + sub w0, w0, w3 cmp w22, w0 - bcc .L1899 - ldrh w2, [x19,188] + bcc .L1917 + ldrh w2, [x2,188] ldr x0, [x1,56] mov w1, 0 lsl w2, w2, 9 bl ftl_memset -.L1899: - adrp x24, .LC118 - ldr w27, [x29,124] - mul w26, w21, w23 - add x24, x24, :lo12:.LC118 +.L1917: + adrp x24, .LC117 + ldr w28, [x29,124] + mul w27, w20, w23 + add x24, x24, :lo12:.LC117 lsl x25, x25, 1 mov w22, -3872 -.L1907: - mov w2, w27 +.L1925: + mov w2, w28 mov x0, x24 - mov w1, w21 + mov w1, w20 bl printk - add x0, x20, :lo12:.LANCHOR4 + add x0, x19, :lo12:.LANCHOR4 ldr x2, [x0,56] -.L1908: - ubfx x0, x27, 5, 11 +.L1926: + ubfx x0, x28, 5, 11 ldr w0, [x2,x0,lsl 2] - lsr w0, w0, w27 + lsr w0, w0, w28 and w1, w0, 1 - tbz x0, 0, .L1937 - sub w27, w27, #1 - uxth w27, w27 - b .L1908 -.L1937: - add x0, x20, :lo12:.LANCHOR4 + tbz x0, 0, .L1955 + sub w28, w28, #1 + uxth w28, w28 + b .L1926 +.L1955: + add x0, x19, :lo12:.LANCHOR4 add x2, x0, x25 - strh w27, [x2,144] - ldr x2, [x29,160] + strh w28, [x2,144] + ldr x2, [x29,136] strh w22, [x2] - strh w27, [x2,2] + strh w28, [x2,2] strh w1, [x2,8] ldr x1, [x0,56] ldr x0, [x0,112] - str x0, [x29,200] - add w0, w27, w26 - str x1, [x29,192] + str x0, [x29,184] + add w0, w28, w27 + str x1, [x29,176] lsl w0, w0, 10 mov w1, 1 - str w0, [x29,188] + str w0, [x29,172] mov w2, w1 - add x0, x29, 184 + add x0, x29, 168 bl FlashEraseBlocks mov w1, 1 - add x0, x29, 184 + add x0, x29, 168 mov w2, w1 mov w3, w1 bl FlashProgPages - ldr w0, [x29,184] - cbz w0, .L1913 - sub w27, w27, #1 - uxth w27, w27 - b .L1907 -.L1913: - add w21, w21, 1 - uxtb w21, w21 - b .L1883 -.L1934: + ldr w0, [x29,168] + cbz w0, .L1931 + sub w28, w28, #1 + uxth w28, w28 + b .L1925 +.L1931: + add w20, w20, 1 + uxtb w20, w20 + b .L1901 +.L1952: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] ldp x25, x26, [sp,64] ldp x27, x28, [sp,80] - ldp x29, x30, [sp], 240 + ldp x29, x30, [sp], 224 ret .size FlashMakeFactorBbt, .-FlashMakeFactorBbt .align 2 @@ -12722,41 +12743,41 @@ FtlLowFormatEraseBlock: add x1, x20, :lo12:.LANCHOR2 uxth w26, w0 stp x27, x28, [sp,80] - ldrb w0, [x24,1937] + ldrb w0, [x24,1945] ldr w2, [x1,-96] str w0, [x29,120] mov w0, 0 - cbnz w2, .L1939 - ldrb w0, [x24,120] + cbnz w2, .L1957 + ldrb w0, [x24,196] mov w28, w2 str w0, [x29,124] mov w21, w2 str w26, [x1,2036] mov w19, w2 mov w27, 56 -.L1940: - ldrh w0, [x24,1948] +.L1958: + ldrh w0, [x24,1956] cmp w0, w28 - bls .L1984 + bls .L2002 add x1, x20, :lo12:.LANCHOR2 umull x0, w28, w27 ldr x1, [x1,-88] str wzr, [x1,x0] - add x0, x24, 1976 + add x0, x24, 1984 mov w1, w26 ldrb w0, [x0,w28,sxtw] bl V2P_block uxth w23, w0 mov w1, w23 - cbz w25, .L1941 + cbz w25, .L1959 str x1, [x29,112] bl IsBlkInVendorPart ldr x1, [x29,112] - cbnz w0, .L1942 -.L1941: + cbnz w0, .L1960 +.L1959: mov w0, w1 bl FtlBbmIsBadBlock - cbnz w0, .L1943 + cbnz w0, .L1961 add x3, x20, :lo12:.LANCHOR2 lsl w23, w23, 10 umull x0, w21, w27 @@ -12767,7 +12788,7 @@ FtlLowFormatEraseBlock: ldr x1, [x3,-88] ldr x3, [x3,2128] add x1, x1, x0 - ldrh w0, [x24,2030] + ldrh w0, [x24,2036] mul w0, w21, w0 add w21, w21, 1 str xzr, [x1,8] @@ -12775,19 +12796,19 @@ FtlLowFormatEraseBlock: uxth w21, w21 add x0, x3, x0, sxtw 2 str x0, [x1,16] - b .L1942 -.L1943: + b .L1960 +.L1961: add w19, w19, 1 uxth w19, w19 -.L1942: +.L1960: add w2, w28, 1 uxth w28, w2 - b .L1940 -.L1984: - cbz w21, .L1963 + b .L1958 +.L2002: + cbz w21, .L1981 ldr w0, [x29,124] mov w2, w21 - strb wzr, [x24,1937] + strb wzr, [x24,1945] mov x27, 56 cmp w0, wzr add x0, x20, :lo12:.LANCHOR2 @@ -12796,77 +12817,77 @@ FtlLowFormatEraseBlock: ldr x0, [x0,-88] bl FlashEraseBlocks ldrb w0, [x29,120] - strb w0, [x24,1937] + strb w0, [x24,1945] mov x24, 0 -.L1946: +.L1964: cmp w21, w24, uxth - bls .L1985 + bls .L2003 add x1, x20, :lo12:.LANCHOR2 mul x0, x24, x27 ldr x1, [x1,-88] add x2, x1, x0 ldr w0, [x1,x0] cmn w0, #1 - bne .L1947 + bne .L1965 ldr w0, [x2,4] add w19, w19, 1 lsr w0, w0, 10 uxth w19, w19 bl FtlBbmMapBadBlock -.L1947: +.L1965: add x24, x24, 1 - b .L1946 -.L1985: - cbnz w25, .L1949 + b .L1964 +.L2003: + cbnz w25, .L1967 mov w0, 1 uxth w23, w23 mov w28, 6 str w0, [x29,124] - b .L1950 -.L1949: + b .L1968 +.L1967: add x0, x22, :lo12:.LANCHOR0 - ldrh w1, [x0,2020] - ldrb w0, [x0,120] + ldrh w1, [x0,2026] + ldrb w0, [x0,196] str w1, [x29,124] - cbnz w0, .L1966 + cbnz w0, .L1984 uxtw x0, w1 mov w23, 1 lsr w28, w0, 2 - b .L1950 -.L1966: + b .L1968 +.L1984: mov w23, 1 mov w28, w23 -.L1950: +.L1968: mov w24, 0 add x22, x22, :lo12:.LANCHOR0 -.L1959: +.L1977: mov w27, 0 mov w21, w27 -.L1951: - ldrh w0, [x22,1948] +.L1969: + ldrh w0, [x22,1956] cmp w0, w27 - bls .L1986 + bls .L2004 add x1, x20, :lo12:.LANCHOR2 mov w0, 56 umull x0, w27, w0 ldr x1, [x1,-88] str wzr, [x1,x0] - add x0, x22, 1976 + add x0, x22, 1984 mov w1, w26 ldrb w0, [x0,w27,sxtw] bl V2P_block uxth w2, w0 str w2, [x29,112] mov w1, w2 - cbz w25, .L1952 + cbz w25, .L1970 str x1, [x29,104] bl IsBlkInVendorPart ldr x1, [x29,104] - cbnz w0, .L1953 -.L1952: + cbnz w0, .L1971 +.L1970: mov w0, w1 bl FtlBbmIsBadBlock - cbnz w0, .L1953 + cbnz w0, .L1971 add x2, x20, :lo12:.LANCHOR2 mov w0, 56 ldr w3, [x29,112] @@ -12881,39 +12902,39 @@ FtlLowFormatEraseBlock: ldr x0, [x2,2104] ldr x2, [x2,2112] str x0, [x1,8] - ldrh w0, [x22,2030] + ldrh w0, [x22,2036] mul w0, w21, w0 add w21, w21, 1 sdiv w0, w0, w3 uxth w21, w21 add x0, x2, x0, sxtw 2 str x0, [x1,16] -.L1953: +.L1971: add w4, w27, 1 uxth w27, w4 - b .L1951 -.L1986: - cbz w21, .L1963 + b .L1969 +.L2004: + cbz w21, .L1981 add x0, x20, :lo12:.LANCHOR2 mov w1, w21 mov w2, w23 mov w3, 1 - strb wzr, [x22,1937] + strb wzr, [x22,1945] ldr x0, [x0,-88] bl FlashProgPages ldrb w0, [x29,120] mov x1, 0 - strb w0, [x22,1937] -.L1956: + strb w0, [x22,1945] +.L1974: cmp w21, w1, uxth - bls .L1987 + bls .L2005 add x2, x20, :lo12:.LANCHOR2 mov x0, 56 mul x0, x1, x0 ldr x2, [x2,-88] add x3, x2, x0 ldr w0, [x2,x0] - cbz w0, .L1957 + cbz w0, .L1975 ldr w0, [x3,4] add w19, w19, 1 str x1, [x29,112] @@ -12921,47 +12942,47 @@ FtlLowFormatEraseBlock: uxth w19, w19 bl FtlBbmMapBadBlock ldr x1, [x29,112] -.L1957: +.L1975: add x1, x1, 1 - b .L1956 -.L1987: + b .L1974 +.L2005: add w24, w24, w28 ldr w0, [x29,124] uxth w24, w24 cmp w24, w0 - bcc .L1959 + bcc .L1977 mov x22, 0 mov x24, 56 -.L1960: +.L1978: cmp w21, w22, uxth - bls .L1988 - cbz w25, .L1961 + bls .L2006 + cbz w25, .L1979 add x1, x20, :lo12:.LANCHOR2 mul x0, x22, x24 ldr x1, [x1,-88] add x2, x1, x0 ldr w0, [x1,x0] - cbnz w0, .L1961 + cbnz w0, .L1979 ldr w0, [x2,4] mov w1, 1 lsr w0, w0, 10 bl FtlFreeSysBlkQueueIn -.L1961: +.L1979: add x22, x22, 1 - b .L1960 -.L1988: + b .L1978 +.L2006: cmp w26, 63 - bls .L1967 - cbz w25, .L1963 -.L1967: + bls .L1985 + cbz w25, .L1981 +.L1985: add x20, x20, :lo12:.LANCHOR2 mov w1, w23 mov w2, w21 ldr x0, [x20,-88] bl FlashEraseBlocks -.L1963: +.L1981: mov w0, w19 -.L1939: +.L1957: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -12984,7 +13005,7 @@ FtlBbmTblFlush: stp x25, x26, [sp,64] stp x27, x28, [sp,80] ldr w1, [x2,-96] - cbnz w1, .L1991 + cbnz w1, .L2009 adrp x19, .LANCHOR4 adrp x20, .LANCHOR0 add x24, x19, :lo12:.LANCHOR4 @@ -12994,15 +13015,15 @@ FtlBbmTblFlush: ldr x2, [x2,2120] add x23, x20, 2104 str x2, [x24,176] - ldrh w2, [x20,2028] + ldrh w2, [x20,2034] str x0, [x24,168] bl ftl_memset -.L1992: - ldrh w1, [x20,1970] +.L2010: + ldrh w1, [x20,1978] mov w0, w21 add x21, x21, 1 cmp w0, w1 - bge .L2000 + bge .L2018 add x1, x22, :lo12:.LANCHOR2 ldr x3, [x24,168] ldrh w2, [x1,2248] @@ -13012,20 +13033,20 @@ FtlBbmTblFlush: add x0, x3, x0, sxtw 2 lsl w2, w2, 2 bl ftl_memcpy - b .L1992 -.L2000: + b .L2010 +.L2018: add x19, x19, :lo12:.LANCHOR4 mov w1, 255 add x19, x19, 160 mov w2, 16 mov w24, 0 - adrp x26, .LC119 + adrp x26, .LC118 ldr x21, [x19,16] - adrp x27, .LC120 + adrp x27, .LC119 mov w25, w24 - add x26, x26, :lo12:.LC119 + add x26, x26, :lo12:.LC118 mov x0, x21 - add x27, x27, :lo12:.LC120 + add x27, x27, :lo12:.LC119 bl ftl_memset mov w0, -3887 strh w0, [x21] @@ -13037,9 +13058,9 @@ FtlBbmTblFlush: strh w0, [x21,8] ldrh w0, [x23,6] strh w0, [x21,10] - ldr w0, [x20,1944] + ldr w0, [x20,1952] strh w0, [x21,12] -.L1994: +.L2012: add x28, x22, :lo12:.LANCHOR2 ldrh w1, [x20,2104] ldrh w2, [x20,2106] @@ -13054,11 +13075,11 @@ FtlBbmTblFlush: ldrh w4, [x21,10] str wzr, [x19] bl printk - ldrh w0, [x20,2020] + ldrh w0, [x20,2026] ldrh w1, [x20,2106] sub w0, w0, #1 cmp w1, w0 - blt .L1995 + blt .L2013 ldr w0, [x20,2112] strh wzr, [x20,2106] add w0, w0, 1 @@ -13077,7 +13098,7 @@ FtlBbmTblFlush: mov w2, w1 ldr x0, [x28,-88] bl FlashEraseBlocks -.L1995: +.L2013: mov w1, 1 mov x0, x19 mov w2, w1 @@ -13088,28 +13109,28 @@ FtlBbmTblFlush: strh w0, [x20,2106] ldr w0, [x19] cmn w0, #1 - bne .L1996 + bne .L2014 ldr w1, [x19,4] mov x0, x27 add w24, w24, 1 bl printk uxth w24, w24 cmp w24, 3 - bls .L1994 - adrp x0, .LC121 + bls .L2012 + adrp x0, .LC120 ldr w1, [x19,4] - add x0, x0, :lo12:.LC121 + add x0, x0, :lo12:.LC120 mov w2, w24 add x22, x22, :lo12:.LANCHOR2 bl printk mov w0, 1 str w0, [x22,-96] - b .L1991 -.L1996: - cbnz w25, .L1991 + b .L2009 +.L2014: + cbnz w25, .L2009 mov w25, 1 - b .L1994 -.L1991: + b .L2012 +.L2009: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -13133,15 +13154,15 @@ allocate_data_superblock: stp x25, x26, [sp,64] ldr w1, [x19,-96] stp x27, x28, [sp,80] - cbnz w1, .L2002 + cbnz w1, .L2020 mov x20, x0 add x23, x19, 136 adrp x21, .LANCHOR0 mov w24, 7 add x25, x19, 24 -.L2003: +.L2021: cmp x20, x23 - bne .L2004 + bne .L2022 ldrh w2, [x19,32] ldr w4, [x19,860] lsr w3, w2, 1 @@ -13150,44 +13171,44 @@ allocate_data_superblock: add w1, w1, w0, lsr 2 add x0, x21, :lo12:.LANCHOR0 uxth w1, w1 - ldr w0, [x0,1940] - cbz w0, .L2005 + ldr w0, [x0,1948] + cbz w0, .L2023 ldr w0, [x19,256] cmp w0, 39 - bhi .L2005 + bhi .L2023 cmp w0, 2 mov w1, 0 - bls .L2006 - tbz x2, 0, .L2033 - cbz w4, .L2006 -.L2033: + bls .L2024 + tbz x2, 0, .L2051 + cbz w4, .L2024 +.L2051: mov w1, w3 - b .L2005 -.L2004: + b .L2023 +.L2022: ldrb w0, [x20,8] mov w1, 0 cmp w0, 1 - bne .L2006 + bne .L2024 add x2, x21, :lo12:.LANCHOR0 - ldrh w0, [x2,1968] + ldrh w0, [x2,1976] cmp w0, 1 - beq .L2006 - ldrb w0, [x2,120] - cbnz w0, .L2006 - ldr w2, [x2,1940] + beq .L2024 + ldrb w0, [x2,196] + cbnz w0, .L2024 + ldr w2, [x2,1948] ldrh w0, [x19,32] lsr w1, w0, 3 - cbz w2, .L2005 + cbz w2, .L2023 ldr w2, [x19,256] cmp w2, 1 - bhi .L2005 + bhi .L2023 mul w1, w0, w24 lsr w1, w1, 3 -.L2005: - cbz w1, .L2006 +.L2023: + cbz w1, .L2024 sub w1, w1, #1 uxth w1, w1 -.L2006: +.L2024: ldrb w2, [x20,8] mov x0, x25 add x27, x21, :lo12:.LANCHOR0 @@ -13196,26 +13217,26 @@ allocate_data_superblock: ldrh w0, [x19,32] sub w0, w0, #1 strh w0, [x19,32] - ldrh w0, [x27,1956] + ldrh w0, [x27,1964] cmp w0, w28 - bls .L2003 + bls .L2021 ubfiz x26, x28, 1, 16 ldr x0, [x19] ldrh w0, [x0,x26] - cbnz w0, .L2003 + cbnz w0, .L2021 strh w28, [x20] mov x0, x20 bl make_superblock ldrb w0, [x20,7] - cbz w0, .L2058 + cbz w0, .L2076 mov x0, 0 - ldrh w5, [x27,1948] + ldrh w5, [x27,1956] mov x3, 56 mov w27, w0 mov w6, 65535 -.L2010: +.L2028: cmp w5, w0, uxth - bls .L2061 + bls .L2079 ldr x4, [x19,-88] madd x1, x0, x3, x4 str xzr, [x1,16] @@ -13223,39 +13244,39 @@ allocate_data_superblock: add x1, x20, x0, lsl 1 ldrh w1, [x1,16] cmp w1, w6 - beq .L2011 + beq .L2029 umull x2, w27, w3 add w27, w27, 1 lsl w1, w1, 10 add x2, x4, x2 uxth w27, w27 str w1, [x2,4] -.L2011: +.L2029: add x0, x0, 1 - b .L2010 -.L2061: + b .L2028 +.L2079: add x0, x19, 40 cmp x20, x0 - bne .L2013 + bne .L2031 add x1, x21, :lo12:.LANCHOR0 - ldr w1, [x1,1940] - cbz w1, .L2013 + ldr w1, [x1,1948] + cbz w1, .L2031 ldr x1, [x19,-80] ldrh w1, [x1,x26] cmp w1, 40 - bls .L2013 + bls .L2031 strb wzr, [x19,48] -.L2013: +.L2031: ldrb w0, [x20,8] - cbnz w0, .L2014 + cbnz w0, .L2032 ldr x0, [x19,-80] mov w1, 2 ldrh w2, [x0,x26] - cbz w2, .L2059 + cbz w2, .L2077 add x1, x21, :lo12:.LANCHOR0 - ldrh w1, [x1,2008] + ldrh w1, [x1,2016] add w1, w2, w1 -.L2059: +.L2077: strh w1, [x0,x26] mov w1, 0 ldr w0, [x19,240] @@ -13263,8 +13284,8 @@ allocate_data_superblock: str w0, [x19,240] mov w0, w28 bl ftl_set_blk_mode - b .L2017 -.L2014: + b .L2035 +.L2032: ldr x1, [x19,-80] ldrh w0, [x1,x26] add w0, w0, 1 @@ -13274,20 +13295,20 @@ allocate_data_superblock: str w0, [x19,244] mov w0, w28 bl ftl_set_blk_mode.part.9 -.L2017: +.L2035: ldr x0, [x19,-80] ldr w1, [x19,252] ldrh w0, [x0,x26] cmp w0, w1 - bls .L2018 + bls .L2036 str w0, [x19,252] -.L2018: +.L2036: add x2, x21, :lo12:.LANCHOR0 ldr w3, [x19,240] ldr w0, [x19,244] - ldrh w1, [x2,2008] + ldrh w1, [x2,2016] madd w0, w1, w3, w0 - ldrh w1, [x2,1956] + ldrh w1, [x2,1964] mov x3, 56 udiv w0, w0, w1 ldr x1, [x19,2160] @@ -13296,32 +13317,32 @@ allocate_data_superblock: add w0, w0, 1 str w0, [x1,16] mov x0, 0 -.L2019: +.L2037: cmp w27, w0, uxth - bls .L2062 + bls .L2080 ldr x1, [x19,-88] madd x1, x0, x3, x1 add x0, x0, 1 ldr w2, [x1,4] and w2, w2, -1024 str w2, [x1,4] - b .L2019 -.L2062: + b .L2037 +.L2080: add x0, x21, :lo12:.LANCHOR0 - ldrb w0, [x0,120] - cbz w0, .L2021 + ldrb w0, [x0,196] + cbz w0, .L2039 ldrb w0, [x20,8] cmp w0, 1 ldr x0, [x19,-88] - bne .L2022 + bne .L2040 mov w1, 0 - b .L2060 -.L2022: + b .L2078 +.L2040: mov w1, 1 -.L2060: +.L2078: mov w2, w27 bl FlashEraseBlocks -.L2021: +.L2039: ldrb w1, [x20,8] mov w2, w27 ldr x0, [x19,-88] @@ -13329,15 +13350,15 @@ allocate_data_superblock: mov x1, 0 mov x4, 56 mov w2, w1 -.L2023: +.L2041: cmp w27, w1, uxth - bls .L2063 + bls .L2081 mul x0, x1, x4 ldr x3, [x19,-88] add x5, x3, x0 ldr w3, [x3,x0] cmn w3, #1 - bne .L2024 + bne .L2042 ldr w0, [x5,4] add w2, w2, 1 str x4, [x29,104] @@ -13356,29 +13377,29 @@ allocate_data_superblock: ldrb w0, [x20,7] sub w0, w0, #1 strb w0, [x20,7] -.L2024: +.L2042: add x1, x1, 1 - b .L2023 -.L2063: - cbz w2, .L2026 + b .L2041 +.L2081: + cbz w2, .L2044 mov w0, w28 bl update_multiplier_value bl FtlBbmTblFlush -.L2026: +.L2044: ldrb w0, [x20,7] - cbnz w0, .L2027 -.L2058: + cbnz w0, .L2045 +.L2076: ldr x0, [x19] mov w1, -1 strh w1, [x0,x26] - b .L2003 -.L2027: + b .L2021 +.L2045: adrp x1, .LANCHOR0 add x2, x22, :lo12:.LANCHOR2 add x1, x1, :lo12:.LANCHOR0 strh wzr, [x20,2] strb wzr, [x20,6] - ldrh w1, [x1,2018] + ldrh w1, [x1,2024] strh w28, [x20] mul w0, w0, w1 ldr w1, [x2,232] @@ -13390,7 +13411,7 @@ allocate_data_superblock: ldr x1, [x22,#:lo12:.LANCHOR2] ldrh w2, [x20] strh w0, [x1,x2,lsl 1] -.L2002: +.L2020: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -13415,29 +13436,29 @@ FtlGcFreeBadSuperBlk: ldrh w0, [x19,944] stp x21, x22, [sp,32] mov w21, 0 - cbz w0, .L2066 + cbz w0, .L2084 adrp x22, .LANCHOR0 - adrp x24, .LC122 + adrp x24, .LC121 add x22, x22, :lo12:.LANCHOR0 - add x24, x24, :lo12:.LC122 -.L2074: - ldrh w0, [x22,1948] + add x24, x24, :lo12:.LC121 +.L2092: + ldrh w0, [x22,1956] cmp w0, w21 - bls .L2075 - add x0, x22, 1976 + bls .L2093 + add x0, x22, 1984 mov w1, w23 mov w20, 0 ldrb w0, [x0,w21,sxtw] bl V2P_block uxth w25, w0 -.L2067: +.L2085: ldrh w0, [x19,944] cmp w0, w20 - bls .L2076 + bls .L2094 add x0, x19, 952 ldrh w0, [x0,w20,sxtw 1] cmp w0, w25 - bne .L2068 + bne .L2086 mov w1, w25 mov x0, x24 bl printk @@ -13446,29 +13467,29 @@ FtlGcFreeBadSuperBlk: bl FtlBbmTblFlush ldrh w2, [x19,944] mov w3, w20 -.L2069: +.L2087: cmp w3, w2 - bcs .L2077 + bcs .L2095 add x4, x19, 952 add w0, w3, 1 ldrh w1, [x4,w0,sxtw 1] strh w1, [x4,w3,sxtw 1] uxth w3, w0 - b .L2069 -.L2077: + b .L2087 +.L2095: sub w2, w2, #1 strh w2, [x19,944] -.L2068: +.L2086: add w20, w20, 1 uxth w20, w20 - b .L2067 -.L2076: + b .L2085 +.L2094: add w21, w21, 1 uxth w21, w21 - b .L2074 -.L2075: + b .L2092 +.L2093: bl FtlGcReFreshBadBlk -.L2066: +.L2084: mov w0, 0 ldr x25, [sp,64] ldp x19, x20, [sp,16] @@ -13490,25 +13511,25 @@ update_vpc_list: add x1, x20, :lo12:.LANCHOR2 ldr x2, [x20,#:lo12:.LANCHOR2] ldrh w2, [x2,x0] - cbnz w2, .L2079 + cbnz w2, .L2097 ldrh w0, [x1,280] cmp w0, w19 - bne .L2080 + bne .L2098 mov w0, -1 strh w0, [x1,280] - b .L2081 -.L2080: + b .L2099 +.L2098: ldrh w3, [x1,40] mov w0, w2 cmp w3, w19 - beq .L2082 + beq .L2100 ldrh w3, [x1,88] cmp w3, w19 - beq .L2082 + beq .L2100 ldrh w1, [x1,136] cmp w1, w19 - beq .L2082 -.L2081: + beq .L2100 +.L2099: add x20, x20, :lo12:.LANCHOR2 mov w1, w19 sub x0, x20, #8 @@ -13521,12 +13542,12 @@ update_vpc_list: mov w0, w19 bl FtlGcFreeBadSuperBlk mov w0, 1 - b .L2082 -.L2079: + b .L2100 +.L2097: mov w0, w19 bl List_update_data_list mov w0, 0 -.L2082: +.L2100: ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 ret @@ -13544,15 +13565,15 @@ decrement_vpc_count: str x23, [sp,48] cmp w19, w0 adrp x20, .LANCHOR2 - beq .L2087 + beq .L2105 ubfiz x21, x19, 1, 16 ldr x0, [x20,#:lo12:.LANCHOR2] add x22, x20, :lo12:.LANCHOR2 ldrh w2, [x0,x21] - cbnz w2, .L2088 - adrp x0, .LC123 + cbnz w2, .L2106 + adrp x0, .LC122 mov w1, w19 - add x0, x0, :lo12:.LC123 + add x0, x0, :lo12:.LC122 add x23, x22, 24 bl printk ldr x0, [x20,#:lo12:.LANCHOR2] @@ -13561,7 +13582,7 @@ decrement_vpc_count: mov x0, x23 mov w1, w19 bl test_node_in_list - cbz w0, .L2089 + cbz w0, .L2107 mov w1, w19 mov x0, x23 bl List_remove_node @@ -13571,38 +13592,38 @@ decrement_vpc_count: mov w0, w19 bl INSERT_DATA_LIST ldr x2, [x20,#:lo12:.LANCHOR2] - adrp x0, .LC124 - add x0, x0, :lo12:.LC124 + adrp x0, .LC123 + add x0, x0, :lo12:.LC123 mov w1, w19 ldrh w2, [x2,x21] bl printk -.L2089: +.L2107: mov w0, w19 bl FtlGcRefreshBlock - b .L2096 -.L2088: + b .L2114 +.L2106: sub w2, w2, #1 strh w2, [x0,x21] -.L2087: +.L2105: add x20, x20, :lo12:.LANCHOR2 mov w0, 65535 ldrh w1, [x20,2336] cmp w1, w0 - bne .L2091 + bne .L2109 strh w19, [x20,2336] -.L2096: +.L2114: mov w0, 0 - b .L2090 -.L2091: + b .L2108 +.L2109: cmp w1, w19 mov w0, 0 - beq .L2090 + beq .L2108 mov w0, w1 bl update_vpc_list cmp w0, wzr cset w0, ne strh w19, [x20,2336] -.L2090: +.L2108: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldr x23, [sp,48] @@ -13618,11 +13639,11 @@ FtlSlcSuperblockCheck: stp x19, x20, [sp,16] stp x21, x22, [sp,32] ldrh w1, [x0,4] - cbz w1, .L2097 + cbz w1, .L2115 ldrh w1, [x0] mov w20, 65535 cmp w1, w20 - beq .L2097 + beq .L2115 mov x19, x0 ldrb w0, [x0,6] adrp x21, .LANCHOR2 @@ -13631,61 +13652,61 @@ FtlSlcSuperblockCheck: add x21, x21, :lo12:.LANCHOR2 add x21, x21, 988 ldrh w0, [x19,x0,lsl 1] -.L2101: +.L2119: cmp w0, w20 - bne .L2108 -.L2103: + bne .L2126 +.L2121: ldrb w0, [x19,6] add x1, x22, :lo12:.LANCHOR0 add w0, w0, 1 - ldrh w1, [x1,1948] + ldrh w1, [x1,1956] uxtb w0, w0 strb w0, [x19,6] cmp w1, w0 - bne .L2102 + bne .L2120 ldrh w0, [x19,2] strb wzr, [x19,6] add w0, w0, 1 strh w0, [x19,2] -.L2102: +.L2120: ldrb w0, [x19,6] add x0, x0, 8 ldrh w0, [x19,x0,lsl 1] - b .L2101 -.L2108: + b .L2119 +.L2126: ldrb w1, [x19,8] cmp w1, 1 - bne .L2104 + bne .L2122 add x0, x22, :lo12:.LANCHOR0 - ldrb w0, [x0,120] - cbnz w0, .L2104 + ldrb w0, [x0,196] + cbnz w0, .L2122 ldrh w0, [x19,2] ldrh w0, [x21,w0,sxtw 1] cmp w0, w20 - bne .L2104 + bne .L2122 ldrh w0, [x19,4] sub w0, w0, #1 strh w0, [x19,4] ldrh w0, [x19] bl decrement_vpc_count ldrh w1, [x19,4] - cbnz w1, .L2103 + cbnz w1, .L2121 ldrh w0, [x19,2] strb w1, [x19,6] add w0, w0, 1 strh w0, [x19,2] - b .L2097 -.L2104: + b .L2115 +.L2122: adrp x0, .LANCHOR0 add x0, x0, :lo12:.LANCHOR0 - ldrb w2, [x0,120] - cbz w2, .L2097 + ldrb w2, [x0,196] + cbz w2, .L2115 cmp w1, 1 - bne .L2097 + bne .L2115 ldrh w2, [x19,2] - ldrh w1, [x0,2020] + ldrh w1, [x0,2026] cmp w2, w1 - bcc .L2097 + bcc .L2115 adrp x2, .LANCHOR2 ldrh w1, [x19] ldrh w4, [x19,4] @@ -13695,10 +13716,10 @@ FtlSlcSuperblockCheck: sub w2, w2, w4 strh w2, [x3,x1] strh wzr, [x19,4] - ldrh w0, [x0,2018] + ldrh w0, [x0,2024] strh w0, [x19,2] strb wzr, [x19,6] -.L2097: +.L2115: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x29, x30, [sp], 48 @@ -13723,46 +13744,46 @@ get_new_active_ppa: adrp x23, .LANCHOR0 add x21, x21, 988 ldrh w0, [x19,x0,lsl 1] -.L2110: +.L2128: cmp w0, w22 adrp x20, .LANCHOR0 - bne .L2125 -.L2111: + bne .L2143 +.L2129: ldrb w0, [x19,6] add x1, x23, :lo12:.LANCHOR0 add w0, w0, 1 - ldrh w1, [x1,1948] + ldrh w1, [x1,1956] uxtb w0, w0 strb w0, [x19,6] cmp w1, w0 - bne .L2112 + bne .L2130 ldrh w0, [x19,2] strb wzr, [x19,6] add w0, w0, 1 strh w0, [x19,2] -.L2112: +.L2130: ldrb w0, [x19,6] add x0, x0, 8 ldrh w0, [x19,x0,lsl 1] - b .L2110 -.L2125: + b .L2128 +.L2143: ldrb w1, [x19,8] cmp w1, 1 - bne .L2113 + bne .L2131 add x1, x23, :lo12:.LANCHOR0 - ldrb w1, [x1,120] - cbnz w1, .L2113 + ldrb w1, [x1,196] + cbnz w1, .L2131 ldrh w1, [x19,2] ldrh w1, [x21,w1,sxtw 1] cmp w1, w22 - bne .L2113 + bne .L2131 ldrh w0, [x19,4] sub w0, w0, #1 strh w0, [x19,4] ldrh w0, [x19] bl decrement_vpc_count - b .L2111 -.L2113: + b .L2129 +.L2131: ldrh w1, [x19,4] adrp x21, .LANCHOR2 ldrh w22, [x19,2] @@ -13773,50 +13794,50 @@ get_new_active_ppa: strh w1, [x19,4] mov w24, w23 add x21, x21, 988 -.L2114: +.L2132: add x0, x20, :lo12:.LANCHOR0 ldrb w1, [x19,6] - ldrh w2, [x0,1948] -.L2116: + ldrh w2, [x0,1956] +.L2134: add w1, w1, 1 uxtb w1, w1 cmp w1, w2 - bne .L2115 + bne .L2133 ldrh w1, [x19,2] add w1, w1, 1 strh w1, [x19,2] mov w1, 0 -.L2115: +.L2133: add x0, x19, x1, sxtw 1 ldrh w0, [x0,16] cmp w0, w23 - beq .L2116 + beq .L2134 ldrb w0, [x19,8] strb w1, [x19,6] cmp w0, 1 - bne .L2121 + bne .L2139 add x0, x20, :lo12:.LANCHOR0 - ldrb w0, [x0,120] - cbnz w0, .L2118 + ldrb w0, [x0,196] + cbnz w0, .L2136 ldrh w0, [x19,2] ldrh w0, [x21,w0,sxtw 1] cmp w0, w24 - bne .L2118 + bne .L2136 ldrh w1, [x19,4] - cbz w1, .L2118 + cbz w1, .L2136 ldrh w0, [x19] sub w1, w1, #1 strh w1, [x19,4] bl decrement_vpc_count - b .L2114 -.L2118: + b .L2132 +.L2136: add x20, x20, :lo12:.LANCHOR0 - ldrb w0, [x20,120] - cbz w0, .L2121 + ldrb w0, [x20,196] + cbz w0, .L2139 ldrh w1, [x19,2] - ldrh w0, [x20,2020] + ldrh w0, [x20,2026] cmp w1, w0 - bcc .L2121 + bcc .L2139 adrp x0, .LANCHOR2 ldrh w1, [x19] ldrh w3, [x19,4] @@ -13826,10 +13847,10 @@ get_new_active_ppa: sub w2, w2, w3 strh w2, [x0,x1] strh wzr, [x19,4] - ldrh w0, [x20,2018] + ldrh w0, [x20,2024] strh w0, [x19,2] strb wzr, [x19,6] -.L2121: +.L2139: mov w0, w22 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -13851,7 +13872,7 @@ FtlVpcTblFlush: stp x25, x26, [sp,64] ldr w0, [x19,-96] stp x27, x28, [sp,80] - cbnz w0, .L2128 + cbnz w0, .L2146 adrp x23, .LANCHOR4 ldr x21, [x19,2120] add x20, x23, :lo12:.LANCHOR4 @@ -13877,7 +13898,7 @@ FtlVpcTblFlush: ldrh w1, [x19,42] ldrb w2, [x19,46] str w0, [x19,-64] - mov w0, 80 + mov w0, 83 orr w1, w2, w1, lsl 6 strh w1, [x19,-48] ldrh w1, [x19,88] @@ -13889,7 +13910,7 @@ FtlVpcTblFlush: ldrh w0, [x19,270] orr w1, w2, w1, lsl 6 strh w0, [x19,-56] - ldrh w0, [x25,1970] + ldrh w0, [x25,1978] strb w0, [x19,-54] ldrb w0, [x19,48] strb w0, [x19,-53] @@ -13913,7 +13934,7 @@ FtlVpcTblFlush: strh w0, [x19,-20] ldrh w0, [x19,938] strh w0, [x19,-18] - ldrh w2, [x25,2028] + ldrh w2, [x25,2034] ldr x0, [x20,8] strh w1, [x19,-40] mov w1, 255 @@ -13923,12 +13944,12 @@ FtlVpcTblFlush: mov w2, 48 bl ftl_memcpy ldr x0, [x20,8] - ldrh w2, [x25,1956] + ldrh w2, [x25,1964] ldr x1, [x22,#:lo12:.LANCHOR2] add x0, x0, 48 lsl w2, w2, 1 bl ftl_memcpy - ldrh w2, [x25,1956] + ldrh w2, [x25,1964] ldr x1, [x20,8] uxth x0, w2 lsr w2, w2, 3 @@ -13938,10 +13959,10 @@ FtlVpcTblFlush: add x0, x1, x0, lsl 2 ldr x1, [x24,#:lo12:.LANCHOR0] bl ftl_memcpy - ldrh w0, [x25,2064] - cbz w0, .L2129 - ldrh w0, [x25,1956] - ldrh w2, [x25,2056] + ldrh w0, [x25,2068] + cbz w0, .L2147 + ldrh w0, [x25,1964] + ldrh w2, [x25,2060] lsr w1, w0, 3 add w0, w1, w0, lsl 1 ldr x1, [x20,8] @@ -13951,14 +13972,14 @@ FtlVpcTblFlush: add x0, x1, x0 ldr x1, [x19,2216] bl ftl_memcpy -.L2129: +.L2147: mov w0, 0 mov w20, 0 mov w27, 65535 add x28, x23, :lo12:.LANCHOR4 add x19, x22, :lo12:.LANCHOR2 bl FtlUpdateVaildLpn -.L2130: +.L2148: ldrh w1, [x19,264] ldr x0, [x19,2072] ldrh w2, [x19,266] @@ -13968,10 +13989,10 @@ FtlVpcTblFlush: orr w0, w2, w1, lsl 10 str w0, [x28,164] add x0, x24, :lo12:.LANCHOR0 - ldrh w0, [x0,2020] + ldrh w0, [x0,2026] sub w0, w0, #1 cmp w2, w0 - blt .L2131 + blt .L2149 ldrh w27, [x19,268] strh wzr, [x19,266] strh w1, [x19,268] @@ -13985,7 +14006,7 @@ FtlVpcTblFlush: strh w0, [x19,264] str w1, [x21,4] strh w0, [x21,2] -.L2131: +.L2149: mov w1, 1 add x0, x28, 160 mov w2, w1 @@ -13997,40 +14018,40 @@ FtlVpcTblFlush: cmn w2, #1 uxth w1, w1 strh w1, [x19,266] - bne .L2132 + bne .L2150 cmp w1, 1 - bne .L2133 + bne .L2151 add x1, x24, :lo12:.LANCHOR0 - ldrh w1, [x1,2020] + ldrh w1, [x1,2026] sub w1, w1, #1 strh w1, [x19,266] -.L2133: +.L2151: add w20, w20, 1 uxth w20, w20 cmp w20, 3 - bls .L2130 + bls .L2148 add x23, x23, :lo12:.LANCHOR4 - adrp x0, .LC125 - add x0, x0, :lo12:.LC125 + adrp x0, .LC124 + add x0, x0, :lo12:.LC124 mov w2, w20 add x22, x22, :lo12:.LANCHOR2 ldr w1, [x23,164] bl printk mov w0, 1 str w0, [x22,-96] - b .L2128 -.L2132: + b .L2146 +.L2150: cmp w1, 1 - beq .L2130 + beq .L2148 cmp w2, 256 - beq .L2130 + beq .L2148 mov w0, 65535 cmp w27, w0 - beq .L2128 + beq .L2146 mov w0, w27 mov w1, 1 bl FtlFreeSysBlkQueueIn -.L2128: +.L2146: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -14052,21 +14073,21 @@ FtlSuperblockPowerLostFix: stp x21, x22, [sp,32] stp x23, x24, [sp,48] ldr w1, [x1,-96] - cbnz w1, .L2139 + cbnz w1, .L2157 adrp x21, .LANCHOR0 add x2, x21, :lo12:.LANCHOR0 - ldrb w22, [x2,120] - cbz w22, .L2154 + ldrb w22, [x2,196] + cbz w22, .L2172 ldrb w22, [x0,8] cmp w22, 1 - bne .L2150 + bne .L2168 ldrh w24, [x0,4] - b .L2141 -.L2150: + b .L2159 +.L2168: mov w22, w1 -.L2154: +.L2172: mov w24, 12 -.L2141: +.L2159: mov x19, x0 mov w0, -1 str w0, [x29,96] @@ -14089,13 +14110,13 @@ FtlSuperblockPowerLostFix: mov w0, 22136 movk w0, 0x1234, lsl 16 str w0, [x1,4] -.L2142: +.L2160: sub w24, w24, #1 cmn w24, #1 - beq .L2145 + beq .L2163 ldrh w0, [x19,4] - cbnz w0, .L2143 -.L2145: + cbnz w0, .L2161 +.L2163: ldrh w0, [x19] add x21, x21, :lo12:.LANCHOR0 ldr x2, [x20,#:lo12:.LANCHOR2] @@ -14105,16 +14126,16 @@ FtlSuperblockPowerLostFix: sub w1, w1, w3 strh w1, [x2,x0] strb wzr, [x19,6] - ldrh w0, [x21,2018] + ldrh w0, [x21,2024] strh w0, [x19,2] strh wzr, [x19,4] - b .L2139 -.L2143: + b .L2157 +.L2161: mov x0, x19 bl get_new_active_ppa str w0, [x29,76] cmn w0, #1 - beq .L2145 + beq .L2163 add x1, x20, :lo12:.LANCHOR2 mov w2, w22 mov w3, 0 @@ -14129,8 +14150,8 @@ FtlSuperblockPowerLostFix: bl FlashProgPages ldrh w0, [x19] bl decrement_vpc_count - b .L2142 -.L2139: + b .L2160 +.L2157: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -14157,12 +14178,12 @@ ftl_map_blk_gc: ldrh w2, [x19,8] sub w1, w1, #4 cmp w2, w1 - blt .L2156 + blt .L2174 ubfiz x0, x0, 1, 16 ldrh w24, [x20,x0] - cbz w24, .L2156 + cbz w24, .L2174 ldr w1, [x19,52] - cbnz w1, .L2156 + cbnz w1, .L2174 mov w2, 1 str w2, [x19,52] strh w1, [x20,x0] @@ -14171,26 +14192,26 @@ ftl_map_blk_gc: sub w0, w0, #1 strh w0, [x19,8] add x0, x22, :lo12:.LANCHOR0 - ldrh w0, [x0,2020] + ldrh w0, [x0,2026] cmp w1, w0 - bcc .L2157 + bcc .L2175 mov x0, x19 bl ftl_map_blk_alloc_new_blk -.L2157: +.L2175: adrp x20, .LANCHOR4 mov w21, 0 add x20, x20, :lo12:.LANCHOR4 adrp x26, .LANCHOR2 add x20, x20, 160 -.L2158: +.L2176: ldrh w0, [x19,6] cmp w0, w21 - bls .L2167 + bls .L2185 ubfiz x0, x21, 2, 16 add x27, x25, x0 ldr w1, [x25,x0] cmp w24, w1, lsr 10 - bne .L2159 + bne .L2177 add x1, x26, :lo12:.LANCHOR2 ldr x2, [x1,2080] ldr x23, [x1,2120] @@ -14204,51 +14225,51 @@ ftl_map_blk_gc: bl FlashReadPages ldr w0, [x20] cmn w0, #1 - bne .L2160 -.L2162: + bne .L2178 +.L2180: adrp x1, .LANCHOR4 str wzr, [x27] add x1, x1, :lo12:.LANCHOR4 - adrp x0, .LC126 + adrp x0, .LC125 ldrh w2, [x23,8] - add x0, x0, :lo12:.LC126 + add x0, x0, :lo12:.LC125 ldr w1, [x1,164] bl printk adrp x0, .LANCHOR2 mov w1, 1 add x0, x0, :lo12:.LANCHOR2 str w1, [x0,-96] - b .L2161 -.L2160: + b .L2179 +.L2178: ldrh w0, [x23,8] cmp w0, w21 - bne .L2162 + bne .L2180 ldrh w1, [x23] ldrh w0, [x19,4] cmp w1, w0 - bne .L2162 + bne .L2180 ldr x2, [x20,8] mov x0, x19 mov w1, w21 bl FtlMapWritePage -.L2159: +.L2177: add w21, w21, 1 uxth w21, w21 - b .L2158 -.L2167: + b .L2176 +.L2185: mov w0, w24 mov w1, 1 bl FtlFreeSysBlkQueueIn str wzr, [x19,52] -.L2156: +.L2174: add x22, x22, :lo12:.LANCHOR0 ldrh w1, [x19,2] - ldrh w0, [x22,2020] + ldrh w0, [x22,2026] cmp w1, w0 - bcc .L2161 + bcc .L2179 mov x0, x19 bl ftl_map_blk_alloc_new_blk -.L2161: +.L2179: mov w0, 0 ldr x27, [sp,80] ldp x19, x20, [sp,16] @@ -14262,23 +14283,23 @@ ftl_map_blk_gc: .global Ftl_write_map_blk_to_last_page .type Ftl_write_map_blk_to_last_page, %function Ftl_write_map_blk_to_last_page: - stp x29, x30, [sp, -64]! - adrp x1, .LANCHOR2 + stp x29, x30, [sp, -80]! add x29, sp, 0 - add x3, x1, :lo12:.LANCHOR2 stp x23, x24, [sp,48] + adrp x24, .LANCHOR2 + add x1, x24, :lo12:.LANCHOR2 stp x19, x20, [sp,16] stp x21, x22, [sp,32] - mov x23, x1 - ldr w20, [x3,-96] + stp x25, x26, [sp,64] + ldr w20, [x1,-96] ldr x21, [x0,16] - ldr x24, [x0,40] - cbnz w20, .L2169 + ldr x26, [x0,40] + cbnz w20, .L2187 mov x19, x0 ldrh w0, [x0] - mov w1, 65535 - cmp w0, w1 - bne .L2170 + mov w2, 65535 + cmp w0, w2 + bne .L2188 ldrh w0, [x19,8] add w0, w0, 1 strh w0, [x19,8] @@ -14289,56 +14310,66 @@ Ftl_write_map_blk_to_last_page: strh w20, [x19] add w0, w0, 1 str w0, [x19,48] - b .L2169 -.L2170: + b .L2187 +.L2188: ubfiz x0, x0, 1, 16 - ldrh w22, [x21,x0] + ldrh w2, [x19,2] + ldr x23, [x1,2120] + adrp x22, .LANCHOR0 + ldrh w25, [x21,x0] adrp x21, .LANCHOR4 - ldrh w0, [x19,2] - add x1, x21, :lo12:.LANCHOR4 - orr w0, w0, w22, lsl 10 - str w0, [x1,164] - ldr x0, [x3,2072] - str x0, [x1,168] - ldr x0, [x3,2120] - str x0, [x1,176] - ldr w1, [x19,48] - str w1, [x0,4] - mov w1, -1291 - strh w1, [x0,8] - ldrh w1, [x19,4] - strh w1, [x0] + add x0, x21, :lo12:.LANCHOR4 + orr w2, w2, w25, lsl 10 + str w2, [x0,164] + ldr x2, [x1,2072] + str x2, [x0,168] + str x23, [x0,176] + ldr w0, [x19,48] + str w0, [x23,4] + mov w0, -1291 + strh w0, [x23,8] + ldrh w0, [x19,4] + strh w0, [x23] + add x0, x22, :lo12:.LANCHOR0 + strh w25, [x23,2] + ldrh w2, [x0,2026] + ldr x0, [x1,2072] mov w1, 255 - strh w22, [x0,2] - adrp x0, .LANCHOR0+2020 - ldrh w2, [x0,#:lo12:.LANCHOR0+2020] - ldr x0, [x3,2072] lsl w2, w2, 3 bl ftl_memset - mov w1, w20 -.L2171: - ldrh w0, [x19,6] - cmp w0, w1 - bls .L2174 - ubfiz x3, x1, 2, 32 - ldr w0, [x24,x3] - cmp w22, w0, lsr 10 - bne .L2172 - add x2, x23, :lo12:.LANCHOR2 + mov w0, w20 +.L2189: + ldrh w1, [x19,6] + cmp w1, w0 + bls .L2196 + ubfiz x3, x0, 2, 32 + ldr w1, [x26,x3] + cmp w25, w1, lsr 10 + bne .L2190 + add x2, x24, :lo12:.LANCHOR2 add w20, w20, 1 uxth w20, w20 ldr x4, [x2,2072] - ubfiz x0, x20, 3, 16 - str w1, [x4,x0] + ubfiz x1, x20, 3, 16 + str w0, [x4,x1] ldr x2, [x2,2072] - ldr w3, [x24,x3] - add x0, x2, x0 - str w3, [x0,4] -.L2172: - add w1, w1, 1 - uxth w1, w1 - b .L2171 -.L2174: + ldr w3, [x26,x3] + add x1, x2, x1 + str w3, [x1,4] +.L2190: + add w0, w0, 1 + uxth w0, w0 + b .L2189 +.L2196: + add x22, x22, :lo12:.LANCHOR0 + ldrb w0, [x22,8] + cbz w0, .L2192 + add x0, x21, :lo12:.LANCHOR4 + ldrh w1, [x22,2034] + ldr x0, [x0,168] + bl js_hash + str w0, [x23,12] +.L2192: mov w1, 1 add x0, x21, :lo12:.LANCHOR4 add x0, x0, 160 @@ -14350,12 +14381,13 @@ Ftl_write_map_blk_to_last_page: strh w0, [x19,2] mov x0, x19 bl ftl_map_blk_gc -.L2169: +.L2187: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] - ldp x29, x30, [sp], 64 + ldp x25, x26, [sp,64] + ldp x29, x30, [sp], 80 ret .size Ftl_write_map_blk_to_last_page, .-Ftl_write_map_blk_to_last_page .align 2 @@ -14364,122 +14396,134 @@ Ftl_write_map_blk_to_last_page: FtlMapWritePage: stp x29, x30, [sp, -112]! add x29, sp, 0 - stp x19, x20, [sp,16] - adrp x20, .LANCHOR4 - mov x19, x0 - stp x25, x26, [sp,64] - add x20, x20, :lo12:.LANCHOR4 - adrp x25, .LC127 stp x27, x28, [sp,80] - stp x21, x22, [sp,32] + adrp x27, .LANCHOR4 + mov x28, x0 stp x23, x24, [sp,48] + add x23, x27, :lo12:.LANCHOR4 + adrp x24, .LC126 + stp x21, x22, [sp,32] + stp x25, x26, [sp,64] + stp x19, x20, [sp,16] mov w26, w1 - mov x27, x2 + str x2, [x29,104] mov w22, 0 - adrp x28, .LANCHOR2 - add x20, x20, 160 - add x25, x25, :lo12:.LC127 -.L2176: - add x1, x28, :lo12:.LANCHOR2 - adrp x23, .LANCHOR0 - str x23, [x29,104] - adrp x24, .LANCHOR2 + add x23, x23, 160 + add x24, x24, :lo12:.LC126 +.L2198: + adrp x19, .LANCHOR2 + adrp x20, .LANCHOR0 + add x1, x19, :lo12:.LANCHOR2 ldr w0, [x1,216] add w0, w0, 1 str w0, [x1,216] - add x0, x23, :lo12:.LANCHOR0 - ldrh w1, [x19,2] - ldrh w0, [x0,2020] + add x0, x20, :lo12:.LANCHOR0 + ldrh w1, [x28,2] + ldrh w0, [x0,2026] sub w0, w0, #1 cmp w1, w0 - bge .L2177 - ldrh w1, [x19] + bge .L2199 + ldrh w1, [x28] mov w0, 65535 cmp w1, w0 - bne .L2178 -.L2177: - mov x0, x19 + bne .L2200 +.L2199: + mov x0, x28 bl Ftl_write_map_blk_to_last_page -.L2178: - add x2, x24, :lo12:.LANCHOR2 +.L2200: + add x2, x19, :lo12:.LANCHOR2 ldr w1, [x2,-96] - cbnz w1, .L2179 - ldrh w3, [x19] + cbnz w1, .L2201 + ldrh w3, [x28] adrp x21, .LANCHOR4 - ldr x0, [x19,16] - ldrh w23, [x0,x3,lsl 1] - ldrh w0, [x19,2] - str x27, [x20,8] - orr w0, w0, w23, lsl 10 - str w0, [x20,4] + ldr x0, [x28,16] + ldrh w25, [x0,x3,lsl 1] + add x3, x27, :lo12:.LANCHOR4 + ldrh w0, [x28,2] + add x3, x3, 160 + orr w0, w0, w25, lsl 10 + str w0, [x3,4] + ldr x0, [x29,104] + str x0, [x3,8] ldr x0, [x2,2120] mov w2, 16 - str x0, [x20,16] + str x0, [x3,16] + str x3, [x29,96] bl ftl_memset - ldr x0, [x20,16] - ldr w1, [x19,48] - str w1, [x0,4] - strh w26, [x0,8] - ldrh w1, [x19,4] - strh w1, [x0] + ldr x3, [x29,96] + add x1, x20, :lo12:.LANCHOR0 + ldr w0, [x28,48] + ldr x2, [x3,16] + str w0, [x2,4] + strh w26, [x2,8] + ldrh w0, [x28,4] + strh w0, [x2] + strh w25, [x2,2] + ldrb w0, [x1,8] + cbz w0, .L2202 + ldr x0, [x3,8] + ldrh w1, [x1,2034] + str x2, [x29,96] + bl js_hash + ldr x2, [x29,96] + str w0, [x2,12] +.L2202: mov w1, 1 - strh w23, [x0,2] + mov x0, x23 mov w2, w1 mov w3, w1 - mov x0, x20 bl FlashProgPages - ldrh w0, [x19,2] + ldrh w0, [x28,2] add w0, w0, 1 uxth w0, w0 - strh w0, [x19,2] - ldr w1, [x20] + strh w0, [x28,2] + ldr w1, [x23] cmn w1, #1 - bne .L2180 - ldr w1, [x20,4] - mov x0, x25 + bne .L2203 + ldr w1, [x23,4] + mov x0, x24 add w22, w22, 1 bl printk uxth w22, w22 - ldrh w0, [x19,2] + ldrh w0, [x28,2] cmp w0, 2 - bhi .L2181 - ldr x0, [x29,104] - add x23, x0, :lo12:.LANCHOR0 - ldrh w0, [x23,2020] + bhi .L2204 + add x20, x20, :lo12:.LANCHOR0 + ldrh w0, [x20,2026] sub w0, w0, #1 - strh w0, [x19,2] -.L2181: + strh w0, [x28,2] +.L2204: cmp w22, 3 - bls .L2176 + bls .L2198 add x21, x21, :lo12:.LANCHOR4 - adrp x0, .LC128 - add x0, x0, :lo12:.LC128 + adrp x0, .LC127 + add x0, x0, :lo12:.LC127 mov w2, w22 - add x24, x24, :lo12:.LANCHOR2 + add x19, x19, :lo12:.LANCHOR2 ldr w1, [x21,164] bl printk mov w0, 1 - str w0, [x24,-96] - b .L2179 -.L2180: - cbz w1, .L2183 - strh w23, [x19,60] -.L2183: + str w0, [x19,-96] + b .L2201 +.L2203: + cbz w1, .L2206 + strh w25, [x28,60] +.L2206: cmp w0, 1 - beq .L2184 + beq .L2207 cmp w1, 256 - beq .L2184 - ldr w0, [x19,56] - cbz w0, .L2185 -.L2184: - str wzr, [x19,56] - b .L2176 -.L2185: + beq .L2207 + ldr w0, [x28,56] + cbz w0, .L2208 +.L2207: + str wzr, [x28,56] + b .L2198 +.L2208: add x21, x21, :lo12:.LANCHOR4 - ldr x0, [x19,40] + ldr x0, [x28,40] ldr w1, [x21,164] str w1, [x0,w26,uxtw 2] -.L2179: +.L2201: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -14522,199 +14566,233 @@ FtlMapTblRecovery: stp x29, x30, [sp, -144]! mov w1, 0 add x29, sp, 0 - stp x27, x28, [sp,80] - mov x27, x0 stp x23, x24, [sp,48] - stp x25, x26, [sp,64] + mov x23, x0 stp x19, x20, [sp,16] + stp x25, x26, [sp,64] + stp x27, x28, [sp,80] stp x21, x22, [sp,32] - ldrh w22, [x27,6] - adrp x19, .LANCHOR2 - ldr x20, [x0,40] - mov w25, 0 - ldr x21, [x0,16] - lsl w2, w22, 2 - ldr x0, [x0,24] - adrp x24, .LANCHOR0 - str x0, [x29,128] - mov x0, x20 - ldrh w23, [x27,8] + ldrh w25, [x23,6] + adrp x21, .LANCHOR2 + ldr x0, [x0,40] + mov w19, 0 + lsl w2, w25, 2 + ldrh w27, [x23,8] + str x0, [x29,136] + adrp x26, .LANCHOR0 + ldr x24, [x23,16] + ldr x28, [x23,24] bl ftl_memset - str x19, [x29,136] - add x1, x19, :lo12:.LANCHOR2 + add x1, x21, :lo12:.LANCHOR2 adrp x0, .LANCHOR4 - add x5, x0, :lo12:.LANCHOR4 - str x0, [x29,120] - add x5, x5, 160 - sub w0, w23, #1 + add x4, x0, :lo12:.LANCHOR4 + str x0, [x29,112] + add x4, x4, 160 + str x21, [x29,128] ldr x2, [x1,2072] - ldr x26, [x1,2120] + sub w0, w27, #1 + ldr x20, [x1,2120] mov w1, -1 - str x2, [x5,8] - str x26, [x5,16] - mov x19, x5 - strh w1, [x27] - strh w1, [x27,2] + str x2, [x4,8] + str x20, [x4,16] + mov x21, x4 + strh w1, [x23] + strh w1, [x23,2] mov w1, 1 - str wzr, [x27,52] - str wzr, [x27,48] - str w1, [x27,56] - str w0, [x29,116] -.L2191: - cmp w25, w23 - bge .L2207 - ldr w0, [x29,116] - sxtw x28, w25 - cmp w25, w0 - bne .L2192 - lsl x0, x28, 1 + str wzr, [x23,52] + str wzr, [x23,48] + str w1, [x23,56] + str w0, [x29,108] +.L2217: + cmp w19, w27 + adrp x22, .LANCHOR0 + bge .L2235 + ldr w0, [x29,108] + sxtw x2, w19 + cmp w19, w0 + bne .L2218 + lsl x0, x2, 1 mov w1, 1 - add x23, x21, x0 - mov w19, 0 - ldrh w0, [x21,x0] + add x21, x24, x0 + str x2, [x29,128] + mov w26, 0 + mov w27, -1 + ldrh w0, [x24,x0] bl FtlGetLastWrittenPage + strh w19, [x23] + ldr x2, [x29,128] sxth w24, w0 add w0, w0, 1 - strh w0, [x27,2] - ldr x0, [x29,128] + strh w0, [x23,2] add w24, w24, 1 - strh w25, [x27] - ldr w0, [x0,x28,lsl 2] - str w0, [x27,48] - ldr x0, [x29,120] - add x21, x0, :lo12:.LANCHOR4 - add x21, x21, 160 -.L2193: - cmp w19, w24 - bge .L2207 - ldrh w0, [x23] + ldr w0, [x28,x2,lsl 2] + str w0, [x23,48] + ldr x0, [x29,112] + add x19, x0, :lo12:.LANCHOR4 + add x19, x19, 160 +.L2219: + cmp w26, w24 + bge .L2235 + ldrh w0, [x21] mov w1, 1 mov w2, w1 - orr w0, w19, w0, lsl 10 - str w0, [x21,4] - mov x0, x21 + orr w0, w26, w0, lsl 10 + str w0, [x19,4] + mov x0, x19 bl FlashReadPages - ldr w0, [x21] + add x1, x22, :lo12:.LANCHOR0 + ldrb w0, [x1,8] + cbz w0, .L2220 + ldr x0, [x19,16] + ldr w28, [x0,12] + cbz w28, .L2220 + ldr x0, [x19,8] + ldrh w1, [x1,2034] + bl js_hash + cmp w28, w0 + beq .L2220 + str w27, [x19] +.L2220: + ldr w0, [x19] cmn w0, #1 - beq .L2194 - ldrh w0, [x26,8] - cmp w0, w22 - bcs .L2194 - ldrh w2, [x26] - ldrh w1, [x27,4] + beq .L2221 + ldrh w0, [x20,8] + cmp w0, w25 + bcs .L2221 + ldrh w2, [x20] + ldrh w1, [x23,4] cmp w2, w1 - bne .L2194 + bne .L2221 ubfiz x0, x0, 2, 16 - ldr w1, [x21,4] - str w1, [x20,x0] -.L2194: - add w19, w19, 1 - sxth w19, w19 - b .L2193 -.L2207: - mov x0, x27 + ldr x2, [x29,136] + ldr w1, [x19,4] + str w1, [x2,x0] +.L2221: + add w26, w26, 1 + sxth w26, w26 + b .L2219 +.L2235: + mov x0, x23 + add x22, x22, :lo12:.LANCHOR0 bl ftl_free_no_use_map_blk - adrp x0, .LANCHOR0+2020 - ldrh w1, [x27,2] - ldrh w0, [x0,#:lo12:.LANCHOR0+2020] + ldrh w1, [x23,2] + ldrh w0, [x22,2026] cmp w1, w0 - bne .L2197 - mov x0, x27 + bne .L2224 + mov x0, x23 bl ftl_map_blk_alloc_new_blk - b .L2197 -.L2192: - ldr x0, [x29,136] + b .L2224 +.L2218: + ldr x0, [x29,128] + lsl x2, x2, 1 add x0, x0, :lo12:.LANCHOR2 ldr x0, [x0,2072] - str x0, [x19,8] - lsl x0, x28, 1 - add x28, x21, x0 - ldrh w1, [x21,x0] - add x0, x24, :lo12:.LANCHOR0 - ldrh w0, [x0,2020] + str x0, [x21,8] + add x0, x24, x2 + str x0, [x29,120] + add x0, x26, :lo12:.LANCHOR0 + ldrh w1, [x24,x2] + ldrh w0, [x0,2026] sub w0, w0, #1 orr w0, w0, w1, lsl 10 mov w1, 1 - str w0, [x19,4] + str w0, [x21,4] mov w2, w1 - mov x0, x19 + mov x0, x21 bl FlashReadPages - ldr w0, [x19] + ldr w0, [x21] cmn w0, #1 - beq .L2208 - ldrh w1, [x26] - mov w4, 0 - ldrh w0, [x27,4] + beq .L2236 + ldrh w1, [x20] + mov w22, 0 + ldrh w0, [x23,4] cmp w1, w0 - bne .L2217 - ldrh w1, [x26,8] + bne .L2257 + ldrh w1, [x20,8] mov w0, 64245 cmp w1, w0 - bne .L2217 -.L2199: - adrp x0, .LANCHOR0 - add x0, x0, :lo12:.LANCHOR0 - ldrh w0, [x0,2020] + bne .L2257 + mov w5, w22 +.L2226: + add x0, x26, :lo12:.LANCHOR0 + ldrh w0, [x0,2026] sub w0, w0, #1 - cmp w4, w0 - bge .L2202 - ldr x0, [x29,136] - sbfiz x1, x4, 3, 32 + cmp w5, w0 + bge .L2229 + ldr x0, [x29,128] + sbfiz x1, x5, 3, 32 add x0, x0, :lo12:.LANCHOR2 ldr x2, [x0,2072] ldrh w0, [x2,x1] - cmp w0, w22 - bcs .L2200 + cmp w0, w25 + bcs .L2227 add x1, x2, x1 ubfiz x0, x0, 2, 16 + ldr x2, [x29,136] ldr w1, [x1,4] - str w1, [x20,x0] -.L2200: - add w4, w4, 1 - sxth w4, w4 - b .L2199 -.L2208: - mov w4, 0 -.L2217: - adrp x0, .LANCHOR0 - add x0, x0, :lo12:.LANCHOR0 - ldrh w0, [x0,2020] - cmp w4, w0 - bge .L2202 - ldrh w0, [x28] + str w1, [x2,x0] +.L2227: + add w5, w5, 1 + sxth w5, w5 + b .L2226 +.L2236: + mov w22, 0 +.L2257: + add x6, x26, :lo12:.LANCHOR0 + ldrh w0, [x6,2026] + cmp w22, w0 + bge .L2229 + ldr x0, [x29,120] mov w1, 1 mov w2, w1 - str x4, [x29,104] - orr w0, w4, w0, lsl 10 - str w0, [x19,4] - mov x0, x19 + str x6, [x29,96] + ldrh w0, [x0] + orr w0, w22, w0, lsl 10 + str w0, [x21,4] + mov x0, x21 bl FlashReadPages - ldr w0, [x19] - ldr x4, [x29,104] + ldr x6, [x29,96] + ldrb w0, [x6,8] + cbz w0, .L2230 + ldr x0, [x21,16] + ldr w2, [x0,12] + cbz w2, .L2230 + ldr x0, [x21,8] + ldrh w1, [x6,2034] + str x2, [x29,96] + bl js_hash + ldr x2, [x29,96] + cmp w2, w0 + beq .L2230 + mov w0, -1 + str w0, [x21] +.L2230: + ldr w0, [x21] cmn w0, #1 - beq .L2203 - ldrh w0, [x26,8] - cmp w0, w22 - bcs .L2203 - ldrh w2, [x26] - ldrh w1, [x27,4] + beq .L2231 + ldrh w0, [x20,8] + cmp w0, w25 + bcs .L2231 + ldrh w2, [x20] + ldrh w1, [x23,4] cmp w2, w1 - bne .L2203 + bne .L2231 ubfiz x0, x0, 2, 16 - ldr w1, [x19,4] - str w1, [x20,x0] -.L2203: - add w4, w4, 1 - sxth w4, w4 + ldr x2, [x29,136] + ldr w1, [x21,4] + str w1, [x2,x0] +.L2231: + add w5, w22, 1 + sxth w22, w5 + b .L2257 +.L2229: + add w19, w19, 1 + sxth w19, w19 b .L2217 -.L2202: - add w6, w25, 1 - sxth w25, w6 - b .L2191 -.L2197: - mov x0, x27 +.L2224: + mov x0, x23 bl ftl_map_blk_gc - mov x0, x27 + mov x0, x23 bl ftl_map_blk_gc mov w0, 0 ldp x19, x20, [sp,16] @@ -14736,13 +14814,13 @@ FtlLoadVonderInfo: stp x29, x30, [sp, -16]! add x0, x0, 224 add x29, sp, 0 - ldrh w2, [x1,2040] + ldrh w2, [x1,2044] strh w2, [x0,10] mov w2, -3962 strh w2, [x0,4] - ldrh w2, [x1,2066] + ldrh w2, [x1,2070] strh w2, [x0,8] - ldrh w2, [x1,2042] + ldrh w2, [x1,2046] ldr x1, [x1,2072] str x1, [x0,16] adrp x1, .LANCHOR2 @@ -14790,26 +14868,26 @@ FtlVendorPartWrite: stp x21, x22, [sp,32] mov w28, w1 add w1, w26, w1 - ldrh w21, [x0,2026] + ldrh w21, [x0,2032] mov x25, x2 - ldrh w0, [x0,2012] + ldrh w0, [x0,2020] mov w20, -1 cmp w1, w0 - bhi .L2221 + bhi .L2261 adrp x24, .LANCHOR4 lsr w21, w26, w21 add x24, x24, :lo12:.LANCHOR4 mov w20, 0 adrp x27, .LANCHOR2 add x24, x24, 224 -.L2222: - cbz w28, .L2221 +.L2262: + cbz w28, .L2261 adrp x0, .LANCHOR2 add x2, x0, :lo12:.LANCHOR2 ldr x0, [x2,2208] ldr w4, [x0,w21,uxtw 2] add x0, x23, :lo12:.LANCHOR0 - ldrh w1, [x0,2024] + ldrh w1, [x0,2030] uxth w0, w28 udiv w22, w26, w1 msub w22, w22, w1, w26 @@ -14818,8 +14896,8 @@ FtlVendorPartWrite: cmp w19, w28 csel w19, w0, w19, hi cmp w19, w1 - beq .L2224 - cbz w4, .L2224 + beq .L2264 + cbz w4, .L2264 ldr x0, [x2,2088] mov w1, 1 str x0, [x29,128] @@ -14828,15 +14906,15 @@ FtlVendorPartWrite: str w4, [x29,124] str xzr, [x29,136] bl FlashReadPages - b .L2225 -.L2224: + b .L2265 +.L2264: add x0, x27, :lo12:.LANCHOR2 add x2, x23, :lo12:.LANCHOR0 mov w1, 0 ldr x0, [x0,2088] - ldrh w2, [x2,2028] + ldrh w2, [x2,2034] bl ftl_memset -.L2225: +.L2265: add x5, x27, :lo12:.LANCHOR2 lsl w4, w19, 9 ubfiz x22, x22, 9, 16 @@ -14859,8 +14937,8 @@ FtlVendorPartWrite: ldr x4, [x29,104] csinv w20, w20, wzr, ne add x25, x25, x4, sxtw - b .L2222 -.L2221: + b .L2262 +.L2261: mov w0, w20 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -14883,8 +14961,8 @@ Ftl_save_ext_data: add x29, sp, 0 ldr w3, [x0,336] cmp w3, w1 - bne .L2235 - mov w1, 80 + bne .L2275 + mov w1, 83 movk w1, 0x5000, lsl 16 str w1, [x2,4] ldr w1, [x0,224] @@ -14918,7 +14996,7 @@ Ftl_save_ext_data: str w0, [x2,64] mov w0, 0 bl FtlVendorPartWrite -.L2235: +.L2275: ldp x29, x30, [sp], 16 ret .size Ftl_save_ext_data, .-Ftl_save_ext_data @@ -14926,37 +15004,37 @@ Ftl_save_ext_data: .global FtlEctTblFlush .type FtlEctTblFlush, %function FtlEctTblFlush: - adrp x1, .LANCHOR0+1940 + adrp x1, .LANCHOR0+1948 adrp x2, .LANCHOR2 stp x29, x30, [sp, -16]! add x29, sp, 0 - ldr w3, [x1,#:lo12:.LANCHOR0+1940] + ldr w3, [x1,#:lo12:.LANCHOR0+1948] mov w1, 32 - cbz w3, .L2238 + cbz w3, .L2278 add x3, x2, :lo12:.LANCHOR2 ldr w3, [x3,256] cmp w3, 39 mov w3, 4 csel w1, w1, w3, hi -.L2238: +.L2278: adrp x3, .LANCHOR4 add x3, x3, :lo12:.LANCHOR4 ldrh w4, [x3,288] cmp w4, 31 - bhi .L2239 + bhi .L2279 add w4, w4, 1 mov w1, 1 strh w4, [x3,288] -.L2239: - cbnz w0, .L2240 +.L2279: + cbnz w0, .L2280 add x0, x2, :lo12:.LANCHOR2 ldr x3, [x0,2160] ldr w0, [x3,20] add w1, w1, w0 ldr w0, [x3,16] cmp w0, w1 - bcc .L2241 -.L2240: + bcc .L2281 +.L2280: add x2, x2, :lo12:.LANCHOR2 ldr x0, [x2,2160] ldr w1, [x0,16] @@ -14976,7 +15054,7 @@ FtlEctTblFlush: mov w0, 64 bl FtlVendorPartWrite bl Ftl_save_ext_data -.L2241: +.L2281: mov w0, 0 ldp x29, x30, [sp], 16 ret @@ -14998,30 +15076,30 @@ FtlVendorPartRead: stp x27, x28, [sp,80] mov x26, x2 add w3, w23, w22 - ldrh w2, [x0,2012] + ldrh w2, [x0,2020] str x1, [x29,136] cmp w3, w2 - ldrh w20, [x0,2026] + ldrh w20, [x0,2032] mov w0, -1 - bhi .L2246 + bhi .L2286 adrp x27, .LANCHOR4 - adrp x0, .LC129 - add x0, x0, :lo12:.LC129 + adrp x0, .LC128 + add x0, x0, :lo12:.LC128 add x27, x27, :lo12:.LANCHOR4 str x0, [x29,128] lsr w20, w23, w20 add x0, x27, 224 mov w21, 0 str x0, [x29,120] -.L2247: - cbz w22, .L2255 +.L2287: + cbz w22, .L2295 adrp x25, .LANCHOR2 add x4, x25, :lo12:.LANCHOR2 ldr x0, [x4,2208] ldr w3, [x0,w20,uxtw 2] ldr x0, [x29,136] add x0, x0, :lo12:.LANCHOR0 - ldrh w19, [x0,2024] + ldrh w19, [x0,2030] uxth w0, w22 udiv w24, w23, w19 msub w24, w24, w19, w23 @@ -15030,7 +15108,7 @@ FtlVendorPartRead: cmp w19, w22 csel w19, w0, w19, hi lsl w28, w19, 9 - cbz w3, .L2249 + cbz w3, .L2289 ldr x0, [x4,2088] mov w1, 1 str x0, [x29,160] @@ -15047,7 +15125,7 @@ FtlVendorPartRead: ldr w0, [x27,160] csinv w21, w21, wzr, ne cmp w0, 256 - bne .L2251 + bne .L2291 ldr x0, [x29,128] mov w1, w20 mov w2, w3 @@ -15057,7 +15135,7 @@ FtlVendorPartRead: ldr x0, [x29,120] ldr x2, [x4,2088] bl FtlMapWritePage -.L2251: +.L2291: add x25, x25, :lo12:.LANCHOR2 ubfiz x24, x24, 9, 16 mov x0, x26 @@ -15065,21 +15143,21 @@ FtlVendorPartRead: ldr x1, [x25,2088] add x1, x1, x24 bl ftl_memcpy - b .L2252 -.L2249: + b .L2292 +.L2289: mov x0, x26 mov w1, w3 mov w2, w28 bl ftl_memset -.L2252: +.L2292: add w20, w20, 1 sub w22, w22, w19 add w23, w23, w19 add x26, x26, x28, sxtw - b .L2247 -.L2255: + b .L2287 +.L2295: mov w0, w21 -.L2246: +.L2286: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -15106,10 +15184,10 @@ FtlLoadEctTbl: mov w0, 17221 movk w0, 0x4254, lsl 16 cmp w1, w0 - beq .L2257 + beq .L2297 adrp x0, .LC75 - adrp x1, .LC130 - add x1, x1, :lo12:.LC130 + adrp x1, .LC129 + add x1, x1, :lo12:.LC129 add x0, x0, :lo12:.LC75 bl printk ldrh w2, [x19,2144] @@ -15117,7 +15195,7 @@ FtlLoadEctTbl: ldr x0, [x19,2160] lsl w2, w2, 9 bl ftl_memset -.L2257: +.L2297: mov w0, 0 ldr x19, [sp,16] ldp x29, x30, [sp], 32 @@ -15142,7 +15220,7 @@ Ftl_load_ext_data: mov w0, 19539 movk w0, 0x4654, lsl 16 cmp w1, w0 - beq .L2259 + beq .L2299 mov x0, x21 mov w1, 0 mov w2, 512 @@ -15150,13 +15228,13 @@ Ftl_load_ext_data: mov w0, 19539 movk w0, 0x4654, lsl 16 str w0, [x20,336] -.L2259: +.L2299: add x0, x19, :lo12:.LANCHOR2 mov w2, 19539 movk w2, 0x4654, lsl 16 ldr w3, [x0,336] cmp w3, w2 - bne .L2260 + bne .L2300 ldr w2, [x0,424] str w2, [x0,224] ldr w2, [x0,428] @@ -15183,7 +15261,7 @@ Ftl_load_ext_data: ldr w2, [x0,384] str w2, [x0,256] str w1, [x0,328] -.L2260: +.L2300: add x0, x19, :lo12:.LANCHOR2 adrp x20, .LANCHOR0 ldr w1, [x0,404] @@ -15191,24 +15269,24 @@ Ftl_load_ext_data: mov w0, 34661 movk w0, 0x1234, lsl 16 cmp w1, w0 - bne .L2261 + bne .L2301 add x0, x20, :lo12:.LANCHOR0 mov w1, 1 - str w1, [x0,1940] + str w1, [x0,1948] adrp x0, .LC75 - adrp x1, .LC131 + adrp x1, .LC130 add x0, x0, :lo12:.LC75 - add x1, x1, :lo12:.LC131 + add x1, x1, :lo12:.LC130 bl printk -.L2261: +.L2301: add x19, x19, :lo12:.LANCHOR2 add x20, x20, :lo12:.LANCHOR0 ldr x21, [sp,32] - ldrh w1, [x20,2008] + ldrh w1, [x20,2016] ldr w2, [x19,240] ldr w0, [x19,244] madd w0, w1, w2, w0 - ldrh w1, [x20,1956] + ldrh w1, [x20,1964] udiv w0, w0, w1 str w0, [x19,248] ldp x19, x20, [sp,16] @@ -15293,12 +15371,12 @@ FtlMapBlkWriteDumpData: ldr w1, [x0,56] ldrh w20, [x0,6] ldr x4, [x0,40] - cbz w1, .L2266 + cbz w1, .L2306 adrp x3, .LANCHOR2 str wzr, [x0,56] add x3, x3, :lo12:.LANCHOR2 ldr w1, [x3,-96] - cbnz w1, .L2266 + cbnz w1, .L2306 adrp x2, .LANCHOR4 sub w20, w20, #1 add x1, x2, :lo12:.LANCHOR4 @@ -15313,24 +15391,24 @@ FtlMapBlkWriteDumpData: mov x19, x2 ldr w3, [x4,x3] str w3, [x1,4] - cbz w3, .L2270 + cbz w3, .L2310 mov x0, x1 mov w1, 1 mov w2, w1 bl FlashReadPages - b .L2271 -.L2270: - adrp x2, .LANCHOR0+2028 + b .L2311 +.L2310: + adrp x2, .LANCHOR0+2034 mov w1, 255 - ldrh w2, [x2,#:lo12:.LANCHOR0+2028] + ldrh w2, [x2,#:lo12:.LANCHOR0+2034] bl ftl_memset -.L2271: +.L2311: add x2, x19, :lo12:.LANCHOR4 mov x0, x21 mov w1, w20 ldr x2, [x2,168] bl FtlMapWritePage -.L2266: +.L2306: ldp x19, x20, [sp,16] ldr x21, [sp,32] ldp x29, x30, [sp], 48 @@ -15346,12 +15424,12 @@ FlashReadFacBbtData.part.14: str x19, [sp,16] mov w7, 1 mov x19, x0 - cbnz w1, .L2275 -.L2277: + cbnz w1, .L2315 +.L2317: add x0, x4, :lo12:.LANCHOR4 ldr w1, [x0,92] cmp w3, w1 - bcs .L2275 + bcs .L2315 ubfx x5, x3, 5, 11 ldr x0, [x0,56] lsl x5, x5, 2 @@ -15361,16 +15439,16 @@ FlashReadFacBbtData.part.14: uxth w3, w3 orr w6, w1, w6 str w6, [x0,x5] - b .L2277 -.L2275: + b .L2317 +.L2315: add x4, x4, :lo12:.LANCHOR4 mov x0, x19 ldr x1, [x4,56] bl ftl_memcpy mov w2, 4 - adrp x0, .LC132 + adrp x0, .LC131 mov x1, x19 - add x0, x0, :lo12:.LC132 + add x0, x0, :lo12:.LC131 mov w3, w2 bl rknand_print_hex ldr x19, [sp,16] @@ -15409,9 +15487,9 @@ FlashReadFacBbtData: str x1, [x29,96] sub w19, w3, #16 str x0, [x29,104] -.L2280: +.L2320: cmp w20, w19 - ble .L2288 + ble .L2328 add w0, w20, w24 mov w1, 1 lsl w0, w0, 10 @@ -15421,26 +15499,26 @@ FlashReadFacBbtData: bl FlashReadPages ldr w0, [x29,88] cmn w0, #1 - beq .L2281 + beq .L2321 add x0, x21, :lo12:.LANCHOR4 ldr x0, [x0,112] ldrh w0, [x0] cmp w0, w26 - bne .L2281 + bne .L2321 mov w0, w22 - cbz x22, .L2282 + cbz x22, .L2322 mov x0, x22 mov w1, w23 mov w2, w25 bl FlashReadFacBbtData.part.14 - b .L2282 -.L2281: + b .L2322 +.L2321: sub w20, w20, #1 uxth w20, w20 - b .L2280 -.L2288: + b .L2320 +.L2328: mov w0, -1 -.L2282: +.L2322: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -15470,37 +15548,37 @@ FlashGetBadBlockList: lsr w2, w2, 3 bl FlashReadFacBbtData cmn w0, #1 - bne .L2290 -.L2294: + bne .L2330 +.L2334: mov w1, 0 - b .L2291 -.L2290: + b .L2331 +.L2330: mov w2, 0 lsr w0, w19, 4 mov w1, w2 sub w19, w19, #1 mov w5, 1 -.L2292: +.L2332: cmp w2, w19 - bge .L2291 + bge .L2331 add x3, x20, :lo12:.LANCHOR4 ubfx x4, x2, 5, 11 ldr x6, [x3,104] lsl w3, w5, w2 ldr w4, [x6,x4,lsl 2] tst w3, w4 - beq .L2293 + beq .L2333 add w3, w1, 1 ubfiz x1, x1, 1, 16 strh w2, [x21,x1] uxth w1, w3 -.L2293: +.L2333: cmp w1, w0 - bcs .L2294 + bcs .L2334 add w2, w2, 1 uxth w2, w2 - b .L2292 -.L2291: + b .L2332 +.L2331: ubfiz x1, x1, 1, 16 mov w0, -1 ldp x19, x20, [sp,16] @@ -15524,7 +15602,7 @@ FtlMakeBbt: stp x25, x26, [sp,64] stp x27, x28, [sp,80] ldr w21, [x0,-96] - cbnz w21, .L2300 + cbnz w21, .L2340 adrp x19, .LANCHOR0 adrp x20, .LANCHOR4 add x24, x19, :lo12:.LANCHOR0 @@ -15535,11 +15613,11 @@ FtlMakeBbt: mov x26, x20 bl FtlBbtMemInit bl FtlLoadFactoryBbt -.L2301: +.L2341: add x22, x19, :lo12:.LANCHOR0 - ldrh w0, [x22,1970] + ldrh w0, [x22,1978] cmp w21, w0 - bcs .L2319 + bcs .L2359 add x1, x23, :lo12:.LANCHOR2 ldrh w28, [x25,12] ldr x0, [x1,2072] @@ -15548,8 +15626,8 @@ FtlMakeBbt: str x0, [x20,8] cmp w28, w1 str x27, [x20,16] - beq .L2302 - ldrh w0, [x22,2014] + beq .L2342 + ldrh w0, [x22,2022] mov w1, 1 mov w2, w1 madd w28, w21, w0, w28 @@ -15557,30 +15635,30 @@ FtlMakeBbt: str w0, [x20,4] mov x0, x20 bl FlashReadPages - ldrh w2, [x22,2014] + ldrh w2, [x22,2022] ldr x0, [x24,32] add w2, w2, 7 ldr x1, [x20,8] lsr w2, w2, 3 bl ftl_memcpy - b .L2303 -.L2302: + b .L2343 +.L2342: mov w1, w21 bl FlashGetBadBlockList ldr x0, [x20,8] ldr x1, [x24,32] bl FtlBbt2Bitmap - ldrh w22, [x22,2014] -.L2305: + ldrh w22, [x22,2022] +.L2345: sub w22, w22, #1 uxth w22, w22 -.L2304: +.L2344: add x28, x19, :lo12:.LANCHOR0 - ldrh w0, [x28,2014] + ldrh w0, [x28,2022] madd w0, w21, w0, w22 bl FtlBbmIsBadBlock cmp w0, 1 - beq .L2305 + beq .L2345 add x3, x23, :lo12:.LANCHOR2 mov w1, 0 mov w2, 16 @@ -15594,7 +15672,7 @@ FtlMakeBbt: ldr x3, [x29,104] ldrh w0, [x25,12] strh w0, [x27,2] - ldrh w0, [x28,2014] + ldrh w0, [x28,2022] ldrh w1, [x25,12] ldrh w2, [x3,2248] madd w28, w21, w0, w1 @@ -15615,64 +15693,64 @@ FtlMakeBbt: bl FlashProgPages ldr w0, [x26] cmn w0, #1 - bne .L2303 + bne .L2343 mov w0, w28 bl FtlBbmMapBadBlock - b .L2304 -.L2303: + b .L2344 +.L2343: mov w0, w28 add w21, w21, 1 add x24, x24, 8 add x25, x25, 2 bl FtlBbmMapBadBlock - b .L2301 -.L2319: + b .L2341 +.L2359: mov w20, 0 -.L2308: +.L2348: add x21, x19, :lo12:.LANCHOR0 - ldrh w0, [x21,2032] + ldrh w0, [x21,2038] cmp w0, w20 - bls .L2320 + bls .L2360 mov w0, w20 add w20, w20, 1 bl FtlBbmMapBadBlock uxth w20, w20 - b .L2308 -.L2320: + b .L2348 +.L2360: ldrh w20, [x21,2116] mov w24, 65535 sub w20, w20, #1 uxth w20, w20 -.L2310: +.L2350: add x22, x21, 2104 ldrh w0, [x22,12] sub w0, w0, #48 cmp w20, w0 - ble .L2314 + ble .L2354 mov w0, w20 bl FtlBbmIsBadBlock cmp w0, 1 - beq .L2311 + beq .L2351 mov w0, w20 bl FlashTestBlk - cbz w0, .L2312 + cbz w0, .L2352 mov w0, w20 bl FtlBbmMapBadBlock - b .L2311 -.L2312: + b .L2351 +.L2352: ldrh w0, [x21,2104] cmp w0, w24 - bne .L2313 + bne .L2353 strh w20, [x21,2104] - b .L2311 -.L2313: + b .L2351 +.L2353: strh w20, [x22,4] - b .L2314 -.L2311: + b .L2354 +.L2351: sub w20, w20, #1 uxth w20, w20 - b .L2310 -.L2314: + b .L2350 +.L2354: add x23, x23, :lo12:.LANCHOR2 add x19, x19, :lo12:.LANCHOR0 mov w2, 2 @@ -15702,7 +15780,7 @@ FtlMakeBbt: strh w0, [x19,2108] strh w1, [x19,2104] bl FtlBbmTblFlush -.L2300: +.L2340: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -15716,181 +15794,194 @@ FtlMakeBbt: .global log2phys .type log2phys, %function log2phys: - stp x29, x30, [sp, -112]! + stp x29, x30, [sp, -128]! add x29, sp, 0 + stp x21, x22, [sp,32] + adrp x22, .LANCHOR0 + add x3, x22, :lo12:.LANCHOR0 + str x22, [x29,120] + stp x19, x20, [sp,16] stp x23, x24, [sp,48] - adrp x24, .LANCHOR0 - add x3, x24, :lo12:.LANCHOR0 - str w2, [x29,104] stp x25, x26, [sp,64] - stp x19, x20, [sp,16] stp x27, x28, [sp,80] - stp x21, x22, [sp,32] - mov x27, x1 - mov x2, 1 - ldrh w1, [x3,2026] + ldr w4, [x3,2096] + ldrh w27, [x3,2032] + cmp w0, w4 + bcs .L2362 + add w27, w27, 7 adrp x20, .LANCHOR2 - add w1, w1, 7 - lsr w26, w0, w1 - lsl x1, x2, x1 - sub w1, w1, #1 - and w23, w1, w0 - ldrh w1, [x3,2058] - uxth w25, w26 - uxth w0, w23 - str w0, [x29,108] + lsr w24, w0, w27 + str w0, [x29,116] add x0, x20, :lo12:.LANCHOR2 - ldr x21, [x0,184] + str w2, [x29,112] + mov x26, x1 + uxth w23, w24 + ldrh w2, [x3,2062] + ldr x22, [x0,184] mov x0, 0 -.L2322: - uxth x19, w0 - cmp w19, w1 - bcs .L2337 + b .L2363 +.L2362: + mov w0, -1 + cbnz w2, .L2364 + str w0, [x1] + b .L2364 +.L2368: add x0, x0, 1 - add x2, x21, x0, lsl 4 - ldrh w2, [x2,-16] - cmp w2, w25 - bne .L2322 -.L2323: - ldr w0, [x29,104] - ldr w23, [x29,108] - cbnz w0, .L2324 + add x3, x22, x0, lsl 4 + ldrh w3, [x3,-16] + cmp w3, w23 + beq .L2365 +.L2363: + uxth x19, w0 + cmp w19, w2 + bcc .L2368 + bl select_l2p_ram_region + uxth x19, w0 + ubfiz x21, x19, 4, 16 + mov w1, 65535 + add x2, x22, x21 + ldrh w3, [x22,x21] + cmp w3, w1 + bne .L2376 +.L2369: + add x28, x20, :lo12:.LANCHOR2 + ubfiz x0, x23, 2, 16 + ldr x1, [x28,2216] + ldr w25, [x1,x0] + cbnz w25, .L2370 + ldr x1, [x29,120] + ldr x0, [x28,184] + add x22, x1, :lo12:.LANCHOR0 + mov w1, 255 + add x0, x0, x21 + ldrh w2, [x22,2034] + ldr x0, [x0,8] + bl ftl_memset + ldr x0, [x28,184] + strh w23, [x0,x21] + ldr x0, [x28,184] + add x21, x0, x21 + str w25, [x21,4] +.L2365: + mov x0, 1 + lsl x27, x0, x27 + ldr w0, [x29,116] + sub w27, w27, #1 + and w25, w0, w27 + ldr w0, [x29,112] + uxth x25, w25 + cbnz w0, .L2366 add x0, x20, :lo12:.LANCHOR2 - ldr x1, [x0,184] - add x1, x1, x19, lsl 4 - ldr x0, [x1,8] - ldr w0, [x0,x23,lsl 2] - str w0, [x27] - b .L2325 -.L2324: + ldr x0, [x0,184] + add x0, x0, x19, lsl 4 + ldr x0, [x0,8] + ldr w0, [x0,x25,lsl 2] + str w0, [x26] + b .L2367 +.L2366: add x1, x20, :lo12:.LANCHOR2 lsl x0, x19, 4 - ldr w3, [x27] + ldr w3, [x26] ldr x2, [x1,184] add x2, x2, x0 ldr x2, [x2,8] - str w3, [x2,x23,lsl 2] - strh w25, [x1,192] + str w3, [x2,x25,lsl 2] + strh w23, [x1,192] ldr x2, [x1,184] add x0, x2, x0 ldr w2, [x0,4] orr w2, w2, -2147483648 str w2, [x0,4] -.L2325: +.L2367: add x20, x20, :lo12:.LANCHOR2 ldr x0, [x20,184] add x19, x0, x19, lsl 4 - ldr w0, [x19,4] - cmn w0, #1 - beq .L2334 - add w0, w0, 1 - str w0, [x19,4] - b .L2334 -.L2337: - bl select_l2p_ram_region - uxth x19, w0 - ubfiz x22, x19, 4, 16 - mov w2, 65535 - add x1, x21, x22 - ldrh w3, [x21,x22] - cmp w3, w2 - beq .L2328 - ldr w1, [x1,4] - tbz w1, #31, .L2328 + mov w0, 0 + ldr w1, [x19,4] + cmn w1, #1 + beq .L2364 + add w1, w1, 1 + str w1, [x19,4] + b .L2364 +.L2376: + ldr w1, [x2,4] + tbz w1, #31, .L2369 bl flush_l2p_region -.L2328: - add x21, x20, :lo12:.LANCHOR2 - ubfiz x0, x25, 2, 16 - ldr x1, [x21,2216] - ldr w23, [x1,x0] - cbnz w23, .L2329 - ldr x0, [x21,184] - add x24, x24, :lo12:.LANCHOR0 - mov w1, 255 - add x0, x0, x22 - ldrh w2, [x24,2028] - ldr x0, [x0,8] - bl ftl_memset - ldr x0, [x21,184] - strh w25, [x0,x22] - ldr x0, [x21,184] - add x22, x0, x22 - str w23, [x22,4] - b .L2323 -.L2329: - ldr x0, [x21,184] - adrp x5, .LANCHOR4 - add x5, x5, :lo12:.LANCHOR4 + b .L2369 +.L2370: + ldr x0, [x28,184] + adrp x6, .LANCHOR4 + add x6, x6, :lo12:.LANCHOR4 mov w1, 1 - add x0, x0, x22 - add x28, x5, 160 + add x0, x0, x21 + add x22, x6, 160 mov w2, w1 - str x5, [x29,96] - str w23, [x5,164] + str x6, [x29,104] + str w25, [x6,164] ldr x0, [x0,8] - str x0, [x5,168] - ldr x0, [x21,2120] - str x0, [x5,176] - mov x0, x28 + str x0, [x6,168] + ldr x0, [x28,2120] + str x0, [x6,176] + mov x0, x22 bl FlashReadPages - ldr x0, [x28,16] - ldr x5, [x29,96] + ldr x0, [x22,16] + ldr x6, [x29,104] ldrh w0, [x0,8] - cmp w0, w25 - beq .L2330 - adrp x0, .LC133 - uxth w1, w26 - mov w2, w23 - add x0, x0, :lo12:.LC133 - add x24, x24, :lo12:.LANCHOR0 + cmp w0, w23 + beq .L2371 + adrp x0, .LC132 + uxth w1, w24 + mov w2, w25 + add x0, x0, :lo12:.LC132 bl printk + ldr x1, [x22,16] mov w2, 4 - ldr x1, [x28,16] adrp x0, .LC99 mov w3, w2 add x0, x0, :lo12:.LC99 bl rknand_print_hex - adrp x0, .LC134 - ldr x1, [x21,2216] - ldrh w3, [x24,2056] - add x0, x0, :lo12:.LC134 + ldr x0, [x29,120] mov w2, 4 + ldr x1, [x28,2216] + add x22, x0, :lo12:.LANCHOR0 + adrp x0, .LC133 + add x0, x0, :lo12:.LC133 + ldrh w3, [x22,2060] bl rknand_print_hex mov w0, 1 - str w0, [x21,-96] - b .L2331 -.L2330: - ldr w0, [x5,160] + str w0, [x28,-96] + b .L2372 +.L2371: + ldr w0, [x6,160] cmp w0, 256 - bne .L2331 - and w26, w26, 65535 - adrp x0, .LC135 - mov w1, w26 - mov w2, w23 - add x0, x0, :lo12:.LC135 + bne .L2372 + and w24, w24, 65535 + adrp x0, .LC134 + mov w1, w24 + mov w2, w25 + add x0, x0, :lo12:.LC134 bl printk - ldr x2, [x21,184] - add x0, x21, 2256 - mov w1, w26 - add x2, x2, x22 + ldr x2, [x28,184] + add x0, x28, 2256 + mov w1, w24 + add x2, x2, x21 ldr x2, [x2,8] bl FtlMapWritePage -.L2331: +.L2372: add x1, x20, :lo12:.LANCHOR2 ldr x0, [x1,184] - add x0, x0, x22 + add x0, x0, x21 str wzr, [x0,4] ldr x0, [x1,184] - strh w25, [x0,x22] - b .L2323 -.L2334: - mov w0, 0 + strh w23, [x0,x21] + b .L2365 +.L2364: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] ldp x25, x26, [sp,64] ldp x27, x28, [sp,80] - ldp x29, x30, [sp], 112 + ldp x29, x30, [sp], 128 ret .size log2phys, .-log2phys .align 2 @@ -15906,22 +15997,22 @@ FtlWriteDumpData: add x23, x19, :lo12:.LANCHOR2 stp x21, x22, [sp,32] ldr w0, [x23,-96] - cbnz w0, .L2338 + cbnz w0, .L2377 ldrh w2, [x23,44] - cbz w2, .L2340 + cbz w2, .L2379 ldrb w1, [x23,48] - cbnz w1, .L2340 + cbnz w1, .L2379 adrp x21, .LANCHOR0 ldrb w1, [x23,47] add x21, x21, :lo12:.LANCHOR0 - ldrh w3, [x21,2018] + ldrh w3, [x21,2024] mul w1, w1, w3 cmp w2, w1 - beq .L2340 + beq .L2379 ldrb w24, [x23,50] ldr w22, [x21,2096] - ldrh w25, [x21,1948] - cbnz w24, .L2338 + ldrh w25, [x21,1956] + cbnz w24, .L2377 sub w22, w22, #1 add x1, x29, 84 mov w0, w22 @@ -15936,29 +16027,29 @@ FtlWriteDumpData: str x1, [x29,96] str x20, [x29,104] str w24, [x20,4] - beq .L2342 + beq .L2381 add x0, x29, 88 mov w1, 1 mov w2, w24 bl FlashReadPages - b .L2343 -.L2342: + b .L2382 +.L2381: ldr x0, [x23,2072] mov w1, 255 - ldrh w2, [x21,2028] + ldrh w2, [x21,2034] bl ftl_memset -.L2343: +.L2382: add x24, x19, :lo12:.LANCHOR2 mov w0, -3947 lsl w25, w25, 2 strh w0, [x20] mov w23, 0 add x21, x24, 40 -.L2344: +.L2383: cmp w23, w25 - beq .L2345 + beq .L2384 ldrh w0, [x21,4] - cbz w0, .L2345 + cbz w0, .L2384 ldr w0, [x29,92] add w23, w23, 1 str w0, [x20,12] @@ -15981,16 +16072,16 @@ FtlWriteDumpData: bl FlashProgPages ldrh w0, [x21] bl decrement_vpc_count - b .L2344 -.L2345: + b .L2383 +.L2384: add x19, x19, :lo12:.LANCHOR2 mov w0, 1 strb w0, [x19,50] - b .L2338 -.L2340: + b .L2377 +.L2379: add x19, x19, :lo12:.LANCHOR2 strb wzr, [x19,50] -.L2338: +.L2377: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -16010,24 +16101,24 @@ l2p_flush: adrp x20, .LANCHOR0 adrp x21, .LANCHOR2 bl FtlWriteDumpData -.L2356: +.L2395: add x0, x20, :lo12:.LANCHOR0 - ldrh w0, [x0,2058] + ldrh w0, [x0,2062] cmp w0, w19 - bls .L2359 + bls .L2398 add x1, x21, :lo12:.LANCHOR2 ubfiz x0, x19, 4, 16 ldr x1, [x1,184] add x0, x1, x0 ldr w0, [x0,4] - tbz w0, #31, .L2357 + tbz w0, #31, .L2396 mov w0, w19 bl flush_l2p_region -.L2357: +.L2396: add w19, w19, 1 uxth w19, w19 - b .L2356 -.L2359: + b .L2395 +.L2398: mov w0, 0 ldr x21, [sp,32] ldp x19, x20, [sp,16] @@ -16046,89 +16137,89 @@ allocate_new_data_superblock: add x1, x19, :lo12:.LANCHOR2 ldrh w20, [x0] ldr w1, [x1,-96] - cbnz w1, .L2361 + cbnz w1, .L2400 mov x21, x0 mov w0, 65535 cmp w20, w0 - beq .L2362 + beq .L2401 ubfiz x1, x20, 1, 16 ldr x0, [x19,#:lo12:.LANCHOR2] ldrh w0, [x0,x1] - cbz w0, .L2363 + cbz w0, .L2402 mov w0, w20 bl INSERT_DATA_LIST - b .L2362 -.L2363: + b .L2401 +.L2402: mov w0, w20 bl INSERT_FREE_LIST -.L2362: +.L2401: add x2, x19, :lo12:.LANCHOR2 strb wzr, [x21,8] add x0, x2, 88 cmp x21, x0 - beq .L2364 + beq .L2403 adrp x1, .LANCHOR0 add x4, x1, :lo12:.LANCHOR0 - ldrh w3, [x4,1968] + ldrh w3, [x4,1976] cmp w3, 1 - beq .L2364 - ldrb w0, [x4,120] - cbz w0, .L2365 -.L2364: + beq .L2403 + ldrb w0, [x4,196] + cbz w0, .L2404 +.L2403: mov w0, 1 strb w0, [x21,8] - b .L2366 -.L2365: + b .L2405 +.L2404: add x0, x2, 40 cmp x21, x0 - bne .L2366 + bne .L2405 cmp w3, 3 - beq .L2368 + beq .L2407 ldr w0, [x2,328] cmp w0, 1 - bne .L2369 -.L2368: + bne .L2408 +.L2407: add x2, x19, :lo12:.LANCHOR2 mov w0, 1 strb w0, [x2,48] -.L2369: +.L2408: add x1, x1, :lo12:.LANCHOR0 - ldr w0, [x1,1940] - cbz w0, .L2366 + ldr w0, [x1,1948] + cbz w0, .L2405 add x1, x19, :lo12:.LANCHOR2 ldr w0, [x1,256] cmp w0, 39 - bhi .L2366 + bhi .L2405 mov w0, 1 strb w0, [x1,48] -.L2366: +.L2405: add x0, x19, :lo12:.LANCHOR2 ldrh w1, [x0,2336] mov w0, 65535 cmp w1, w0 - beq .L2371 + beq .L2410 cmp w20, w1 - bne .L2372 + bne .L2411 adrp x0, .LANCHOR2 ubfiz x2, x1, 1, 16 ldr x0, [x0,#:lo12:.LANCHOR2] ldrh w0, [x0,x2] - cbz w0, .L2373 -.L2372: + cbz w0, .L2412 +.L2411: mov w0, w1 bl update_vpc_list -.L2373: +.L2412: add x19, x19, :lo12:.LANCHOR2 mov w0, -1 strh w0, [x19,2336] -.L2371: +.L2410: mov x0, x21 bl allocate_data_superblock bl l2p_flush mov w0, 0 bl FtlEctTblFlush bl FtlVpcTblFlush -.L2361: +.L2400: mov w0, 0 ldr x21, [sp,32] ldp x19, x20, [sp,16] @@ -16140,8 +16231,8 @@ allocate_new_data_superblock: .type Ftlscanalldata, %function Ftlscanalldata: sub sp, sp, #80 - adrp x0, .LC136 - add x0, x0, :lo12:.LC136 + adrp x0, .LC135 + add x0, x0, :lo12:.LC135 mov w1, 0 stp x29, x30, [sp,16] add x29, sp, 16 @@ -16150,29 +16241,29 @@ Ftlscanalldata: mov w20, 0 stp x21, x22, [sp,48] add x19, x19, :lo12:.LANCHOR4 - adrp x21, .LC137 - add x21, x21, :lo12:.LC137 + adrp x21, .LC136 + add x21, x21, :lo12:.LC136 add x19, x19, 160 bl printk -.L2387: +.L2426: adrp x0, .LANCHOR0+2096 ldr w0, [x0,#:lo12:.LANCHOR0+2096] cmp w20, w0 - bcs .L2394 + bcs .L2433 mov w0, w20 add x1, x29, 60 mov w2, 0 bl log2phys and w0, w20, 2047 - cbnz w0, .L2388 + cbnz w0, .L2427 ldr w2, [x29,60] mov x0, x21 mov w1, w20 bl printk -.L2388: +.L2427: ldr w0, [x29,60] cmn w0, #1 - beq .L2390 + beq .L2429 adrp x1, .LANCHOR2 str w0, [x19,4] add x1, x1, :lo12:.LANCHOR2 @@ -16188,13 +16279,13 @@ Ftlscanalldata: bl FlashReadPages ldr w0, [x19] cmn w0, #1 - beq .L2391 + beq .L2430 cmp w0, 256 - beq .L2391 + beq .L2430 ldr w0, [x22,8] cmp w0, w20 - beq .L2390 -.L2391: + beq .L2429 +.L2430: adrp x2, .LANCHOR4 mov w1, w20 add x2, x2, :lo12:.LANCHOR4 @@ -16203,8 +16294,8 @@ Ftlscanalldata: ldr x6, [x2,16] ldr w0, [x7,4] str w0, [sp] - adrp x0, .LC138 - add x0, x0, :lo12:.LC138 + adrp x0, .LC137 + add x0, x0, :lo12:.LC137 ldr w3, [x6] ldr w4, [x6,4] ldr w5, [x6,8] @@ -16212,10 +16303,10 @@ Ftlscanalldata: ldr w6, [x6,12] ldr w7, [x7] bl printk -.L2390: +.L2429: add w20, w20, 1 - b .L2387 -.L2394: + b .L2426 +.L2433: sub sp, x29, #16 ldp x19, x20, [sp,32] ldp x21, x22, [sp,48] @@ -16243,9 +16334,9 @@ FtlReUsePrevPpa: mov x21, x2 ldr x4, [x2,#:lo12:.LANCHOR2] ldrh w1, [x4,x22] - cbnz w1, .L2396 + cbnz w1, .L2435 ldr x19, [x3,24] - cbz x19, .L2397 + cbz x19, .L2436 ldr x2, [x3,-16] mov w5, 65535 ldrh w4, [x3,32] @@ -16255,11 +16346,11 @@ FtlReUsePrevPpa: madd x19, x3, x19, x19 mov w3, 6 uxth w19, w19 -.L2398: +.L2437: cmp w1, w4 - beq .L2397 + beq .L2436 cmp w19, w0 - bne .L2399 + bne .L2438 add x23, x21, :lo12:.LANCHOR2 mov w1, w19 add x0, x23, 24 @@ -16273,19 +16364,19 @@ FtlReUsePrevPpa: ldrh w0, [x1,x22] add w0, w0, 1 strh w0, [x1,x22] - b .L2397 -.L2399: + b .L2436 +.L2438: umull x19, w19, w3 ldrh w19, [x2,x19] cmp w19, w5 - beq .L2397 + beq .L2436 add w1, w1, 1 uxth w1, w1 - b .L2398 -.L2396: + b .L2437 +.L2435: add w1, w1, 1 strh w1, [x4,x22] -.L2397: +.L2436: add x1, x29, 76 mov w0, w20 mov w2, 1 @@ -16311,7 +16402,7 @@ FtlRecoverySuperblock: mov x19, x0 ldrh w0, [x0] cmp w0, w2 - beq .L2561 + beq .L2605 ldrh w0, [x19,2] adrp x23, .LANCHOR0 str w0, [x29,188] @@ -16319,65 +16410,65 @@ FtlRecoverySuperblock: str w0, [x29,176] add x0, x23, :lo12:.LANCHOR0 ldr w1, [x29,188] - ldrh w0, [x0,2018] + ldrh w0, [x0,2024] cmp w0, w1 - bne .L2407 + bne .L2446 strh wzr, [x19,4] - b .L2567 -.L2407: + b .L2611 +.L2446: ldrh w0, [x19,16] mov w1, 0 -.L2408: +.L2447: cmp w0, w2 - bne .L2570 + bne .L2614 add w1, w1, 1 uxth w1, w1 add x0, x19, x1, sxtw 1 ldrh w0, [x0,16] - b .L2408 -.L2570: + b .L2447 +.L2614: ldrb w1, [x19,8] cmp w1, 1 - bne .L2410 + bne .L2449 bl FtlGetLastWrittenPage cmn w0, #1 mov w20, w0 - beq .L2411 + beq .L2450 add x0, x23, :lo12:.LANCHOR0 mov w24, w20 - ldrb w1, [x0,120] - cbnz w1, .L2484 - add x0, x0, 196 + ldrb w1, [x0,196] + cbnz w1, .L2524 + add x0, x0, 200 ldrh w24, [x0,w20,sxtw 1] - b .L2484 -.L2410: + b .L2524 +.L2449: mov w1, 0 bl FtlGetLastWrittenPage cmn w0, #1 mov w20, w0 - beq .L2411 + beq .L2450 mov w24, w0 -.L2484: +.L2524: add x0, x23, :lo12:.LANCHOR0 mov x2, x19 mov w26, 0 mov w8, 65535 mov w9, 56 adrp x10, .LANCHOR2 - ldrh w4, [x0,1948] + ldrh w4, [x0,1956] mov w11, 4 - ldrh w7, [x0,2030] + ldrh w7, [x0,2036] add x4, x19, x4, lsl 1 - b .L2413 -.L2411: + b .L2452 +.L2450: strh wzr, [x19,2] -.L2567: +.L2611: strb wzr, [x19,6] - b .L2561 -.L2415: + b .L2605 +.L2454: ldrh w1, [x2,16] cmp w1, w8 - beq .L2414 + beq .L2453 add x5, x10, :lo12:.LANCHOR2 orr w1, w24, w1, lsl 10 umull x0, w26, w9 @@ -16394,21 +16485,21 @@ FtlRecoverySuperblock: sdiv w1, w1, w11 add x1, x5, x1, sxtw 2 str x1, [x0,16] -.L2414: +.L2453: add x2, x2, 2 -.L2413: +.L2452: cmp x2, x4 - bne .L2415 + bne .L2454 ldrb w0, [x19,8] str wzr, [x29,184] cmp w0, 1 - bne .L2416 + bne .L2455 add x0, x23, :lo12:.LANCHOR0 - ldrb w0, [x0,120] + ldrb w0, [x0,196] cmp w0, wzr cset w0, ne str w0, [x29,184] -.L2416: +.L2455: adrp x21, .LANCHOR2 ldr w2, [x29,184] add x22, x21, :lo12:.LANCHOR2 @@ -16419,25 +16510,25 @@ FtlRecoverySuperblock: ldr x0, [x22,2048] bl FlashReadPages ldr w0, [x22,236] - adrp x22, .LC139 + adrp x22, .LC138 str w0, [x29,168] - add x22, x22, :lo12:.LC139 + add x22, x22, :lo12:.LC138 uxth w0, w24 str w0, [x29,160] -.L2417: +.L2456: uxth w2, w27 cmp w2, w26 - bcs .L2424 + bcs .L2463 add x6, x21, :lo12:.LANCHOR2 mul x0, x27, x28 ldr x4, [x6,2048] add x1, x4, x0 ldr w0, [x4,x0] - cbnz w0, .L2418 + cbnz w0, .L2457 ldr x7, [x1,16] ldr w4, [x7,4] cmn w4, #1 - beq .L2419 + beq .L2458 ldr w1, [x6,236] mov w0, w4 str x7, [x29,128] @@ -16449,23 +16540,23 @@ FtlRecoverySuperblock: ldr x4, [x29,144] ldr x2, [x29,136] ldr x7, [x29,128] - cbz w0, .L2419 + cbz w0, .L2458 add w4, w4, 1 str w4, [x6,236] -.L2419: +.L2458: ldr w0, [x7] cmn w0, #1 - bne .L2420 -.L2424: + bne .L2459 +.L2463: cmp w2, w26 - bne .L2562 + bne .L2606 add x0, x21, :lo12:.LANCHOR2 add w20, w20, 1 uxth w20, w20 ldr x0, [x0,2048] ldr w0, [x0,4] - b .L2563 -.L2418: + b .L2607 +.L2457: ldr w1, [x1,4] mov x0, x22 bl printk @@ -16474,10 +16565,10 @@ FtlRecoverySuperblock: ldrh w1, [x19] add x0, x0, :lo12:.LANCHOR4 strh w1, [x0,290] -.L2420: +.L2459: add x27, x27, 1 - b .L2417 -.L2562: + b .L2456 +.L2606: add x0, x21, :lo12:.LANCHOR2 mov w1, 56 uxth w20, w20 @@ -16485,80 +16576,80 @@ FtlRecoverySuperblock: ldr x0, [x0,2048] add x2, x0, x2 ldr w0, [x2,4] -.L2563: +.L2607: lsr x0, x0, 10 bl P2V_plane uxth w26, w0 ldrb w1, [x19,8] cmp w1, 1 - bne .L2426 + bne .L2465 add x0, x23, :lo12:.LANCHOR0 - ldrb w2, [x0,120] - cbnz w2, .L2426 - add x0, x0, 196 + ldrb w2, [x0,196] + cbnz w2, .L2465 + add x0, x0, 200 ldrh w20, [x0,w20,sxtw 1] -.L2426: +.L2465: add x0, x23, :lo12:.LANCHOR0 - ldrh w0, [x0,2018] + ldrh w0, [x0,2024] cmp w0, w20 - bne .L2427 + bne .L2466 strh w20, [x19,2] strb wzr, [x19,6] strh wzr, [x19,4] -.L2427: +.L2466: ldrh w0, [x29,176] str w0, [x29,152] ldr w0, [x29,188] cmp w20, w0 - bne .L2428 + bne .L2467 ldr w0, [x29,152] cmp w26, w0 - beq .L2568 -.L2428: + beq .L2612 +.L2467: ldr w0, [x29,168] sub w22, w0, #1 mov w0, 65535 cmp w25, w0 - bne .L2429 - cbnz w1, .L2430 -.L2429: + bne .L2468 + cbnz w1, .L2469 +.L2468: add x0, x21, :lo12:.LANCHOR2 uxth w5, w24 ldr w1, [x0,2348] cmn w1, #1 - bne .L2431 + bne .L2470 str w22, [x0,2348] -.L2431: +.L2470: add x0, x21, :lo12:.LANCHOR2 ldr w25, [x29,188] ldr w6, [x0,2348] ldr w0, [x29,188] add w0, w0, 7 cmp w0, w24, uxth - bge .L2432 + bge .L2471 sub w25, w5, #7 uxth w25, w25 -.L2432: +.L2471: mov w3, -1 add x28, x21, :lo12:.LANCHOR2 mov w27, w3 mov w4, 65535 mov w7, 56 add x8, x28, 988 -.L2433: +.L2472: cmp w25, w5 - bhi .L2446 + bhi .L2485 add x0, x23, :lo12:.LANCHOR0 mov w24, 0 - ldrh w2, [x0,1948] + ldrh w2, [x0,1956] mov x0, x19 add x2, x19, x2, lsl 1 -.L2447: +.L2486: cmp x0, x2 - beq .L2571 + beq .L2615 ldrh w1, [x0,16] cmp w1, w4 - beq .L2434 + beq .L2473 umull x9, w24, w7 ldr x10, [x28,2048] add w24, w24, 1 @@ -16566,10 +16657,10 @@ FtlRecoverySuperblock: add x9, x10, x9 uxth w24, w24 str w1, [x9,4] -.L2434: +.L2473: add x0, x0, 2 - b .L2447 -.L2571: + b .L2486 +.L2615: ldr x0, [x28,2048] mov w1, w24 ldr w2, [x29,184] @@ -16586,116 +16677,116 @@ FtlRecoverySuperblock: mov w1, 0 ldr x6, [x29,160] sxtw x10, w25 - ldrb w9, [x0,120] + ldrb w9, [x0,196] ldr x0, [x28,2048] ldr x4, [x29,144] ldr x7, [x29,136] add x0, x0, 16 ldr x8, [x29,128] -.L2436: +.L2475: cmp w1, w24 - beq .L2572 + beq .L2616 ldr w2, [x0,-16] - cbnz w2, .L2437 + cbnz w2, .L2476 ldr x2, [x0] ldrh w11, [x2] cmp w11, w4 - beq .L2438 + beq .L2477 ldr w2, [x2,4] cmn w2, #1 - beq .L2438 + beq .L2477 ldr w27, [x28,2348] cmn w3, #1 str w2, [x28,2348] - bne .L2438 + bne .L2477 ldrh w2, [x8,x10,lsl 1] cmp w2, w4 - bne .L2439 - cbz w9, .L2438 -.L2439: + bne .L2478 + cbz w9, .L2477 +.L2478: cmp w27, w22 csinv w3, w27, wzr, ne - b .L2438 -.L2437: + b .L2477 +.L2476: adrp x0, .LANCHOR4+290 ldrh w1, [x19] strh w1, [x0,#:lo12:.LANCHOR4+290] ldrb w0, [x19,8] - cbnz w0, .L2430 + cbnz w0, .L2469 add x0, x21, :lo12:.LANCHOR2 add x1, x0, 988 ldrh w2, [x1,w25,sxtw 1] mov w1, 65535 cmp w2, w1 - bne .L2441 + bne .L2480 cmn w3, #1 - beq .L2442 + beq .L2481 str w3, [x0,2348] - b .L2430 -.L2442: + b .L2469 +.L2481: cmp w6, w22 - beq .L2443 + beq .L2482 str w6, [x0,2348] - b .L2430 -.L2443: + b .L2469 +.L2482: ldr w1, [x0,2348] - b .L2569 -.L2441: + b .L2613 +.L2480: cmp w27, w22 - beq .L2444 + beq .L2483 cmn w27, #1 - beq .L2430 + beq .L2469 str w27, [x0,2348] - b .L2430 -.L2444: + b .L2469 +.L2483: ldr w1, [x0,2348] cmp w1, w22 - beq .L2430 -.L2569: + beq .L2469 +.L2613: sub w1, w1, #1 - b .L2564 -.L2438: + b .L2608 +.L2477: add w1, w1, 1 add x0, x0, 56 uxth w1, w1 - b .L2436 -.L2572: + b .L2475 +.L2616: add w25, w25, 1 uxth w25, w25 - b .L2433 -.L2446: + b .L2472 +.L2485: add x0, x21, :lo12:.LANCHOR2 mov w1, -1 -.L2564: +.L2608: str w1, [x0,2348] -.L2430: +.L2469: adrp x0, .LANCHOR4 str x0, [x29,136] add x1, x0, :lo12:.LANCHOR4 - adrp x0, .LC141 - add x0, x0, :lo12:.LC141 + adrp x0, .LC140 + add x0, x0, :lo12:.LC140 ldr w24, [x29,188] str x0, [x29,128] - adrp x0, .LC140 + adrp x0, .LC139 mov w2, 1 - add x0, x0, :lo12:.LC140 + add x0, x0, :lo12:.LC139 strh w2, [x1,292] str x0, [x29,120] -.L2448: +.L2487: add x0, x23, :lo12:.LANCHOR0 mov x1, x19 str wzr, [x29,176] mov w7, 65535 mov w8, 56 - ldrh w3, [x0,1948] - ldrb w6, [x0,120] + ldrh w3, [x0,1956] + ldrb w6, [x0,196] add x3, x19, x3, lsl 1 -.L2449: +.L2488: cmp x1, x3 - beq .L2573 + beq .L2617 ldrh w2, [x1,16] cmp w2, w7 - beq .L2450 + beq .L2489 ldr w0, [x29,176] add x5, x21, :lo12:.LANCHOR2 orr w2, w24, w2, lsl 10 @@ -16705,33 +16796,33 @@ FtlRecoverySuperblock: str w2, [x4,4] ldrb w2, [x19,8] cmp w2, 1 - bne .L2451 - cbz w6, .L2451 + bne .L2490 + cbz w6, .L2490 ldr x2, [x5,2048] add x0, x2, x0 ldr w2, [x0,4] orr w2, w2, -2147483648 str w2, [x0,4] -.L2451: +.L2490: ldr w0, [x29,176] add w0, w0, 1 uxth w0, w0 str w0, [x29,176] -.L2450: +.L2489: add x1, x1, 2 - b .L2449 -.L2573: + b .L2488 +.L2617: add x0, x21, :lo12:.LANCHOR2 ldr w1, [x29,176] ldr w2, [x29,184] ldr x0, [x0,2048] bl FlashReadPages str xzr, [x29,160] -.L2453: +.L2492: ldrh w0, [x29,160] ldr w1, [x29,176] cmp w1, w0, uxth - bls .L2574 + bls .L2618 ldr x0, [x29,160] mov x25, 56 mul x25, x0, x25 @@ -16747,41 +16838,41 @@ FtlRecoverySuperblock: ldr w1, [x29,188] cmp w24, w1 ldr x1, [x29,168] - bcc .L2454 + bcc .L2493 ldr w2, [x29,152] cmp w0, w2 - bcs .L2488 + bcs .L2528 ldr w2, [x29,188] cmp w24, w2 - beq .L2454 -.L2488: + beq .L2493 +.L2528: cmp w0, w26 - bne .L2489 + bne .L2529 cmp w24, w20 - beq .L2456 -.L2489: + beq .L2495 +.L2529: ldr w0, [x28,x25] cmn w0, #1 - beq .L2458 + beq .L2497 ldr x28, [x27,16] mov w0, 61589 ldrh w1, [x28] cmp w1, w0 - beq .L2459 + beq .L2498 ldrh w0, [x19] - b .L2565 -.L2459: + b .L2609 +.L2498: ldr w22, [x28,4] cmn w22, #1 - beq .L2460 + beq .L2499 add x27, x21, :lo12:.LANCHOR2 mov w0, w22 ldr w1, [x27,236] bl ftl_cmp_data_ver - cbz w0, .L2460 + cbz w0, .L2499 add w0, w22, 1 str w0, [x27,236] -.L2460: +.L2499: ldr w27, [x28,8] add x1, x29, 200 ldr w0, [x28,12] @@ -16789,27 +16880,27 @@ FtlRecoverySuperblock: str w0, [x29,196] mov w0, w27 bl log2phys + ldr w28, [x29,196] add x3, x21, :lo12:.LANCHOR2 str x3, [x29,168] ldr w1, [x3,2348] cmn w1, #1 - beq .L2461 + beq .L2500 mov w0, w22 bl ftl_cmp_data_ver ldr x3, [x29,168] - cbz w0, .L2461 - ldr w1, [x29,196] - cmn w1, #1 - beq .L2462 + cbz w0, .L2500 + cmn w28, #1 + beq .L2501 ldr x0, [x3,2048] + mov w2, 0 str x3, [x29,112] add x0, x0, x25 - str w1, [x0,4] - mov w1, 1 - ldr x2, [x0,16] + str w28, [x0,4] + ldr x1, [x0,16] ldr x0, [x3,2048] - str x2, [x29,168] - mov w2, 0 + str x1, [x29,168] + mov w1, 1 add x0, x0, x25 bl FlashReadPages ldr x3, [x29,112] @@ -16820,23 +16911,23 @@ FtlRecoverySuperblock: add x4, x2, x25 ldr w0, [x2,x25] cmn w0, #1 - bne .L2463 - b .L2464 -.L2462: + bne .L2502 + b .L2503 +.L2501: ldr w0, [x29,204] ldr w1, [x29,200] cmp w1, w0 - bne .L2454 + bne .L2493 mov w0, w27 add x1, x29, 196 mov w2, 1 bl log2phys - b .L2454 -.L2463: + b .L2493 +.L2502: ldr x0, [x29,168] ldr w28, [x0,8] cmp w28, w27 - bne .L2464 + bne .L2503 ldr w0, [x3,2348] ldr w1, [x29,144] str x2, [x29,96] @@ -16846,16 +16937,16 @@ FtlRecoverySuperblock: ldr x3, [x29,112] ldr x4, [x29,104] ldr x2, [x29,96] - cbz w0, .L2464 + cbz w0, .L2503 ldr w0, [x29,200] ldr w1, [x29,204] cmp w0, w1 - beq .L2469 + beq .L2508 ldr w1, [x29,196] cmp w0, w1 - beq .L2464 + beq .L2503 cmn w0, #1 - beq .L2467 + beq .L2506 str w0, [x4,4] mov w2, 0 ldr x1, [x4,16] @@ -16864,62 +16955,69 @@ FtlRecoverySuperblock: mov w1, 1 add x0, x0, x25 bl FlashReadPages - b .L2468 -.L2467: + b .L2507 +.L2506: str w0, [x2,x25] -.L2468: +.L2507: add x0, x21, :lo12:.LANCHOR2 ldr x1, [x0,2048] ldr w1, [x1,x25] cmn w1, #1 - beq .L2469 + beq .L2508 ldr x1, [x29,168] ldr w0, [x0,2348] ldr w25, [x1,4] mov w1, w25 bl ftl_cmp_data_ver - cbz w0, .L2469 + cbz w0, .L2508 ldr w0, [x29,144] mov w1, w25 bl ftl_cmp_data_ver - cbz w0, .L2464 -.L2469: + cbz w0, .L2503 +.L2508: ldr w1, [x29,196] mov w0, w28 bl FtlReUsePrevPpa -.L2464: +.L2503: mov w0, -1 str w0, [x29,196] - b .L2471 -.L2461: + b .L2510 +.L2500: ldr w0, [x29,204] ldr w1, [x29,200] cmp w1, w0 - beq .L2471 + beq .L2510 + add x0, x23, :lo12:.LANCHOR0 + ldr w0, [x0,1972] + cmp w0, w28, lsr 10 + bhi .L2530 + cmn w28, #1 + bne .L2493 +.L2530: mov w0, w27 add x1, x29, 204 mov w2, 1 bl log2phys ldr w25, [x29,200] cmn w25, #1 - beq .L2471 + beq .L2510 ldr w0, [x29,196] cmp w25, w0 - beq .L2471 + beq .L2510 lsr x0, x25, 10 bl P2V_block_in_plane uxth w0, w0 add x1, x21, :lo12:.LANCHOR2 ldrh w2, [x1,40] cmp w2, w0 - beq .L2474 + beq .L2514 ldrh w2, [x1,88] cmp w2, w0 - beq .L2474 + beq .L2514 ldrh w1, [x1,136] cmp w1, w0 - bne .L2471 -.L2474: + bne .L2510 +.L2514: add x28, x21, :lo12:.LANCHOR2 mov w1, 1 mov w2, 0 @@ -16934,33 +17032,33 @@ FtlRecoverySuperblock: ldr w0, [x0] ldr w1, [x3,4] cmn w0, #1 - beq .L2471 + beq .L2510 mov w0, w22 bl ftl_cmp_data_ver - cbnz w0, .L2471 + cbnz w0, .L2510 mov w0, w27 add x1, x29, 200 mov w2, 1 bl log2phys -.L2471: +.L2510: ldr w0, [x29,196] cmn w0, #1 - beq .L2454 + beq .L2493 lsr x0, x0, 10 bl P2V_block_in_plane uxth w1, w0 ubfiz x2, x1, 1, 16 ldr x3, [x21,#:lo12:.LANCHOR2] ldrh w2, [x3,x2] - cbz w2, .L2475 -.L2565: + cbz w2, .L2515 +.L2609: bl decrement_vpc_count - b .L2454 -.L2475: + b .L2493 +.L2515: ldr x0, [x29,120] bl printk - b .L2454 -.L2458: + b .L2493 +.L2497: ldr x2, [x29,136] ldrh w0, [x19] add x25, x2, :lo12:.LANCHOR4 @@ -16970,72 +17068,72 @@ FtlRecoverySuperblock: bl printk ldr w0, [x25,296] cmp w0, 31 - bhi .L2476 + bhi .L2516 add x1, x25, 304 ldr w2, [x29,204] str w2, [x1,w0,uxtw 2] add w0, w0, 1 str w0, [x25,296] -.L2476: +.L2516: ldrh w0, [x19] bl decrement_vpc_count add x0, x21, :lo12:.LANCHOR2 ldr w1, [x0,2348] cmn w1, #1 - beq .L2566 + beq .L2610 cmp w1, w22 - bls .L2454 -.L2566: + bls .L2493 +.L2610: str w22, [x0,2348] -.L2454: +.L2493: ldr x0, [x29,160] add x0, x0, 1 str x0, [x29,160] - b .L2453 -.L2574: + b .L2492 +.L2618: ldrb w0, [x19,8] add w24, w24, 1 cmp w0, 1 uxth w24, w24 - bne .L2479 + bne .L2519 add x0, x23, :lo12:.LANCHOR0 - ldrb w1, [x0,120] - cbz w1, .L2479 + ldrb w1, [x0,196] + cbz w1, .L2519 cmp w20, w24 - bne .L2479 - ldrh w0, [x0,2020] + bne .L2519 + ldrh w0, [x0,2026] cmp w0, w24 - beq .L2456 -.L2479: + beq .L2495 +.L2519: add x0, x23, :lo12:.LANCHOR0 - ldrh w1, [x0,2018] + ldrh w1, [x0,2024] cmp w24, w1 - bne .L2448 - ldrh w2, [x0,1948] + bne .L2487 + ldrh w2, [x0,1956] mov w3, 65535 strh w24, [x19,2] mov x0, 0 strh wzr, [x19,4] -.L2481: +.L2521: uxth w1, w0 cmp w1, w2 - bcs .L2561 + bcs .L2605 add x0, x0, 1 add x4, x19, x0, lsl 1 ldrh w4, [x4,14] cmp w4, w3 - beq .L2481 + beq .L2521 strb w1, [x19,6] - b .L2561 -.L2456: + b .L2605 +.L2495: strb w26, [x19,6] strh w20, [x19,2] -.L2568: +.L2612: mov x0, x19 mov w1, w20 mov w2, w26 bl ftl_sb_update_avl_pages -.L2561: +.L2605: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -17065,23 +17163,23 @@ FtlVpcCheckAndModify: adrp x20, .LANCHOR2 add x0, x20, :lo12:.LANCHOR2 mov w19, 0 - ldrh w2, [x1,1958] + ldrh w2, [x1,1966] mov w1, 0 ldr x0, [x0,2168] lsl w2, w2, 1 bl ftl_memset -.L2576: +.L2620: add x0, x22, :lo12:.LANCHOR0 ldr w0, [x0,2096] cmp w19, w0 - bcs .L2592 + bcs .L2636 mov w0, w19 add x1, x29, 76 mov w2, 0 bl log2phys ldr w0, [x29,76] cmn w0, #1 - beq .L2577 + beq .L2621 lsr x0, x0, 10 bl P2V_block_in_plane ubfiz x0, x0, 1, 16 @@ -17090,59 +17188,59 @@ FtlVpcCheckAndModify: ldrh w1, [x2,x0] add w1, w1, 1 strh w1, [x2,x0] -.L2577: +.L2621: add w19, w19, 1 - b .L2576 -.L2592: - adrp x23, .LC142 + b .L2620 +.L2636: + adrp x23, .LC141 mov w19, 0 add x20, x20, :lo12:.LANCHOR2 mov w24, 65535 - add x23, x23, :lo12:.LC142 -.L2579: + add x23, x23, :lo12:.LC141 +.L2623: add x0, x22, :lo12:.LANCHOR0 - ldrh w0, [x0,1956] + ldrh w0, [x0,1964] cmp w0, w19 - bls .L2593 + bls .L2637 ubfiz x21, x19, 1, 16 ldr x0, [x20] ldrh w2, [x0,x21] ldr x0, [x20,2168] ldrh w3, [x0,x21] cmp w2, w3 - beq .L2582 + beq .L2626 cmp w2, w24 - beq .L2582 + beq .L2626 mov x0, x23 mov w1, w19 bl printk ldrh w0, [x20,40] cmp w0, w19 - beq .L2582 + beq .L2626 ldrh w0, [x20,136] cmp w0, w19 - beq .L2582 + beq .L2626 ldrh w0, [x20,88] cmp w0, w19 - beq .L2582 + beq .L2626 ldr x0, [x20] ldrh w1, [x0,x21] - cbnz w1, .L2584 + cbnz w1, .L2628 ldr x1, [x20,2168] ldrh w1, [x1,x21] strh w1, [x0,x21] - b .L2582 -.L2584: + b .L2626 +.L2628: ldr x1, [x20,2168] ldrh w1, [x1,x21] strh w1, [x0,x21] mov w0, w19 bl update_vpc_list -.L2582: +.L2626: add w19, w19, 1 uxth w19, w19 - b .L2579 -.L2593: + b .L2623 +.L2637: bl l2p_flush bl FtlVpcTblFlush ldp x19, x20, [sp,16] @@ -17152,6 +17250,272 @@ FtlVpcCheckAndModify: ret .size FtlVpcCheckAndModify, .-FtlVpcCheckAndModify .align 2 + .global FtlGcScanTempBlk + .type FtlGcScanTempBlk, %function +FtlGcScanTempBlk: + stp x29, x30, [sp, -240]! + add x29, sp, 0 + stp x19, x20, [sp,16] + mov x19, x0 + adrp x0, .LANCHOR1 + str w1, [x29,164] + add x1, x0, :lo12:.LANCHOR1 + stp x21, x22, [sp,32] + stp x23, x24, [sp,48] + stp x25, x26, [sp,64] + stp x27, x28, [sp,80] + str x0, [x29,152] + ldrh w26, [x1,3296] + mov w1, 65535 + cmp w26, w1 + beq .L2668 + cbnz w26, .L2639 + b .L2640 +.L2668: + mov w26, 0 +.L2639: + adrp x0, .LANCHOR0+2024 + ldr w1, [x29,164] + ldrh w0, [x0,#:lo12:.LANCHOR0+2024] + cmp w1, w0 + bne .L2641 +.L2640: + bl FtlGcPageVarInit +.L2641: + mov w0, -1 + adrp x25, .LANCHOR0 + str w0, [x29,168] + adrp x0, .LC143 + add x0, x0, :lo12:.LC143 + mov w22, 0 + mov x24, x25 + str x0, [x29,144] +.L2642: + ldrh w0, [x19] + mov w21, 65535 + strb wzr, [x19,8] + cmp w0, w21 + beq .L2643 +.L2644: +.L2665: + add x0, x25, :lo12:.LANCHOR0 + mov x2, x19 + mov w27, 0 + mov w10, 56 + adrp x11, .LANCHOR2 + mov w7, 4 + ldrh w6, [x0,1956] + ldrh w8, [x0,2034] + ldrh w9, [x0,2036] + add x6, x19, x6, lsl 1 +.L2645: + cmp x2, x6 + beq .L2683 + ldrh w1, [x2,16] + cmp w1, w21 + beq .L2646 + add x5, x11, :lo12:.LANCHOR2 + orr w1, w26, w1, lsl 10 + umull x0, w27, w10 + add w4, w27, 1 + ldr x12, [x5,2048] + add x12, x12, x0 + str w1, [x12,4] + ldr x1, [x5,2048] + ldr x12, [x5,880] + add x0, x1, x0 + ldr x5, [x5,888] + mul w1, w27, w8 + sdiv w1, w1, w7 + add x1, x12, x1, sxtw 2 + str x1, [x0,8] + mul w1, w27, w9 + uxth w27, w4 + sdiv w1, w1, w7 + add x1, x5, x1, sxtw 2 + str x1, [x0,16] +.L2646: + add x2, x2, 2 + b .L2645 +.L2683: + adrp x20, .LANCHOR2 + mov w1, w27 + add x0, x20, :lo12:.LANCHOR2 + mov w2, 0 + mov x23, 0 + ldr x0, [x0,2048] + bl FlashReadPages +.L2648: + cmp w27, w23, uxth + bls .L2684 + add x7, x20, :lo12:.LANCHOR2 + mov x0, 56 + mul x28, x23, x0 + ldr x1, [x7,2048] + add x0, x1, x28 + ldr w9, [x1,x28] + ldr w2, [x0,4] + str w2, [x29,172] + cbnz w9, .L2649 + ldr x6, [x0,16] + ldrh w0, [x6] + cmp w0, w21 + beq .L2662 + add x8, x24, :lo12:.LANCHOR0 + ldr w0, [x6,8] + ldr w1, [x8,2096] + cmp w0, w1 + bhi .L2662 + ldrb w1, [x8,8] + cbz w1, .L2654 + add x1, x29, 180 + mov w2, w9 + str x6, [x29,136] + str x8, [x29,104] + str x7, [x29,112] + str x9, [x29,120] + bl log2phys + ldr x6, [x29,136] + ldr w1, [x29,180] + ldr w0, [x6,12] + cmp w1, w0 + bne .L2654 + cmn w1, #1 + beq .L2654 + ldr x7, [x29,112] + mov w1, 1 + str w0, [x29,188] + ldr x9, [x29,120] + ldr x0, [x7,2112] + str x0, [x29,192] + mov w2, w9 + ldr x0, [x7,2128] + str x0, [x29,200] + add x0, x29, 184 + str x6, [x29,128] + str x7, [x29,136] + bl FlashReadPages + ldr x7, [x29,136] + ldr x8, [x29,104] + ldr x6, [x29,128] + ldr x0, [x7,2048] + ldrh w2, [x8,2030] + ldr x7, [x29,192] + add x5, x0, x28 + lsl w2, w2, 7 + mov x0, 0 +.L2656: + cmp w2, w0 + bls .L2654 + lsl x1, x0, 2 + ldr x8, [x5,8] + add x0, x0, 1 + ldr w8, [x8,x1] + ldr w1, [x7,x1] + cmp w8, w1 + beq .L2656 + adrp x0, .LC142 + ldrh w1, [x19] + ldr w2, [x29,188] + add x0, x0, :lo12:.LC142 + bl printk + b .L2662 +.L2654: + ldr w0, [x6,12] + add x23, x23, 1 + ldr w1, [x29,172] + ldr w2, [x6,8] + bl FtlGcUpdatePage + b .L2648 +.L2649: + ldrh w1, [x19] + ldr x0, [x29,144] + ldr w2, [x29,172] + bl printk + adrp x0, .LANCHOR0 + add x0, x0, :lo12:.LANCHOR0 + ldr w1, [x0,1948] + cbnz w1, .L2659 + ldrb w0, [x0,196] + cbz w0, .L2660 +.L2659: + add x0, x20, :lo12:.LANCHOR2 + ldrh w1, [x19] + ldr x0, [x0,-80] + ldrh w0, [x0,x1,lsl 1] + cmp w0, 159 + bls .L2661 +.L2660: + add x0, x20, :lo12:.LANCHOR2 + ldr x0, [x0,2048] + ldr w0, [x0,x28] + cmn w0, #1 + bne .L2662 +.L2661: + add x0, x20, :lo12:.LANCHOR2 + ldr x0, [x0,2048] + add x5, x0, x28 + ldr w0, [x5,4] + str w0, [x29,168] +.L2662: + ldrh w1, [x19] + mov w26, 0 + ldr x0, [x20,#:lo12:.LANCHOR2] + strh wzr, [x0,x1,lsl 1] + ldrh w0, [x19] + bl INSERT_FREE_LIST + mov w0, -1 + strh w0, [x19] + bl FtlGcPageVarInit + b .L2642 +.L2684: + ldr w0, [x29,164] + add w22, w22, 1 + add w3, w26, 1 + cmp w22, w0 + uxth w26, w3 + bcs .L2664 +.L2666: + add x0, x24, :lo12:.LANCHOR0 + ldrh w0, [x0,2024] + cmp w0, w26 + bhi .L2665 + b .L2643 +.L2664: + ldr x0, [x29,152] + add x1, x0, :lo12:.LANCHOR1 + ldrh w0, [x1,3296] + cmp w0, w21 + beq .L2666 + add w0, w0, w22 + strh w0, [x1,3296] + add x0, x24, :lo12:.LANCHOR0 + ldrh w0, [x0,2024] + cmp w0, w26 + bls .L2666 + b .L2667 +.L2643: + ldr x0, [x29,152] + mov w1, -1 + strh w26, [x19,2] + mov w2, 0 + add x0, x0, :lo12:.LANCHOR1 + strb wzr, [x19,6] + strh w1, [x0,3296] + mov x0, x19 + mov w1, w26 + bl ftl_sb_update_avl_pages +.L2667: + ldr w0, [x29,168] + ldp x19, x20, [sp,16] + ldp x21, x22, [sp,32] + ldp x23, x24, [sp,48] + ldp x25, x26, [sp,64] + ldp x27, x28, [sp,80] + ldp x29, x30, [sp], 240 + ret + .size FtlGcScanTempBlk, .-FtlGcScanTempBlk + .align 2 .global FtlReadRefresh .type FtlReadRefresh, %function FtlReadRefresh: @@ -17164,20 +17528,20 @@ FtlReadRefresh: stp x21, x22, [sp,32] adrp x19, .LANCHOR0 ldr w3, [x2,80] - cbz w3, .L2595 + cbz w3, .L2686 add x1, x19, :lo12:.LANCHOR0 ldr w3, [x2,84] ldr w1, [x1,2096] cmp w3, w1 - bcs .L2596 + bcs .L2687 mov w21, 2048 mov x20, x0 -.L2601: +.L2692: add x1, x19, :lo12:.LANCHOR0 ldr w0, [x20,420] ldr w1, [x1,2096] cmp w0, w1 - bcs .L2598 + bcs .L2689 add x1, x29, 52 mov w2, 0 bl log2phys @@ -17186,7 +17550,7 @@ FtlReadRefresh: add w0, w0, 1 str w0, [x20,420] cmn w1, #1 - beq .L2599 + beq .L2690 str w1, [x29,60] mov w2, 0 str w0, [x29,80] @@ -17198,56 +17562,56 @@ FtlReadRefresh: bl FlashReadPages ldr w0, [x29,56] cmp w0, 256 - bne .L2598 + bne .L2689 ldr w0, [x29,52] lsr x0, x0, 10 bl P2V_block_in_plane bl FtlGcRefreshBlock - b .L2598 -.L2599: + b .L2689 +.L2690: subs w21, w21, #1 - bne .L2601 -.L2598: + bne .L2692 +.L2689: mov w0, -1 - b .L2603 -.L2596: + b .L2694 +.L2687: ldr w0, [x0,200] str wzr, [x2,80] str wzr, [x2,84] str w0, [x2,76] - b .L2609 -.L2595: + b .L2700 +.L2686: add x19, x19, :lo12:.LANCHOR0 ldr w0, [x0,252] mov w2, 4194304 - ldrb w4, [x19,120] - ldr w3, [x19,1940] - cbnz w4, .L2604 + ldrb w4, [x19,196] + ldr w3, [x19,1948] + cbnz w4, .L2695 add w0, w3, w0, lsr 10 mov w3, 33554432 asr w2, w3, w0 -.L2604: +.L2695: add x4, x1, :lo12:.LANCHOR2 ldr w3, [x4,200] ldr w0, [x4,412] add w5, w3, 1048576 cmp w0, w5 - bhi .L2605 + bhi .L2696 add w0, w2, w0 cmp w0, w3 - bcc .L2605 + bcc .L2696 ldrb w2, [x4,-36] mov w0, 0 - cbnz w2, .L2603 -.L2605: + cbnz w2, .L2694 +.L2696: add x0, x1, :lo12:.LANCHOR2 mov w1, 1 str wzr, [x0,420] str w1, [x0,416] str w3, [x0,412] -.L2609: +.L2700: mov w0, 0 -.L2603: +.L2694: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x29, x30, [sp], 112 @@ -17268,27 +17632,27 @@ FtlGcFreeTempBlock: adrp x21, .LANCHOR0 add x1, x21, :lo12:.LANCHOR0 ldr w3, [x2,-96] - ldrh w1, [x1,2018] - cbnz w3, .L2644 + ldrh w1, [x1,2024] + cbnz w3, .L2735 ldrh w20, [x2,136] mov w4, 65535 cmp w20, w4 - bne .L2613 -.L2622: + bne .L2704 +.L2713: add x20, x19, :lo12:.LANCHOR2 mov w0, 65535 add x22, x20, 136 ldrh w1, [x20,136] str wzr, [x20,2344] cmp w1, w0 - beq .L2644 + beq .L2735 bl FtlCacheWriteBack mov w26, 12 adrp x0, .LANCHOR2 add x3, x21, :lo12:.LANCHOR0 ldrh w2, [x20,136] ldr x1, [x0,#:lo12:.LANCHOR2] - ldrh w3, [x3,2018] + ldrh w3, [x3,2024] ldrb w0, [x22,7] mov w22, 0 mul w0, w0, w3 @@ -17297,42 +17661,42 @@ FtlGcFreeTempBlock: ldrh w1, [x20,920] add w0, w1, w0 str w0, [x20,220] - b .L2623 -.L2613: - cbz w0, .L2616 + b .L2714 +.L2704: + cbz w0, .L2707 adrp x0, .LANCHOR1 add x0, x0, :lo12:.LANCHOR1 - ldrh w5, [x0,3168] + ldrh w5, [x0,3296] cmp w5, w4 - beq .L2617 -.L2618: + beq .L2708 +.L2709: mov w1, 2 - b .L2616 -.L2617: - strh w3, [x0,3168] + b .L2707 +.L2708: + strh w3, [x0,3296] ldrh w0, [x2,32] cmp w0, 17 - bhi .L2618 -.L2616: + bhi .L2709 +.L2707: add x22, x19, :lo12:.LANCHOR2 add x0, x22, 136 bl FtlGcScanTempBlk str w0, [x29,92] cmn w0, #1 - beq .L2619 + beq .L2710 ubfiz x20, x20, 1, 16 ldr x1, [x22,-80] ldrh w0, [x1,x20] cmp w0, 4 - bls .L2620 + bls .L2711 sub w0, w0, #5 strh w0, [x1,x20] mov w0, 1 bl FtlEctTblFlush -.L2620: +.L2711: add x0, x19, :lo12:.LANCHOR2 ldr w1, [x0,2344] - cbnz w1, .L2621 + cbnz w1, .L2712 ldr w1, [x0,432] add w1, w1, 1 str w1, [x0,432] @@ -17340,20 +17704,20 @@ FtlGcFreeTempBlock: lsr w0, w0, 10 bl FtlBbmMapBadBlock bl FtlBbmTblFlush -.L2621: +.L2712: add x19, x19, :lo12:.LANCHOR2 mov w0, 1 str wzr, [x19,2344] - b .L2612 -.L2619: - adrp x0, .LANCHOR1+3168 + b .L2703 +.L2710: + adrp x0, .LANCHOR1+3296 mov w1, 65535 - ldrh w2, [x0,#:lo12:.LANCHOR1+3168] + ldrh w2, [x0,#:lo12:.LANCHOR1+3296] mov w0, 1 cmp w2, w1 - bne .L2612 - b .L2622 -.L2626: + bne .L2703 + b .L2713 +.L2717: ldr x25, [x20,928] add x1, x29, 92 umull x24, w22, w26 @@ -17364,7 +17728,7 @@ FtlGcFreeTempBlock: ldr w0, [x29,92] ldr w1, [x25,x24] cmp w0, w1 - bne .L2624 + bne .L2715 lsr x0, x0, 10 bl P2V_block_in_plane mov w24, w0 @@ -17373,44 +17737,44 @@ FtlGcFreeTempBlock: mov w2, 1 bl log2phys mov w0, w24 -.L2643: +.L2734: bl decrement_vpc_count -.L2625: +.L2716: add w22, w22, 1 uxth w22, w22 -.L2623: +.L2714: ldrh w0, [x20,920] cmp w0, w22 - bhi .L2626 - b .L2645 -.L2624: + bhi .L2717 + b .L2736 +.L2715: ldr w1, [x23,4] cmp w0, w1 - beq .L2625 + beq .L2716 ldrh w0, [x20,136] - b .L2643 -.L2645: + b .L2734 +.L2736: mov w0, -1 bl decrement_vpc_count add x0, x21, :lo12:.LANCHOR0 - ldrb w0, [x0,120] - cbz w0, .L2627 - adrp x0, .LC143 + ldrb w0, [x0,196] + cbz w0, .L2718 + adrp x0, .LC144 ldrh w1, [x20,136] - add x0, x0, :lo12:.LC143 + add x0, x0, :lo12:.LC144 bl printk -.L2627: +.L2718: add x0, x19, :lo12:.LANCHOR2 ldr x2, [x19,#:lo12:.LANCHOR2] ldrh w0, [x0,136] ubfiz x1, x0, 1, 16 ldrh w1, [x2,x1] - cbz w1, .L2628 + cbz w1, .L2719 bl INSERT_DATA_LIST - b .L2629 -.L2628: + b .L2720 +.L2719: bl INSERT_FREE_LIST -.L2629: +.L2720: add x20, x19, :lo12:.LANCHOR2 mov w22, -1 strh wzr, [x20,920] @@ -17420,37 +17784,37 @@ FtlGcFreeTempBlock: bl FtlVpcTblFlush strh w22, [x20,280] add x0, x21, :lo12:.LANCHOR0 - ldr w0, [x0,1940] - cbz w0, .L2630 + ldr w0, [x0,1948] + cbz w0, .L2721 ldr w0, [x20,256] cmp w0, 39 - bhi .L2630 + bhi .L2721 ldrh w0, [x20,260] ldrh w1, [x20,32] cmp w1, w0 - bcs .L2644 + bcs .L2735 lsl w0, w0, 1 strh w0, [x20,848] -.L2644: +.L2735: mov w0, 0 - b .L2612 -.L2630: + b .L2703 +.L2721: add x19, x19, :lo12:.LANCHOR2 ldrh w1, [x19,260] ldrh w0, [x19,32] add w2, w1, w1, lsl 1 cmp w0, w2, lsr 2 - ble .L2644 + ble .L2735 add x21, x21, :lo12:.LANCHOR0 - ldrb w0, [x21,120] - cbz w0, .L2631 + ldrb w0, [x21,196] + cbz w0, .L2722 sub w1, w1, #2 strh w1, [x19,848] - b .L2644 -.L2631: + b .L2735 +.L2722: mov w1, 20 strh w1, [x19,848] -.L2612: +.L2703: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -17472,18 +17836,18 @@ FtlGcPageRecovery: str x21, [sp,32] add x21, x19, 136 mov x0, x21 - ldrh w1, [x20,2018] + ldrh w1, [x20,2024] bl FtlGcScanTempBlk ldrh w1, [x19,138] - ldrh w0, [x20,2018] + ldrh w0, [x20,2024] cmp w1, w0 - bcc .L2646 + bcc .L2737 add x0, x19, 2256 bl FtlMapBlkWriteDumpData mov w0, 0 bl FtlGcFreeTempBlock str wzr, [x19,2344] -.L2646: +.L2737: ldp x19, x20, [sp,16] ldr x21, [sp,32] ldp x29, x30, [sp], 48 @@ -17536,20 +17900,20 @@ FtlSysBlkInit: add x23, x19, :lo12:.LANCHOR2 strh w1, [x0,290] strh wzr, [x0,292] - ldrh w0, [x24,1952] + ldrh w0, [x24,1960] bl FtlFreeSysBlkQueueInit bl FtlScanSysBlk ldrh w1, [x23,264] mov w0, 65535 cmp w1, w0 - bne .L2650 -.L2652: + bne .L2741 +.L2743: mov w22, -1 - b .L2651 -.L2650: + b .L2742 +.L2741: bl FtlLoadSysInfo mov w22, w0 - cbnz w0, .L2652 + cbnz w0, .L2743 bl FtlLoadMapInfo bl FtlLoadVonderInfo bl Ftl_load_ext_data @@ -17559,28 +17923,28 @@ FtlSysBlkInit: bl FtlPowerLostRecovery mov w0, 1 bl FtlUpdateVaildLpn - ldrh w2, [x24,2058] + ldrh w2, [x24,2062] mov x1, 0 ldr x0, [x23,184] -.L2653: +.L2744: cmp w1, w2 mov w3, w1 - bge .L2657 + bge .L2748 add x4, x0, x1, lsl 4 add x1, x1, 1 ldr w4, [x4,4] - tbz w4, #31, .L2653 -.L2657: + tbz w4, #31, .L2744 +.L2748: add x1, x19, :lo12:.LANCHOR2 cmp w3, w2 ldrh w0, [x1,-36] add w0, w0, 1 strh w0, [x1,-36] - blt .L2654 + blt .L2745 add x20, x20, :lo12:.LANCHOR4 ldrh w0, [x20,292] - cbz w0, .L2658 -.L2654: + cbz w0, .L2749 +.L2745: add x1, x19, :lo12:.LANCHOR2 ldr x4, [x19,#:lo12:.LANCHOR2] ldrh w2, [x1,40] @@ -17593,7 +17957,7 @@ FtlSysBlkInit: strb wzr, [x1,46] ldrh w4, [x1,88] ldr x5, [x19,#:lo12:.LANCHOR2] - ldrh w2, [x3,2018] + ldrh w2, [x3,2024] lsl x4, x4, 1 strh w2, [x1,42] strh wzr, [x1,44] @@ -17602,7 +17966,7 @@ FtlSysBlkInit: sub w0, w0, w6 strh w0, [x5,x4] strb wzr, [x1,94] - ldrh w0, [x3,2018] + ldrh w0, [x3,2024] strh w0, [x1,90] ldrh w0, [x1,-34] strh wzr, [x1,92] @@ -17611,24 +17975,24 @@ FtlSysBlkInit: bl l2p_flush bl FtlVpcTblFlush bl FtlVpcTblFlush -.L2658: +.L2749: add x0, x19, :lo12:.LANCHOR2 ldrh w0, [x0,-36] and w0, w0, 31 - cbnz w0, .L2659 + cbnz w0, .L2750 bl FtlVpcCheckAndModify -.L2659: +.L2750: add x19, x19, :lo12:.LANCHOR2 mov w1, 65535 add x21, x19, 40 ldrh w0, [x19,40] cmp w0, w1 - beq .L2651 + beq .L2742 ldrh w1, [x19,44] - cbnz w1, .L2651 + cbnz w1, .L2742 ldrh w1, [x19,92] add x20, x19, 88 - cbnz w1, .L2651 + cbnz w1, .L2742 bl FtlGcRefreshOpenBlock ldrh w0, [x19,88] bl FtlGcRefreshOpenBlock @@ -17637,7 +18001,7 @@ FtlSysBlkInit: bl allocate_new_data_superblock mov x0, x20 bl allocate_new_data_superblock -.L2651: +.L2742: mov w0, w22 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -17657,33 +18021,33 @@ FtlLowFormat: add x19, x21, :lo12:.LANCHOR2 stp x23, x24, [sp,48] ldr w22, [x19,-96] - cbnz w22, .L2667 + cbnz w22, .L2758 adrp x20, .LANCHOR0 ldr x0, [x19,2224] add x23, x20, :lo12:.LANCHOR0 mov w1, w22 - ldrh w2, [x23,2056] + ldrh w2, [x23,2060] lsl w2, w2, 2 bl ftl_memset - ldrh w2, [x23,2056] + ldrh w2, [x23,2060] mov w1, w22 ldr x0, [x19,2216] lsl w2, w2, 2 bl ftl_memset str w22, [x19,232] - ldrh w0, [x23,1952] + ldrh w0, [x23,1960] str w22, [x19,236] bl FtlFreeSysBlkQueueInit bl FtlLoadBbt - cbz w0, .L2668 + cbz w0, .L2759 bl FtlMakeBbt -.L2668: +.L2759: mov w0, 0 -.L2669: +.L2760: add x1, x20, :lo12:.LANCHOR0 - ldrh w2, [x1,2024] + ldrh w2, [x1,2030] cmp w0, w2, lsl 7 - bge .L2696 + bge .L2787 add x3, x21, :lo12:.LANCHOR2 ubfiz x2, x0, 2, 16 mvn w1, w0 @@ -17696,15 +18060,15 @@ FtlLowFormat: uxth w0, w0 ldr x3, [x3,2112] str w1, [x3,x2] - b .L2669 -.L2696: - ldrh w22, [x1,1956] + b .L2760 +.L2787: + ldrh w22, [x1,1964] mov w19, 0 -.L2671: +.L2762: add x23, x20, :lo12:.LANCHOR0 - ldrh w0, [x23,1958] + ldrh w0, [x23,1966] cmp w0, w22 - bls .L2697 + bls .L2788 mov w0, w22 mov w1, 1 add w22, w22, 1 @@ -17712,40 +18076,40 @@ FtlLowFormat: add w0, w19, w0 uxth w22, w22 uxth w19, w0 - b .L2671 -.L2697: - ldrh w0, [x23,1948] + b .L2762 +.L2788: + ldrh w0, [x23,1956] sub w1, w19, #3 cmp w1, w0, lsl 1 - bge .L2673 -.L2677: + bge .L2764 +.L2768: mov w19, 0 mov w22, w19 - b .L2674 -.L2673: + b .L2765 +.L2764: udiv w19, w19, w0 - ldr w0, [x23,2052] + ldr w0, [x23,2056] add w0, w19, w0 bl FtlSysBlkNumInit - ldrh w0, [x23,1952] + ldrh w0, [x23,1960] bl FtlFreeSysBlkQueueInit - ldrh w19, [x23,1956] -.L2675: + ldrh w19, [x23,1964] +.L2766: add x0, x20, :lo12:.LANCHOR0 - ldrh w0, [x0,1958] + ldrh w0, [x0,1966] cmp w0, w19 - bls .L2677 + bls .L2768 mov w0, w19 mov w1, 1 add w19, w19, 1 bl FtlLowFormatEraseBlock uxth w19, w19 - b .L2675 -.L2674: + b .L2766 +.L2765: add x0, x20, :lo12:.LANCHOR0 - ldrh w1, [x0,1956] + ldrh w1, [x0,1964] cmp w1, w22 - bls .L2698 + bls .L2789 mov w0, w22 mov w1, 0 add w22, w22, 1 @@ -17753,13 +18117,13 @@ FtlLowFormat: add w0, w19, w0 uxth w22, w22 uxth w19, w0 - b .L2674 -.L2698: + b .L2765 +.L2789: add x4, x21, :lo12:.LANCHOR2 - ldrh w1, [x0,1958] - ldrh w2, [x0,1948] + ldrh w1, [x0,1966] + ldrh w2, [x0,1956] str w1, [x4,2036] - ldr w1, [x0,1960] + ldr w1, [x0,1968] udiv w3, w1, w2 str w3, [x0,2096] ubfx x6, x3, 5, 16 @@ -17768,50 +18132,50 @@ FtlLowFormat: mov w5, 24 mul w5, w2, w5 cmp w19, w5 - ble .L2679 + ble .L2770 sub w1, w1, w19 udiv w1, w1, w2 str w1, [x0,2096] lsr w1, w1, 5 add w1, w1, 24 strh w1, [x4,260] -.L2679: +.L2770: add x0, x20, :lo12:.LANCHOR0 - ldr w0, [x0,1940] + ldr w0, [x0,1948] cmp w0, 1 - bne .L2680 + bne .L2771 add x1, x21, :lo12:.LANCHOR2 udiv w0, w19, w2 ldrh w4, [x1,260] add w0, w4, w0 add w0, w4, w0, asr 2 strh w0, [x1,260] -.L2680: +.L2771: add x0, x20, :lo12:.LANCHOR0 - ldrb w0, [x0,120] - cbz w0, .L2681 + ldrb w0, [x0,196] + cbz w0, .L2772 add x1, x21, :lo12:.LANCHOR2 udiv w0, w19, w2 ldrh w4, [x1,260] add w0, w4, w0 add w0, w4, w0, asr 2 strh w0, [x1,260] -.L2681: +.L2772: add x5, x20, :lo12:.LANCHOR0 - ldrh w1, [x5,2010] - cbz w1, .L2683 + ldrh w1, [x5,2018] + cbz w1, .L2774 add x0, x21, :lo12:.LANCHOR2 ldrh w4, [x0,260] add w4, w4, w1, lsr 1 strh w4, [x0,260] mul w4, w1, w2 cmp w4, w19 - ble .L2683 + ble .L2774 add w1, w1, 32 str w3, [x5,2096] add w1, w6, w1 strh w1, [x0,260] -.L2683: +.L2774: add x19, x21, :lo12:.LANCHOR2 add x22, x20, :lo12:.LANCHOR0 adrp x24, .LANCHOR4 @@ -17822,21 +18186,21 @@ FtlLowFormat: add x1, x24, :lo12:.LANCHOR4 mul w0, w0, w2 str w0, [x1,216] - ldrh w1, [x22,2018] - mul w0, w0, w1 ldrh w1, [x22,2024] + mul w0, w0, w1 + ldrh w1, [x22,2030] str w0, [x22,2096] mul w0, w0, w1 - str w0, [x22,2060] + str w0, [x22,2064] bl FtlBbmTblFlush - ldrh w2, [x22,1958] + ldrh w2, [x22,1966] mov w1, 0 ldr x0, [x21,#:lo12:.LANCHOR2] add x21, x19, 40 lsl w2, w2, 1 bl ftl_memset str wzr, [x19,196] - ldrh w2, [x22,1956] + ldrh w2, [x22,1964] mov w0, 1 strb w0, [x21,8] mov w1, 255 @@ -17851,19 +18215,19 @@ FtlLowFormat: strb wzr, [x21,6] strh wzr, [x19,40] bl ftl_memset -.L2685: +.L2776: mov x0, x21 bl make_superblock ldrb w0, [x21,7] - cbnz w0, .L2686 + cbnz w0, .L2777 ldrh w1, [x21] ldr x0, [x19] strh w23, [x0,x1,lsl 1] ldrh w0, [x21] add w0, w0, 1 strh w0, [x21] - b .L2685 -.L2686: + b .L2776 +.L2777: ldr w0, [x19,232] mov x20, x19 str w0, [x21,12] @@ -17881,19 +18245,19 @@ FtlLowFormat: strh w0, [x19,88] mov w0, 1 strb w0, [x20,8] -.L2687: +.L2778: mov x0, x20 bl make_superblock ldrb w0, [x20,7] - cbnz w0, .L2688 + cbnz w0, .L2779 ldrh w1, [x20] ldr x0, [x19] strh w21, [x0,x1,lsl 1] ldrh w0, [x20] add w0, w0, 1 strh w0, [x20] - b .L2687 -.L2688: + b .L2778 +.L2779: ldr w0, [x19,232] add x22, x22, :lo12:.LANCHOR4 str w0, [x20,12] @@ -17917,11 +18281,11 @@ FtlLowFormat: str w0, [x19,232] bl FtlVpcTblFlush bl FtlSysBlkInit - cbnz w0, .L2667 + cbnz w0, .L2758 adrp x0, .LANCHOR1+504 mov w1, 1 str w1, [x0,#:lo12:.LANCHOR1+504] -.L2667: +.L2758: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -17938,25 +18302,25 @@ FtlReInitForSDUpdata: stp x19, x20, [sp,16] adrp x19, .LANCHOR0 add x0, x19, :lo12:.LANCHOR0 - ldrb w0, [x0,120] - cbz w0, .L2700 -.L2702: + ldrb w0, [x0,196] + cbz w0, .L2791 +.L2793: mov w0, 0 - b .L2701 -.L2700: + b .L2792 +.L2791: adrp x20, .LANCHOR4 add x0, x20, :lo12:.LANCHOR4 ldr x0, [x0,48] bl FlashInit - cbnz w0, .L2702 + cbnz w0, .L2793 bl FlashLoadFactorBbt - cbz w0, .L2703 + cbz w0, .L2794 bl FlashMakeFactorBbt -.L2703: +.L2794: add x20, x20, :lo12:.LANCHOR4 ldr x0, [x20,104] bl FlashReadIdbDataRaw - cbz w0, .L2704 + cbz w0, .L2795 mov w1, 0 mov w2, 16 add x0, x29, 32 @@ -17965,39 +18329,39 @@ FtlReInitForSDUpdata: ldr w2, [x29,32] mov w1, w0 mov w4, 1 -.L2706: +.L2797: lsl w3, w4, w1 add w1, w1, 1 tst w3, w2 cset w3, ne cmp w1, 16 add w0, w0, w3 - bne .L2706 + bne .L2797 cmp w0, 6 - bhi .L2707 + bhi .L2798 add x0, x19, :lo12:.LANCHOR0 - b .L2729 -.L2707: + b .L2820 +.L2798: mov w1, 0 mov w4, 1 -.L2710: +.L2801: lsl w3, w4, w1 add w1, w1, 1 tst w3, w2 cset w3, ne cmp w1, 24 add w0, w0, w3 - bne .L2710 + bne .L2801 cmp w0, 17 add x0, x19, :lo12:.LANCHOR0 - bls .L2729 + bls .L2820 mov w1, 36 -.L2729: +.L2820: strb w1, [x0,9] add x0, x19, :lo12:.LANCHOR0 ldrb w1, [x0,9] strh w1, [x0,194] -.L2704: +.L2795: adrp x0, .LC75 adrp x1, .LC76 add x1, x1, :lo12:.LC76 @@ -18007,28 +18371,28 @@ FtlReInitForSDUpdata: add x0, x19, 168 bl FtlConstantsInit bl FtlVariablesInit - ldrh w0, [x19,1952] + ldrh w0, [x19,1960] mov w19, 1 bl FtlFreeSysBlkQueueInit -.L2712: +.L2803: bl FtlLoadBbt - cbz w0, .L2713 -.L2731: + cbz w0, .L2804 +.L2822: bl FtlLowFormat cmp w19, 3 - bhi .L2732 + bhi .L2823 add w19, w19, 1 - b .L2712 -.L2732: + b .L2803 +.L2823: mov w0, -1 - b .L2701 -.L2713: + b .L2792 +.L2804: bl FtlSysBlkInit - cbnz w0, .L2731 + cbnz w0, .L2822 adrp x1, .LANCHOR1+504 mov w2, 1 str w2, [x1,#:lo12:.LANCHOR1+504] -.L2701: +.L2792: ldp x19, x20, [sp,16] ldp x29, x30, [sp], 48 ret @@ -18044,19 +18408,19 @@ Ftl_gc_temp_data_write_back: add x0, x21, :lo12:.LANCHOR2 stp x19, x20, [sp,16] ldr w1, [x0,-96] - cbz w1, .L2734 -.L2737: + cbz w1, .L2825 +.L2828: mov w0, 0 - b .L2735 -.L2734: - adrp x1, .LANCHOR0+120 - ldrb w1, [x1,#:lo12:.LANCHOR0+120] - cbz w1, .L2736 + b .L2826 +.L2825: + adrp x1, .LANCHOR0+196 + ldrb w1, [x1,#:lo12:.LANCHOR0+196] + cbz w1, .L2827 ldr w1, [x0,864] - tbz x1, 0, .L2736 + tbz x1, 0, .L2827 ldrh w0, [x0,140] - cbnz w0, .L2737 -.L2736: + cbnz w0, .L2828 +.L2827: add x1, x21, :lo12:.LANCHOR2 mov w2, 0 mov w3, w2 @@ -18065,17 +18429,17 @@ Ftl_gc_temp_data_write_back: ldr x0, [x1,2056] ldr w1, [x1,864] bl FlashProgPages -.L2738: +.L2829: add x19, x21, :lo12:.LANCHOR2 ldr w1, [x19,864] cmp w20, w1 - bcs .L2748 + bcs .L2839 umull x0, w20, w22 ldr x2, [x19,2056] add x1, x2, x0 ldr w2, [x2,x0] cmn w2, #1 - bne .L2739 + bne .L2830 ldrh w3, [x19,136] ldr x1, [x19] strh wzr, [x1,x3,lsl 1] @@ -18090,8 +18454,8 @@ Ftl_gc_temp_data_write_back: bl FtlBbmMapBadBlock bl FtlBbmTblFlush bl FtlGcPageVarInit - b .L2747 -.L2739: + b .L2838 +.L2830: ldr x2, [x1,16] add w20, w20, 1 ldr w1, [x1,4] @@ -18099,18 +18463,18 @@ Ftl_gc_temp_data_write_back: ldr w0, [x2,12] ldr w2, [x2,8] bl FtlGcUpdatePage - b .L2738 -.L2748: + b .L2829 +.L2839: ldr x0, [x19,2056] bl FtlGcBufFree str wzr, [x19,864] ldrh w0, [x19,140] - cbnz w0, .L2737 + cbnz w0, .L2828 mov w0, 1 bl FtlGcFreeTempBlock -.L2747: +.L2838: mov w0, 1 -.L2735: +.L2826: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x29, x30, [sp], 48 @@ -18129,10 +18493,10 @@ Ftl_get_new_temp_ppa: ldrh w2, [x0,136] mov w0, 65535 cmp w2, w0 - beq .L2750 + beq .L2841 ldrh w0, [x1,4] - cbnz w0, .L2751 -.L2750: + cbnz w0, .L2842 +.L2841: bl FtlCacheWriteBack add x20, x19, :lo12:.LANCHOR2 mov w0, 0 @@ -18146,7 +18510,7 @@ Ftl_get_new_temp_ppa: mov w0, 0 bl FtlEctTblFlush bl FtlVpcTblFlush -.L2751: +.L2842: add x0, x19, :lo12:.LANCHOR2 add x0, x0, 136 bl get_new_active_ppa @@ -18169,69 +18533,69 @@ ftl_do_gc: stp x25, x26, [sp,64] stp x27, x28, [sp,80] ldr w4, [x3,-96] - cbnz w4, .L2897 + cbnz w4, .L2988 ldr w4, [x3,2024] - cbnz w4, .L2897 + cbnz w4, .L2988 ldrh w4, [x3,16] cmp w4, 47 - bls .L2897 + bls .L2988 mov w23, w0 - adrp x0, .LANCHOR1+3168 + adrp x0, .LANCHOR1+3296 mov w22, w1 - ldrh w1, [x0,#:lo12:.LANCHOR1+3168] + ldrh w1, [x0,#:lo12:.LANCHOR1+3296] mov w0, 65535 cmp w1, w0 - bne .L2754 -.L2757: + bne .L2845 +.L2848: add x0, x19, :lo12:.LANCHOR2 mov w2, 65535 ldrh w4, [x0,938] cmp w4, w2 - bne .L2755 - b .L2756 -.L2754: + bne .L2846 + b .L2847 +.L2845: ldrh w1, [x3,136] cmp w1, w0 - beq .L2757 + beq .L2848 mov w0, 1 bl FtlGcFreeTempBlock mov w2, 1 - cbz w0, .L2757 - b .L2897 -.L2755: + cbz w0, .L2848 + b .L2988 +.L2846: ldrh w1, [x0,936] cmp w1, w2 - bne .L2756 + bne .L2847 ldrh w3, [x0,940] cmp w3, w1 - beq .L2756 + beq .L2847 ldrh w2, [x0,942] cmp w2, w1 - beq .L2756 + beq .L2847 mov w1, -1 strh w4, [x0,936] strh w3, [x0,938] strh w2, [x0,940] strh w1, [x0,942] -.L2756: +.L2847: add x1, x19, :lo12:.LANCHOR2 cmp w23, 1 ldr w0, [x1,852] add w0, w0, 1 add w0, w0, w23, lsl 7 str w0, [x1,852] - bne .L2768 + bne .L2859 adrp x25, .LANCHOR0 add x1, x25, :lo12:.LANCHOR0 - ldr w2, [x1,1940] - cbnz w2, .L2759 - ldrb w1, [x1,120] - cbz w1, .L2768 -.L2759: + ldr w2, [x1,1948] + cbnz w2, .L2850 + ldrb w1, [x1,196] + cbz w1, .L2859 +.L2850: add x20, x19, :lo12:.LANCHOR2 ldr w1, [x20,256] cmp w1, 39 - bhi .L2768 + bhi .L2859 adrp x21, .LANCHOR4 add x1, x21, :lo12:.LANCHOR4 ldrh w1, [x1,432] @@ -18241,17 +18605,17 @@ ftl_do_gc: ldrh w0, [x20,280] mov w1, 65535 cmp w0, w1 - bne .L2768 + bne .L2859 ldrh w1, [x20,936] cmp w1, w0 - bne .L2768 + bne .L2859 ldr w0, [x20,852] cmp w0, 1024 - bhi .L2760 + bhi .L2851 ldrh w0, [x20,32] cmp w0, 63 - bhi .L2768 -.L2760: + bhi .L2859 +.L2851: add x0, x19, :lo12:.LANCHOR2 add x1, x21, :lo12:.LANCHOR4 ldrh w2, [x0,850] @@ -18259,39 +18623,39 @@ ftl_do_gc: add w2, w2, 64 strh wzr, [x1,432] cmp w3, w2 - bgt .L2768 + bgt .L2859 str wzr, [x0,852] ldr w0, [x0,256] - cbnz w0, .L2761 + cbnz w0, .L2852 mov w0, 6 - b .L2919 -.L2761: + b .L3010 +.L2852: cmp w0, 5 - bhi .L2762 + bhi .L2853 mov w0, 18 -.L2919: +.L3010: strh w0, [x1,432] -.L2762: +.L2853: mov w0, 32 bl List_get_gc_head_node uxth w26, w0 mov w3, 65535 cmp w26, w3 - beq .L2767 + beq .L2858 add x24, x19, :lo12:.LANCHOR2 adrp x27, .LANCHOR2 ldrh w0, [x24,856] - cbz w0, .L2764 + cbz w0, .L2855 add x25, x25, :lo12:.LANCHOR0 ldr x28, [x27,#:lo12:.LANCHOR2] ubfiz x26, x26, 1, 16 - ldrh w1, [x25,2020] - ldrh w4, [x25,1948] + ldrh w1, [x25,2026] + ldrh w4, [x25,1956] ldrh w2, [x28,x26] mul w1, w1, w4 add w1, w1, 1 cmp w2, w1 - bgt .L2767 + bgt .L2858 add w1, w0, 1 str x3, [x29,112] str wzr, [x24,860] @@ -18303,166 +18667,166 @@ ftl_do_gc: ldr x3, [x29,112] ldr x1, [x29,120] cmp w20, w3 - beq .L2767 + beq .L2858 ubfiz x25, x20, 1, 16 - adrp x0, .LC144 + adrp x0, .LC145 ldrh w4, [x28,x26] - add x0, x0, :lo12:.LC144 + add x0, x0, :lo12:.LC145 mov w2, w20 ldrh w3, [x28,x25] bl printk ldrh w0, [x24,856] cmp w0, 40 - bls .L2765 + bls .L2856 ldr x0, [x27,#:lo12:.LANCHOR2] ldrh w0, [x0,x25] cmp w0, 32 - bls .L2765 + bls .L2856 strh wzr, [x24,856] -.L2765: +.L2856: add x21, x21, :lo12:.LANCHOR4 mov w0, 6 strh w0, [x21,432] - b .L2769 -.L2764: + b .L2860 +.L2855: mov w0, 1 strh w0, [x24,856] -.L2767: +.L2858: bl GetSwlReplaceBlock uxth w20, w0 mov w0, 65535 cmp w20, w0 - bne .L2769 + bne .L2860 add x21, x21, :lo12:.LANCHOR4 strh wzr, [x21,432] -.L2768: +.L2859: add x21, x19, :lo12:.LANCHOR2 mov w0, 65535 ldrh w20, [x21,280] cmp w20, w0 - bne .L2923 + bne .L3014 ldrh w0, [x21,136] cmp w0, w20 - beq .L2924 -.L2769: + beq .L3015 +.L2860: mov w0, 65535 cmp w20, w0 add x0, x19, :lo12:.LANCHOR2 cset w2, eq - cbz w2, .L2782 - cbnz w23, .L2782 + cbz w2, .L2873 + cbnz w23, .L2873 ldrh w1, [x0,32] mov w21, 1 cmp w1, 24 - bhi .L2783 + bhi .L2874 adrp x0, .LANCHOR0 cmp w1, 16 add x0, x0, :lo12:.LANCHOR0 - ldrh w21, [x0,2018] - bls .L2784 + ldrh w21, [x0,2024] + bls .L2875 lsr w21, w21, 5 - b .L2783 -.L2784: + b .L2874 +.L2875: cmp w1, 12 - bls .L2785 + bls .L2876 lsr w21, w21, 4 - b .L2783 -.L2785: + b .L2874 +.L2876: cmp w1, 8 - bls .L2783 + bls .L2874 lsr w21, w21, 2 -.L2783: +.L2874: add x0, x19, :lo12:.LANCHOR2 ldrh w2, [x0,848] cmp w2, w1 - bcs .L2787 + bcs .L2878 ldrh w1, [x0,136] mov w2, 65535 cmp w1, w2 - bne .L2788 + bne .L2879 ldrh w2, [x0,936] cmp w2, w1 - bne .L2788 + bne .L2879 adrp x1, .LANCHOR4+432 ldrh w2, [x1,#:lo12:.LANCHOR4+432] - cbnz w2, .L2789 + cbnz w2, .L2880 adrp x1, .LANCHOR0+2096 ldr w3, [x0,196] ldr w1, [x1,#:lo12:.LANCHOR0+2096] add w1, w1, w1, lsl 1 cmp w3, w1, lsr 2 - bcs .L2790 -.L2789: + bcs .L2881 +.L2880: add x1, x19, :lo12:.LANCHOR2 ldrh w0, [x1,260] add w0, w0, w0, lsl 1 asr w0, w0, 2 strh w0, [x1,848] - b .L2791 -.L2790: + b .L2882 +.L2881: mov w1, 18 strh w1, [x0,848] -.L2791: +.L2882: add x19, x19, :lo12:.LANCHOR2 str wzr, [x19,860] - b .L2897 -.L2788: + b .L2988 +.L2879: add x1, x19, :lo12:.LANCHOR2 ldrh w0, [x1,260] add w0, w0, w0, lsl 1 asr w0, w0, 2 strh w0, [x1,848] -.L2787: +.L2878: cmp w22, 2 - bhi .L2852 - adrp x0, .LANCHOR0+1940 - ldr w0, [x0,#:lo12:.LANCHOR0+1940] - cbz w0, .L2852 + bhi .L2943 + adrp x0, .LANCHOR0+1948 + ldr w0, [x0,#:lo12:.LANCHOR0+1948] + cbz w0, .L2943 add w21, w21, 1 uxth w21, w21 - b .L2852 -.L2782: + b .L2943 +.L2873: ldrh w1, [x0,136] mov w3, 65535 cmp w1, w3 - bne .L2794 - cbz w2, .L2794 + bne .L2885 + cbz w2, .L2885 ldrh w2, [x0,936] cmp w2, w1 - bne .L2794 + bne .L2885 ldrh w2, [x0,280] cmp w2, w1 - beq .L2795 -.L2800: + beq .L2886 +.L2891: mov w20, 65535 - b .L2794 -.L2795: + b .L2885 +.L2886: ldrh w2, [x0,32] adrp x20, .LANCHOR4 ldrh w1, [x0,848] str wzr, [x0,860] cmp w2, w1 - bls .L2796 + bls .L2887 add x1, x20, :lo12:.LANCHOR4 ldrh w1, [x1,432] - cbnz w1, .L2797 + cbnz w1, .L2888 adrp x1, .LANCHOR0+2096 ldr w2, [x0,196] ldr w1, [x1,#:lo12:.LANCHOR0+2096] add w1, w1, w1, lsl 1 cmp w2, w1, lsr 2 - bcs .L2798 -.L2797: + bcs .L2889 +.L2888: add x1, x19, :lo12:.LANCHOR2 ldrh w0, [x1,260] add w0, w0, w0, lsl 1 asr w0, w0, 2 strh w0, [x1,848] - b .L2799 -.L2798: + b .L2890 +.L2889: mov w1, 18 strh w1, [x0,848] -.L2799: +.L2890: bl FtlReadRefresh mov w0, 0 bl List_get_gc_head_node @@ -18470,14 +18834,14 @@ ftl_do_gc: ldr x1, [x19,#:lo12:.LANCHOR2] ldrh w0, [x1,x0] cmp w0, 4 - bls .L2796 + bls .L2887 add x20, x20, :lo12:.LANCHOR4 ldrh w2, [x20,432] - b .L2897 -.L2796: + b .L2988 +.L2887: add x21, x20, :lo12:.LANCHOR4 ldrh w0, [x21,432] - cbnz w0, .L2800 + cbnz w0, .L2891 add x22, x19, :lo12:.LANCHOR2 ldrh w20, [x22,260] add w1, w20, w20, lsl 1 @@ -18489,91 +18853,91 @@ ftl_do_gc: ldrh w2, [x1,x0] adrp x1, .LANCHOR0 add x1, x1, :lo12:.LANCHOR0 - ldrh w0, [x1,2020] - ldrh w1, [x1,1948] + ldrh w0, [x1,2026] + ldrh w1, [x1,1956] mul w0, w0, w1 mov w1, 2 sdiv w0, w0, w1 cmp w2, w0 - ble .L2801 + ble .L2892 ldrh w0, [x22,32] sub w20, w20, #1 cmp w0, w20 - blt .L2801 + blt .L2892 bl FtlReadRefresh ldrh w2, [x21,432] - b .L2897 -.L2801: - cbnz w2, .L2800 + b .L2988 +.L2892: + cbnz w2, .L2891 mov w0, -1 add x19, x19, :lo12:.LANCHOR2 bl decrement_vpc_count ldrh w2, [x19,32] add w2, w2, 1 - b .L2897 -.L2794: - adrp x0, .LANCHOR0+1940 + b .L2988 +.L2885: + adrp x0, .LANCHOR0+1948 mov w21, 2 - ldr w0, [x0,#:lo12:.LANCHOR0+1940] + ldr w0, [x0,#:lo12:.LANCHOR0+1948] cmp w0, wzr csinc w21, w21, wzr, ne - b .L2793 -.L2852: + b .L2884 +.L2943: mov w20, 65535 -.L2793: +.L2884: add x0, x19, :lo12:.LANCHOR2 mov w2, 65535 ldrh w1, [x0,280] cmp w1, w2 - bne .L2803 + bne .L2894 cmp w20, w1 - beq .L2804 + beq .L2895 strh w20, [x0,280] - b .L2805 -.L2804: + b .L2896 +.L2895: ldrh w1, [x0,936] cmp w1, w20 - beq .L2805 + beq .L2896 adrp x2, .LANCHOR2 ubfiz x1, x1, 1, 16 ldr x2, [x2,#:lo12:.LANCHOR2] ldrh w1, [x2,x1] - cbnz w1, .L2806 + cbnz w1, .L2897 mov w1, -1 strh w1, [x0,936] -.L2806: +.L2897: add x0, x19, :lo12:.LANCHOR2 ldrh w1, [x0,936] strh w1, [x0,280] mov w1, -1 strh w1, [x0,936] -.L2805: +.L2896: add x22, x19, :lo12:.LANCHOR2 mov w1, 65535 ldrh w0, [x22,280] strb wzr, [x22,288] cmp w0, w1 - beq .L2803 + beq .L2894 bl IsBlkInGcList - cbz w0, .L2808 + cbz w0, .L2899 mov w0, -1 strh w0, [x22,280] -.L2808: - adrp x0, .LANCHOR0+120 - ldrb w0, [x0,#:lo12:.LANCHOR0+120] - cbz w0, .L2809 +.L2899: + adrp x0, .LANCHOR0+196 + ldrb w0, [x0,#:lo12:.LANCHOR0+196] + cbz w0, .L2900 add x0, x19, :lo12:.LANCHOR2 add x22, x0, 280 ldrh w0, [x0,280] bl ftl_get_blk_mode strb w0, [x22,8] -.L2809: +.L2900: add x22, x19, :lo12:.LANCHOR2 mov w0, 65535 add x24, x22, 280 ldrh w1, [x22,280] cmp w1, w0 - beq .L2803 + beq .L2894 mov x0, x24 bl make_superblock strh wzr, [x22,282] @@ -18586,120 +18950,122 @@ ftl_do_gc: strh wzr, [x0,434] ldrh w1, [x1,x2,lsl 1] strh w1, [x0,436] -.L2803: +.L2894: add x6, x19, :lo12:.LANCHOR2 ldrh w0, [x6,280] ldrh w1, [x6,40] cmp w1, w0 - beq .L2810 + beq .L2901 ldrh w1, [x6,88] cmp w1, w0 - beq .L2810 -.L2811: - adrp x0, .LC146 + beq .L2901 +.L2902: + adrp x0, .LC147 mov x28, x6 - add x0, x0, :lo12:.LC146 + add x0, x0, :lo12:.LC147 mov w24, 65535 str x0, [x29,120] - b .L2812 -.L2810: + b .L2903 +.L2901: add x19, x19, :lo12:.LANCHOR2 mov w0, -1 strh w0, [x19,280] - b .L2922 -.L2833: + b .L3013 +.L2924: ldrh w0, [x28,282] add w21, w21, w0 uxth w21, w21 strh w21, [x28,282] cmp w21, w25 - bcs .L2925 -.L2835: + bcs .L3016 +.L2926: ldrh w0, [x28,32] cmp w0, 2 - bhi .L2838 + bhi .L2929 adrp x0, .LANCHOR0 add x0, x0, :lo12:.LANCHOR0 - ldrh w21, [x0,2018] -.L2812: + ldrh w21, [x0,2024] +.L2903: ldrh w0, [x28,280] cmp w0, w24 - bne .L2813 + bne .L2904 str wzr, [x28,860] mov w25, 2 -.L2814: +.L2905: ldrh w22, [x28,856] mov w0, w22 bl List_get_gc_head_node uxth w26, w0 cmp w26, w24 strh w26, [x28,280] - bne .L2815 + bne .L2906 strh wzr, [x28,856] mov w2, 8 - b .L2897 -.L2815: + b .L2988 +.L2906: mov w0, w26 add w22, w22, 1 bl IsBlkInGcList - cbz w0, .L2816 + cbz w0, .L2907 strh w22, [x28,856] - b .L2814 -.L2816: + b .L2905 +.L2907: adrp x0, .LANCHOR0 ubfiz x1, x26, 1, 16 add x4, x0, :lo12:.LANCHOR0 ldr x2, [x28] uxth w22, w22 strh w22, [x28,856] - ldrh w0, [x4,2018] - ldrh w4, [x4,1948] + ldrh w0, [x4,2024] + ldrh w4, [x4,1956] ldrh w3, [x2,x1] mul w0, w0, w4 sdiv w4, w0, w25 cmp w3, w4 - bgt .L2818 + bgt .L2909 cmp w3, 8 - bls .L2819 + bls .L2910 cmp w22, 48 - bls .L2819 + bls .L2910 ldrh w3, [x28,908] cmp w3, 35 - bhi .L2819 -.L2818: + bhi .L2910 +.L2909: strh wzr, [x28,856] -.L2819: +.L2910: + cmp w20, w24 ldrh w1, [x2,x1] + bne .L2911 cmp w1, w0 - blt .L2820 - cmp w20, w24 - bne .L2820 - add x19, x19, :lo12:.LANCHOR2 + blt .L2911 + ldrh w0, [x28,856] + cmp w0, 3 + bhi .L2911 mov w0, -1 - strh wzr, [x19,856] - strh w0, [x19,280] -.L2922: + strh wzr, [x28,856] + strh w0, [x28,280] +.L3013: adrp x0, .LANCHOR4+432 ldrh w2, [x0,#:lo12:.LANCHOR4+432] - b .L2897 -.L2820: - cbnz w1, .L2821 + b .L2988 +.L2911: + cbnz w1, .L2912 mov w0, -1 bl decrement_vpc_count ldrh w0, [x28,856] add w0, w0, 1 strh w0, [x28,856] - b .L2814 -.L2821: + b .L2905 +.L2912: adrp x0, .LANCHOR0 strb wzr, [x28,288] add x0, x0, :lo12:.LANCHOR0 - ldrb w0, [x0,120] - cbz w0, .L2822 + ldrb w0, [x0,196] + cbz w0, .L2913 mov w0, w26 bl ftl_get_blk_mode strb w0, [x28,288] -.L2822: +.L2913: add x22, x28, 280 mov x0, x22 bl make_superblock @@ -18712,49 +19078,49 @@ ftl_do_gc: strh w0, [x1,436] strh wzr, [x28,282] strb wzr, [x28,286] -.L2813: +.L2904: cmp w23, 1 - bne .L2823 + bne .L2914 bl FtlReadRefresh -.L2823: +.L2914: mov w0, 1 str w0, [x28,2024] adrp x0, .LANCHOR0 add x0, x0, :lo12:.LANCHOR0 - ldrb w1, [x0,120] - ldrh w25, [x0,2018] - cbz w1, .L2824 + ldrb w1, [x0,196] + ldrh w25, [x0,2024] + cbz w1, .L2915 ldrb w1, [x28,288] cmp w1, 1 - bne .L2824 - ldrh w25, [x0,2020] -.L2824: + bne .L2915 + ldrh w25, [x0,2026] +.L2915: ldrh w0, [x28,282] add w1, w0, w21 cmp w1, w25 - ble .L2825 + ble .L2916 sub w21, w25, w0 uxth w21, w21 -.L2825: +.L2916: mov w26, 0 -.L2826: +.L2917: cmp w21, w26, uxth - bls .L2833 + bls .L2924 adrp x0, .LANCHOR0 add x1, x28, 280 add x0, x0, :lo12:.LANCHOR0 ldrh w3, [x1,2] add w3, w3, w26 - ldrh w5, [x0,1948] + ldrh w5, [x0,1956] mov x0, 0 mov w22, w0 -.L2834: +.L2925: cmp w5, w0, uxth - bls .L2926 + bls .L3017 add x2, x1, x0, lsl 1 ldrh w2, [x2,16] cmp w2, w24 - beq .L2827 + beq .L2918 mov w4, 56 ldr x7, [x28,896] orr w2, w3, w2, lsl 10 @@ -18763,18 +19129,18 @@ ftl_do_gc: add x4, x7, x4 uxth w22, w22 str w2, [x4,4] -.L2827: +.L2918: add x0, x0, 1 - b .L2834 -.L2926: + b .L2925 +.L3017: ldr x0, [x28,896] mov w1, w22 ldrb w2, [x28,288] mov x27, 0 bl FlashReadPages -.L2829: +.L2920: cmp w22, w27, uxth - bls .L2927 + bls .L3018 mov x0, 56 mul x4, x27, x0 ldr x0, [x28,896] @@ -18782,11 +19148,11 @@ ftl_do_gc: ldr w0, [x0,x4] cmn w0, #1 ldr x3, [x1,16] - beq .L2854 + beq .L2945 ldrh w0, [x3] mov w1, 61589 cmp w0, w1 - bne .L2854 + bne .L2945 ldr w0, [x3,8] add x1, x29, 140 mov w2, 0 @@ -18801,7 +19167,7 @@ ftl_do_gc: and w0, w0, 2147483647 ldr w1, [x2,4] cmp w0, w1 - bne .L2854 + bne .L2945 adrp x0, .LANCHOR4 str x3, [x29,104] add x1, x0, :lo12:.LANCHOR4 @@ -18848,49 +19214,49 @@ ftl_do_gc: bl FtlGcBufAlloc adrp x0, .LANCHOR0 add x0, x0, :lo12:.LANCHOR0 - ldrb w0, [x0,120] - cbnz w0, .L2831 + ldrb w0, [x0,196] + cbnz w0, .L2922 ldr x2, [x29,112] ldr w1, [x28,864] ldrb w0, [x2,7] cmp w1, w0 - beq .L2831 + beq .L2922 ldrh w0, [x2,4] - cbnz w0, .L2854 -.L2831: + cbnz w0, .L2945 +.L2922: bl Ftl_gc_temp_data_write_back - cbz w0, .L2854 + cbz w0, .L2945 adrp x0, .LANCHOR4 add x19, x19, :lo12:.LANCHOR2 add x0, x0, :lo12:.LANCHOR4 str wzr, [x19,2024] ldrh w2, [x0,432] - b .L2897 -.L2854: + b .L2988 +.L2945: add x27, x27, 1 - b .L2829 -.L2927: + b .L2920 +.L3018: add w26, w26, 1 - b .L2826 -.L2925: + b .L2917 +.L3016: ldr w0, [x28,864] adrp x21, .LANCHOR4 - cbz w0, .L2836 + cbz w0, .L2927 bl Ftl_gc_temp_data_write_back - cbz w0, .L2836 + cbz w0, .L2927 add x5, x21, :lo12:.LANCHOR4 str wzr, [x28,2024] ldrh w2, [x5,432] - b .L2897 -.L2836: + b .L2988 +.L2927: add x5, x21, :lo12:.LANCHOR4 ldrh w21, [x5,434] - cbnz w21, .L2837 + cbnz w21, .L2928 ldrh w1, [x28,280] ldr x3, [x28] ubfiz x0, x1, 1, 16 ldrh w4, [x3,x0] - cbz w4, .L2837 + cbz w4, .L2928 ldrh w2, [x28,282] mov w3, w21 ldrh w5, [x5,436] @@ -18904,21 +19270,21 @@ ftl_do_gc: bl FtlCacheWriteBack bl l2p_flush bl FtlVpcTblFlush -.L2837: +.L2928: mov w0, -1 strh w0, [x28,280] - b .L2835 -.L2838: + b .L2926 +.L2929: adrp x1, .LANCHOR4+432 str wzr, [x28,2024] ldrh w2, [x1,#:lo12:.LANCHOR4+432] cmp w2, wzr csinc w2, w2, w0, ne - b .L2897 -.L2924: + b .L2988 +.L3015: ldrh w24, [x21,936] cmp w24, w20 - bne .L2769 + bne .L2860 ldrh w0, [x21,32] mov w2, 1024 ldr w1, [x21,852] @@ -18926,44 +19292,44 @@ ftl_do_gc: mov w0, 5120 csel w0, w0, w2, cc cmp w1, w0 - bls .L2769 + bls .L2860 adrp x0, .LANCHOR4+432 str wzr, [x21,852] strh wzr, [x0,#:lo12:.LANCHOR4+432] bl GetSwlReplaceBlock uxth w20, w0 cmp w20, w24 - bne .L2771 + bne .L2862 ldrh w1, [x21,32] ldrh w0, [x21,850] cmp w1, w0 - bcs .L2772 + bcs .L2863 mov w0, 64 bl List_get_gc_head_node uxth w0, w0 cmp w0, w20 - beq .L2781 + beq .L2872 ldr w2, [x21,2020] adrp x24, .LANCHOR0 uxtw x1, w0 - cbnz w2, .L2774 + cbnz w2, .L2865 add x0, x24, :lo12:.LANCHOR0 - ldrh w2, [x0,1968] + ldrh w2, [x0,1976] cmp w2, 3 - beq .L2774 + beq .L2865 ldr w2, [x21,328] - cbnz w2, .L2774 - ldr w2, [x0,1940] - cbnz w2, .L2774 - ldrb w0, [x0,120] - cbz w0, .L2775 -.L2774: + cbnz w2, .L2865 + ldr w2, [x0,1948] + cbnz w2, .L2865 + ldrb w0, [x0,196] + cbz w0, .L2866 +.L2865: add x3, x24, :lo12:.LANCHOR0 ldr x0, [x19,#:lo12:.LANCHOR2] ldrh w4, [x0,x1,lsl 1] - ldrh w1, [x3,2020] - ldrh w0, [x3,1948] - ldrh w3, [x3,1968] + ldrh w1, [x3,2026] + ldrh w0, [x3,1956] + ldrh w3, [x3,1976] mul w2, w1, w0 cmp w3, 3 mov w0, 0 @@ -18971,7 +19337,7 @@ ftl_do_gc: csel w0, w1, w0, eq add w0, w2, w0 cmp w4, w0 - bgt .L2777 + bgt .L2868 mov w0, 0 add x24, x24, :lo12:.LANCHOR0 bl List_get_gc_head_node @@ -18981,50 +19347,50 @@ ftl_do_gc: ldr w2, [x1,196] add w0, w0, w0, lsl 1 cmp w2, w0, lsr 2 - bls .L2778 + bls .L2869 mov w0, 128 - b .L2920 -.L2778: + b .L3011 +.L2869: mov w0, 160 -.L2920: +.L3011: strh w0, [x1,850] - b .L2779 -.L2777: + b .L2870 +.L2868: add x0, x19, :lo12:.LANCHOR2 mov w1, 128 - b .L2921 -.L2775: + b .L3012 +.L2866: adrp x2, .LANCHOR2 ldr x2, [x2,#:lo12:.LANCHOR2] ldrh w1, [x2,x1,lsl 1] cmp w1, 7 - bhi .L2780 + bhi .L2871 bl List_get_gc_head_node uxth w20, w0 add x0, x19, :lo12:.LANCHOR2 mov w1, 128 strh w1, [x0,850] - b .L2779 -.L2780: + b .L2870 +.L2871: add x0, x19, :lo12:.LANCHOR2 mov w1, 64 -.L2921: +.L3012: strh w1, [x0,850] - b .L2781 -.L2772: + b .L2872 +.L2863: mov w0, 80 strh w0, [x21,850] - b .L2781 -.L2779: + b .L2872 +.L2870: mov w0, 65535 cmp w20, w0 - beq .L2781 -.L2771: + beq .L2872 +.L2862: add x5, x19, :lo12:.LANCHOR2 ubfiz x4, x20, 1, 32 ldr x3, [x19,#:lo12:.LANCHOR2] - adrp x0, .LC145 - add x0, x0, :lo12:.LC145 + adrp x0, .LC146 + add x0, x0, :lo12:.LC146 mov w1, w20 ldr x6, [x5,-80] ldrh w2, [x5,32] @@ -19032,13 +19398,13 @@ ftl_do_gc: ldrh w5, [x5,848] ldrh w4, [x6,x4] bl printk -.L2781: +.L2872: bl FtlGcReFreshBadBlk - b .L2769 -.L2923: + b .L2860 +.L3014: mov w20, w0 - b .L2769 -.L2897: + b .L2860 +.L2988: mov w0, w2 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -19064,41 +19430,41 @@ FtlCacheWriteBack: stp x25, x26, [sp,64] stp x27, x28, [sp,80] ldr w23, [x0,-96] - cbnz w23, .L2930 + cbnz w23, .L3021 adrp x19, .LANCHOR0 add x0, x19, :lo12:.LANCHOR0 ldr w1, [x0,2080] - cbz w1, .L2930 - ldrb w0, [x0,120] - cbz w0, .L2932 + cbz w1, .L3021 + ldrb w0, [x0,196] + cbz w0, .L3023 ldrb w0, [x20,8] cmp w0, 1 cset w23, eq -.L2932: +.L3023: add x0, x19, :lo12:.LANCHOR0 ldrb w3, [x20,9] - adrp x26, .LC147 + adrp x26, .LC148 mov w2, w23 mov w24, 0 mov w27, 56 ldr x0, [x0,2088] - add x26, x26, :lo12:.LC147 + add x26, x26, :lo12:.LC148 bl FlashProgPages -.L2933: +.L3024: add x0, x19, :lo12:.LANCHOR0 ldr w1, [x0,2080] cmp w24, w1 - bcs .L2951 + bcs .L3042 umull x21, w24, w27 ldr x1, [x0,2088] add x0, x1, x21 ldr w25, [x1,x21] cmn w25, #1 - beq .L2954 + beq .L3045 ldr w1, [x0,4] - cbz w23, .L2968 + cbz w23, .L3059 orr w1, w1, -2147483648 -.L2968: +.L3059: ldr w0, [x0,24] mov w2, 1 str w1, [x29,124] @@ -19110,7 +19476,7 @@ FtlCacheWriteBack: ldr x0, [x21,16] ldr w0, [x0,12] cmn w0, #1 - beq .L2937 + beq .L3028 lsr x0, x0, 10 bl P2V_block_in_plane uxth w1, w0 @@ -19118,53 +19484,53 @@ FtlCacheWriteBack: ldr x2, [x22,#:lo12:.LANCHOR2] mov w21, w1 ldrh w2, [x2,x0] - cbnz w2, .L2938 + cbnz w2, .L3029 mov x0, x26 bl printk -.L2938: +.L3029: mov w0, w21 bl decrement_vpc_count -.L2937: +.L3028: add w24, w24, 1 - b .L2933 -.L2970: + b .L3024 +.L3061: mov w20, 16386 -.L2950: +.L3041: add x0, x22, :lo12:.LANCHOR2 ldrh w0, [x0,944] - cbz w0, .L2951 + cbz w0, .L3042 mov w0, 1 mov w1, w0 bl ftl_do_gc subs w20, w20, #1 - bne .L2950 -.L2951: + bne .L3041 +.L3042: add x19, x19, :lo12:.LANCHOR0 str wzr, [x19,2080] - b .L2930 -.L2954: - adrp x26, .LC147 + b .L3021 +.L3045: + adrp x26, .LC148 mov w24, 0 mov w27, 56 str w25, [x29,108] mov w28, 1 - add x26, x26, :lo12:.LC147 -.L2934: + add x26, x26, :lo12:.LC148 +.L3025: add x0, x19, :lo12:.LANCHOR0 ldr w1, [x0,2080] cmp w24, w1 - bcs .L2970 + bcs .L3061 umull x21, w24, w27 ldr x0, [x0,2088] ldr w1, [x29,108] str w1, [x0,x21] -.L2940: +.L3031: add x2, x19, :lo12:.LANCHOR0 ldr x0, [x2,2088] add x1, x0, x21 ldr w0, [x0,x21] cmn w0, #1 - bne .L2971 + bne .L3062 ldr w0, [x1,4] str x2, [x29,96] lsr x0, x0, 10 @@ -19172,7 +19538,7 @@ FtlCacheWriteBack: ldrh w1, [x20] cmp w1, w0, uxth ldr x2, [x29,96] - bne .L2941 + bne .L3032 ldr x3, [x22,#:lo12:.LANCHOR2] ubfiz x1, x1, 1, 16 ldrh w4, [x20,4] @@ -19180,15 +19546,15 @@ FtlCacheWriteBack: sub w0, w0, w4 strh w0, [x3,x1] strb wzr, [x20,6] - ldrh w0, [x2,2018] + ldrh w0, [x2,2024] strh w0, [x20,2] strh wzr, [x20,4] -.L2941: +.L3032: ldrh w0, [x20,4] - cbnz w0, .L2942 + cbnz w0, .L3033 mov x0, x20 bl allocate_new_data_superblock -.L2942: +.L3033: add x5, x22, :lo12:.LANCHOR2 add x25, x19, :lo12:.LANCHOR0 str x5, [x29,96] @@ -19216,18 +19582,18 @@ FtlCacheWriteBack: ldr x5, [x29,96] ldr w0, [x0,x21] cmn w0, #1 - bne .L2943 + bne .L3034 str w28, [x5,-96] -.L2943: +.L3034: add x0, x22, :lo12:.LANCHOR2 ldr w0, [x0,-96] - cbz w0, .L2940 - b .L2930 -.L2971: + cbz w0, .L3031 + b .L3021 +.L3062: ldr w0, [x1,4] - cbz w23, .L2969 + cbz w23, .L3060 orr w0, w0, -2147483648 -.L2969: +.L3060: str w0, [x29,124] mov w2, 1 ldr w0, [x1,24] @@ -19239,7 +19605,7 @@ FtlCacheWriteBack: ldr x0, [x21,16] ldr w0, [x0,12] cmn w0, #1 - beq .L2947 + beq .L3038 lsr x0, x0, 10 bl P2V_block_in_plane uxth w1, w0 @@ -19247,16 +19613,16 @@ FtlCacheWriteBack: ldr x2, [x22,#:lo12:.LANCHOR2] mov w21, w1 ldrh w2, [x2,x0] - cbnz w2, .L2948 + cbnz w2, .L3039 mov x0, x26 bl printk -.L2948: +.L3039: mov w0, w21 bl decrement_vpc_count -.L2947: +.L3038: add w24, w24, 1 - b .L2934 -.L2930: + b .L3025 +.L3021: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -19274,13 +19640,13 @@ FtlSysFlush: stp x29, x30, [sp, -16]! add x29, sp, 0 ldr w0, [x0,#:lo12:.LANCHOR2-96] - cbnz w0, .L2973 + cbnz w0, .L3064 bl FtlCacheWriteBack bl l2p_flush mov w0, 1 bl FtlEctTblFlush bl FtlVpcTblFlush -.L2973: +.L3064: mov w0, 0 ldp x29, x30, [sp], 16 ret @@ -19294,9 +19660,9 @@ FtlDeInit: add x29, sp, 0 ldr w0, [x0,#:lo12:.LANCHOR1+504] cmp w0, 1 - bne .L2975 + bne .L3066 bl FtlSysFlush -.L2975: +.L3066: mov w0, 0 ldp x29, x30, [sp], 16 ret @@ -19318,10 +19684,10 @@ ftl_deinit: .type rk_ftl_de_init, %function rk_ftl_de_init: stp x29, x30, [sp, -16]! - adrp x0, .LC148 + adrp x0, .LC149 mov w1, 0 add x29, sp, 0 - add x0, x0, :lo12:.LC148 + add x0, x0, :lo12:.LC149 bl printk bl ftl_deinit ldp x29, x30, [sp], 16 @@ -19361,44 +19727,44 @@ ftl_discard: stp x19, x20, [sp,16] mov w19, w1 mov w20, w0 - ldr w1, [x21,2060] + ldr w1, [x21,2064] mov w0, -1 cmp w2, w1 - bhi .L2981 + bhi .L3072 cmp w19, 31 mov w0, 0 - bls .L2981 + bls .L3072 adrp x23, .LANCHOR2 add x1, x23, :lo12:.LANCHOR2 ldr w1, [x1,-96] - cbnz w1, .L2981 + cbnz w1, .L3072 bl FtlCacheWriteBack - ldrh w1, [x21,2024] + ldrh w1, [x21,2030] udiv w21, w20, w1 msub w20, w1, w21, w20 uxth w20, w20 - cbz w20, .L2982 + cbz w20, .L3073 sub w1, w1, w20 add w21, w21, 1 cmp w1, w19 csel w1, w1, w19, ls sub w19, w19, w1, uxth -.L2982: +.L3073: mov w0, -1 adrp x20, .LANCHOR4 str w0, [x29,76] -.L2983: +.L3074: add x0, x22, :lo12:.LANCHOR0 - ldrh w0, [x0,2024] + ldrh w0, [x0,2030] cmp w19, w0 - bcc .L2996 + bcc .L3087 mov w0, w21 add x1, x29, 72 mov w2, 0 bl log2phys ldr w0, [x29,72] cmn w0, #1 - beq .L2984 + beq .L3075 add x1, x20, :lo12:.LANCHOR4 mov w2, 1 ldr w0, [x1,448] @@ -19415,24 +19781,24 @@ ftl_discard: lsr x0, x0, 10 bl P2V_block_in_plane bl decrement_vpc_count -.L2984: +.L3075: add x0, x22, :lo12:.LANCHOR0 add w21, w21, 1 - ldrh w0, [x0,2024] + ldrh w0, [x0,2030] sub w19, w19, w0 - b .L2983 -.L2996: + b .L3074 +.L3087: adrp x0, .LANCHOR4 add x0, x0, :lo12:.LANCHOR4 ldr w1, [x0,448] cmp w1, 32 - bls .L2986 + bls .L3077 str wzr, [x0,448] bl l2p_flush bl FtlVpcTblFlush -.L2986: +.L3077: mov w0, 0 -.L2981: +.L3072: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldr x23, [sp,48] @@ -19465,23 +19831,23 @@ ftl_read: mov w20, w1 mov w28, w2 mov x26, x3 - bne .L2999 + bne .L3090 add w0, w1, 256 mov w1, w2 mov x2, x3 bl FtlVendorPartRead - b .L3000 -.L2999: + b .L3091 +.L3090: adrp x21, .LANCHOR0 add w0, w1, w2 add x1, x21, :lo12:.LANCHOR0 str w0, [x29,168] mov w0, -1 ldr w3, [x29,168] - ldr w2, [x1,2060] + ldr w2, [x1,2064] cmp w3, w2 - bhi .L3000 - ldrh w0, [x1,2024] + bhi .L3091 + ldrh w0, [x1,2030] sub w25, w3, #1 adrp x19, .LANCHOR2 udiv w1, w20, w0 @@ -19500,38 +19866,38 @@ ftl_read: ldr w0, [x29,172] mov w1, w25 bl FtlCacheMetchLpa - cbz w0, .L3001 + cbz w0, .L3092 bl FtlCacheWriteBack -.L3001: +.L3092: mov w27, 0 - adrp x0, .LC138 + adrp x0, .LC137 ldr w22, [x29,172] - add x0, x0, :lo12:.LC138 + add x0, x0, :lo12:.LC137 str w27, [x29,156] mov w23, w27 str w27, [x29,152] str x0, [x29,112] -.L3002: - cbz w24, .L3045 +.L3093: + cbz w24, .L3136 mov w0, w22 add x1, x29, 188 mov w2, 0 bl log2phys ldr w3, [x29,188] cmn w3, #1 - bne .L3042 + bne .L3133 mov w3, 0 -.L3003: +.L3094: add x0, x21, :lo12:.LANCHOR0 - ldrh w0, [x0,2024] + ldrh w0, [x0,2030] cmp w3, w0 - bcs .L3007 + bcs .L3098 madd w0, w22, w0, w3 cmp w0, w20 - bcc .L3005 + bcc .L3096 ldr w1, [x29,168] cmp w0, w1 - bcs .L3005 + bcs .L3096 sub w0, w0, w20 mov w1, 0 ubfiz x0, x0, 9, 23 @@ -19540,10 +19906,10 @@ ftl_read: str x3, [x29,160] bl ftl_memset ldr x3, [x29,160] -.L3005: +.L3096: add w3, w3, 1 - b .L3003 -.L3042: + b .L3094 +.L3133: mov w0, 56 umull x1, w23, w0 add x0, x19, :lo12:.LANCHOR2 @@ -19554,11 +19920,11 @@ ftl_read: cmp w22, w2 ldr x2, [x0,2048] add x2, x2, x1 - bne .L3008 + bne .L3099 ldr x0, [x0,2104] str x0, [x2,8] add x0, x21, :lo12:.LANCHOR0 - ldrh w0, [x0,2024] + ldrh w0, [x0,2030] udiv w3, w20, w0 msub w3, w3, w0, w20 str w3, [x29,128] @@ -19567,54 +19933,54 @@ ftl_read: csel w3, w3, w28, ls str w3, [x29,156] cmp w3, w0 - bne .L3009 + bne .L3100 str x26, [x2,8] - b .L3009 -.L3008: + b .L3100 +.L3099: cmp w22, w25 - bne .L3010 + bne .L3101 ldr x0, [x0,2112] str x0, [x2,8] add x0, x21, :lo12:.LANCHOR0 ldr w4, [x29,168] - ldrh w3, [x0,2024] + ldrh w3, [x0,2030] mul w0, w22, w3 sub w27, w4, w0 cmp w27, w3 - bne .L3009 - b .L3043 -.L3010: + bne .L3100 + b .L3134 +.L3101: add x0, x21, :lo12:.LANCHOR0 - ldrh w0, [x0,2024] + ldrh w0, [x0,2030] mul w0, w22, w0 -.L3043: +.L3134: sub w0, w0, w20 ubfiz x0, x0, 9, 23 add x0, x26, x0 str x0, [x2,8] -.L3009: +.L3100: add x2, x19, :lo12:.LANCHOR2 ldr x0, [x2,2048] ldr x2, [x2,2128] add x1, x0, x1 add x0, x21, :lo12:.LANCHOR0 - ldrh w0, [x0,2030] + ldrh w0, [x0,2036] str w22, [x1,24] mul w0, w23, w0 add w23, w23, 1 and x0, x0, 4294967292 add x0, x2, x0 str x0, [x1,16] -.L3007: +.L3098: subs w24, w24, #1 add w22, w22, 1 - beq .L3011 + beq .L3102 add x0, x21, :lo12:.LANCHOR0 - ldrh w0, [x0,1948] + ldrh w0, [x0,1956] cmp w23, w0, lsl 3 - bne .L3002 -.L3011: - cbz w23, .L3002 + bne .L3093 +.L3102: + cbz w23, .L3093 add x0, x19, :lo12:.LANCHOR2 mov w1, w23 mov w2, 0 @@ -19629,10 +19995,10 @@ ftl_read: str w0, [x29,124] lsl w0, w27, 9 str w0, [x29,120] -.L3013: +.L3104: ldr w0, [x29,160] cmp w23, w0 - bls .L3046 + bls .L3137 ldr x0, [x29,160] add x2, x19, :lo12:.LANCHOR2 mov x1, 56 @@ -19642,52 +20008,52 @@ ftl_read: add x0, x0, x8 ldr w1, [x0,24] cmp w1, w3 - bne .L3014 + bne .L3105 ldr x1, [x0,8] ldr x0, [x2,2104] cmp x1, x0 - bne .L3015 + bne .L3106 ldr x2, [x29,144] mov x0, x26 str x8, [x29,104] add x1, x1, x2 ldr w2, [x29,124] - b .L3044 -.L3014: + b .L3135 +.L3105: cmp w1, w25 - bne .L3015 + bne .L3106 ldr x1, [x0,8] ldr x0, [x2,2112] cmp x1, x0 - bne .L3015 + bne .L3106 add x0, x21, :lo12:.LANCHOR0 ldr w2, [x29,120] str x8, [x29,104] - ldrh w0, [x0,2024] + ldrh w0, [x0,2030] mul w0, w25, w0 sub w0, w0, w20 ubfiz x0, x0, 9, 23 add x0, x26, x0 -.L3044: +.L3135: bl ftl_memcpy ldr x8, [x29,104] -.L3015: +.L3106: add x0, x19, :lo12:.LANCHOR2 ldr x1, [x0,2048] add x2, x1, x8 ldr w3, [x1,x8] cmn w3, #1 - bne .L3016 + bne .L3107 ldr w1, [x0,408] str w3, [x29,152] add w1, w1, 1 str w1, [x0,408] -.L3016: +.L3107: ldr x0, [x2,16] ldr w1, [x2,24] ldr w0, [x0,8] cmp w1, w0 - beq .L3017 + beq .L3108 add x0, x19, :lo12:.LANCHOR2 str x8, [x29,104] ldr w1, [x0,408] @@ -19707,35 +20073,35 @@ ftl_read: ldr w7, [x7] bl printk ldr x8, [x29,104] -.L3017: +.L3108: add x0, x19, :lo12:.LANCHOR2 ldr x0, [x0,2048] add x1, x0, x8 ldr w0, [x0,x8] cmp w0, 256 - bne .L3018 + bne .L3109 ldr w0, [x1,4] lsr x0, x0, 10 bl P2V_block_in_plane bl FtlGcRefreshBlock -.L3018: +.L3109: ldr x0, [x29,160] add x0, x0, 1 str x0, [x29,160] - b .L3013 -.L3046: + b .L3104 +.L3137: mov w23, 0 - b .L3002 -.L3045: + b .L3093 +.L3136: add x19, x19, :lo12:.LANCHOR2 ldrh w0, [x19,944] - cbz w0, .L3021 + cbz w0, .L3112 mov w0, w24 mov w1, 1 bl ftl_do_gc -.L3021: +.L3112: ldr w0, [x29,152] -.L3000: +.L3091: sub sp, x29, #16 ldp x19, x20, [sp,32] ldp x21, x22, [sp,48] @@ -19785,50 +20151,50 @@ FtlInit: bl FtlConstantsInit bl FtlMemInit bl FtlVariablesInit - ldrh w0, [x19,1952] + ldrh w0, [x19,1960] bl FtlFreeSysBlkQueueInit bl FtlLoadBbt - cbz w0, .L3049 - adrp x0, .LC149 - add x0, x0, :lo12:.LC149 - b .L3061 -.L3049: - bl FtlSysBlkInit - cbz w0, .L3051 + cbz w0, .L3140 adrp x0, .LC150 add x0, x0, :lo12:.LC150 -.L3061: + b .L3152 +.L3140: + bl FtlSysBlkInit + cbz w0, .L3142 + adrp x0, .LC151 + add x0, x0, :lo12:.LC151 +.L3152: adrp x1, .LANCHOR3 add x1, x1, :lo12:.LANCHOR3 add x1, x1, 80 bl printk - b .L3050 -.L3051: + b .L3141 +.L3142: mov w1, 1 str w1, [x21,504] bl ftl_do_gc ldrh w0, [x20,32] cmp w0, 15 - bhi .L3052 + bhi .L3143 mov w19, 1024 -.L3053: +.L3144: mov w0, 1 mov w1, w0 bl ftl_do_gc subs w19, w19, #1 - bne .L3053 - b .L3050 -.L3052: - ldrb w0, [x19,120] - cbz w0, .L3050 + bne .L3144 + b .L3141 +.L3143: + ldrb w0, [x19,196] + cbz w0, .L3141 mov w19, 128 -.L3055: +.L3146: mov w0, 1 mov w1, w0 bl ftl_do_gc subs w19, w19, #1 - bne .L3055 -.L3050: + bne .L3146 +.L3141: mov w0, 0 ldr x21, [sp,32] ldp x19, x20, [sp,16] @@ -19854,7 +20220,7 @@ rk_ftl_init: bl rknand_get_reg_addr ldr x1, [x19,48] mov w0, -1 - cbz x1, .L3063 + cbz x1, .L3154 bl rk_nandc_irq_init mov w1, 0 ldr x0, [x19,456] @@ -19865,15 +20231,15 @@ rk_ftl_init: ldr x0, [x19,48] bl FlashInit mov w19, w0 - cbnz w0, .L3064 + cbnz w0, .L3155 bl FtlInit -.L3064: - adrp x0, .LC151 +.L3155: + adrp x0, .LC152 mov w1, w19 - add x0, x0, :lo12:.LC151 + add x0, x0, :lo12:.LC152 bl printk mov w0, w19 -.L3063: +.L3154: ldr x19, [sp,16] ldp x29, x30, [sp], 32 ret @@ -19892,17 +20258,17 @@ ftl_fix_nand_power_lost_error: stp x23, x24, [sp,48] str x27, [sp,80] mov x25, x0 - ldrb w1, [x1,120] - cbz w1, .L3067 + ldrb w1, [x1,196] + cbz w1, .L3158 adrp x21, .LANCHOR4 adrp x19, .LANCHOR2 add x0, x21, :lo12:.LANCHOR4 - adrp x20, .LC152 + adrp x20, .LC153 add x24, x19, :lo12:.LANCHOR2 ldr x2, [x19,#:lo12:.LANCHOR2] add x27, x24, 40 ldrh w23, [x0,290] - add x0, x20, :lo12:.LC152 + add x0, x20, :lo12:.LC153 add x26, x24, 88 ubfiz x22, x23, 1, 16 mov w1, w23 @@ -19917,41 +20283,41 @@ ftl_fix_nand_power_lost_error: bl allocate_new_data_superblock mov x0, x26 bl allocate_new_data_superblock -.L3069: +.L3160: subs w24, w24, #1 - beq .L3073 + beq .L3164 mov w0, 1 mov w1, w0 bl ftl_do_gc ldr x0, [x19,#:lo12:.LANCHOR2] ldrh w0, [x0,x22] - cbnz w0, .L3069 -.L3073: + cbnz w0, .L3160 +.L3164: ldr x2, [x19,#:lo12:.LANCHOR2] - add x0, x20, :lo12:.LC152 + add x0, x20, :lo12:.LC153 mov w1, w23 ldrh w2, [x2,x22] bl printk ldr x0, [x19,#:lo12:.LANCHOR2] ldrh w0, [x0,x22] - cbnz w0, .L3071 + cbnz w0, .L3162 add x0, x29, 96 strh w23, [x29,96] bl make_superblock add x0, x25, :lo12:.LANCHOR0 mov w6, 65535 mov w7, 56 - ldrh w5, [x0,1948] + ldrh w5, [x0,1956] mov x0, 0 mov w20, w0 -.L3074: +.L3165: cmp w5, w0, uxth - bls .L3081 + bls .L3172 add x1, x29, 96 add x1, x1, x0, lsl 1 ldrh w2, [x1,16] cmp w2, w6 - beq .L3075 + beq .L3166 add x4, x19, :lo12:.LANCHOR2 lsl w2, w2, 10 umull x1, w20, w7 @@ -19964,15 +20330,15 @@ ftl_fix_nand_power_lost_error: add x1, x2, x1 str xzr, [x1,8] str xzr, [x1,16] -.L3075: +.L3166: add x0, x0, 1 - b .L3074 -.L3081: + b .L3165 +.L3172: ldr x2, [x19,#:lo12:.LANCHOR2] - adrp x0, .LC153 + adrp x0, .LC154 add x24, x19, :lo12:.LANCHOR2 mov w1, w23 - add x0, x0, :lo12:.LC153 + add x0, x0, :lo12:.LC154 ldrh w2, [x2,x22] bl printk ldr x0, [x24,-88] @@ -19983,11 +20349,11 @@ ftl_fix_nand_power_lost_error: mov w1, 1 mov w2, w20 bl FlashEraseBlocks -.L3071: +.L3162: add x21, x21, :lo12:.LANCHOR4 mov w0, -1 strh w0, [x21,290] -.L3067: +.L3158: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -20026,24 +20392,24 @@ ftl_write: mov x24, x3 str x1, [x29,176] ldr w3, [x2,-96] - cbnz w3, .L3084 + cbnz w3, .L3175 cmp w4, 16 - bne .L3085 + bne .L3176 add w0, w21, 256 mov w1, w23 mov x2, x24 bl FtlVendorPartWrite - b .L3084 -.L3085: + b .L3175 +.L3176: adrp x20, .LANCHOR0 add w26, w21, w23 add x4, x20, :lo12:.LANCHOR0 mov w0, -1 - ldr w1, [x4,2060] + ldr w1, [x4,2064] cmp w26, w1 - bhi .L3084 + bhi .L3175 adrp x6, .LANCHOR4 - ldrh w1, [x4,2024] + ldrh w1, [x4,2030] add x28, x6, :lo12:.LANCHOR4 sub w26, w26, #1 mov w0, 2048 @@ -20064,7 +20430,7 @@ ftl_write: str w0, [x2,224] cset w0, cs str w0, [x29,220] - cbz w3, .L3087 + cbz w3, .L3178 mov w0, 56 sub w3, w3, #1 umull x3, w3, w0 @@ -20072,7 +20438,7 @@ ftl_write: add x3, x0, x3 ldr w0, [x3,24] cmp w25, w0 - bne .L3088 + bne .L3179 ldr w0, [x2,212] add w0, w0, 1 str w0, [x2,212] @@ -20090,30 +20456,30 @@ ftl_write: mov w2, w22 mov x1, x24 bl ftl_memcpy - cbnz w26, .L3089 + cbnz w26, .L3180 ldr w0, [x28,476] cmp w0, 2 - bgt .L3089 -.L3122: + bgt .L3180 +.L3213: mov w0, 0 - b .L3084 -.L3089: + b .L3175 +.L3180: sub w23, w23, w19 add w21, w21, w19 add x24, x24, x22 add w25, w25, 1 mov w27, w26 -.L3088: +.L3179: ldr x0, [x29,152] add x0, x0, :lo12:.LANCHOR4 str wzr, [x0,476] -.L3087: +.L3178: ldr w1, [x29,216] mov w0, w25 bl FtlCacheMetchLpa - cbz w0, .L3090 + cbz w0, .L3181 bl FtlCacheWriteBack -.L3090: +.L3181: ldr x0, [x29,152] ldr x1, [x29,176] add x0, x0, :lo12:.LANCHOR4 @@ -20122,51 +20488,51 @@ ftl_write: add x19, x22, 40 str x19, [x29,184] str x19, [x0,440] - adrp x0, .LC154 - add x0, x0, :lo12:.LC154 + adrp x0, .LC155 + add x0, x0, :lo12:.LC155 str x0, [x29,112] -.L3091: - cbz w27, .L3151 +.L3182: + cbz w27, .L3242 ldrh w0, [x19,4] - cbnz w0, .L3092 + cbnz w0, .L3183 ldr x1, [x29,184] adrp x28, .LANCHOR1 cmp x19, x1 - bne .L3093 + bne .L3184 add x0, x22, 88 ldrh w19, [x0,4] - cbnz w19, .L3094 + cbnz w19, .L3185 bl allocate_new_data_superblock add x0, x28, :lo12:.LANCHOR1 - str w19, [x0,3172] -.L3094: + str w19, [x0,3300] +.L3185: ldr x0, [x29,184] add x28, x28, :lo12:.LANCHOR1 add x19, x22, 88 bl allocate_new_data_superblock - ldr w0, [x28,3172] - cbnz w0, .L3095 -.L3096: + ldr w0, [x28,3300] + cbnz w0, .L3186 +.L3187: ldr x19, [x29,184] - b .L3095 -.L3093: + b .L3186 +.L3184: add x28, x28, :lo12:.LANCHOR1 - str w0, [x28,3172] + str w0, [x28,3300] ldr x0, [x29,184] ldrh w0, [x0,4] - cbnz w0, .L3096 + cbnz w0, .L3187 mov x0, x19 bl allocate_new_data_superblock -.L3095: +.L3186: ldrh w0, [x19,4] - cbnz w0, .L3097 + cbnz w0, .L3188 mov x0, x19 bl allocate_new_data_superblock -.L3097: +.L3188: ldr x0, [x29,152] add x0, x0, :lo12:.LANCHOR4 str x19, [x0,440] -.L3092: +.L3183: add x2, x20, :lo12:.LANCHOR0 ldr w0, [x22,2044] ldrh w1, [x19,4] @@ -20183,29 +20549,29 @@ ftl_write: str w0, [x29,124] add w0, w23, w21 str w0, [x29,144] -.L3098: +.L3189: ldr w0, [x29,208] ldr w2, [x29,148] ldr w1, [x29,200] cmp w0, w2 add w26, w1, w0 - bcs .L3152 + bcs .L3243 ldrh w1, [x19,4] - cbz w1, .L3128 + cbz w1, .L3219 ldr w1, [x29,216] cmp w26, w1 cset w7, eq - cbz w0, .L3100 + cbz w0, .L3191 ldr w1, [x29,124] tst w7, w1 - beq .L3100 + beq .L3191 add x1, x20, :lo12:.LANCHOR0 ldr w2, [x29,144] - ldrh w1, [x1,2024] + ldrh w1, [x1,2030] msub w2, w26, w1, w2 cmp w2, w1 - bne .L3128 -.L3100: + bne .L3219 +.L3191: add x1, x29, 228 mov w2, 0 mov w0, w26 @@ -20222,7 +20588,7 @@ ftl_write: umull x1, w6, w5 add x2, x2, x1 str w0, [x2,4] - ldrh w2, [x4,2030] + ldrh w2, [x4,2036] ldr x0, [x4,2088] add x1, x0, x1 mul w0, w2, w6 @@ -20232,7 +20598,7 @@ ftl_write: ldr x3, [x29,136] str x0, [x29,128] add x28, x0, x3 - ldrh w0, [x4,2028] + ldrh w0, [x4,2034] str x28, [x1,16] str w26, [x1,24] mul w0, w0, w6 @@ -20247,20 +20613,20 @@ ftl_write: ldr x4, [x29,192] cset w0, eq str w0, [x29,204] - cbnz w0, .L3131 + cbnz w0, .L3222 ldr x7, [x29,104] ldr x5, [x29,160] - cbz w7, .L3101 + cbz w7, .L3192 ldr w0, [x29,144] - ldrh w2, [x4,2024] + ldrh w2, [x4,2030] msub w2, w26, w2, w0 uxth w0, w2 str w0, [x29,192] ldr w0, [x29,204] str w0, [x29,160] - b .L3104 -.L3131: - ldrh w2, [x4,2024] + b .L3195 +.L3222: + ldrh w2, [x4,2030] udiv w0, w21, w2 msub w0, w0, w2, w21 str w0, [x29,160] @@ -20268,41 +20634,41 @@ ftl_write: cmp w2, w23 csel w0, w2, w23, ls str w0, [x29,192] -.L3104: +.L3195: add x2, x20, :lo12:.LANCHOR0 ldr w1, [x29,192] - ldrh w0, [x2,2024] + ldrh w0, [x2,2030] cmp w1, w0 - bne .L3105 + bne .L3196 ldr w0, [x29,204] mov x1, x24 - cbnz w0, .L3106 + cbnz w0, .L3197 ldr w0, [x29,192] mul w1, w0, w26 sub w1, w1, w21 ubfiz x1, x1, 9, 23 add x1, x24, x1 -.L3106: +.L3197: ldr w2, [x29,220] mov w0, 56 add x4, x20, :lo12:.LANCHOR0 - cbz w2, .L3107 + cbz w2, .L3198 ldr w2, [x4,2080] umull x0, w2, w0 ldr x2, [x4,2088] add x0, x2, x0 - b .L3148 -.L3107: + b .L3239 +.L3198: ldr w2, [x4,2080] umull x0, w2, w0 ldr x2, [x4,2088] add x0, x2, x0 ldr x0, [x0,8] - b .L3149 -.L3105: + b .L3240 +.L3196: ldr w0, [x29,228] cmn w0, #1 - beq .L3109 + beq .L3200 str w0, [x29,236] mov w1, 56 ldr w0, [x2,2080] @@ -20320,15 +20686,15 @@ ftl_write: bl FlashReadPages ldr w0, [x29,232] cmn w0, #1 - bne .L3110 + bne .L3201 ldr w0, [x22,408] add w0, w0, 1 str w0, [x22,408] - b .L3112 -.L3110: + b .L3203 +.L3201: ldr w0, [x28,8] cmp w0, w26 - beq .L3112 + beq .L3203 ldr w0, [x22,408] mov w2, w26 add w0, w0, 1 @@ -20336,23 +20702,23 @@ ftl_write: ldr x0, [x29,112] ldr w1, [x28,8] bl printk - b .L3112 -.L3109: + b .L3203 +.L3200: ldr w0, [x2,2080] mov w1, 56 umull x0, w0, w1 ldr x1, [x2,2088] - ldrh w2, [x2,2028] + ldrh w2, [x2,2034] add x0, x1, x0 mov w1, 0 ldr x0, [x0,8] bl ftl_memset -.L3112: +.L3203: ldr w1, [x29,192] mov w0, 56 lsl w2, w1, 9 ldr w1, [x29,204] - cbz w1, .L3113 + cbz w1, .L3204 add x1, x20, :lo12:.LANCHOR0 ldr w4, [x1,2080] umull x0, w4, w0 @@ -20363,25 +20729,25 @@ ftl_write: ldr x1, [x4,8] add x0, x1, x0 mov x1, x24 - b .L3150 -.L3113: + b .L3241 +.L3204: add x5, x20, :lo12:.LANCHOR0 ldr w4, [x5,2080] ldr x1, [x5,2088] umull x0, w4, w0 add x0, x1, x0 - ldrh w1, [x5,2024] + ldrh w1, [x5,2030] mul w1, w26, w1 ldr x0, [x0,8] sub w1, w1, w21 ubfiz x1, x1, 9, 23 add x1, x24, x1 - b .L3150 -.L3101: + b .L3241 +.L3192: ldr w0, [x29,220] - ldrh w1, [x4,2024] + ldrh w1, [x4,2030] ldr w2, [x4,2080] - cbz w0, .L3114 + cbz w0, .L3205 mul w1, w26, w1 umull x0, w2, w5 sub w1, w1, w21 @@ -20389,10 +20755,10 @@ ftl_write: ubfiz x1, x1, 9, 23 add x0, x2, x0 add x1, x24, x1 -.L3148: +.L3239: str x1, [x0,8] - b .L3108 -.L3114: + b .L3199 +.L3205: umull x0, w2, w5 ldr x2, [x4,2088] mul w1, w26, w1 @@ -20401,11 +20767,11 @@ ftl_write: ubfiz x1, x1, 9, 23 ldr x0, [x0,8] add x1, x24, x1 -.L3149: - ldrh w2, [x4,2028] -.L3150: +.L3240: + ldrh w2, [x4,2034] +.L3241: bl ftl_memcpy -.L3108: +.L3199: ldr x1, [x29,128] mov w0, -3947 ldr x2, [x29,136] @@ -20428,35 +20794,35 @@ ftl_write: ldr x0, [x29,208] add x0, x0, 1 str x0, [x29,208] - b .L3098 -.L3152: + b .L3189 +.L3243: str w26, [x29,200] mov x0, x2 - b .L3099 -.L3128: + b .L3190 +.L3219: str w26, [x29,200] -.L3099: +.L3190: sub w27, w27, w0 ldr w0, [x29,220] - cbnz w0, .L3118 + cbnz w0, .L3209 add x0, x20, :lo12:.LANCHOR0 ldr w1, [x0,2080] ldr w0, [x22,2044] cmp w1, w0 - bcs .L3118 + bcs .L3209 ldrh w0, [x19,4] - cbz w0, .L3118 -.L3120: + cbz w0, .L3209 +.L3211: str wzr, [x29,220] - b .L3091 -.L3118: + b .L3182 +.L3209: bl FtlCacheWriteBack add x0, x20, :lo12:.LANCHOR0 cmp w27, 1 str wzr, [x0,2080] - bhi .L3091 - b .L3120 -.L3151: + bhi .L3182 + b .L3211 +.L3242: ldr w1, [x29,216] mov w0, w27 sub w1, w1, w25 @@ -20465,23 +20831,23 @@ ftl_write: add x0, x0, :lo12:.LANCHOR2 ldrh w1, [x0,32] cmp w1, 31 - bhi .L3122 + bhi .L3213 mov w1, 128 mov w19, 16 strh w1, [x0,850] strh w1, [x0,848] -.L3123: +.L3214: mov w0, 0 mov w1, 1 bl ftl_do_gc ldr x0, [x29,176] add x0, x0, :lo12:.LANCHOR2 ldr w0, [x0,-96] - cbnz w0, .L3122 + cbnz w0, .L3213 subs w19, w19, #1 - bne .L3123 - b .L3122 -.L3084: + bne .L3214 + b .L3213 +.L3175: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -20584,19 +20950,19 @@ FtlCheckVpc: mov x2, 8192 mov w19, 0 bl memset -.L3158: +.L3249: add x24, x22, :lo12:.LANCHOR0 adrp x23, .LANCHOR0 ldr w0, [x24,2096] cmp w19, w0 - bcs .L3175 + bcs .L3266 mov w0, w19 add x1, x29, 92 mov w2, 0 bl log2phys ldr w0, [x29,92] cmn w0, #1 - beq .L3159 + beq .L3250 lsr w0, w0, 10 bl P2V_block_in_plane uxth w0, w0 @@ -20604,86 +20970,86 @@ FtlCheckVpc: ldrh w1, [x2,w0,sxtw 1] add w1, w1, 1 strh w1, [x2,w0,sxtw 1] -.L3159: +.L3250: add w19, w19, 1 - b .L3158 -.L3175: + b .L3249 +.L3266: adrp x20, .LANCHOR2 - ldrh w3, [x24,1956] - adrp x0, .LC155 + ldrh w3, [x24,1964] + adrp x0, .LC156 mov w2, 2 - add x0, x0, :lo12:.LC155 + add x0, x0, :lo12:.LC156 add x22, x21, :lo12:.LANCHOR4 ldr x1, [x20,#:lo12:.LANCHOR2] mov w19, 0 bl rknand_print_hex - ldrh w3, [x24,1956] - adrp x0, .LC156 - adrp x24, .LC157 - add x0, x0, :lo12:.LC156 + ldrh w3, [x24,1964] + adrp x0, .LC157 + adrp x24, .LC158 + add x0, x0, :lo12:.LC157 add x1, x22, 480 mov w2, 2 - add x24, x24, :lo12:.LC157 + add x24, x24, :lo12:.LC158 bl rknand_print_hex -.L3161: +.L3252: add x0, x23, :lo12:.LANCHOR0 - ldrh w0, [x0,1956] + ldrh w0, [x0,1964] cmp w0, w19 - bls .L3176 + bls .L3267 ubfiz x0, x19, 1, 16 ldr x1, [x20,#:lo12:.LANCHOR2] ldrh w2, [x1,x0] add x0, x22, 480 ldrh w3, [x0,w19,sxtw 1] cmp w2, w3 - beq .L3162 + beq .L3253 mov x0, x24 mov w1, w19 bl printk -.L3162: +.L3253: add w19, w19, 1 uxth w19, w19 - b .L3161 -.L3176: + b .L3252 +.L3267: add x1, x20, :lo12:.LANCHOR2 ldr x0, [x1,24] - cbz x0, .L3157 + cbz x0, .L3248 ldr x19, [x1,-16] - adrp x23, .LC158 + adrp x23, .LC159 ldrh w24, [x1,32] mov w22, 0 sub x19, x0, x19 mov x0, -6148914691236517206 asr x19, x19, 1 - add x23, x23, :lo12:.LC158 + add x23, x23, :lo12:.LC159 add x21, x21, :lo12:.LANCHOR4 mov w25, 6 madd x19, x0, x19, x19 mov w26, 65535 uxth w19, w19 -.L3165: +.L3256: cmp w22, w24 - beq .L3157 + beq .L3248 ubfiz x0, x19, 1, 16 ldr x1, [x20,#:lo12:.LANCHOR2] ldrh w2, [x1,x0] - cbz w2, .L3166 + cbz w2, .L3257 add x3, x21, 480 mov x0, x23 mov w1, w19 ldrh w3, [x3,w19,sxtw 1] bl printk -.L3166: +.L3257: add x0, x20, :lo12:.LANCHOR2 umull x19, w19, w25 ldr x0, [x0,-16] ldrh w19, [x0,x19] cmp w19, w26 - beq .L3157 + beq .L3248 add w22, w22, 1 uxth w22, w22 - b .L3165 -.L3157: + b .L3256 +.L3248: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -20708,21 +21074,21 @@ FtlDumpSysBlock: add x0, x21, :lo12:.LANCHOR2 str x25, [sp,80] add x19, x19, 160 - adrp x22, .LC159 - adrp x24, .LC160 + adrp x22, .LC160 + adrp x24, .LC161 lsl w25, w23, 10 ldr x1, [x0,2072] mov w20, 0 ldr x0, [x0,2120] - add x22, x22, :lo12:.LC159 + add x22, x22, :lo12:.LC160 str x1, [x19,8] - add x24, x24, :lo12:.LC160 + add x24, x24, :lo12:.LC161 str x0, [x19,16] -.L3178: - adrp x0, .LANCHOR0+2020 - ldrh w0, [x0,#:lo12:.LANCHOR0+2020] +.L3269: + adrp x0, .LANCHOR0+2026 + ldrh w0, [x0,#:lo12:.LANCHOR0+2026] cmp w20, w0 - bge .L3184 + bge .L3275 mov w1, 1 orr w0, w20, w25 mov w2, w1 @@ -20745,18 +21111,18 @@ FtlDumpSysBlock: ldr x0, [x19,16] ldr w0, [x0] cmn w0, #1 - beq .L3179 + beq .L3270 add x1, x21, :lo12:.LANCHOR2 mov x0, x24 mov w2, 4 mov w3, 768 ldr x1, [x1,2072] bl rknand_print_hex -.L3179: +.L3270: add w20, w20, 1 sxth w20, w20 - b .L3178 -.L3184: + b .L3269 +.L3275: sub sp, x29, #16 ldp x19, x20, [sp,32] ldp x21, x22, [sp,48] @@ -20780,26 +21146,26 @@ dump_map_info: stp x25, x26, [sp,80] stp x21, x22, [sp,48] stp x27, x28, [sp,96] - adrp x23, .LC161 + adrp x23, .LC162 mov w25, 56 - ldrh w21, [x0,1956] + ldrh w21, [x0,1964] adrp x24, .LANCHOR2 mov w26, 4 - add x23, x23, :lo12:.LC161 -.L3186: + add x23, x23, :lo12:.LC162 +.L3277: add x2, x19, :lo12:.LANCHOR0 - ldrh w0, [x2,1958] + ldrh w0, [x2,1966] cmp w0, w21 - bls .L3199 + bls .L3290 mov x22, 0 - ldrh w5, [x2,1948] - ldrh w4, [x2,2030] + ldrh w5, [x2,1956] + ldrh w4, [x2,2036] mov w27, w22 mov x20, x2 -.L3195: +.L3286: cmp w5, w22, uxth - bls .L3200 - add x0, x20, 1976 + bls .L3291 + add x0, x20, 1984 mov w1, w21 str x4, [x29,96] str x5, [x29,104] @@ -20809,7 +21175,7 @@ dump_map_info: bl FtlBbmIsBadBlock ldr x5, [x29,104] ldr x4, [x29,96] - cbnz w0, .L3187 + cbnz w0, .L3278 add x3, x24, :lo12:.LANCHOR2 lsl w28, w28, 10 umull x0, w27, w25 @@ -20827,11 +21193,11 @@ dump_map_info: ldr x1, [x3,888] add x2, x1, x2, sxtw 2 str x2, [x0,16] -.L3187: +.L3278: add x22, x22, 1 - b .L3195 -.L3200: - cbz w27, .L3190 + b .L3286 +.L3291: + cbz w27, .L3281 add x0, x24, :lo12:.LANCHOR2 mov w1, w27 mov w2, 1 @@ -20840,9 +21206,9 @@ dump_map_info: mov x28, 56 ldr x0, [x0,2048] bl FlashReadPages -.L3191: +.L3282: cmp w27, w20, uxth - bls .L3190 + bls .L3281 add x0, x22, :lo12:.LANCHOR2 ldr x3, [x0,2048] madd x3, x20, x28, x3 @@ -20860,12 +21226,12 @@ dump_map_info: ldr w7, [x7] ldr w6, [x6,12] bl printk - b .L3191 -.L3190: + b .L3282 +.L3281: add w21, w21, 1 uxth w21, w21 - b .L3186 -.L3199: + b .L3277 +.L3290: adrp x20, .LANCHOR4 adrp x23, .LC109 add x20, x20, :lo12:.LANCHOR4 @@ -20873,19 +21239,19 @@ dump_map_info: adrp x27, .LANCHOR2 add x20, x20, 160 add x23, x23, :lo12:.LC109 -.L3194: +.L3285: add x21, x27, :lo12:.LANCHOR2 adrp x26, .LANCHOR2 ldrh w0, [x21,2320] cmp w22, w0 - bge .L3197 + bge .L3288 sbfiz x24, x22, 1, 32 mov w21, 0 -.L3198: +.L3289: add x0, x19, :lo12:.LANCHOR0 - ldrh w0, [x0,2020] + ldrh w0, [x0,2026] cmp w21, w0 - bge .L3201 + bge .L3292 add x25, x26, :lo12:.LANCHOR2 mov w1, 1 mov w2, w1 @@ -20913,29 +21279,29 @@ dump_map_info: ldr w3, [x20,4] ldr w7, [x7,12] bl printk - b .L3198 -.L3201: + b .L3289 +.L3292: add w22, w22, 1 sxth w22, w22 - b .L3194 -.L3197: + b .L3285 +.L3288: add x19, x19, :lo12:.LANCHOR0 ldr x1, [x21,2176] - adrp x0, .LC162 + adrp x0, .LC163 mov w2, 2 - add x0, x0, :lo12:.LC162 - ldr w3, [x19,2048] + add x0, x0, :lo12:.LC163 + ldr w3, [x19,2052] bl rknand_print_hex ldr x1, [x21,2216] - adrp x0, .LC163 - ldrh w3, [x19,2056] - add x0, x0, :lo12:.LC163 + adrp x0, .LC164 + ldrh w3, [x19,2060] + add x0, x0, :lo12:.LC164 mov w2, 4 bl rknand_print_hex ldr x1, [x21,2224] - adrp x0, .LC164 - ldrh w3, [x19,2056] - add x0, x0, :lo12:.LC164 + adrp x0, .LC165 + ldrh w3, [x19,2060] + add x0, x0, :lo12:.LC165 mov w2, 4 bl rknand_print_hex sub sp, x29, #16 @@ -20952,17 +21318,17 @@ dump_map_info: .global flash_boot_enter_slc_mode .type flash_boot_enter_slc_mode, %function flash_boot_enter_slc_mode: - adrp x1, .LANCHOR0+1856 + adrp x1, .LANCHOR0+1872 uxtb w0, w0 stp x29, x30, [sp, -16]! add x29, sp, 0 - ldr w2, [x1,#:lo12:.LANCHOR0+1856] + ldr w2, [x1,#:lo12:.LANCHOR0+1872] mov w1, 12336 movk w1, 0x5638, lsl 16 cmp w2, w1 - bne .L3202 + bne .L3293 bl flash_enter_slc_mode -.L3202: +.L3293: ldp x29, x30, [sp], 16 ret .size flash_boot_enter_slc_mode, .-flash_boot_enter_slc_mode @@ -20970,17 +21336,17 @@ flash_boot_enter_slc_mode: .global flash_boot_exit_slc_mode .type flash_boot_exit_slc_mode, %function flash_boot_exit_slc_mode: - adrp x1, .LANCHOR0+1856 + adrp x1, .LANCHOR0+1872 uxtb w0, w0 stp x29, x30, [sp, -16]! add x29, sp, 0 - ldr w2, [x1,#:lo12:.LANCHOR0+1856] + ldr w2, [x1,#:lo12:.LANCHOR0+1872] mov w1, 12336 movk w1, 0x5638, lsl 16 cmp w2, w1 - bne .L3204 + bne .L3295 bl flash_exit_slc_mode -.L3204: +.L3295: ldp x29, x30, [sp], 16 ret .size flash_boot_exit_slc_mode, .-flash_boot_exit_slc_mode @@ -20998,50 +21364,50 @@ IdBlockReadData: stp x25, x26, [sp,64] stp x21, x22, [sp,32] stp x27, x28, [sp,80] + ldr w20, [x19,12] mov w26, w1 - mov x21, x2 ldrb w27, [x0,9] + adrp x0, .LC166 + mov x21, x2 + add x0, x0, :lo12:.LC166 mov w1, w23 - ldrh w20, [x0,10] - adrp x0, .LC165 - add x0, x0, :lo12:.LC165 mov w2, w26 - mov w25, 0 - mul w20, w27, w20 + mul w20, w20, w27 bl printk - mov w6, 4 - adrp x7, .LANCHOR4 + mov w25, 0 + mov w5, 4 + adrp x6, .LANCHOR4 uxth w20, w20 udiv w24, w23, w20 msub w24, w24, w20, w23 sub w28, w23, w24 mul w3, w24, w27 ubfx x3, x3, 2, 2 -.L3207: +.L3298: cmp w25, w26 - bcs .L3213 - add w5, w25, w24 - add x0, x19, 196 - ubfx x5, x5, 2, 16 - sub w20, w6, w3 + bcs .L3304 + add w0, w25, w24 + add x1, x19, 200 + ubfx x0, x0, 2, 16 + sub w20, w5, w3 uxth w20, w20 - ldrh w4, [x0,w5,sxtw 1] - ldrb w0, [x19,120] - cbz w0, .L3208 - ldr w1, [x19,1856] - mov w0, 12336 - movk w0, 0x5638, lsl 16 - cmp w1, w0 - csel w4, w4, w5, ne -.L3208: + ldrh w4, [x1,w0,sxtw 1] + ldrb w1, [x19,196] + cbz w1, .L3299 + ldr w2, [x19,1872] + mov w1, 12336 + movk w1, 0x5638, lsl 16 + cmp w2, w1 + csel w4, w4, w0, ne +.L3299: ldr x0, [x19,744] add w3, w3, w28 - str x6, [x29,96] + str x5, [x29,96] madd w22, w4, w27, w3 ldrb w1, [x0,9] - add x0, x7, :lo12:.LANCHOR4 - ldrb w4, [x19,1936] - str x7, [x29,120] + add x0, x6, :lo12:.LANCHOR4 + ldrb w4, [x19,1944] + str x6, [x29,120] ldrb w0, [x0,98] str x4, [x29,112] str x1, [x29,104] @@ -21064,15 +21430,15 @@ IdBlockReadData: add x21, x21, x0 mov w3, 0 uxth w25, w20 - ldr x6, [x29,96] - ldr x7, [x29,120] - b .L3207 -.L3213: - adrp x0, .LC166 + ldr x5, [x29,96] + ldr x6, [x29,120] + b .L3298 +.L3304: + adrp x0, .LC167 mov w1, w23 mov w2, w26 mov w3, 0 - add x0, x0, :lo12:.LC166 + add x0, x0, :lo12:.LC167 bl printk mov w0, 0 ldp x19, x20, [sp,16] @@ -21100,31 +21466,31 @@ write_idblock: stp x27, x28, [sp,80] mov x22, x1 mov x28, x24 - ldr x0, [x0,744] - ldrb w21, [x0,9] - ldrh w20, [x0,10] + ldr x1, [x0,744] + ldr w21, [x0,12] mov w0, 59392 movk w0, 0x3, lsl 16 + ldrb w20, [x1,9] bl ftl_malloc mov x26, x0 mov w0, -1 - cbz x26, .L3252 + cbz x26, .L3343 add w19, w19, 511 lsr w19, w19, 9 cmp w19, 8 - bls .L3236 + bls .L3327 cmp w19, 500 - bhi .L3252 - b .L3216 -.L3236: + bhi .L3343 + b .L3307 +.L3327: mov w19, 8 -.L3216: +.L3307: ldr w2, [x22] mov w1, 35899 movk w1, 0xfcdc, lsl 16 mov w0, -1 cmp w2, w1 - bne .L3252 + bne .L3343 mul w21, w20, w21 add x3, x22, 253952 mov w2, 63999 @@ -21136,9 +21502,9 @@ write_idblock: udiv w0, w0, w21 str w0, [x29,224] mov w0, 0 -.L3220: +.L3311: ldr w1, [x3] - cbnz w1, .L3217 + cbnz w1, .L3308 ldr w1, [x22,w0,uxtw 2] add w0, w0, 1 cmp w0, w4 @@ -21146,31 +21512,31 @@ write_idblock: csel w0, w0, wzr, cc str w1, [x3],-4 cmp w2, 4096 - bne .L3220 - b .L3219 -.L3217: - adrp x0, .LC167 - add x0, x0, :lo12:.LC167 - bl printk -.L3219: + bne .L3311 + b .L3310 +.L3308: adrp x0, .LC168 + add x0, x0, :lo12:.LC168 + bl printk +.L3310: + adrp x0, .LC169 mov w3, 5 add x20, x28, :lo12:.LANCHOR0 - add x0, x0, :lo12:.LC168 + add x0, x0, :lo12:.LC169 mov x1, x23 mov w2, 4 adrp x24, .LANCHOR4 bl rknand_print_hex ldr w1, [x22,512] - adrp x0, .LC169 + adrp x0, .LC170 ldrb w2, [x20,9] - add x0, x0, :lo12:.LC169 + add x0, x0, :lo12:.LC170 bl printk add x4, x24, :lo12:.LANCHOR4 - adrp x0, .LC170 + adrp x0, .LC171 ldrh w3, [x20,194] mov w1, w19 - add x0, x0, :lo12:.LC170 + add x0, x0, :lo12:.LC171 mov w2, w19 ldr w4, [x4,92] bl printk @@ -21178,49 +21544,49 @@ write_idblock: ldrb w0, [x20,9] ldr w1, [x22,512] cmp w1, w0 - bls .L3221 + bls .L3312 str w0, [x22,512] -.L3221: +.L3312: lsl w0, w19, 7 str w0, [x29,204] - adrp x0, .LC171 - mov x20, 0 - add x0, x0, :lo12:.LC171 - str x0, [x29,192] adrp x0, .LC172 - str w20, [x29,236] + mov x20, 0 add x0, x0, :lo12:.LC172 - str x0, [x29,184] + str x0, [x29,192] adrp x0, .LC173 + str w20, [x29,236] add x0, x0, :lo12:.LC173 + str x0, [x29,184] + adrp x0, .LC174 + add x0, x0, :lo12:.LC174 str x0, [x29,176] -.L3234: +.L3325: add x0, x28, :lo12:.LANCHOR0 ldr w1, [x23,x20,lsl 2] str w20, [x29,232] ldrb w0, [x0,9] cmp w1, w0 - bcs .L3222 + bcs .L3313 ldr x0, [x29,208] add x0, x0, :lo12:.LANCHOR4 ldr w0, [x0,92] cmp w1, w0 - bcc .L3222 + bcc .L3313 ldr w0, [x29,224] cmp w0, 1 cset w0, hi str w0, [x29,228] uxtw x0, w20 - cbz w0, .L3223 + cbz w0, .L3314 ldr w0, [x29,228] - cbz w0, .L3223 + cbz w0, .L3314 uxtw x0, w20 sub w0, w0, #1 ldr w0, [x23,x0,lsl 2] add w0, w0, 1 cmp w1, w0 - beq .L3222 -.L3223: + beq .L3313 +.L3314: mov w1, 0 mov x2, 512 mov x0, x26 @@ -21229,29 +21595,29 @@ write_idblock: add x0, x28, :lo12:.LANCHOR0 mov w2, w19 mul w24, w21, w24 - ldr x0, [x0,744] - mov w1, w24 - ldrb w27, [x0,9] - ldrh w25, [x0,10] + ldr x1, [x0,744] + ldr w25, [x0,12] ldr x0, [x29,192] - mul w25, w27, w25 + ldrb w27, [x1,9] + mov w1, w24 bl printk mov w0, 0 - uxth w25, w25 + mul w25, w25, w27 bl flash_boot_enter_slc_mode udiv w1, w24, w27 mov w2, 0 mov w0, 0 + uxth w25, w25 bl FlashEraseBlock cmp w19, w25 mov w2, 1 - bls .L3224 + bls .L3315 mov w2, 0 mov w0, 0 add w1, w24, w25 bl FlashEraseBlock mov w2, 2 -.L3224: +.L3315: mov w0, 0 str x2, [x29,216] bl flash_boot_exit_slc_mode @@ -21271,42 +21637,42 @@ write_idblock: sdiv w5, w0, w5 sub w0, w24, w8 str w0, [x29,216] -.L3225: +.L3316: cmp w6, w5 - bcs .L3263 + bcs .L3354 add w0, w6, w8 lsr w0, w0, 2 uxth w1, w0 and w0, w0, 65535 - cbz w1, .L3226 + cbz w1, .L3317 add w2, w0, 1 - add x1, x4, 196 - ldrb w3, [x4,120] + add x1, x4, 200 + ldrb w3, [x4,196] ldrh w1, [x1,w2,sxtw 1] - cbz w3, .L3227 - ldr w7, [x4,1856] + cbz w3, .L3318 + ldr w7, [x4,1872] mov w3, 12336 movk w3, 0x5638, lsl 16 cmp w7, w3 csel w1, w1, w2, ne -.L3227: +.L3318: add w1, w1, w10 lsl w1, w1, 2 str w1, [x29,240] -.L3226: - add x1, x4, 196 +.L3317: + add x1, x4, 200 str w11, [x29,244] ldrh w7, [x1,w0,sxtw 1] - ldrb w1, [x4,120] - cbz w1, .L3228 - ldr w2, [x4,1856] + ldrb w1, [x4,196] + cbz w1, .L3319 + ldr w2, [x4,1872] mov w1, 12336 movk w1, 0x5638, lsl 16 cmp w2, w1 csel w7, w7, w0, ne -.L3228: +.L3319: ldr w0, [x29,216] - ldrb w12, [x4,1936] + ldrb w12, [x4,1944] str x11, [x29,104] madd w2, w7, w27, w0 ldr x0, [x29,208] @@ -21352,8 +21718,8 @@ write_idblock: uxth w6, w6 ldr x5, [x29,136] ldr x4, [x29,168] - b .L3225 -.L3263: + b .L3316 +.L3354: ldr x0, [x29,184] mov w1, w24 mov w2, w19 @@ -21367,11 +21733,11 @@ write_idblock: mov x2, x26 mov x1, x22 mov x0, 0 -.L3230: +.L3321: ldr w4, [x29,204] mov w3, w0 cmp w0, w4 - bcs .L3264 + bcs .L3355 mov x27, x2 mov x25, x1 mov x24, x0 @@ -21381,7 +21747,7 @@ write_idblock: ldr w5, [x27] ldr w4, [x25] cmp w5, w4 - beq .L3230 + beq .L3321 mov w1, 0 mov x2, 512 mov x0, x26 @@ -21396,17 +21762,17 @@ write_idblock: ldr x3, [x29,216] ldr x0, [x29,176] bl printk - adrp x0, .LC174 + adrp x0, .LC175 add x1, x22, x24 - add x0, x0, :lo12:.LC174 + add x0, x0, :lo12:.LC175 mov w2, 4 mov w3, 256 bl rknand_print_hex - adrp x0, .LC175 + adrp x0, .LC176 add x1, x26, x24 mov w2, 4 mov w3, 256 - add x0, x0, :lo12:.LC175 + add x0, x0, :lo12:.LC176 bl rknand_print_hex mov w0, 0 bl flash_boot_enter_slc_mode @@ -21416,34 +21782,34 @@ write_idblock: mul w1, w21, w1 bl FlashEraseBlock ldr w0, [x29,228] - cbz w0, .L3231 + cbz w0, .L3322 ldr w1, [x23,x20,lsl 2] mov w0, 0 mov w2, 0 madd w1, w1, w21, w21 bl FlashEraseBlock -.L3231: +.L3322: mov w0, 0 bl flash_boot_exit_slc_mode - adrp x0, .LC176 + adrp x0, .LC177 ldr w1, [x23,x20,lsl 2] - add x0, x0, :lo12:.LC176 + add x0, x0, :lo12:.LC177 bl printk - b .L3222 -.L3264: + b .L3313 +.L3355: ldr w0, [x29,236] add w0, w0, 1 str w0, [x29,236] -.L3222: +.L3313: add x20, x20, 1 cmp x20, 5 - bne .L3234 + bne .L3325 mov x0, x26 bl ftl_free ldr w0, [x29,236] cmp w0, wzr csetm w0, eq -.L3252: +.L3343: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -21461,17 +21827,17 @@ CRC_32: mov x5, x0 add x3, x3, :lo12:.LANCHOR1 mov w0, w2 -.L3266: +.L3357: cmp w1, w2 - bls .L3268 + bls .L3359 ldrb w4, [x5,x2] - add x6, x3, 3176 + add x6, x3, 3304 add x2, x2, 1 eor w4, w4, w0, lsr 24 ldr w4, [x6,w4,uxtw 2] eor w0, w4, w0, lsl 8 - b .L3266 -.L3268: + b .L3357 +.L3359: ret .size CRC_32, .-CRC_32 .align 2 @@ -21488,12 +21854,12 @@ write_loader_lba: mov w21, w1 mov x23, x2 adrp x20, .LANCHOR5 - bne .L3270 + bne .L3361 ldr w1, [x2] mov w0, 35899 movk w0, 0xfcdc, lsl 16 cmp w1, w0 - bne .L3270 + bne .L3361 add x22, x20, :lo12:.LANCHOR5 mov w0, 1 strb w0, [x22,-32] @@ -21506,14 +21872,14 @@ write_loader_lba: movk w2, 0x3, lsl 16 bl ftl_memset str w19, [x22,-16] -.L3270: +.L3361: add x3, x20, :lo12:.LANCHOR5 ldrb w0, [x3,-32] - cbz w0, .L3269 + cbz w0, .L3360 sub w0, w19, #64 ldr x22, [x3,-24] cmp w0, 499 - bhi .L3272 + bhi .L3363 mov w3, 564 ubfiz x0, x0, 9, 25 sub w3, w3, w19 @@ -21523,28 +21889,28 @@ write_loader_lba: csel w2, w3, w21, ls lsl w2, w2, 9 bl ftl_memcpy - b .L3273 -.L3272: + b .L3364 +.L3363: cmp w19, 563 - bhi .L3283 -.L3273: + bhi .L3374 +.L3364: add x0, x20, :lo12:.LANCHOR5 ldr w1, [x0,-16] cmp w1, w19 - beq .L3281 + beq .L3372 strb wzr, [x0,-32] - cbz x22, .L3282 + cbz x22, .L3373 mov x0, x22 bl ftl_free -.L3282: +.L3373: add x0, x20, :lo12:.LANCHOR5 str xzr, [x0,-24] -.L3281: +.L3372: add x20, x20, :lo12:.LANCHOR5 add w19, w19, w21 str w19, [x20,-16] - b .L3269 -.L3283: + b .L3360 +.L3374: ldr w2, [x3,-16] mov w0, 500 sub w2, w2, #64 @@ -21554,7 +21920,7 @@ write_loader_lba: ldr x0, [x0,#:lo12:.LANCHOR0+744] ldrb w0, [x0,9] cmp w0, 4 - beq .L3284 + beq .L3375 mov w0, 2 str w0, [x29,64] mov w0, 3 @@ -21565,41 +21931,41 @@ write_loader_lba: str w0, [x29,76] mov w0, 6 str w0, [x29,80] - b .L3275 -.L3284: + b .L3366 +.L3375: mov x3, 0 -.L3274: +.L3365: cmp w2, 256 add x0, x29, 64 - bls .L3276 + bls .L3367 lsl w1, w3, 1 str w1, [x0,x3,lsl 2] - b .L3277 -.L3276: + b .L3368 +.L3367: str w3, [x0,x3,lsl 2] -.L3277: +.L3368: add x3, x3, 1 cmp x3, 5 - bne .L3274 -.L3275: + bne .L3365 +.L3366: add x0, x20, :lo12:.LANCHOR5 mov w4, 63999 ldr x3, [x0,-8] add x3, x3, 61440 add x3, x3, 2559 -.L3280: +.L3371: ldrb w0, [x3] - cbz w0, .L3278 + cbz w0, .L3369 add w2, w4, 1 lsl w0, w2, 2 - b .L3279 -.L3278: + b .L3370 +.L3369: sub w4, w4, #1 sub x3, x3, #1 cmp w4, 4096 - bne .L3280 + bne .L3371 lsl w0, w2, 9 -.L3279: +.L3370: mov x1, x22 add x2, x29, 64 add x22, x20, :lo12:.LANCHOR5 @@ -21608,8 +21974,8 @@ write_loader_lba: strb wzr, [x22,-32] bl ftl_free str xzr, [x22,-24] - b .L3281 -.L3269: + b .L3372 +.L3360: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldr x23, [sp,48] @@ -21629,15 +21995,15 @@ FtlWrite: cmp w0, 1983 mov w19, w1 mov w20, w2 - bhi .L3294 - cbnz w21, .L3294 + bhi .L3385 + cbnz w21, .L3385 mov w0, w1 mov w1, w2 mov x2, x3 str x3, [x29,56] bl write_loader_lba ldr x3, [x29,56] -.L3294: +.L3385: mov w1, w19 mov w2, w20 mov w0, w21 @@ -21661,146 +22027,146 @@ rknand_sys_storage_ioctl: stp x21, x22, [sp,32] mov w19, w1 mov x20, x2 - beq .L3303 + beq .L3394 mov w0, 29187 movk w0, 0x4004, lsl 16 cmp w1, w0 - bhi .L3304 + bhi .L3395 mov w0, 25726 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L3305 + beq .L3396 mov w0, 25726 movk w0, 0x4004, lsl 16 cmp w1, w0 - bhi .L3306 + bhi .L3397 mov w0, 25601 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L3307 + beq .L3398 mov w0, 25601 movk w0, 0x4004, lsl 16 cmp w1, w0 - bhi .L3308 + bhi .L3399 mov w0, 25364 movk w0, 0x4004, lsl 16 cmp w1, w0 - bne .L3365 + bne .L3456 bl rknand_dev_flush - b .L3399 -.L3308: + b .L3490 +.L3399: mov w0, 25602 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L3310 + beq .L3401 mov w0, 25603 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L3311 - b .L3365 -.L3306: + beq .L3402 + b .L3456 +.L3397: mov w0, 27688 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L3312 + beq .L3403 mov w0, 27688 movk w0, 0x4004, lsl 16 cmp w1, w0 - bhi .L3313 + bhi .L3404 mov w0, 25727 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L3314 - b .L3365 -.L3313: + beq .L3405 + b .L3456 +.L3404: mov w0, 27698 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L3312 + beq .L3403 mov w0, 27708 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L3312 - b .L3365 -.L3304: + beq .L3403 + b .L3456 +.L3395: mov w0, 29267 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L3315 + beq .L3406 mov w0, 29267 movk w0, 0x4004, lsl 16 cmp w1, w0 - bhi .L3316 + bhi .L3407 mov w0, 29189 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L3317 + beq .L3408 mov w0, 29189 movk w0, 0x4004, lsl 16 cmp w1, w0 - bcc .L3318 + bcc .L3409 mov w0, 29210 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L3319 + beq .L3410 mov w0, 29266 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L3320 - b .L3365 -.L3316: + beq .L3411 + b .L3456 +.L3407: mov w0, 30225 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L3321 + beq .L3412 mov w0, 30225 movk w0, 0x4004, lsl 16 cmp w1, w0 - bhi .L3322 + bhi .L3413 mov w0, 29268 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L3323 + beq .L3414 mov w0, 30224 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L3324 - b .L3365 -.L3322: + beq .L3415 + b .L3456 +.L3413: mov w0, 30226 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L3324 + beq .L3415 mov w0, 30227 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L3321 - b .L3365 -.L3318: - adrp x0, .LC177 - add x0, x0, :lo12:.LC177 + beq .L3412 + b .L3456 +.L3409: + adrp x0, .LC178 + add x0, x0, :lo12:.LC178 bl printk mov w0, 4096 bl ftl_malloc mov x19, x0 - cbnz x0, .L3325 -.L3330: + cbnz x0, .L3416 +.L3421: mov x0, -12 - b .L3302 -.L3325: + b .L3393 +.L3416: mov x1, x20 mov x2, 512 bl rk_copy_from_user - cbnz x0, .L3406 - adrp x0, .LC179 + cbnz x0, .L3497 + adrp x0, .LC180 ldr w1, [x19] ldr w2, [x19,4] - add x0, x0, :lo12:.LC179 + add x0, x0, :lo12:.LC180 bl printk ldr w0, [x19,4] str w0, [x29,52] cmp w0, 8 - bhi .L3403 + bhi .L3494 bl rknand_device_lock ldr w1, [x29,52] mov x2, x19 @@ -21812,106 +22178,106 @@ rknand_sys_storage_ioctl: mov x1, x19 ubfiz x2, x2, 9, 23 bl rk_copy_to_user - cbz x0, .L3409 - adrp x0, .LC180 - add x0, x0, :lo12:.LC180 -.L3401: + cbz x0, .L3500 + adrp x0, .LC181 + add x0, x0, :lo12:.LC181 +.L3492: bl printk -.L3403: +.L3494: mov x0, x19 -.L3404: +.L3495: bl ftl_free -.L3402: +.L3493: mov x0, -14 - b .L3302 -.L3317: - adrp x0, .LC181 - add x0, x0, :lo12:.LC181 + b .L3393 +.L3408: + adrp x0, .LC182 + add x0, x0, :lo12:.LC182 bl printk mov w0, 4096 bl ftl_malloc mov x19, x0 - cbz x0, .L3330 + cbz x0, .L3421 mov x1, x20 mov x2, 4096 bl rk_copy_from_user - cbnz x0, .L3406 - adrp x0, .LC182 + cbnz x0, .L3497 + adrp x0, .LC183 ldr w1, [x19] ldr w2, [x19,4] - add x0, x0, :lo12:.LC182 + add x0, x0, :lo12:.LC183 bl printk adrp x0, .LANCHOR5 add x22, x0, :lo12:.LANCHOR5 mov x20, x0 ldr x21, [x22,-8] - cbnz x21, .L3332 + cbnz x21, .L3423 mov w0, 260096 bl ftl_malloc str x0, [x22,-8] - cbz x0, .L3403 + cbz x0, .L3494 mov w1, w21 mov x2, 260096 bl memset -.L3332: +.L3423: ldr w2, [x19,4] cmp w2, 4088 - bhi .L3403 + bhi .L3494 ldr w0, [x19] mov w1, 55296 movk w1, 0x3, lsl 16 cmp w0, w1 - bhi .L3403 + bhi .L3494 add x20, x20, :lo12:.LANCHOR5 uxtw x2, w2 ldr x1, [x20,-8] add x0, x1, x0, uxtw add x1, x19, 8 bl memcpy -.L3409: +.L3500: mov x0, x19 bl ftl_free - b .L3399 -.L3320: - adrp x0, .LC183 - add x0, x0, :lo12:.LC183 + b .L3490 +.L3411: + adrp x0, .LC184 + add x0, x0, :lo12:.LC184 bl printk mov w0, 4096 bl ftl_malloc mov x19, x0 - cbz x0, .L3330 + cbz x0, .L3421 mov x1, x20 mov x2, 28 bl rk_copy_from_user - cbz x0, .L3335 -.L3406: - adrp x0, .LC178 - add x0, x0, :lo12:.LC178 - b .L3401 -.L3335: + cbz x0, .L3426 +.L3497: + adrp x0, .LC179 + add x0, x0, :lo12:.LC179 + b .L3492 +.L3426: ldr w1, [x19] - adrp x0, .LC184 + adrp x0, .LC185 ldr w2, [x19,4] - add x0, x0, :lo12:.LC184 + add x0, x0, :lo12:.LC185 bl printk ldr w1, [x19] mov w0, 59392 movk w0, 0x3, lsl 16 cmp w1, w0 - bhi .L3403 + bhi .L3494 adrp x20, .LANCHOR5 add x20, x20, :lo12:.LANCHOR5 ldr x0, [x20,-8] - cbz x0, .L3403 + cbz x0, .L3494 bl CRC_32 ldr w1, [x19,4] cmp w1, w0 - beq .L3338 + beq .L3429 mov x0, x19 bl ftl_free mov x0, -2 - b .L3302 -.L3338: + b .L3393 +.L3429: bl rknand_device_lock ldr x1, [x20,-8] add x2, x19, 8 @@ -21921,39 +22287,39 @@ rknand_sys_storage_ioctl: ldr x0, [x20,-8] bl ftl_free str xzr, [x20,-8] - b .L3409 -.L3319: - adrp x0, .LC185 - add x0, x0, :lo12:.LC185 + b .L3500 +.L3410: + adrp x0, .LC186 + add x0, x0, :lo12:.LC186 bl printk mov w0, 4096 bl ftl_malloc mov x21, x0 - cbz x0, .L3330 + cbz x0, .L3421 bl ftl_read_flash_info mov x0, x20 mov x1, x21 mov x2, 11 - b .L3411 -.L3303: - adrp x0, .LC186 - add x0, x0, :lo12:.LC186 + b .L3502 +.L3394: + adrp x0, .LC187 + add x0, x0, :lo12:.LC187 bl printk bl nand_blk_add_whole_disk mov w0, 4096 bl ftl_malloc mov x21, x0 - cbz x0, .L3330 + cbz x0, .L3421 mov w1, 0 mov w2, 64 bl ftl_memset mov x0, x20 mov x1, x21 mov x2, 64 - b .L3411 -.L3315: - adrp x0, .LC187 - add x0, x0, :lo12:.LC187 + b .L3502 +.L3406: + adrp x0, .LC188 + add x0, x0, :lo12:.LC188 bl printk adrp x0, .LANCHOR5 add x1, x29, 52 @@ -21962,18 +22328,18 @@ rknand_sys_storage_ioctl: ldr w0, [x0,20] str w0, [x29,52] mov x0, x20 -.L3394: +.L3485: bl rk_copy_to_user - cbnz x0, .L3402 - b .L3399 -.L3323: - adrp x0, .LC188 - add x0, x0, :lo12:.LC188 + cbnz x0, .L3493 + b .L3490 +.L3414: + adrp x0, .LC189 + add x0, x0, :lo12:.LC189 bl printk mov w0, 4096 bl ftl_malloc mov x21, x0 - cbz x0, .L3330 + cbz x0, .L3421 bl rknand_device_lock mov w1, 2 mov x2, x21 @@ -21983,41 +22349,41 @@ rknand_sys_storage_ioctl: mov x0, x20 mov x1, x21 mov x2, 1024 -.L3411: +.L3502: bl rk_copy_to_user mov x19, x0 mov x0, x21 - cbnz x19, .L3404 + cbnz x19, .L3495 bl ftl_free - b .L3329 -.L3307: - adrp x0, .LC189 - add x0, x0, :lo12:.LC189 + b .L3420 +.L3398: + adrp x0, .LC190 + add x0, x0, :lo12:.LC190 bl printk add x0, x29, 56 mov x1, x20 mov x2, 520 bl rk_copy_from_user mov x19, x0 - cbz x0, .L3343 -.L3348: - adrp x0, .LC178 - add x0, x0, :lo12:.LC178 + cbz x0, .L3434 +.L3439: + adrp x0, .LC179 + add x0, x0, :lo12:.LC179 bl printk - b .L3402 -.L3343: + b .L3493 +.L3434: ldr w1, [x29,56] mov w0, 21060 movk w0, 0x4b4d, lsl 16 cmp w1, w0 - beq .L3344 -.L3345: + beq .L3435 +.L3436: mov x19, -1 - b .L3329 -.L3344: + b .L3420 +.L3435: ldr w0, [x29,60] cmp w0, 512 - bhi .L3345 + bhi .L3436 adrp x1, .LANCHOR5 add x0, x29, 56 add x21, x1, :lo12:.LANCHOR5 @@ -22028,37 +22394,37 @@ rknand_sys_storage_ioctl: mov w0, 5161 movk w0, 0xc059, lsl 16 cmp w1, w0 - beq .L3346 + beq .L3437 add x0, x29, 120 mov w1, w19 mov x2, 128 str w19, [x29,64] str w19, [x29,68] bl memset -.L3346: +.L3437: add x0, x29, 312 mov w1, 0 mov x2, 256 str wzr, [x29,72] bl memset - b .L3408 -.L3310: - adrp x0, .LC190 - add x0, x0, :lo12:.LC190 + b .L3499 +.L3401: + adrp x0, .LC191 + add x0, x0, :lo12:.LC191 bl printk add x0, x29, 56 mov x1, x20 mov x2, 520 bl rk_copy_from_user - cbnz x0, .L3348 + cbnz x0, .L3439 ldr w1, [x29,56] mov w0, 21060 movk w0, 0x4b4d, lsl 16 cmp w1, w0 - bne .L3345 + bne .L3436 ldr w0, [x29,60] cmp w0, 512 - bhi .L3345 + bhi .L3436 adrp x2, .LANCHOR5 mov w1, 5161 add x0, x2, :lo12:.LANCHOR5 @@ -22066,12 +22432,12 @@ rknand_sys_storage_ioctl: ldr w3, [x0,8] mov x0, -2 cmp w3, w1 - bne .L3302 + bne .L3393 ldr w1, [x29,68] mov x0, -3 sub w3, w1, #1 cmp w3, 127 - bhi .L3302 + bhi .L3393 ldr x19, [x2,#:lo12:.LANCHOR5] add x0, x19, 64 str w1, [x19,12] @@ -22080,38 +22446,38 @@ rknand_sys_storage_ioctl: bl memcpy mov w0, 1 mov x1, x19 - b .L3400 -.L3314: - adrp x0, .LC191 - add x0, x0, :lo12:.LC191 + b .L3491 +.L3405: + adrp x0, .LC192 + add x0, x0, :lo12:.LC192 bl printk add x0, x29, 56 mov x1, x20 mov x2, 520 bl rk_copy_from_user - cbnz x0, .L3348 + cbnz x0, .L3439 ldr w1, [x29,56] mov w0, 17476 movk w0, 0x4253, lsl 16 cmp w1, w0 - bne .L3345 + bne .L3436 ldr w0, [x29,60] cmp w0, 512 - bhi .L3345 + bhi .L3436 adrp x19, .LANCHOR5 add x0, x19, :lo12:.LANCHOR5 ldr w1, [x0,12] - cbnz w1, .L3349 -.L3352: + cbnz w1, .L3440 +.L3443: mov x0, 0 - b .L3302 -.L3349: + b .L3393 +.L3440: ldr x1, [x0,16] mov w2, 22867 movk w2, 0x4453, lsl 16 ldr w3, [x1] cmp w3, w2 - beq .L3350 + beq .L3441 mov w2, 22867 movk w2, 0x4453, lsl 16 str w2, [x1] @@ -22121,7 +22487,7 @@ rknand_sys_storage_ioctl: ldr x0, [x0,16] str wzr, [x0,8] str wzr, [x0,12] -.L3350: +.L3441: add x0, x19, :lo12:.LANCHOR5 adrp x20, .LANCHOR5 ldr x1, [x0,16] @@ -22133,7 +22499,7 @@ rknand_sys_storage_ioctl: movk w1, 0x4b4d, lsl 16 ldr w2, [x0] cmp w2, w1 - beq .L3351 + beq .L3442 mov w1, 21060 movk w1, 0x4b4d, lsl 16 str w1, [x0] @@ -22142,7 +22508,7 @@ rknand_sys_storage_ioctl: str w1, [x0,4] ldr x0, [x20,#:lo12:.LANCHOR5] str wzr, [x0,8] -.L3351: +.L3442: add x20, x19, :lo12:.LANCHOR5 ldr x19, [x19,#:lo12:.LANCHOR5] mov w1, 0 @@ -22155,35 +22521,35 @@ rknand_sys_storage_ioctl: bl StorageSysDataStore str wzr, [x20,12] str wzr, [x20,8] - b .L3399 -.L3305: - adrp x0, .LC192 - add x0, x0, :lo12:.LC192 + b .L3490 +.L3396: + adrp x0, .LC193 + add x0, x0, :lo12:.LC193 bl printk add x0, x29, 56 mov x1, x20 mov x2, 520 bl rk_copy_from_user - cbnz x0, .L3348 + cbnz x0, .L3439 ldr w2, [x29,56] mov w1, 20037 movk w1, 0x4253, lsl 16 cmp w2, w1 - bne .L3345 + bne .L3436 ldr w1, [x29,60] cmp w1, 512 - bhi .L3345 + bhi .L3436 adrp x19, .LANCHOR5 add x1, x19, :lo12:.LANCHOR5 ldr w2, [x1,12] cmp w2, 1 - beq .L3352 + beq .L3443 ldr x2, [x1,16] mov w3, 22867 movk w3, 0x4453, lsl 16 ldr w4, [x2] cmp w4, w3 - beq .L3353 + beq .L3444 mov w3, 22867 movk w3, 0x4453, lsl 16 str w3, [x2] @@ -22193,7 +22559,7 @@ rknand_sys_storage_ioctl: ldr x1, [x1,16] str w0, [x1,8] str w0, [x1,12] -.L3353: +.L3444: add x0, x19, :lo12:.LANCHOR5 adrp x20, .LANCHOR5 ldr x1, [x0,16] @@ -22206,7 +22572,7 @@ rknand_sys_storage_ioctl: movk w1, 0x4b4d, lsl 16 ldr w2, [x0] cmp w2, w1 - beq .L3354 + beq .L3445 mov w1, 21060 movk w1, 0x4b4d, lsl 16 str w1, [x0] @@ -22215,7 +22581,7 @@ rknand_sys_storage_ioctl: str w1, [x0,4] ldr x0, [x20,#:lo12:.LANCHOR5] str wzr, [x0,8] -.L3354: +.L3445: add x20, x19, :lo12:.LANCHOR5 ldr x19, [x19,#:lo12:.LANCHOR5] mov w1, 0 @@ -22228,66 +22594,66 @@ rknand_sys_storage_ioctl: bl StorageSysDataStore mov w0, 1 str w0, [x20,12] - b .L3399 -.L3311: - adrp x0, .LC193 - add x0, x0, :lo12:.LC193 + b .L3490 +.L3402: + adrp x0, .LC194 + add x0, x0, :lo12:.LC194 bl printk add x0, x29, 56 mov x1, x20 mov x2, 520 bl rk_copy_from_user - cbnz x0, .L3348 + cbnz x0, .L3439 ldr w1, [x29,56] mov w0, 20051 movk w0, 0x4144, lsl 16 cmp w1, w0 - bne .L3345 + bne .L3436 ldr w2, [x29,60] cmp w2, 512 - bhi .L3345 + bhi .L3436 adrp x1, .LANCHOR5 add x0, x29, 64 add x1, x1, :lo12:.LANCHOR5 uxtw x2, w2 add x1, x1, 24 - b .L3407 -.L3312: + b .L3498 +.L3403: mov w0, 27698 movk w0, 0x4004, lsl 16 cmp w19, w0 - bne .L3355 - adrp x0, .LC194 - add x0, x0, :lo12:.LC194 - b .L3397 -.L3355: + bne .L3446 + adrp x0, .LC195 + add x0, x0, :lo12:.LC195 + b .L3488 +.L3446: mov w0, 27708 movk w0, 0x4004, lsl 16 cmp w19, w0 - bne .L3357 - adrp x0, .LC195 - add x0, x0, :lo12:.LC195 - b .L3397 -.L3357: + bne .L3448 adrp x0, .LC196 add x0, x0, :lo12:.LC196 -.L3397: + b .L3488 +.L3448: + adrp x0, .LC197 + add x0, x0, :lo12:.LC197 +.L3488: bl printk add x0, x29, 56 mov x1, x20 mov x2, 520 bl rk_copy_from_user - cbnz x0, .L3348 + cbnz x0, .L3439 ldr w1, [x29,56] mov w0, 17227 movk w0, 0x4c4f, lsl 16 cmp w1, w0 - bne .L3402 + bne .L3493 mov w0, 27708 movk w0, 0x4004, lsl 16 cmp w19, w0 adrp x0, .LANCHOR5 - bne .L3358 + bne .L3449 ldr x0, [x0,#:lo12:.LANCHOR5] add x1, x29, 56 mov x2, 16 @@ -22296,65 +22662,65 @@ rknand_sys_storage_ioctl: strb w0, [x29,64] mov x0, x20 bl rk_copy_to_user - cbz x0, .L3302 - b .L3402 -.L3358: + cbz x0, .L3393 + b .L3493 +.L3449: add x20, x0, :lo12:.LANCHOR5 ldr w1, [x20,536] cmp w1, 10 - bhi .L3402 + bhi .L3493 ldr x1, [x0,#:lo12:.LANCHOR5] ldr w2, [x29,60] ldr w3, [x1,24] cmp w3, w2 - beq .L3359 - cbz w3, .L3359 - adrp x0, .LC197 + beq .L3450 + cbz w3, .L3450 + adrp x0, .LC198 mov w1, w2 - add x0, x0, :lo12:.LC197 + add x0, x0, :lo12:.LC198 bl printk ldr w0, [x20,536] add w0, w0, 1 str w0, [x20,536] - b .L3402 -.L3359: + b .L3493 +.L3450: add x0, x0, :lo12:.LANCHOR5 str wzr, [x0,536] mov w0, 27698 movk w0, 0x4004, lsl 16 cmp w19, w0 - bne .L3360 + bne .L3451 str wzr, [x1,20] str wzr, [x1,24] - b .L3361 -.L3360: + b .L3452 +.L3451: mov w0, 1 str w2, [x1,24] str w0, [x1,20] -.L3361: +.L3452: mov w0, 1 mov x19, -2 bl StorageSysDataStore cmn w0, #1 - bne .L3399 - b .L3329 -.L3324: - adrp x0, .LC198 - add x0, x0, :lo12:.LC198 + bne .L3490 + b .L3420 +.L3415: + adrp x0, .LC199 + add x0, x0, :lo12:.LC199 bl printk add x0, x29, 56 mov x1, x20 mov x2, 520 bl rk_copy_from_user - cbnz x0, .L3348 + cbnz x0, .L3439 ldr w1, [x29,56] mov w0, 17750 movk w0, 0x444e, lsl 16 cmp w1, w0 - bne .L3345 + bne .L3436 ldr w2, [x29,60] cmp w2, 504 - bhi .L3345 + bhi .L3436 mov w0, 30224 adrp x1, .LANCHOR5 movk w0, 0x4004, lsl 16 @@ -22362,72 +22728,72 @@ rknand_sys_storage_ioctl: cmp w19, w0 add x1, x1, :lo12:.LANCHOR5 add x0, x29, 64 - bne .L3362 + bne .L3453 ldr x1, [x1,544] - b .L3398 -.L3362: + b .L3489 +.L3453: ldr x1, [x1,552] -.L3398: +.L3489: add x1, x1, 8 -.L3407: +.L3498: bl memcpy -.L3408: +.L3499: mov x0, x20 add x1, x29, 56 mov x2, 520 - b .L3394 -.L3321: - adrp x0, .LC199 - add x0, x0, :lo12:.LC199 + b .L3485 +.L3412: + adrp x0, .LC200 + add x0, x0, :lo12:.LC200 bl printk add x0, x29, 56 mov x1, x20 mov x2, 520 bl rk_copy_from_user - cbnz x0, .L3348 + cbnz x0, .L3439 ldr w1, [x29,56] mov w0, 17750 movk w0, 0x444e, lsl 16 cmp w1, w0 - bne .L3345 + bne .L3436 ldr w2, [x29,60] cmp w2, 504 - bhi .L3345 + bhi .L3436 mov w0, 30225 add w2, w2, 8 movk w0, 0x4004, lsl 16 cmp w19, w0 adrp x19, .LANCHOR5 add x19, x19, :lo12:.LANCHOR5 - bne .L3364 + bne .L3455 ldr x0, [x19,544] add x1, x29, 56 bl memcpy mov w0, 2 ldr x1, [x19,544] - b .L3400 -.L3364: + b .L3491 +.L3455: ldr x0, [x19,552] add x1, x29, 56 bl memcpy ldr x1, [x19,552] mov w0, 3 -.L3400: +.L3491: bl StorageSysDataStore uxtw x19, w0 - b .L3329 -.L3399: + b .L3420 +.L3490: mov x19, 0 -.L3329: - adrp x0, .LC200 +.L3420: + adrp x0, .LC201 mov x1, x19 - add x0, x0, :lo12:.LC200 + add x0, x0, :lo12:.LC201 bl printk mov x0, x19 - b .L3302 -.L3365: + b .L3393 +.L3456: mov x0, -22 -.L3302: +.L3393: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x29, x30, [sp], 48 @@ -22467,25 +22833,25 @@ rk_ftl_storage_sys_init: ldr w0, [x21,16] ldr w22, [x21,508] str w0, [x19,12] - cbz w22, .L3414 + cbz w22, .L3505 mov x0, x21 mov w1, 508 - bl JSHash + bl js_hash cmp w22, w0 - beq .L3414 - adrp x0, .LC201 + beq .L3505 + adrp x0, .LC202 str wzr, [x21,16] - add x0, x0, :lo12:.LC201 + add x0, x0, :lo12:.LC202 str wzr, [x19,12] bl printk -.L3414: +.L3505: add x0, x20, :lo12:.LANCHOR5 ldr w1, [x0,12] - cbz w1, .L3415 + cbz w1, .L3506 mov w1, 5161 movk w1, 0xc059, lsl 16 str w1, [x0,8] -.L3415: +.L3506: add x20, x20, :lo12:.LANCHOR5 mov w0, 2 ldr x1, [x20,544] @@ -22521,19 +22887,19 @@ rk_ftl_vendor_storage_init: add x1, x21, :lo12:.LANCHOR5 mov w19, -12 str x0, [x1,560] - cbz x0, .L3424 + cbz x0, .L3515 mov w23, 0 - adrp x24, .LC202 + adrp x24, .LC203 mov w19, w23 mov w22, w23 - add x24, x24, :lo12:.LC202 -.L3428: + add x24, x24, :lo12:.LC203 +.L3519: add x20, x21, :lo12:.LANCHOR5 lsl w0, w22, 7 mov w1, 128 ldr x2, [x20,560] bl FlashBootVendorRead - cbnz w0, .L3425 + cbnz w0, .L3516 ldr x3, [x20,560] mov x0, x24 add x2, x3, 61440 @@ -22546,29 +22912,29 @@ rk_ftl_vendor_storage_init: movk w0, 0x524b, lsl 16 ldr w1, [x20] cmp w1, w0 - bne .L3426 + bne .L3517 ldr w0, [x20,4] cmp w19, w0 - bcs .L3426 + bcs .L3517 add x1, x20, 61440 ldr w1, [x1,4092] cmp w1, w0 csel w23, w23, w22, ne csel w19, w19, w0, ne -.L3426: - cbnz w22, .L3436 +.L3517: + cbnz w22, .L3527 mov w22, 1 - b .L3428 -.L3436: - cbz w19, .L3429 + b .L3519 +.L3527: + cbz w19, .L3520 lsl w0, w23, 7 mov w1, 128 mov x2, x20 bl FlashBootVendorRead mov w19, w0 - cbz w0, .L3424 - b .L3425 -.L3429: + cbz w0, .L3515 + b .L3516 +.L3520: mov x0, x20 mov w1, w19 mov x2, 65536 @@ -22582,14 +22948,14 @@ rk_ftl_vendor_storage_init: mov w0, -1032 strh w19, [x20,12] strh w0, [x20,14] - b .L3424 -.L3425: + b .L3515 +.L3516: add x21, x21, :lo12:.LANCHOR5 mov w19, -1 ldr x0, [x21,560] bl kfree str xzr, [x21,560] -.L3424: +.L3515: mov w0, w19 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -22607,18 +22973,18 @@ rk_ftl_vendor_read: ldr x5, [x3,#:lo12:.LANCHOR5+560] mov w3, -1 str x19, [sp,16] - cbz x5, .L3438 + cbz x5, .L3529 ldrh w3, [x5,10] mov x4, 0 -.L3439: +.L3530: cmp w4, w3 mov w6, w4 - bcs .L3443 + bcs .L3534 add x7, x5, x4, lsl 3 add x4, x4, 1 ldrh w7, [x7,16] cmp w7, w0 - bne .L3439 + bne .L3530 add x6, x5, x6, uxtw 3 ldrh w4, [x6,20] mov x0, x1 @@ -22630,10 +22996,10 @@ rk_ftl_vendor_read: uxtw x2, w19 bl memcpy mov w3, w19 - b .L3438 -.L3443: + b .L3529 +.L3534: mov w3, -1 -.L3438: +.L3529: mov w0, w3 ldr x19, [sp,16] ldp x29, x30, [sp], 32 @@ -22656,38 +23022,38 @@ rk_ftl_vendor_write: mov w26, w2 mov x28, x1 mov w2, -1 - cbz x19, .L3445 + cbz x19, .L3536 add w20, w26, 63 ldrh w3, [x19,10] ldrh w23, [x19,8] and w20, w20, -64 mov x2, 0 -.L3446: +.L3537: cmp w2, w3 mov w4, w2 - bcs .L3461 + bcs .L3552 add x0, x19, x2, lsl 3 add x2, x2, 1 ldrh w0, [x0,16] cmp w0, w6 - bne .L3446 + bne .L3537 add x21, x19, x4, uxtw 3 ldrh w24, [x21,20] add x5, x19, 1024 add w24, w24, 63 and w24, w24, -64 cmp w26, w24 - bls .L3447 + bls .L3538 ldrh w0, [x19,14] mov w2, -1 cmp w0, w20 - bcc .L3445 + bcc .L3536 ldrh w21, [x21,18] add w22, w3, w2 -.L3448: +.L3539: cmp w4, w22 uxtw x3, w4 - bcs .L3462 + bcs .L3553 add x3, x19, x3, lsl 3 add w25, w4, 1 add x1, x19, x25, uxtw 3 @@ -22710,8 +23076,8 @@ rk_ftl_vendor_write: mov w4, w25 ldr x6, [x29,96] ldr x5, [x29,104] - b .L3448 -.L3462: + b .L3539 +.L3553: add x3, x19, x3, lsl 3 uxth w21, w21 mov x1, x28 @@ -22728,20 +23094,20 @@ rk_ftl_vendor_write: add w24, w24, w0 sub w24, w24, w20 strh w24, [x19,14] - b .L3460 -.L3447: + b .L3551 +.L3538: ldrh w0, [x21,18] mov x1, x28 uxtw x2, w26 add x0, x5, x0 bl memcpy strh w26, [x21,20] - b .L3460 -.L3461: + b .L3551 +.L3552: ldrh w4, [x19,14] mov w2, -1 cmp w4, w20 - bcc .L3445 + bcc .L3536 add x3, x19, x3, uxth 3 strh w6, [x3,16] uxth w20, w20 @@ -22761,7 +23127,7 @@ rk_ftl_vendor_write: ldrh w0, [x19,10] add w0, w0, 1 strh w0, [x19,10] -.L3460: +.L3551: ldr w0, [x19,4] add x1, x19, 61440 mov x2, x19 @@ -22778,7 +23144,7 @@ rk_ftl_vendor_write: lsl w0, w23, 7 bl FlashBootVendorWrite mov w2, 0 -.L3445: +.L3536: mov w0, w2 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -22802,37 +23168,37 @@ rk_ftl_vendor_storage_ioctl: mov x21, x2 bl ftl_malloc mov x19, x0 - cbz x0, .L3464 + cbz x0, .L3555 mov w2, 30209 ldr x1, [x29,56] movk w2, 0x4004, lsl 16 cmp w1, w2 - beq .L3466 + beq .L3557 mov w2, 30210 movk w2, 0x4004, lsl 16 cmp w1, w2 - beq .L3467 - b .L3478 -.L3466: + beq .L3558 + b .L3569 +.L3557: mov x1, x21 mov x2, 8 bl rk_copy_from_user - cbnz x0, .L3478 + cbnz x0, .L3569 ldr w1, [x19] mov w0, 17745 movk w0, 0x5652, lsl 16 cmp w1, w0 - beq .L3469 -.L3470: + beq .L3560 +.L3561: mov x20, -1 - b .L3465 -.L3469: + b .L3556 +.L3560: ldrh w0, [x19,4] add x1, x19, 8 ldrh w2, [x19,6] bl rk_ftl_vendor_read cmn w0, #1 - beq .L3470 + beq .L3561 uxth x2, w0 strh w0, [x19,6] mov x1, x19 @@ -22842,38 +23208,38 @@ rk_ftl_vendor_storage_ioctl: bl rk_copy_to_user cmp x0, xzr csel x20, xzr, x20, eq - b .L3465 -.L3467: + b .L3556 +.L3558: mov x1, x21 mov x2, 8 bl rk_copy_from_user - cbnz x0, .L3478 + cbnz x0, .L3569 ldr w1, [x19] mov w0, 17745 movk w0, 0x5652, lsl 16 cmp w1, w0 - bne .L3470 + bne .L3561 ldrh w3, [x19,6] cmp w3, 4087 - bhi .L3470 + bhi .L3561 add w2, w3, 8 mov x0, x19 mov x1, x21 sxtw x2, w2 bl rk_copy_from_user - cbnz x0, .L3478 + cbnz x0, .L3569 ldrh w0, [x19,4] add x1, x19, 8 ldrh w2, [x19,6] bl rk_ftl_vendor_write sxtw x20, w0 - b .L3465 -.L3478: + b .L3556 +.L3569: mov x20, -14 -.L3465: +.L3556: mov x0, x19 bl kfree -.L3464: +.L3555: mov x0, x20 ldr x21, [sp,32] ldp x19, x20, [sp,16] @@ -23061,7 +23427,6 @@ rk_ftl_vendor_storage_ioctl: .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 @@ -23078,6 +23443,7 @@ rk_ftl_vendor_storage_ioctl: .global gNandcVer .global gNandChipMap .global gNandIDataBuf + .global idb_flash_slc_mode .global FlashDdrTunningReadCount .global FlashWaitBusyScheduleEn .global gNandPhyInfo @@ -23125,32 +23491,32 @@ rk_ftl_vendor_storage_ioctl: .section .rodata .align 3 .LANCHOR3 = . + 0 - .type __func__.19528, %object - .size __func__.19528, 11 -__func__.19528: + .type __func__.19586, %object + .size __func__.19586, 11 +__func__.19586: .string "FtlMemInit" .zero 5 - .type __func__.20301, %object - .size __func__.20301, 17 -__func__.20301: + .type __func__.20360, %object + .size __func__.20360, 17 +__func__.20360: .string "FtlDumpBlockInfo" .zero 7 - .type __func__.20320, %object - .size __func__.20320, 16 -__func__.20320: + .type __func__.20379, %object + .size __func__.20379, 16 +__func__.20379: .string "FtlScanAllBlock" - .type __func__.20568, %object - .size __func__.20568, 21 -__func__.20568: + .type __func__.20627, %object + .size __func__.20627, 21 +__func__.20627: .string "FtlVpcCheckAndModify" .zero 3 - .type __func__.19601, %object - .size __func__.19601, 8 -__func__.19601: + .type __func__.19659, %object + .size __func__.19659, 8 +__func__.19659: .string "FtlInit" - .type __func__.20269, %object - .size __func__.20269, 12 -__func__.20269: + .type __func__.20328, %object + .size __func__.20328, 12 +__func__.20328: .string "FtlCheckVpc" .section .rodata.str1.1,"aMS",%progbits,1 .LC0: @@ -23306,7 +23672,7 @@ __func__.20269: .LC75: .string "%s\n" .LC76: - .string "FTL version: 5.0.50 20180905" + .string "FTL version: 5.0.53 20190107" .LC77: .string "swblk %x ,avg = %x max= %x vpc= %x,ec=%x ,max ec=%x\n" .LC78: @@ -23380,184 +23746,186 @@ __func__.20269: .LC112: .string "slc id = %x,%x addr= %x,spare= %x %x %x %x data=%x %x\n" .LC113: - .string "FtlGcScanTempBlkError ID %x %x!!!!!!!\n" -.LC114: .string "FlashMakeFactorBbt %d\n" -.LC115: +.LC114: .string "bad block:%d %d\n" -.LC116: +.LC115: .string "FMFB:%d %d\n" -.LC117: +.LC116: .string "E:bad block:%d\n" -.LC118: +.LC117: .string "FMFB:Save %d %d\n" -.LC119: +.LC118: .string "FtlBbmTblFlush id=%x,page=%x,previd=%x cnt=%d\n" -.LC120: +.LC119: .string "FtlBbmTblFlush error:%x\n" -.LC121: +.LC120: .string "FtlBbmTblFlush error = %x error count = %d\n" -.LC122: +.LC121: .string "FtlGcFreeBadSuperBlk 0x%x\n" -.LC123: +.LC122: .string "decrement_vpc_count %x = %d\n" -.LC124: +.LC123: .string "decrement_vpc_count %x = %d in free list\n" -.LC125: +.LC124: .string "FtlVpcTblFlush error = %x error count = %d\n" -.LC126: +.LC125: .string "page map lost: %x %x\n" -.LC127: +.LC126: .string "FtlMapWritePage error = %x\n" -.LC128: +.LC127: .string "FtlMapWritePage error = %x error count = %d\n" -.LC129: +.LC128: .string "FtlVendorPartRead refresh = %x phyAddr = %x\n" -.LC130: +.LC129: .string "no ect" -.LC131: +.LC130: .string "slc mode" -.LC132: +.LC131: .string "BBT:" -.LC133: +.LC132: .string "region_id = %x phyAddr = %x\n" -.LC134: +.LC133: .string "map_ppn:" -.LC135: +.LC134: .string "load_l2p_region refresh = %x phyAddr = %x\n" -.LC136: +.LC135: .string "Ftlscanalldata = %x\n" -.LC137: +.LC136: .string "scan lpa = %x ppa= %x\n" -.LC138: +.LC137: .string "lba = %x,addr= %x,spare= %x %x %x %x data=%x %x\n" -.LC139: +.LC138: .string "RSB refresh addr %x\n" -.LC140: +.LC139: .string "spuer block %x vpn is 0\n " -.LC141: +.LC140: .string "g_recovery_ppa %x ver %x\n " -.LC142: +.LC141: .string "FtlCheckVpc %x = %x %x\n" +.LC142: + .string "FtlGcScanTempBlk Error ID %x %x!!!!!!! \n" .LC143: - .string "GC des block %x done\n" + .string "FtlGcScanTempBlkError ID %x %x!!!!!!!\n" .LC144: - .string "%d GC datablk = %x vpc %x %x\n" + .string "GC des block %x done\n" .LC145: - .string "SWL %x, FSB = %x vpc= %x,ec=%x th=%x\n" + .string "%d GC datablk = %x vpc %x %x\n" .LC146: - .string "g_gc_superblock_free %x %x %x %x %x\n" + .string "SWL %x, FSB = %x vpc= %x,ec=%x th=%x\n" .LC147: - .string "Ftlwrite decrement_vpc_count %x = %d\n" + .string "g_gc_superblock_free %x %x %x %x %x\n" .LC148: - .string "rk_ftl_de_init %x\n" + .string "Ftlwrite decrement_vpc_count %x = %d\n" .LC149: - .string "...%s: no bad block mapping table, format device\n" + .string "rk_ftl_de_init %x\n" .LC150: - .string "...%s FtlSysBlkInit error ,format device!\n" + .string "...%s: no bad block mapping table, format device\n" .LC151: - .string "FtlInit %x\n" + .string "...%s FtlSysBlkInit error ,format device!\n" .LC152: - .string "fix power lost blk = %x vpc=%x\n" + .string "FtlInit %x\n" .LC153: - .string "erase power lost blk = %x vpc=%x\n" + .string "fix power lost blk = %x vpc=%x\n" .LC154: - .string "FtlWrite: lpa error:%x %x\n" + .string "erase power lost blk = %x vpc=%x\n" .LC155: - .string "vpc1" + .string "FtlWrite: lpa error:%x %x\n" .LC156: - .string "vpc2" + .string "vpc1" .LC157: - .string "FtlCheckVpc2 %x = %x %x\n" + .string "vpc2" .LC158: - .string "free blk vpc error %x = %x %x\n" + .string "FtlCheckVpc2 %x = %x %x\n" .LC159: - .string "id = %x,%x addr= %x,spare= %x %x %x %x data = %x\n" + .string "free blk vpc error %x = %x %x\n" .LC160: - .string ":" + .string "id = %x,%x addr= %x,spare= %x %x %x %x data = %x\n" .LC161: - .string "phyBlk = %x,addr= %x,spare= %x %x %x %x data=%x %x\n" + .string ":" .LC162: - .string "Mblk:" + .string "phyBlk = %x,addr= %x,spare= %x %x %x %x data=%x %x\n" .LC163: - .string "L2P:" + .string "Mblk:" .LC164: - .string "L2PC:" + .string "L2P:" .LC165: - .string "IdBlockReadData %x %x\n" + .string "L2PC:" .LC166: - .string "IdBlockReadData %x %x ret= %x\n" + .string "IdBlockReadData %x %x\n" .LC167: - .string "write_idblock fix data %x %x\n" + .string "IdBlockReadData %x %x ret= %x\n" .LC168: - .string "idblk:" + .string "write_idblock fix data %x %x\n" .LC169: - .string "idb reverse %x %x\n" + .string "idblk:" .LC170: - .string "write_idblock totle_sec %x %x %x %x\n" + .string "idb reverse %x %x\n" .LC171: - .string "IDBlockWriteData %x %x\n" + .string "write_idblock totle_sec %x %x %x %x\n" .LC172: - .string "IDBlockWriteData %x %x ret= %x\n" + .string "IDBlockWriteData %x %x\n" .LC173: - .string "write and check error:%d idb=%x,offset=%x,r=%x,w=%x\n" + .string "IDBlockWriteData %x %x ret= %x\n" .LC174: - .string "write" + .string "write and check error:%d idb=%x,offset=%x,r=%x,w=%x\n" .LC175: - .string "read" + .string "write" .LC176: - .string "write_idblock error %d\n" + .string "read" .LC177: - .string "READ_SECTOR_IO\n" + .string "write_idblock error %d\n" .LC178: - .string "rk_copy_from_user error\n" + .string "READ_SECTOR_IO\n" .LC179: - .string "READ_SECTOR_IO %x %x\n" + .string "rk_copy_from_user error\n" .LC180: - .string "rk_copy_to_user error\n" + .string "READ_SECTOR_IO %x %x\n" .LC181: - .string "WRITE_SECTOR_IO\n" + .string "rk_copy_to_user error\n" .LC182: - .string "WRITE_SECTOR_IO %x %x\n" + .string "WRITE_SECTOR_IO\n" .LC183: - .string "END_WRITE_SECTOR_IO\n" + .string "WRITE_SECTOR_IO %x %x\n" .LC184: - .string "END_WRITE_SECTOR_IO %x %x\n" + .string "END_WRITE_SECTOR_IO\n" .LC185: - .string "GET_FLASH_INFO_IO\n" + .string "END_WRITE_SECTOR_IO %x %x\n" .LC186: - .string "GET_BAD_BLOCK_IO\n" + .string "GET_FLASH_INFO_IO\n" .LC187: - .string "GET_LOCK_FLAG_IO\n" + .string "GET_BAD_BLOCK_IO\n" .LC188: - .string "GET_PUBLIC_KEY_IO\n" + .string "GET_LOCK_FLAG_IO\n" .LC189: - .string "RKNAND_GET_DRM_KEY\n" + .string "GET_PUBLIC_KEY_IO\n" .LC190: - .string "RKNAND_STORE_DRM_KEY\n" + .string "RKNAND_GET_DRM_KEY\n" .LC191: - .string "RKNAND_DIASBLE_SECURE_BOOT\n" + .string "RKNAND_STORE_DRM_KEY\n" .LC192: - .string "RKNAND_ENASBLE_SECURE_BOOT\n" + .string "RKNAND_DIASBLE_SECURE_BOOT\n" .LC193: - .string "RKNAND_GET_SN_SECTOR\n" + .string "RKNAND_ENASBLE_SECURE_BOOT\n" .LC194: - .string "RKNAND_LOADER_UNLOCK\n" + .string "RKNAND_GET_SN_SECTOR\n" .LC195: - .string "RKNAND_LOADER_STATUS\n" + .string "RKNAND_LOADER_UNLOCK\n" .LC196: - .string "RKNAND_LOADER_LOCK\n" + .string "RKNAND_LOADER_STATUS\n" .LC197: - .string "LockKey not match %d\n" + .string "RKNAND_LOADER_LOCK\n" .LC198: - .string "RKNAND_GET_VENDOR_SECTOR\n" + .string "LockKey not match %d\n" .LC199: - .string "RKNAND_STORE_VENDOR_SECTOR\n" + .string "RKNAND_GET_VENDOR_SECTOR\n" .LC200: - .string "return ret = %lx\n" + .string "RKNAND_STORE_VENDOR_SECTOR\n" .LC201: - .string "secureBootEn check error\n" + .string "return ret = %lx\n" .LC202: + .string "secureBootEn check error\n" +.LC203: .string "\0013vendor storage %x,%x,%x\n" .data .align 3 @@ -23950,7 +24318,7 @@ gFtlInitStatus: .word -1 .zero 4 .type NandFlashParaTbl, %object - .size NandFlashParaTbl, 2464 + .size NandFlashParaTbl, 2592 NandFlashParaTbl: .byte 6 .byte 44 @@ -24527,6 +24895,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 @@ -24576,6 +24996,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 @@ -24915,6 +25361,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 @@ -25111,7 +25583,7 @@ NandFlashParaTbl: .byte 1 .hword 1024 .hword 455 - .byte 3 + .byte 4 .byte 17 .byte 40 .byte 32 @@ -26398,11 +26870,15 @@ gNandChipMap: .size gNandOptPara, 32 gNandOptPara: .zero 32 - .type gFlashSlcMode, %object - .size gFlashSlcMode, 1 -gFlashSlcMode: + .type g_retryMode, %object + .size g_retryMode, 1 +g_retryMode: .zero 1 - .zero 7 + .type g_maxRegNum, %object + .size g_maxRegNum, 1 +g_maxRegNum: + .zero 1 + .zero 6 .type gpNandc, %object .size gpNandc, 8 gpNandc: @@ -26443,6 +26919,11 @@ NANDC_FMWAIT_SYN: .size gNandPhyInfo, 28 gNandPhyInfo: .zero 28 + .type gFlashSlcMode, %object + .size gFlashSlcMode, 1 +gFlashSlcMode: + .zero 1 + .zero 3 .type slcPageToMlcPageTbl, %object .size slcPageToMlcPageTbl, 512 slcPageToMlcPageTbl: @@ -26451,23 +26932,15 @@ slcPageToMlcPageTbl: .size DieAddrs, 32 DieAddrs: .zero 32 - .type FlashWaitBusyScheduleEn, %object - .size FlashWaitBusyScheduleEn, 4 -FlashWaitBusyScheduleEn: - .zero 4 .type gpNandParaInfo, %object .size gpNandParaInfo, 8 gpNandParaInfo: .zero 8 - .type g_retryMode, %object - .size g_retryMode, 1 -g_retryMode: - .zero 1 - .type g_maxRegNum, %object - .size g_maxRegNum, 1 -g_maxRegNum: - .zero 1 - .zero 6 + .type FlashWaitBusyScheduleEn, %object + .size FlashWaitBusyScheduleEn, 4 +FlashWaitBusyScheduleEn: + .zero 4 + .zero 4 .type gReadRetryInfo, %object .size gReadRetryInfo, 852 gReadRetryInfo: @@ -26498,9 +26971,9 @@ gNandMaxDie: .size DieCsIndex, 8 DieCsIndex: .zero 8 - .type g_nandc_version_data, %object - .size g_nandc_version_data, 4 -g_nandc_version_data: + .type idb_flash_slc_mode, %object + .size idb_flash_slc_mode, 4 +idb_flash_slc_mode: .zero 4 .type gFlashToggleModeEn, %object .size gFlashToggleModeEn, 1 @@ -26515,6 +26988,11 @@ gBootDdrMode: .size gNandcVer, 4 gNandcVer: .zero 4 + .type g_nandc_version_data, %object + .size g_nandc_version_data, 4 +g_nandc_version_data: + .zero 4 + .zero 4 .type gMasterTempBuf, %object .size gMasterTempBuf, 8 gMasterTempBuf: @@ -26606,10 +27084,6 @@ c_ftl_vendor_part_size: .size c_ftl_nand_blks_per_die, 2 c_ftl_nand_blks_per_die: .zero 2 - .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 .type c_ftl_nand_page_pre_blk, %object .size c_ftl_nand_page_pre_blk, 2 c_ftl_nand_page_pre_blk: @@ -26642,7 +27116,6 @@ c_ftl_nand_byte_pre_oob: .size c_ftl_nand_reserved_blks, 2 c_ftl_nand_reserved_blks: .zero 2 - .zero 2 .type DeviceCapacity, %object .size DeviceCapacity, 4 DeviceCapacity: @@ -26688,7 +27161,6 @@ g_page_map_check_enable: .size g_totle_vendor_block, 2 g_totle_vendor_block: .zero 2 - .zero 4 .type p_vendor_block_table, %object .size p_vendor_block_table, 8 p_vendor_block_table: @@ -26861,10 +27333,9 @@ c_ftl_nand_data_op_blks_per_plane: .zero 2 .zero 2 .type gSysInfo, %object - .size gSysInfo, 12 + .size gSysInfo, 16 gSysInfo: - .zero 12 - .zero 4 + .zero 16 .type g_gc_superblock, %object .size g_gc_superblock, 48 g_gc_superblock: diff --git a/drivers/rk_nand/rk_ftlv5_arm64.S b/drivers/rk_nand/rk_ftlv5_arm64.S index 2e4a3c3db025..227a006fb246 100644 --- a/drivers/rk_nand/rk_ftlv5_arm64.S +++ b/drivers/rk_nand/rk_ftlv5_arm64.S @@ -5,14 +5,13 @@ * 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 * function: rk ftl v5 for rockchip soc base on arm v8 to support MLC NAND. */ .cpu generic+fp+simd - .file "rk_ftlv5_arm_v8.S" + .file "rk_ftlv5_arm_v8.c" #APP - .irp num,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17\ - ,18,19,20,21,22,23,24,25,26,27,28,29,30 + .irp num,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30 .equ .L__reg_num_x\num, \num .endr .equ .L__reg_num_xzr, 31 @@ -192,6 +191,25 @@ FlashSetRandomizer: ret .size FlashSetRandomizer, .-FlashSetRandomizer .align 2 + .global FlashBlockAlignInit + .type FlashBlockAlignInit, %function +FlashBlockAlignInit: + uxth w0, w0 + adrp x1, .LANCHOR0 + cmp w0, 256 + add x1, x1, :lo12:.LANCHOR0 + bls .L35 + mov w0, 512 + b .L38 +.L35: + cmp w0, 128 + bls .L38 + mov w0, 256 +.L38: + str w0, [x1,28] + ret + .size FlashBlockAlignInit, .-FlashBlockAlignInit + .align 2 .global FlashReadCmd .type FlashReadCmd, %function FlashReadCmd: @@ -241,7 +259,7 @@ FlashReadDpDataOutCmd: ldrb w2, [x5,8] and w5, w1, 255 add x2, x6, x2, lsl 8 - bne .L36 + bne .L41 mov w6, 6 str w6, [x2,2056] str wzr, [x2,2052] @@ -249,8 +267,8 @@ FlashReadDpDataOutCmd: str w5, [x2,2052] str w4, [x2,2052] str w3, [x2,2052] - b .L38 -.L36: + b .L43 +.L41: str wzr, [x2,2056] str wzr, [x2,2052] str wzr, [x2,2052] @@ -261,7 +279,7 @@ FlashReadDpDataOutCmd: str w3, [x2,2056] str wzr, [x2,2052] str wzr, [x2,2052] -.L38: +.L43: mov w3, 224 str w3, [x2,2056] bl FlashSetRandomizer @@ -269,48 +287,6 @@ FlashReadDpDataOutCmd: ret .size FlashReadDpDataOutCmd, .-FlashReadDpDataOutCmd .align 2 - .global flash_enter_slc_mode - .type flash_enter_slc_mode, %function -flash_enter_slc_mode: - adrp x1, .LANCHOR0 - uxtb w0, w0 - add x1, x1, :lo12:.LANCHOR0 - ldrb w2, [x1,136] - cbz w2, .L39 - sbfiz x0, x0, 4, 32 - add x1, x1, 40 - 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] -.L39: - ret - .size flash_enter_slc_mode, .-flash_enter_slc_mode - .align 2 - .global flash_exit_slc_mode - .type flash_exit_slc_mode, %function -flash_exit_slc_mode: - adrp x1, .LANCHOR0 - uxtb w0, w0 - add x1, x1, :lo12:.LANCHOR0 - ldrb w2, [x1,136] - cbz w2, .L44 - sbfiz x0, x0, 4, 32 - add x1, x1, 40 - 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] -.L44: - ret - .size flash_exit_slc_mode, .-flash_exit_slc_mode - .align 2 .global FlashProgFirstCmd .type FlashProgFirstCmd, %function FlashProgFirstCmd: @@ -350,7 +326,7 @@ FlashEraseCmd: add x5, x4, x0 ldr x4, [x4,x0] ldrb w0, [x5,8] - cbz w2, .L51 + cbz w2, .L46 add x2, x4, x0, lsl 8 mov w5, 96 str w5, [x2,2056] @@ -362,7 +338,7 @@ FlashEraseCmd: str w5, [x2,2052] ldr w2, [x3,28] add w1, w1, w2 -.L51: +.L46: add x0, x4, x0, lsl 8 mov w2, 96 str w2, [x0,2056] @@ -440,26 +416,50 @@ FlashProgDpFirstCmd: ret .size FlashProgDpFirstCmd, .-FlashProgDpFirstCmd .align 2 - .global JSHash - .type JSHash, %function -JSHash: + .global FlashReadStatus + .type FlashReadStatus, %function +FlashReadStatus: + adrp x1, .LANCHOR0 + ubfiz x0, x0, 4, 8 + stp x29, x30, [sp, -32]! + add x1, x1, :lo12:.LANCHOR0 + add x1, x1, 40 + add x29, sp, 0 + add x2, x1, x0 + str x19, [sp,16] + ldrb w2, [x2,8] + ldr x19, [x1,x0] + mov w0, 112 + add x19, x19, x2, lsl 8 + str w0, [x19,2056] + mov x0, 400 + bl __const_udelay + ldr w0, [x19,2048] + ldr x19, [sp,16] + ldp x29, x30, [sp], 32 + ret + .size FlashReadStatus, .-FlashReadStatus + .align 2 + .global js_hash + .type js_hash, %function +js_hash: mov x5, x0 mov w0, 42982 mov x2, 0 movk w0, 0x47c6, lsl 16 -.L59: +.L55: cmp w1, w2 - bls .L61 + bls .L57 lsl w3, w0, 5 ldrb w4, [x5,x2] add w3, w3, w0, lsr 2 add x2, x2, 1 add w3, w3, w4 eor w0, w0, w3 - b .L59 -.L61: + b .L55 +.L57: ret - .size JSHash, .-JSHash + .size js_hash, .-js_hash .align 2 .global FlashLoadIdbInfo .type FlashLoadIdbInfo, %function @@ -471,65 +471,63 @@ FlashLoadIdbInfo: .global BuildFlashLsbPageTable .type BuildFlashLsbPageTable, %function BuildFlashLsbPageTable: - stp x29, x30, [sp, -48]! + stp x29, x30, [sp, -32]! adrp x2, .LANCHOR0 add x29, sp, 0 stp x19, x20, [sp,16] - str x21, [sp,32] - mov w19, w1 - cbnz w0, .L64 + mov w20, w1 + cbnz w0, .L60 mov x0, 0 add x3, x2, :lo12:.LANCHOR0 -.L65: - add x1, x3, 140 +.L61: + add x1, x3, 136 strh w0, [x1,x0,lsl 1] add x0, x0, 1 cmp x0, 256 - bne .L65 -.L71: - add x20, x2, :lo12:.LANCHOR0 + bne .L61 +.L67: + add x19, x2, :lo12:.LANCHOR0 mov w1, 255 - add x21, x20, 652 mov w2, 1024 - mov x0, x21 - uxth w19, w19 + add x0, x19, 648 + uxth w20, w20 bl ftl_memset - mov x1, 0 - mov x2, x20 - b .L66 -.L64: + mov x0, 0 + mov x2, x19 + b .L62 +.L60: cmp w0, 1 - bne .L67 + bne .L63 mov x0, 0 mov w5, 3 mov w6, 2 add x4, x2, :lo12:.LANCHOR0 -.L70: +.L66: cmp x0, 3 uxth w1, w0 mov w3, w1 - bls .L68 + bls .L64 ubfiz w3, w1, 1, 15 and w1, w1, 1 cmp w1, wzr csel w1, w5, w6, ne sub w3, w3, w1 uxth w3, w3 -.L68: - add x1, x4, 140 +.L64: + add x1, x4, 136 strh w3, [x1,x0,lsl 1] add x0, x0, 1 cmp x0, 256 - bne .L70 - b .L71 -.L67: + bne .L66 + b .L67 +.L63: cmp w0, 2 - bne .L72 + bne .L68 mov w1, 65535 mov x0, 0 add x5, x2, :lo12:.LANCHOR0 -.L74: - add x4, x5, 140 +.L70: + add x4, x5, 136 cmp x0, 1 uxth w3, w0 csel w3, w1, w3, hi @@ -538,43 +536,43 @@ BuildFlashLsbPageTable: add x0, x0, 1 cmp x0, 256 uxth w1, w1 - bne .L74 - b .L71 -.L72: + bne .L70 + b .L67 +.L68: cmp w0, 3 - bne .L75 + bne .L71 mov x0, 0 - mov w6, 5 - mov w7, 4 - add x5, x2, :lo12:.LANCHOR0 -.L78: + mov w5, 5 + mov w6, 4 + add x4, x2, :lo12:.LANCHOR0 +.L74: cmp x0, 5 - uxth w4, w0 - mov w3, w4 - bls .L76 - ubfiz w3, w4, 1, 15 - and w4, w4, 1 - cmp w4, wzr - csel w1, w6, w7, ne + uxth w1, w0 + mov w3, w1 + bls .L72 + ubfiz w3, w1, 1, 15 + and w1, w1, 1 + cmp w1, wzr + csel w1, w5, w6, ne sub w3, w3, w1 uxth w3, w3 -.L76: - add x1, x5, 140 +.L72: + add x1, x4, 136 strh w3, [x1,x0,lsl 1] add x0, x0, 1 cmp x0, 256 - bne .L78 - b .L71 -.L75: + bne .L74 + b .L67 +.L71: cmp w0, 4 - bne .L79 + bne .L75 add x1, x2, :lo12:.LANCHOR0 mov w6, 7 - add x3, x1, 140 + add x3, x1, 136 mov w5, 6 strh w0, [x3,8] mov w0, 5 - strh wzr, [x1,140] + strh wzr, [x1,136] mov w1, 1 strh w0, [x3,10] mov w0, 7 @@ -587,7 +585,7 @@ BuildFlashLsbPageTable: strh w0, [x3,14] mov w0, 8 strh w1, [x3,6] -.L81: +.L77: and w4, w0, 1 ubfiz w1, w0, 1, 15 add w0, w0, 1 @@ -598,40 +596,40 @@ BuildFlashLsbPageTable: sub w1, w1, w4 cmp w0, 256 strh w1, [x3,14] - bne .L81 - b .L71 -.L79: + bne .L77 + b .L67 +.L75: cmp w0, 5 - bne .L82 + bne .L78 mov x0, 0 add x3, x2, :lo12:.LANCHOR0 -.L83: - add x1, x3, 140 +.L79: + add x1, x3, 136 strh w0, [x1,x0,lsl 1] add x0, x0, 1 cmp x0, 16 - bne .L83 + bne .L79 mov x0, 0 -.L84: +.L80: add x3, x1, x0 add w4, w0, 16 add x0, x0, 2 cmp x0, 480 strh w4, [x3,32] - bne .L84 - b .L71 -.L82: + bne .L80 + b .L67 +.L78: cmp w0, 6 - bne .L71 + bne .L81 mov x3, 0 mov w6, 12 mov w7, 10 add x5, x2, :lo12:.LANCHOR0 -.L87: +.L84: cmp x3, 5 uxth w4, w3 mov w0, w4 - bls .L85 + bls .L82 add w0, w4, w4, lsl 1 and w4, w4, 1 cmp w4, wzr @@ -639,25 +637,44 @@ BuildFlashLsbPageTable: csel w1, w6, w7, ne sub w0, w0, w1 uxth w0, w0 -.L85: - add x1, x5, 140 +.L82: + add x1, x5, 136 strh w0, [x1,x3,lsl 1] add x3, x3, 1 cmp x3, 256 - bne .L87 - b .L71 -.L66: - cmp w19, w1, uxth - bls .L105 - add x0, x2, 140 - ldrh w0, [x0,x1,lsl 1] - add x1, x1, 1 - strh w0, [x21,w0,sxtw 1] - b .L66 -.L105: + bne .L84 + b .L67 +.L81: + cmp w0, 9 + bne .L67 + add x0, x2, :lo12:.LANCHOR0 + add x3, x0, 136 + strh wzr, [x0,136] + mov w0, 1 + strh w0, [x3,2] + mov w0, 2 + strh w0, [x3,4] + mov x0, 0 +.L85: + add x1, x3, x0 + add w4, w0, 3 + add x0, x0, 2 + cmp x0, 506 + strh w4, [x1,6] + bne .L85 + b .L67 +.L62: + cmp w20, w0, uxth + bls .L104 + add x1, x2, 136 + add x3, x2, 648 + ldrh w1, [x1,x0,lsl 1] + add x0, x0, 1 + strh w1, [x3,w1,sxtw 1] + b .L62 +.L104: ldp x19, x20, [sp,16] - ldr x21, [sp,32] - ldp x29, x30, [sp], 48 + ldp x29, x30, [sp], 32 ret .size BuildFlashLsbPageTable, .-BuildFlashLsbPageTable .align 2 @@ -667,120 +684,216 @@ FlashPrintInfo: ret .size FlashPrintInfo, .-FlashPrintInfo .align 2 + .global ToshibaSetRRPara + .type ToshibaSetRRPara, %function +ToshibaSetRRPara: + uxtb w1, w1 + mov w3, 5 + add w2, w1, 1 + stp x29, x30, [sp, -80]! + smull x3, w2, w3 + adrp x2, .LANCHOR1 + add x29, sp, 0 + add x2, x2, :lo12:.LANCHOR1 + stp x21, x22, [sp,32] + stp x23, x24, [sp,48] + add x23, x2, x1, sxtw + stp x25, x26, [sp,64] + add x21, x2, 304 + add x25, x2, 256 + adrp x24, g_maxRegNum + adrp x26, g_retryMode + stp x19, x20, [sp,16] + mov x22, x0 + add x25, x25, x3 + add x21, x21, x3 + mov x20, 0 + add x24, x24, :lo12:g_maxRegNum + mov x19, x2 + add x26, x26, :lo12:g_retryMode +.L107: + ldrb w0, [x24] + cmp w0, w20 + bls .L113 + mov w0, 85 + str w0, [x22,8] + add x0, x19, 256 + ldrsb w0, [x20,x0] + str w0, [x22,4] + mov x0, 1000 + bl __const_udelay + ldrb w0, [x26] + cmp w0, 34 + bne .L108 + ldrsb w0, [x25,x20] + b .L112 +.L108: + cmp w0, 35 + bne .L110 + ldrsb w0, [x21,x20] + b .L112 +.L110: + ldrsb w0, [x23,400] +.L112: + str w0, [x22] + add x20, x20, 1 + b .L107 +.L113: + ldp x19, x20, [sp,16] + ldp x21, x22, [sp,32] + ldp x23, x24, [sp,48] + ldp x25, x26, [sp,64] + ldp x29, x30, [sp], 80 + ret + .size ToshibaSetRRPara, .-ToshibaSetRRPara + .align 2 + .global SamsungSetRRPara + .type SamsungSetRRPara, %function +SamsungSetRRPara: + stp x29, x30, [sp, -64]! + adrp x2, .LANCHOR1 + add x29, sp, 0 + stp x21, x22, [sp,32] + add x2, x2, :lo12:.LANCHOR1 + adrp x22, g_maxRegNum + stp x19, x20, [sp,16] + add x1, x2, x1, uxtb 2 + stp x23, x24, [sp,48] + mov x21, x0 + add x23, x1, 412 + mov x20, 0 + add x22, x22, :lo12:g_maxRegNum + mov w24, 161 + mov x19, x2 +.L115: + ldrb w0, [x22] + cmp w0, w20 + bls .L117 + str w24, [x21,8] + add x0, x19, 408 + str wzr, [x21] + ldrsb w0, [x20,x0] + str w0, [x21] + ldrsb w0, [x23,x20] + add x20, x20, 1 + str w0, [x21] + mov x0, 1500 + bl __const_udelay + b .L115 +.L117: + ldp x19, x20, [sp,16] + ldp x21, x22, [sp,32] + ldp x23, x24, [sp,48] + ldp x29, x30, [sp], 64 + ret + .size SamsungSetRRPara, .-SamsungSetRRPara + .align 2 .global FlashDieInfoInit .type FlashDieInfoInit, %function FlashDieInfoInit: - stp x29, x30, [sp, -80]! - adrp x1, .LANCHOR1+266 + stp x29, x30, [sp, -96]! + adrp x0, .LANCHOR1+482 add x29, sp, 0 stp x21, x22, [sp,32] adrp x21, .LANCHOR0 - ldrh w1, [x1,#:lo12:.LANCHOR1+266] - add x0, x21, :lo12:.LANCHOR0 - str x25, [sp,64] + ldrh w0, [x0,#:lo12:.LANCHOR1+482] stp x19, x20, [sp,16] - stp x23, x24, [sp,48] - strb wzr, [x0,1676] - cmp w1, 256 - strb wzr, [x0,1677] - bls .L108 - mov w1, 512 - b .L124 -.L108: - cmp w1, 128 - bls .L124 - mov w1, 256 -.L124: add x19, x21, :lo12:.LANCHOR0 - str w1, [x0,28] - mov w2, 8 + str x27, [sp,80] + stp x23, x24, [sp,48] + stp x25, x26, [sp,64] + strb wzr, [x19,1672] + add x25, x19, 1676 + strb wzr, [x19,1673] + bl FlashBlockAlignInit mov w1, 0 - add x0, x19, 1680 - adrp x24, IDByte + mov w2, 8 + mov x0, x25 + add x24, x19, 1684 + adrp x26, IDByte mov x23, 0 - add x24, x24, :lo12:IDByte bl ftl_memset + add x26, x26, :lo12:IDByte mov w1, 0 mov w2, 32 - add x0, x19, 1688 + mov x0, x24 bl ftl_memset - add x0, x19, 1720 + add x0, x19, 1716 mov w1, 0 mov w2, 192 bl ftl_memset ldr x20, [x19,1912] add x22, x20, 1 -.L112: +.L120: ldrb w2, [x20] mov x0, x22 - add x1, x24, x23, lsl 3 + add x1, x26, x23, lsl 3 bl FlashMemCmp8 - cbnz w0, .L111 - ldrb w1, [x19,1676] - add x2, x19, 1688 - str w0, [x2,w1,sxtw 2] + cbnz w0, .L119 + ldrb w1, [x19,1672] + str w0, [x24,w1,sxtw 2] add w0, w1, 1 - add x1, x19, x1, sxtw - strb w0, [x19,1676] - strb w23, [x1,1680] -.L111: + strb w23, [x25,w1,sxtw] + strb w0, [x19,1672] +.L119: add x23, x23, 1 cmp x23, 4 - bne .L112 + bne .L120 add x19, x21, :lo12:.LANCHOR0 - ldrb w0, [x19,1676] - strb w0, [x19,1677] + ldrb w0, [x19,1672] + strb w0, [x19,1673] ldrb w0, [x20,8] cmp w0, 2 - beq .L113 -.L117: + beq .L121 +.L125: add x21, x21, :lo12:.LANCHOR0 ldrb w1, [x20,13] ldp x23, x24, [sp,48] - ldr x25, [sp,64] - ldrb w0, [x21,1676] + ldp x25, x26, [sp,64] + ldrb w0, [x21,1672] + ldr x27, [sp,80] mul w0, w0, w1 ldrh w1, [x20,14] ldp x19, x20, [sp,16] mul w0, w0, w1 strh w0, [x21,1920] ldp x21, x22, [sp,32] - ldp x29, x30, [sp], 80 + ldp x29, x30, [sp], 96 ret -.L113: +.L121: adrp x24, IDByte - ldr w25, [x19,28] + ldr w26, [x19,28] mov x23, 0 add x24, x24, :lo12:IDByte -.L116: + add x25, x19, 1684 + add x27, x19, 1676 +.L124: ldrb w2, [x20] mov x0, x22 add x1, x24, x23, lsl 3 bl FlashMemCmp8 - cbnz w0, .L114 + cbnz w0, .L122 ldrb w1, [x20,13] - add x4, x19, 1688 - ldrb w3, [x19,1676] - mul w2, w1, w25 + ldrb w3, [x19,1672] + mul w2, w1, w26 ldrh w1, [x20,14] mov x0, x3 and w1, w1, 65280 mul w1, w2, w1 - str w1, [x4,w3,sxtw 2] + str w1, [x25,w3,sxtw 2] ldrb w2, [x20,23] - cbz w2, .L115 + cbz w2, .L123 lsl w1, w1, 1 - str w1, [x4,w3,sxtw 2] -.L115: + str w1, [x25,w3,sxtw 2] +.L123: add w0, w0, 1 - strb w0, [x19,1676] - add x0, x19, x3 - strb w23, [x0,1680] -.L114: + strb w23, [x27,x3] + strb w0, [x19,1672] +.L122: add x23, x23, 1 cmp x23, 4 - bne .L116 - b .L117 + bne .L124 + b .L125 .size FlashDieInfoInit, .-FlashDieInfoInit .align 2 .global FlashReadIdbData @@ -804,64 +917,67 @@ FlashLoadPhyInfoInRam: stp x29, x30, [sp, -64]! add x29, sp, 0 stp x19, x20, [sp,16] - adrp x20, .LANCHOR1 + adrp x19, .LANCHOR1 str x23, [sp,48] stp x21, x22, [sp,32] adrp x23, IDByte - add x21, x20, :lo12:.LANCHOR1 - add x21, x21, 288 - mov w19, 0 + add x21, x19, :lo12:.LANCHOR1 + add x21, x21, 504 + mov w20, 0 add x23, x23, :lo12:IDByte -.L130: +.L137: ldrb w2, [x21] add x0, x21, 1 mov x1, x23 bl FlashMemCmp8 mov w22, w0 - cbnz w0, .L127 - add x0, x20, :lo12:.LANCHOR1 - ubfiz x19, x19, 5, 32 - add x1, x0, 288 - adds x19, x1, x19 - beq .L133 - ldrb w3, [x19,22] + cbnz w0, .L134 + add x0, x19, :lo12:.LANCHOR1 + ubfiz x20, x20, 5, 32 + add x1, x0, 504 + adds x20, x1, x20 + beq .L140 + ldrb w3, [x20,22] mov x2, 0 mov x1, x0 - b .L132 -.L127: - add w19, w19, 1 + b .L139 +.L134: + add w20, w20, 1 add x21, x21, 32 - cmp w19, 77 - bne .L130 - b .L133 -.L132: + cmp w20, 81 + bne .L137 + b .L140 +.L139: add x4, x1, x2, lsl 5 mov w0, w2 - ldrb w4, [x4,2752] + ldrb w4, [x4,3096] cmp w4, w3 - beq .L131 + beq .L138 add x2, x2, 1 cmp x2, 4 - bne .L132 + bne .L139 mov w0, w2 -.L131: - add x20, x20, :lo12:.LANCHOR1 +.L138: + add x19, x19, :lo12:.LANCHOR1 ubfiz x1, x0, 5, 32 adrp x0, .LANCHOR0 - add x2, x20, 2752 + add x2, x19, 3096 add x0, x0, :lo12:.LANCHOR0 add x1, x2, x1 add x0, x0, 104 mov w2, 32 + add x19, x19, 472 bl ftl_memcpy - add x0, x20, 256 - mov x1, x19 + mov x0, x19 + mov x1, x20 mov w2, 32 bl ftl_memcpy - b .L128 -.L133: + ldrh w0, [x19,10] + bl FlashBlockAlignInit + b .L135 +.L140: mov w22, -1 -.L128: +.L135: mov w0, w22 ldr x23, [sp,48] ldp x19, x20, [sp,16] @@ -917,33 +1033,119 @@ LogAddr2PhyAddr: udiv w10, w6, w5 msub w5, w10, w5, w6 uxth w6, w5 - bne .L140 + bne .L147 add x1, x7, :lo12:.LANCHOR0 - ldrb w5, [x1,136] - cbnz w5, .L140 - add x1, x1, 140 + ldrb w5, [x1,4044] + cbnz w5, .L147 + add x1, x1, 136 ldrh w8, [x1,w8,sxtw 1] -.L140: +.L147: add x7, x7, :lo12:.LANCHOR0 cmp w4, 1 - add x7, x7, 1688 + add x7, x7, 1684 mov w1, 0 ldr w5, [x7,w10,uxtw 2] madd w5, w6, w9, w5 add w5, w5, w8 str w5, [x2] str w10, [x3] - bls .L141 + bls .L148 ldr w1, [x0,4] ldr w0, [x0,60] add w1, w1, 1024 cmp w1, w0 cset w1, eq -.L141: +.L148: mov w0, w1 ret .size LogAddr2PhyAddr, .-LogAddr2PhyAddr .align 2 + .global FlashReadStatusEN + .type FlashReadStatusEN, %function +FlashReadStatusEN: + stp x29, x30, [sp, -32]! + adrp x3, .LANCHOR0 + ubfiz x0, x0, 4, 8 + add x4, x3, :lo12:.LANCHOR0 + add x29, sp, 0 + add x5, x4, 40 + stp x19, x20, [sp,16] + add x6, x5, x0 + uxtb w2, w2 + ldr x20, [x5,x0] + ldr x0, [x4,1912] + ldrb w19, [x6,8] + ldrb w0, [x0,8] + cmp w0, 2 + bne .L151 + add x4, x4, 104 + cbnz w2, .L152 + ldrb w2, [x4,13] + b .L160 +.L152: + ldrb w2, [x4,14] +.L160: + add x0, x19, 8 + add x3, x3, :lo12:.LANCHOR0 + add x0, x20, x0, lsl 8 + str w2, [x0,8] + mov w2, 0 + ldrb w4, [x3,119] + cbz w4, .L155 + add x3, x19, 8 + lsl x3, x3, 8 +.L159: + cmp w2, w4 + bcs .L155 + add x5, x20, x3 + lsl w0, w2, 3 + lsr w0, w1, w0 + add w2, w2, 1 + and w0, w0, 255 + str w0, [x5,4] + b .L159 +.L151: + add x0, x19, 8 + mov w1, 112 + add x0, x20, x0, lsl 8 + str w1, [x0,8] +.L155: + add x19, x19, 8 + mov x0, 400 + lsl x19, x19, 8 + bl __const_udelay + ldr w0, [x20,x19] + ldp x19, x20, [sp,16] + ldp x29, x30, [sp], 32 + uxtb w0, w0 + ret + .size FlashReadStatusEN, .-FlashReadStatusEN + .align 2 + .global FlashWaitReadyEN + .type FlashWaitReadyEN, %function +FlashWaitReadyEN: + stp x29, x30, [sp, -48]! + add x29, sp, 0 + stp x19, x20, [sp,16] + str x21, [sp,32] + uxtb w19, w0 + mov w20, w1 + uxtb w21, w2 +.L165: + mov w0, w19 + mov w1, w20 + mov w2, w21 + bl FlashReadStatusEN + cmp w0, 255 + mov w3, w0 + beq .L165 + tbz x3, 6, .L165 + ldp x19, x20, [sp,16] + ldr x21, [sp,32] + ldp x29, x30, [sp], 48 + ret + .size FlashWaitReadyEN, .-FlashWaitReadyEN + .align 2 .global ftl_read_flash_info .type ftl_read_flash_info, %function ftl_read_flash_info: @@ -960,35 +1162,35 @@ ftl_read_flash_info: ldr x0, [x1,1912] ldrb w2, [x0,9] ldr w0, [x1,28] + add x1, x1, 1676 mul w0, w0, w2 strh w0, [x19,4] - ldrb w0, [x1,4044] + ldrb w0, [x1,2369] strb w0, [x19,7] - ldr w0, [x1,4048] + ldr w0, [x1,2372] str w0, [x19] - ldr x0, [x1,1912] - ldrb w4, [x1,1676] + ldr x0, [x1,236] + ldrb w4, [x1,-4] ldrb w0, [x0,9] strb w0, [x19,6] mov w0, 32 strb w0, [x19,8] - ldr x0, [x1,1912] + ldr x0, [x1,236] ldrb w0, [x0,7] strb w0, [x19,9] mov x0, 0 strb wzr, [x19,10] -.L144: +.L169: cmp w4, w0, uxtb - bls .L146 - add x2, x1, 1680 - ldrb w3, [x19,10] - ldrb w2, [x0,x2] + bls .L171 + ldrb w2, [x0,x1] add x0, x0, 1 + ldrb w3, [x19,10] lsl w2, w5, w2 orr w2, w2, w3 strb w2, [x19,10] - b .L144 -.L146: + b .L169 +.L171: ldr x19, [sp,16] ldp x29, x30, [sp], 32 ret @@ -1082,7 +1284,7 @@ NandcSetMode: tst w0, 6 ldr x2, [x1,#:lo12:.LANCHOR0+3976] ldr w1, [x2] - beq .L157 + beq .L182 and w0, w0, 4 orr w1, w1, 24576 cmp w0, wzr @@ -1099,10 +1301,10 @@ NandcSetMode: csel w1, w3, w1, ne mov w0, 39 str w0, [x2,308] - b .L159 -.L157: + b .L184 +.L182: and w1, w1, -8193 -.L159: +.L184: str w1, [x2] mov w0, 0 ret @@ -1141,225 +1343,87 @@ NandcFlashDeCs: ret .size NandcFlashDeCs, .-NandcFlashDeCs .align 2 - .global NandcDelayns - .type NandcDelayns, %function -NandcDelayns: - sub sp, sp, #16 - lsr w0, w0, 4 - str w0, [sp,12] -.L165: - ldr w0, [sp,12] - sub w1, w0, #1 - str w1, [sp,12] - cbnz w0, .L165 - add sp, sp, 16 - ret - .size NandcDelayns, .-NandcDelayns - .align 2 - .global FlashReadStatus - .type FlashReadStatus, %function -FlashReadStatus: - adrp x1, .LANCHOR0 - ubfiz x0, x0, 4, 8 - stp x29, x30, [sp, -32]! - add x1, x1, :lo12:.LANCHOR0 - add x1, x1, 40 - add x29, sp, 0 - add x2, x1, x0 - str x19, [sp,16] - ldrb w2, [x2,8] - ldr x19, [x1,x0] - mov w0, 112 - add x19, x19, x2, lsl 8 - str w0, [x19,2056] - mov w0, 80 - bl NandcDelayns - ldr w0, [x19,2048] - ldr x19, [sp,16] - ldp x29, x30, [sp], 32 - ret - .size FlashReadStatus, .-FlashReadStatus - .align 2 - .global ToshibaSetRRPara - .type ToshibaSetRRPara, %function -ToshibaSetRRPara: - uxtb w1, w1 - mov w3, 5 - add w2, w1, 1 - stp x29, x30, [sp, -80]! - smull x3, w2, w3 - adrp x2, .LANCHOR1 - add x29, sp, 0 - add x2, x2, :lo12:.LANCHOR1 - stp x21, x22, [sp,32] - stp x23, x24, [sp,48] - add x23, x2, x1, sxtw - stp x25, x26, [sp,64] - add x21, x2, 2928 - add x25, x2, 2880 - adrp x24, g_maxRegNum - adrp x26, g_retryMode - stp x19, x20, [sp,16] - mov x22, x0 - add x25, x25, x3 - add x21, x21, x3 - mov x20, 0 - add x24, x24, :lo12:g_maxRegNum - mov x19, x2 - add x26, x26, :lo12:g_retryMode -.L169: - ldrb w0, [x24] - cmp w0, w20 - bls .L175 - mov w0, 85 - str w0, [x22,8] - add x0, x19, 2880 - ldrsb w0, [x20,x0] - str w0, [x22,4] - mov w0, 200 - bl NandcDelayns - ldrb w0, [x26] - cmp w0, 34 - bne .L170 - ldrsb w0, [x25,x20] - b .L174 -.L170: - cmp w0, 35 - bne .L172 - ldrsb w0, [x21,x20] - b .L174 -.L172: - ldrsb w0, [x23,3024] -.L174: - str w0, [x22] - add x20, x20, 1 - b .L169 -.L175: - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] - ldp x29, x30, [sp], 80 - ret - .size ToshibaSetRRPara, .-ToshibaSetRRPara - .align 2 - .global SamsungSetRRPara - .type SamsungSetRRPara, %function -SamsungSetRRPara: - stp x29, x30, [sp, -64]! - adrp x2, .LANCHOR1 - add x29, sp, 0 - stp x21, x22, [sp,32] - add x2, x2, :lo12:.LANCHOR1 - adrp x22, g_maxRegNum - stp x19, x20, [sp,16] - add x1, x2, x1, uxtb 2 - stp x23, x24, [sp,48] - mov x21, x0 - add x23, x1, 3036 - mov x20, 0 - add x22, x22, :lo12:g_maxRegNum - mov w24, 161 - mov x19, x2 -.L177: - ldrb w0, [x22] - cmp w0, w20 - bls .L179 - str w24, [x21,8] - add x0, x19, 3032 - str wzr, [x21] - ldrsb w0, [x20,x0] - str w0, [x21] - ldrsb w0, [x23,x20] - add x20, x20, 1 - str w0, [x21] - mov w0, 300 - bl NandcDelayns - b .L177 -.L179: - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x29, x30, [sp], 64 - ret - .size SamsungSetRRPara, .-SamsungSetRRPara - .align 2 .global HynixSetRRPara .type HynixSetRRPara, %function HynixSetRRPara: stp x29, x30, [sp, -80]! add x29, sp, 0 - stp x21, x22, [sp,32] - mov x21, x2 - adrp x2, .LANCHOR0 stp x19, x20, [sp,16] + mov x20, x2 + adrp x2, .LANCHOR0 add x19, x2, :lo12:.LANCHOR0 - uxtb w20, w3 - stp x25, x26, [sp,64] stp x23, x24, [sp,48] - uxtb x24, w0 + stp x25, x26, [sp,64] + stp x21, x22, [sp,32] + uxtb x23, w0 uxtb w26, w1 ldr x0, [x19,1912] - mov x25, x24 - add x19, x19, 4056 + mov x25, x23 + uxtb w24, w3 ldrb w0, [x0,19] cmp w0, 6 - bne .L181 - add x19, x19, x24, lsl 6 - lsl w4, w20, 2 - add x19, x19, 20 - b .L186 -.L181: + bne .L190 + add x19, x19, x23, lsl 6 + lsl w4, w24, 2 + add x19, x19, 4076 + b .L196 +.L190: cmp w0, 7 - bne .L183 + bne .L192 mov x0, 160 mov w4, 10 - madd x19, x24, x0, x19 - mul w4, w20, w4 - add x19, x19, 28 -.L186: + madd x19, x23, x0, x19 + mul w4, w24, w4 + add x19, x19, 4084 +.L196: add x19, x19, x4, sxtw - b .L182 -.L183: - lsl x4, x24, 3 - add x4, x4, x20, sxtw + b .L191 +.L192: + cmp w0, 8 + bne .L193 + add x19, x19, 4084 + add w4, w24, w24, lsl 2 + b .L196 +.L193: + lsl x4, x23, 3 + add x4, x4, x24, sxtw add x19, x19, x4, lsl 3 - add x19, x19, 20 -.L182: + add x19, x19, 4076 +.L191: add x2, x2, :lo12:.LANCHOR0 - lsl x0, x24, 4 + lsl x0, x23, 4 add x2, x2, 40 uxtb x26, w26 add x1, x2, x0 - ldr x22, [x2,x0] + ldr x21, [x2,x0] mov w0, w25 - ldrb w23, [x1,8] + ldrb w22, [x1,8] bl NandcFlashCs - ubfiz x23, x23, 8, 8 + ubfiz x22, x22, 8, 8 mov w0, 54 - add x22, x22, x23 - mov x23, 0 - str w0, [x22,2056] -.L184: - cmp x23, x26 - beq .L187 - ldrb w0, [x21,x23] - str w0, [x22,2052] - mov w0, 200 - bl NandcDelayns - ldrsb w0, [x19,x23] - add x23, x23, 1 - str w0, [x22,2048] - b .L184 -.L187: + add x21, x21, x22 + mov x22, 0 + str w0, [x21,2056] +.L194: + cmp x22, x26 + beq .L197 + ldrb w0, [x20,x22] + str w0, [x21,2052] + mov x0, 1000 + bl __const_udelay + ldrsb w0, [x19,x22] + add x22, x22, 1 + str w0, [x21,2048] + b .L194 +.L197: mov w0, 22 - str w0, [x22,2056] + str w0, [x21,2056] mov w0, w25 bl NandcFlashDeCs adrp x0, .LANCHOR2 add x0, x0, :lo12:.LANCHOR2 - add x24, x0, x24 - strb w20, [x24,560] + add x23, x0, x23 + strb w24, [x23,560] ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -1382,118 +1446,32 @@ FlashSetReadRetryDefault: ldrb w0, [x0,19] sub w0, w0, #1 uxtb w0, w0 - cmp w0, 6 - bhi .L188 + cmp w0, 7 + bhi .L198 adrp x21, IDByte add x22, x19, 4060 add x21, x21, :lo12:IDByte -.L193: +.L203: lsl x1, x20, 3 uxtb w0, w20 ldrb w1, [x1,x21] cmp w1, 173 - bne .L190 + bne .L200 ldrb w1, [x19,4057] mov x2, x22 mov w3, 0 bl HynixSetRRPara -.L190: +.L200: add x20, x20, 1 cmp x20, 4 - bne .L193 -.L188: + bne .L203 +.L198: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x29, x30, [sp], 48 ret .size FlashSetReadRetryDefault, .-FlashSetReadRetryDefault .align 2 - .global FlashReadStatusEN - .type FlashReadStatusEN, %function -FlashReadStatusEN: - stp x29, x30, [sp, -32]! - adrp x3, .LANCHOR0 - ubfiz x0, x0, 4, 8 - add x4, x3, :lo12:.LANCHOR0 - add x29, sp, 0 - add x5, x4, 40 - stp x19, x20, [sp,16] - add x6, x5, x0 - uxtb w2, w2 - ldr x20, [x5,x0] - ldr x0, [x4,1912] - ldrb w19, [x6,8] - ldrb w0, [x0,8] - cmp w0, 2 - bne .L196 - add x4, x4, 104 - cbnz w2, .L197 - ldrb w2, [x4,13] - b .L205 -.L197: - ldrb w2, [x4,14] -.L205: - add x0, x19, 8 - add x3, x3, :lo12:.LANCHOR0 - add x0, x20, x0, lsl 8 - str w2, [x0,8] - mov w2, 0 - ldrb w4, [x3,119] - cbz w4, .L200 - add x3, x19, 8 - lsl x3, x3, 8 -.L204: - cmp w2, w4 - bcs .L200 - add x5, x20, x3 - lsl w0, w2, 3 - lsr w0, w1, w0 - add w2, w2, 1 - and w0, w0, 255 - str w0, [x5,4] - b .L204 -.L196: - add x0, x19, 8 - mov w1, 112 - add x0, x20, x0, lsl 8 - str w1, [x0,8] -.L200: - add x19, x19, 8 - mov w0, 80 - lsl x19, x19, 8 - bl NandcDelayns - ldr w0, [x20,x19] - ldp x19, x20, [sp,16] - ldp x29, x30, [sp], 32 - uxtb w0, w0 - ret - .size FlashReadStatusEN, .-FlashReadStatusEN - .align 2 - .global FlashWaitReadyEN - .type FlashWaitReadyEN, %function -FlashWaitReadyEN: - stp x29, x30, [sp, -48]! - add x29, sp, 0 - stp x19, x20, [sp,16] - str x21, [sp,32] - uxtb w19, w0 - mov w20, w1 - uxtb w21, w2 -.L210: - mov w0, w19 - mov w1, w20 - mov w2, w21 - bl FlashReadStatusEN - cmp w0, 255 - mov w3, w0 - beq .L210 - tbz x3, 6, .L210 - ldp x19, x20, [sp,16] - ldr x21, [sp,32] - ldp x29, x30, [sp], 48 - ret - .size FlashWaitReadyEN, .-FlashWaitReadyEN - .align 2 .global FlashWaitCmdDone .type FlashWaitCmdDone, %function FlashWaitCmdDone: @@ -1507,13 +1485,13 @@ FlashWaitCmdDone: add x20, x20, :lo12:.LANCHOR0 mov x22, x1 mul x1, x1, x2 - add x0, x20, 1720 + add x0, x20, 1716 add x19, x0, x1 ldrb w21, [x0,x1] ldr x0, [x19,8] - cbz x0, .L215 + cbz x0, .L207 mov w0, w21 - add x20, x20, 1688 + add x20, x20, 1684 bl NandcFlashCs ldr w0, [x20,w22,sxtw 2] ldr w1, [x19,4] @@ -1529,10 +1507,10 @@ FlashWaitCmdDone: str w0, [x1] str xzr, [x19,8] ldr x1, [x19,16] - cbz x1, .L215 + cbz x1, .L207 str w0, [x1] str xzr, [x19,16] -.L215: +.L207: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -1540,6 +1518,50 @@ FlashWaitCmdDone: ret .size FlashWaitCmdDone, .-FlashWaitCmdDone .align 2 + .global NandcDelayns + .type NandcDelayns, %function +NandcDelayns: + stp x29, x30, [sp, -16]! + uxtw x0, w0 + add x29, sp, 0 + bl __ndelay + mov w0, 0 + ldp x29, x30, [sp], 16 + ret + .size NandcDelayns, .-NandcDelayns + .align 2 + .global NandcWaitFlashReadyNoDelay + .type NandcWaitFlashReadyNoDelay, %function +NandcWaitFlashReadyNoDelay: + stp x29, x30, [sp, -48]! + adrp x1, .LANCHOR0 + ubfiz x0, x0, 4, 8 + add x1, x1, :lo12:.LANCHOR0 + add x29, sp, 0 + add x1, x1, 40 + stp x19, x20, [sp,16] + mov w19, 34464 + ldr x20, [x1,x0] + movk w19, 0x1, lsl 16 +.L215: + ldr w0, [x20] + str w0, [x29,40] + ldr w0, [x29,40] + tbnz x0, 9, .L216 + mov x0, 50 + bl __const_udelay + subs w19, w19, #1 + bne .L215 + mov w0, -1 + b .L214 +.L216: + mov w0, 0 +.L214: + ldp x19, x20, [sp,16] + ldp x29, x30, [sp], 48 + ret + .size NandcWaitFlashReadyNoDelay, .-NandcWaitFlashReadyNoDelay + .align 2 .global NandcWaitFlashReady .type NandcWaitFlashReady, %function NandcWaitFlashReady: @@ -1553,20 +1575,22 @@ NandcWaitFlashReady: mov w19, 34464 ldr x20, [x1,x0] movk w19, 0x1, lsl 16 -.L222: - mov w0, 100 - bl NandcDelayns + mov x0, 750 + bl __const_udelay +.L220: ldr w0, [x20] str w0, [x29,40] ldr w0, [x29,40] - tbnz x0, 9, .L223 + tbnz x0, 9, .L221 + mov x0, 50 + bl __const_udelay subs w19, w19, #1 - bne .L222 + bne .L220 mov w0, -1 - b .L221 -.L223: - mov w0, 0 + b .L219 .L221: + mov w0, 0 +.L219: ldp x19, x20, [sp,16] ldp x29, x30, [sp], 48 ret @@ -1603,6 +1627,95 @@ FlashReset: ret .size FlashReset, .-FlashReset .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] + adrp x19, .LANCHOR0 + uxtb w20, w0 + add x19, x19, :lo12:.LANCHOR0 + ldrb w0, [x19,4044] + cbz w0, .L224 + mov w0, w20 + add x19, x19, 40 + bl NandcFlashCs + sbfiz x0, x20, 4, 32 + add x1, x19, x0 + ldr x19, [x19,x0] + mov w0, 239 + ldrb w1, [x1,8] + add x19, x19, x1, lsl 8 + str w0, [x19,2056] + mov w0, 145 + str w0, [x19,2052] + mov x0, 500 + bl __const_udelay + str wzr, [x19,2048] + mov w0, 1 + str w0, [x19,2048] + str wzr, [x19,2048] + mov x0, 500 + str wzr, [x19,2048] + bl __const_udelay + mov w0, w20 + bl NandcWaitFlashReadyNoDelay + mov w0, 218 + str w0, [x19,2056] + mov w0, w20 + bl NandcWaitFlashReady +.L224: + ldp x19, x20, [sp,16] + ldp x29, x30, [sp], 32 + ret + .size flash_enter_slc_mode, .-flash_enter_slc_mode + .align 2 + .global flash_exit_slc_mode + .type flash_exit_slc_mode, %function +flash_exit_slc_mode: + stp x29, x30, [sp, -32]! + add x29, sp, 0 + stp x19, x20, [sp,16] + adrp x19, .LANCHOR0 + uxtb w20, w0 + add x19, x19, :lo12:.LANCHOR0 + ldrb w0, [x19,4044] + cbz w0, .L229 + mov w0, w20 + add x19, x19, 40 + bl NandcFlashCs + sbfiz x0, x20, 4, 32 + add x1, x19, x0 + ldr x19, [x19,x0] + mov w0, 239 + ldrb w1, [x1,8] + add x19, x19, x1, lsl 8 + str w0, [x19,2056] + mov w0, 145 + str w0, [x19,2052] + mov x0, 500 + bl __const_udelay + mov w0, 2 + str w0, [x19,2048] + mov w0, 1 + str w0, [x19,2048] + str wzr, [x19,2048] + mov x0, 500 + str wzr, [x19,2048] + bl __const_udelay + mov w0, w20 + bl NandcWaitFlashReadyNoDelay + mov w0, 223 + str w0, [x19,2056] + mov w0, w20 + bl NandcWaitFlashReady +.L229: + ldp x19, x20, [sp,16] + ldp x29, x30, [sp], 32 + ret + .size flash_exit_slc_mode, .-flash_exit_slc_mode + .align 2 .global FlashEraseBlock .type FlashEraseBlock, %function FlashEraseBlock: @@ -1656,68 +1769,68 @@ FlashSetInterfaceMode: mov w12, 35 mov w13, 32 mov w14, 5 -.L238: +.L246: ldrb w4, [x6,x7] ldr x1, [x3] cmp w4, 152 ldrb w2, [x3,8] - beq .L228 + beq .L236 cmp w4, 69 - beq .L228 + beq .L236 cmp w4, 173 - beq .L228 + beq .L236 cmp w4, 44 - bne .L229 -.L228: + bne .L237 +.L236: cmp w0, 1 - bne .L231 - cbz w11, .L229 + bne .L239 + cbz w11, .L237 ubfiz x2, x2, 8, 8 cmp w4, 173 add x1, x1, x2 str w8, [x1,2056] - bne .L232 + bne .L240 str w0, [x1,2052] - b .L249 -.L232: + b .L257 +.L240: cmp w4, 44 - bne .L234 + bne .L242 str w0, [x1,2052] str w14, [x1,2048] - b .L236 -.L234: + b .L244 +.L242: str w9, [x1,2052] str w0, [x1,2048] - b .L236 -.L231: - cbz w5, .L229 + b .L244 +.L239: + cbz w5, .L237 ubfiz x2, x2, 8, 8 cmp w4, 173 add x1, x1, x2 str w8, [x1,2056] - bne .L235 + bne .L243 str w10, [x1,2052] str w13, [x1,2048] - b .L236 -.L235: + b .L244 +.L243: cmp w4, 44 - bne .L237 + bne .L245 str w10, [x1,2052] str w12, [x1,2048] - b .L236 -.L237: + b .L244 +.L245: str w9, [x1,2052] -.L249: +.L257: str wzr, [x1,2048] -.L236: +.L244: str wzr, [x1,2048] str wzr, [x1,2048] str wzr, [x1,2048] -.L229: +.L237: add x6, x6, 8 add x3, x3, 16 cmp x6, 32 - bne .L238 + bne .L246 mov w0, 0 bl NandcWaitFlashReady mov w0, 0 @@ -1728,7 +1841,7 @@ FlashSetInterfaceMode: .global FlashReadSpare .type FlashReadSpare, %function FlashReadSpare: - adrp x3, .LANCHOR1+265 + adrp x3, .LANCHOR1+481 adrp x5, .LANCHOR0 stp x29, x30, [sp, -48]! uxtb w0, w0 @@ -1736,7 +1849,7 @@ FlashReadSpare: add x5, x5, 40 sbfiz x6, x0, 4, 32 add x29, sp, 0 - ldrb w4, [x3,#:lo12:.LANCHOR1+265] + ldrb w4, [x3,#:lo12:.LANCHOR1+481] add x3, x5, x6 str x19, [sp,16] lsl w4, w4, 9 @@ -1797,8 +1910,8 @@ SandiskProgTestBadBlock: bl NandcWaitFlashReady mov w0, 112 str w0, [x19,2056] - mov w0, 80 - bl NandcDelayns + mov x0, 400 + bl __const_udelay ldr w0, [x19,2048] ldr x19, [sp,16] and w0, w0, 1 @@ -1819,37 +1932,37 @@ SandiskSetRRPara: str w0, [x20,8] mov w0, 17 str w0, [x20,4] - mov w0, 200 - bl NandcDelayns + mov x0, 1000 + bl __const_udelay mov w1, 5 adrp x2, .LANCHOR1 add x2, x2, :lo12:.LANCHOR1 adrp x0, g_maxRegNum smull x1, w19, w1 - add x3, x2, 2880 + add x3, x2, 256 adrp x4, g_retryMode - add x2, x2, 2928 + add x2, x2, 304 add x3, x3, x1 add x0, x0, :lo12:g_maxRegNum add x1, x2, x1 add x4, x4, :lo12:g_retryMode mov x2, 0 -.L253: +.L261: ldrb w5, [x0] cmp w5, w2 - bls .L258 + bls .L266 ldrb w5, [x4] cmp w5, 67 - bne .L254 + bne .L262 ldrsb w5, [x3,x2] - b .L257 -.L254: + b .L265 +.L262: ldrsb w5, [x1,x2] -.L257: +.L265: str w5, [x20] add x2, x2, 1 - b .L253 -.L258: + b .L261 +.L266: mov w0, 0 bl NandcWaitFlashReady ldp x19, x20, [sp,16] @@ -1879,8 +1992,8 @@ micron_auto_read_calibration_config: str w0, [x19,2056] mov w0, 150 str w0, [x19,2052] - mov w0, 200 - bl NandcDelayns + mov x0, 1000 + bl __const_udelay ldr x1, [x29,40] str w1, [x19,2048] str wzr, [x19,2048] @@ -1906,11 +2019,11 @@ FlashEraseSLc2KBlocks: mov w24, w1 mov x20, x0 mov w22, 0 - add x25, x21, 1720 + add x25, x21, 1676 add x23, x23, :lo12:.LC1 -.L261: +.L269: cmp w22, w24 - beq .L270 + beq .L278 add x2, x29, 88 sub w4, w24, w22 mov x0, x20 @@ -1918,20 +2031,19 @@ FlashEraseSLc2KBlocks: add x3, x29, 92 bl LogAddr2PhyAddr ldr w2, [x29,92] - ldrb w0, [x21,1676] + ldrb w0, [x21,1672] cmp w2, w0 - bcc .L262 + bcc .L270 mov w0, -1 str w0, [x20] - b .L263 -.L262: + b .L271 +.L270: uxtw x2, w2 - add x0, x21, x2 - ldrb w19, [x0,1680] mov x0, 24 - mul x2, x2, x0 + ldrb w19, [x25,x2] + madd x2, x2, x0, x21 mov w0, w19 - strb w19, [x25,x2] + strb w19, [x2,1716] bl NandcWaitFlashReady mov w0, w19 bl NandcFlashCs @@ -1957,24 +2069,24 @@ FlashEraseSLc2KBlocks: ldr w1, [x29,88] mov w0, w19 bl FlashReadStatus - tbz x0, 0, .L264 + tbz x0, 0, .L272 mov w0, -1 str w0, [x20] -.L264: +.L272: ldr w0, [x20] cmn w0, #1 - bne .L265 + bne .L273 ldr w1, [x29,88] mov x0, x23 bl printk -.L265: +.L273: mov w0, w19 bl NandcFlashDeCs -.L263: +.L271: add w22, w22, 1 add x20, x20, 56 - b .L261 -.L270: + b .L269 +.L278: mov w0, 0 ldr x25, [sp,64] ldp x19, x20, [sp,16] @@ -2008,16 +2120,16 @@ HynixGetReadRetryDefault: mov w0, -81 strb w3, [x1,6] strb w0, [x1,7] - bne .L272 + bne .L280 mov w0, -89 strb w0, [x1,4] - adrp x0, .LANCHOR1+3113 + adrp x0, .LANCHOR1+3241 mov w1, -9 - strb w1, [x0,#:lo12:.LANCHOR1+3113] - b .L327 -.L272: + strb w1, [x0,#:lo12:.LANCHOR1+3241] + b .L343 +.L280: cmp w26, 3 - bne .L274 + bne .L282 mov w0, -80 strb w0, [x1,4] mov w0, -79 @@ -2033,10 +2145,10 @@ HynixGetReadRetryDefault: mov w0, -74 strb w0, [x1,10] mov w0, -73 - b .L360 -.L274: + b .L383 +.L282: cmp w26, 4 - bne .L275 + bne .L283 mov w5, -52 strb w5, [x1,4] mov w5, -65 @@ -2049,40 +2161,40 @@ HynixGetReadRetryDefault: mov w5, -51 strb w3, [x1,10] strb w5, [x1,8] -.L360: - mov w27, 8 +.L383: + mov w28, 8 strb w0, [x1,11] - mov w28, w27 - b .L273 -.L275: + mov w27, w28 + b .L281 +.L283: cmp w26, 5 - bne .L276 + bne .L284 mov w0, 56 strb w0, [x1,4] mov w0, 57 strb w0, [x1,5] mov w0, 58 - mov w27, 8 + mov w28, 8 strb w0, [x1,6] mov w0, 59 strb w0, [x1,7] - b .L359 -.L276: + b .L384 +.L284: cmp w26, 6 - bne .L277 + bne .L285 mov w0, 14 strb w0, [x1,4] mov w0, 15 strb w0, [x1,5] mov w0, 16 - mov w27, 12 + mov w28, 12 strb w0, [x1,6] mov w0, 17 strb w0, [x1,7] - b .L359 -.L277: + b .L384 +.L285: cmp w26, 7 - bne .L327 + bne .L286 mov w0, -80 strb w0, [x1,4] mov w0, -79 @@ -2100,63 +2212,78 @@ HynixGetReadRetryDefault: mov w0, -73 strb w0, [x1,11] mov w0, -44 - mov w27, 12 + mov w28, 12 strb w0, [x1,12] - mov w28, 10 + mov w27, 10 mov w0, -43 strb w0, [x1,13] - b .L273 -.L327: - mov w27, 7 -.L359: - mov w28, 4 -.L273: + b .L281 +.L286: + cmp w26, 8 + bne .L343 + mov w0, 6 + strb w0, [x1,4] + mov w0, 7 + strb w0, [x1,5] + mov w0, 9 + strb w26, [x1,6] + strb w0, [x1,7] + mov w28, 50 + mov w0, 10 + mov w27, 5 + strb w0, [x1,8] + b .L281 +.L343: + mov w28, 7 +.L384: + mov w27, 4 +.L281: sub w0, w26, #1 cmp w0, 1 - bhi .L356 + bhi .L380 adrp x22, .LANCHOR1 add x25, x20, :lo12:.LANCHOR0 add x22, x22, :lo12:.LANCHOR1 mov w21, 0 + add x3, x25, 1676 add x26, x25, 4056 - add x3, x25, 40 - add x22, x22, 3096 -.L278: - ldrb w0, [x25,1676] + add x22, x22, 3224 +.L287: + ldrb w0, [x25,1672] cmp w0, w21 - bls .L285 - add x0, x25, x21, sxtw - ldrb w0, [x0,1680] + bls .L294 + ldrb w0, [x3,w21,sxtw] + add x1, x25, 40 mov x23, 0 add x19, x26, x0, lsl 6 lsl x0, x0, 4 - add x1, x3, x0 + add x2, x1, x0 add x19, x19, 20 - ldr x24, [x3,x0] - ldrb w0, [x1,8] + ldr x24, [x1,x0] mov w1, 55 + ldrb w0, [x2,8] add x24, x24, x0, lsl 8 -.L280: +.L289: add x0, x26, x23 str w1, [x24,2056] str x3, [x29,128] str x1, [x29,136] ldrb w0, [x0,4] str w0, [x24,2052] - mov w0, 80 - bl NandcDelayns + mov x0, 400 + bl __const_udelay ldr w0, [x24,2048] strb w0, [x19,x23] add x23, x23, 1 ldr x1, [x29,136] - cmp w28, w23, uxtb + cmp w27, w23, uxtb ldr x3, [x29,128] - bhi .L280 + bhi .L289 mov x0, 0 -.L281: +.L290: add w2, w0, 8 mov x1, 0 -.L282: +.L291: add x5, x1, x0 add x1, x1, 4 add x5, x22, x5 @@ -2166,10 +2293,10 @@ HynixGetReadRetryDefault: add w5, w6, w5 strb w5, [x19,w2,sxtw] add w2, w2, 8 - bne .L282 + bne .L291 add x0, x0, 1 cmp x0, 4 - bne .L281 + bne .L290 add w21, w21, 1 strb wzr, [x19,16] strb wzr, [x19,24] @@ -2179,96 +2306,100 @@ HynixGetReadRetryDefault: strb wzr, [x19,48] strb wzr, [x19,41] strb wzr, [x19,49] - b .L278 -.L356: + b .L287 +.L380: sub w0, w26, #3 - cmp w0, 4 - bhi .L285 - mul w25, w28, w27 - sub w23, w28, #1 + cmp w0, 5 + bhi .L294 + mul w25, w27, w28 + sub w24, w27, #1 mov w21, 0 lsl w0, w25, 4 - asr w22, w25, 2 - str w0, [x29,124] + asr w23, w25, 1 + str w0, [x29,128] add x25, x20, :lo12:.LANCHOR0 - lsl w0, w22, 1 - uxtb x23, w23 - str w0, [x29,120] - add x0, x25, 40 - add x23, x23, 1 - str x0, [x29,128] + lsl w0, w23, 1 + uxtb x24, w24 + str w0, [x29,124] + add x0, x25, 1676 + add x24, x24, 1 + str x0, [x29,112] sub w0, w26, #5 str w0, [x29,136] -.L286: - ldrb w0, [x25,1676] +.L295: + ldrb w0, [x25,1672] cmp w0, w21 - bhi .L326 -.L285: + bhi .L341 +.L294: add x20, x20, :lo12:.LANCHOR0 ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] - strb w28, [x20,4057] - strb w27, [x20,4058] + strb w27, [x20,4057] + strb w28, [x20,4058] ldp x25, x26, [sp,64] ldp x19, x20, [sp,16] ldp x27, x28, [sp,80] ldp x29, x30, [sp], 144 ret -.L326: - add x0, x25, x21, sxtw - ldrb w1, [x0,1680] - str x1, [x29,112] - lsl x0, x1, 4 - mov x24, x1 - ldr x1, [x29,128] - add x6, x1, x0 - ldr x0, [x1,x0] - ldrb w19, [x6,8] +.L341: + ldr x0, [x29,112] + ldrb w5, [x0,w21,sxtw] + add x0, x25, 40 + str x5, [x29,104] + lsl x1, x5, 4 + mov x22, x5 + add x7, x0, x1 + ldr x0, [x0,x1] + ldrb w19, [x7,8] add x19, x0, x19, lsl 8 mov w0, 255 str w0, [x19,2056] - mov w0, w24 + mov w0, w5 bl NandcWaitFlashReady cmp w26, 7 - add x6, x25, 4056 - ldr x1, [x29,112] - beq .L287 - add x1, x6, x1, lsl 6 - add x6, x1, 20 - b .L288 -.L287: + ldr x5, [x29,104] + bne .L296 mov x0, 160 - madd x1, x1, x0, x6 - add x6, x1, 28 -.L288: + madd x5, x5, x0, x25 + add x5, x5, 4084 + b .L297 +.L296: + cmp w26, 8 + beq .L298 + add x5, x25, x5, lsl 6 + add x5, x5, 4076 +.L297: mov w0, 54 cmp w26, 4 str w0, [x19,2056] - bne .L289 + bne .L299 mov w0, 255 str w0, [x19,2052] mov w0, 64 str w0, [x19,2048] mov w0, 204 - b .L361 -.L289: + b .L385 +.L299: ldr w0, [x29,136] cmp w0, 1 - bhi .L291 + bhi .L301 ldrb w0, [x25,4060] str w0, [x19,2052] mov w0, 82 - b .L362 -.L291: + b .L386 +.L301: + cmp w26, 7 + bne .L300 mov w0, 174 str w0, [x19,2052] str wzr, [x19,2048] mov w0, 176 -.L361: +.L385: str w0, [x19,2052] mov w0, 77 -.L362: +.L386: str w0, [x19,2048] +.L300: mov w0, 22 str w0, [x19,2056] mov w0, 23 @@ -2277,162 +2408,195 @@ 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 .L292 + bne .L302 mov w0, 31 str w0, [x19,2052] - b .L293 -.L292: + b .L303 +.L302: str wzr, [x19,2052] -.L293: - mov w7, 2 - str w7, [x19,2052] +.L303: + mov w0, 2 + str w0, [x19,2052] str wzr, [x19,2052] +.L342: mov w0, 48 str w0, [x19,2056] - mov w0, w24 - str x6, [x29,104] - str x7, [x29,112] + mov w0, w22 + str x5, [x29,104] bl NandcWaitFlashReady ldr w0, [x29,136] - mov w1, 16 - ldr x6, [x29,104] + ldr x5, [x29,104] cmp w0, 1 - bls .L295 - ldr x7, [x29,112] + cset w8, ls + cmp w26, 8 + cset w7, eq + cbnz w8, .L345 + cbnz w7, .L345 cmp w26, 7 mov w1, 32 - csel w1, w1, w7, eq -.L295: + mov w0, 2 + csel w1, w0, w1, ne + b .L304 +.L345: + mov w1, 16 +.L304: ldr x0, [x25] - mov x7, 0 -.L296: - ldr w8, [x19,2048] - strb w8, [x0,x7] - add x7, x7, 1 - cmp w1, w7, uxtb - bhi .L296 - cmp w26, 7 - bne .L297 + mov x9, 0 +.L305: + ldr w10, [x19,2048] + strb w10, [x0,x9] + add x9, x9, 1 + cmp w1, w9, uxtb + bhi .L305 + cbz w7, .L306 mov w1, 0 -.L299: - ldrb w7, [x0] - cmp w7, 12 - beq .L298 - ldrb w7, [x0,1] - cmp w7, 10 - beq .L298 +.L308: + ldrb w9, [x0] + cmp w9, 50 + beq .L307 + ldrb w9, [x0,1] + cmp w9, 5 + beq .L307 add w1, w1, 1 add x0, x0, 4 uxtb w1, w1 cmp w1, 8 - bne .L299 - b .L300 -.L298: + bne .L308 + b .L309 +.L307: + cmp w1, 6 + bls .L310 +.L309: + adrp x0, .LC2 + mov w1, 0 + add x0, x0, :lo12:.LC2 + bl printk +.L311: + b .L311 +.L306: + cmp w26, 7 + bne .L312 + mov w1, w7 +.L314: + ldrb w9, [x0] + cmp w9, 12 + beq .L313 + ldrb w9, [x0,1] + cmp w9, 10 + beq .L313 + add w1, w1, 1 + add x0, x0, 4 + uxtb w1, w1 + cmp w1, 8 + bne .L314 + b .L315 +.L313: cmp w1, 7 - bne .L301 -.L300: + bne .L310 +.L315: adrp x0, .LC2 mov w1, 0 add x0, x0, :lo12:.LC2 bl printk -.L302: - b .L302 -.L297: +.L316: + b .L316 +.L312: cmp w26, 6 - bne .L301 + bne .L310 mov x1, 0 -.L303: - ldrb w7, [x0,x1] - cmp w7, 12 - beq .L301 - add x7, x0, x1 - ldrb w7, [x7,8] - cmp w7, 4 - beq .L301 +.L317: + ldrb w9, [x0,x1] + cmp w9, 12 + beq .L310 + add x9, x0, x1 + ldrb w9, [x9,8] + cmp w9, 4 + beq .L310 add x1, x1, 1 cmp x1, 8 - bne .L303 + bne .L317 adrp x0, .LC2 mov w1, 0 add x0, x0, :lo12:.LC2 bl printk -.L305: - b .L305 -.L301: - ldr x9, [x25] +.L319: + b .L319 +.L310: + ldr x10, [x25] mov x0, 0 -.L306: - ldr w1, [x29,124] +.L320: + ldr w1, [x29,128] cmp w1, w0 - ble .L363 + ble .L388 ldr w1, [x19,2048] - strb w1, [x9,x0] + strb w1, [x10,x0] add x0, x0, 1 - b .L306 -.L363: - ldr x11, [x25] - mov w8, w22 - mov w7, 8 -.L309: + b .L320 +.L388: + ldr x12, [x25] + mov w11, w23 + mov w9, 8 +.L323: mov w0, 0 -.L308: - add w1, w0, w8 +.L322: + add w1, w0, w11 add w0, w0, 1 - sbfiz x1, x1, 2, 32 - cmp w0, w22 - ldr w10, [x11,x1] - mvn w10, w10 - str w10, [x11,x1] - bne .L308 - ldr w0, [x29,120] - subs w7, w7, #1 - add w8, w8, w0 - bne .L309 - mov x7, 0 - mov w15, 1 -.L310: + sbfiz x1, x1, 1, 32 + cmp w0, w23 + ldrh w13, [x12,x1] + mvn w13, w13 + strh w13, [x12,x1] + bne .L322 + ldr w0, [x29,124] + subs w9, w9, #1 + add w11, w11, w0 + bne .L323 + mov x9, 0 + mov w17, 1 +.L324: mov w1, 0 - ldr x14, [x25] - mov w10, w1 -.L314: - lsl w8, w15, w10 - mov w12, w7 + mov w11, w1 +.L328: + lsl w13, w17, w11 + mov w15, w9 mov w0, 16 - mov w11, 0 -.L312: - ldr w13, [x14,w12,sxtw 2] - add w12, w12, w22 - and w13, w8, w13 - cmp w13, w8 - csinc w11, w11, w11, ne + mov w14, 0 +.L326: + ldrh w16, [x12,w15,sxtw 1] + add w15, w15, w23 + and w16, w16, w13 + cmp w16, w13 + csinc w14, w14, w14, ne subs w0, w0, #1 - bne .L312 - cmp w11, 9 - orr w8, w1, w8 - add w10, w10, 1 - csel w1, w8, w1, cs - cmp w10, 32 - bne .L314 - str w1, [x14,x7,lsl 2] - add x7, x7, 1 - cmp w22, w7 - bgt .L310 - mov x7, 0 + bne .L326 + cmp w14, 8 + bls .L327 + orr w1, w1, w13 + uxth w1, w1 +.L327: + add w11, w11, 1 + cmp w11, 16 + bne .L328 + strh w1, [x12,x9,lsl 1] + add x9, x9, 1 + cmp w23, w9 + bgt .L324 + mov x9, 0 ldr x1, [x25] - mov w8, w7 -.L317: - ldr w10, [x1,x7] - add x7, x7, 4 - cmp w10, wzr - csinc w8, w8, w8, ne - cmp x7, 32 - bne .L317 - cmp w8, 7 - ble .L318 + mov w11, w9 +.L331: + ldr w12, [x1,x9] + add x9, x9, 4 + cmp w12, wzr + csinc w11, w11, w11, ne + cmp x9, 32 + bne .L331 + cmp w11, 7 + ble .L332 adrp x0, .LC3 mov w2, 1 add x0, x0, :lo12:.LC3 @@ -2442,39 +2606,44 @@ HynixGetReadRetryDefault: mov w1, 0 add x0, x0, :lo12:.LC2 bl printk -.L319: - b .L319 -.L318: +.L333: + b .L333 +.L332: cmp w26, 6 - mov w7, 4 - beq .L320 + mov w9, 4 + beq .L334 cmp w26, 7 - mov w7, 10 + mov w9, 10 + beq .L334 + cmp w7, wzr + mov w9, 5 mov w1, 8 - csel w7, w1, w7, ne -.L320: - mov w8, 0 -.L321: + csel w9, w1, w9, eq +.L334: + mov w11, 0 +.L335: mov x1, 0 -.L322: - add w10, w0, w1 - ldrb w11, [x9,x1] +.L336: + add w12, w0, w1 + ldrb w13, [x10,x1] add x1, x1, 1 - cmp w28, w1, uxtb - strb w11, [x6,w10,sxtw] - bhi .L322 - add w8, w8, 1 - add x9, x9, x23 - cmp w8, w27 - add w0, w0, w7 - blt .L321 + cmp w27, w1, uxtb + strb w13, [x5,w12,sxtw] + bhi .L336 + add w11, w11, 1 + add x10, x10, x24 + cmp w11, w28 + add w0, w0, w9 + blt .L335 mov w0, 255 str w0, [x19,2056] - mov w0, w24 + mov w0, w22 + str x7, [x29,96] + str x8, [x29,104] bl NandcWaitFlashReady - ldr w0, [x29,136] - cmp w0, 1 - bhi .L324 + ldr x8, [x29,104] + ldr x7, [x29,96] + cbz w8, .L338 mov w0, 54 str w0, [x19,2056] adrp x0, .LANCHOR0+4060 @@ -2486,16 +2655,42 @@ HynixGetReadRetryDefault: str w0, [x19,2056] mov w0, w21 bl FlashReadCmd - b .L325 -.L324: + b .L339 +.L338: + mov w0, 190 + cbnz w7, .L387 mov w0, 56 +.L387: str w0, [x19,2056] -.L325: - mov w0, w24 +.L339: + mov w0, w22 add w21, w21, 1 bl NandcWaitFlashReady uxtb w21, w21 - b .L286 + b .L295 +.L298: + 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 x5, x25, 4084 + str w0, [x19,2056] + mov w0, 4 + str w0, [x19,2056] + 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 .L342 .size HynixGetReadRetryDefault, .-HynixGetReadRetryDefault .align 2 .global FlashGetReadRetryDefault @@ -2504,15 +2699,15 @@ FlashGetReadRetryDefault: stp x29, x30, [sp, -16]! mov w1, w0 add x29, sp, 0 - cbz w0, .L364 + cbz w0, .L389 sub w2, w0, #1 - cmp w2, 6 - bhi .L366 + cmp w2, 7 + bhi .L391 bl HynixGetReadRetryDefault - b .L364 -.L366: + b .L389 +.L391: cmp w0, 49 - bne .L367 + bne .L392 adrp x0, .LANCHOR0 mov w2, 64 add x0, x0, :lo12:.LANCHOR0 @@ -2524,46 +2719,46 @@ FlashGetReadRetryDefault: strb w1, [x0,-2] adrp x1, .LANCHOR1 add x1, x1, :lo12:.LANCHOR1 - add x1, x1, 3032 - b .L382 -.L367: + add x1, x1, 408 + b .L407 +.L392: sub w0, w0, #65 cmp w0, 1 - bls .L373 + bls .L398 cmp w1, 33 - bne .L368 -.L373: + bne .L393 +.L398: adrp x0, .LANCHOR0 add x0, x0, :lo12:.LANCHOR0 strb w1, [x0,4056] mov w1, 4 - b .L383 -.L368: + b .L408 +.L393: cmp w1, 67 - beq .L374 + beq .L399 cmp w1, 34 - bne .L370 -.L374: + bne .L395 +.L399: adrp x0, .LANCHOR0 add x0, x0, :lo12:.LANCHOR0 strb w1, [x0,4056] mov w1, 5 -.L383: +.L408: strb w1, [x0,4057] mov w1, 7 strb w1, [x0,4058] adrp x1, .LANCHOR1 add x1, x1, :lo12:.LANCHOR1 add x0, x0, 4060 - add x1, x1, 2880 + add x1, x1, 256 mov w2, 45 - b .L382 -.L370: + b .L407 +.L395: cmp w1, 68 - beq .L375 + beq .L400 cmp w1, 35 - bne .L364 -.L375: + bne .L389 +.L400: adrp x0, .LANCHOR0 mov w2, 95 add x0, x0, :lo12:.LANCHOR0 @@ -2575,10 +2770,10 @@ FlashGetReadRetryDefault: strb w1, [x0,-2] adrp x1, .LANCHOR1 add x1, x1, :lo12:.LANCHOR1 - add x1, x1, 2928 -.L382: + add x1, x1, 304 +.L407: bl ftl_memcpy -.L364: +.L389: ldp x29, x30, [sp], 16 ret .size FlashGetReadRetryDefault, .-FlashGetReadRetryDefault @@ -2608,7 +2803,7 @@ FlashReadDpCmd: cmp w0, 1 and w5, w1, 255 lsr w0, w1, 16 - bne .L385 + bne .L410 add x19, x6, x19, lsl 8 ldrb w2, [x3,8] str x1, [x29,72] @@ -2631,8 +2826,8 @@ FlashReadDpCmd: str w20, [x19,2052] str w0, [x19,2056] ldr x1, [x29,72] - b .L386 -.L385: + b .L411 +.L410: add x19, x6, x19, lsl 8 ldrb w2, [x3,8] str w2, [x19,2056] @@ -2646,7 +2841,7 @@ FlashReadDpCmd: str w22, [x19,2052] str w20, [x19,2052] str w0, [x19,2056] -.L386: +.L411: mov w0, w21 bl FlashSetRandomizer ldr x23, [sp,48] @@ -2667,25 +2862,25 @@ ftl_flash_de_init: bl NandcWaitFlashReady bl FlashSetReadRetryDefault add x0, x19, :lo12:.LANCHOR2 - ldr w1, [x0,568] - mov w0, 12336 - movk w0, 0x5638, lsl 16 - cmp w1, w0 - bne .L388 + ldr w0, [x0,568] + cbz w0, .L413 mov w0, 0 bl flash_enter_slc_mode -.L388: + b .L414 +.L413: + bl flash_exit_slc_mode +.L414: add x19, x19, :lo12:.LANCHOR2 ldrb w0, [x19,572] - cbz w0, .L389 + cbz w0, .L415 ldrb w0, [x19,564] - tbz x0, 0, .L389 + tbz x0, 0, .L415 mov w0, 1 bl FlashSetInterfaceMode mov w0, 1 bl NandcSetMode strb wzr, [x19,572] -.L389: +.L415: adrp x0, .LANCHOR0+40 ldr x0, [x0,#:lo12:.LANCHOR0+40] str wzr, [x0,336] @@ -2722,37 +2917,37 @@ NandcTimeCfg: add x1, x1, :lo12:.LANCHOR0 sdiv w0, w0, w2 cmp w0, 250 - ble .L398 + ble .L424 ldr x0, [x1,3976] mov w1, 8354 - b .L405 -.L398: + b .L431 +.L424: cmp w0, 220 - ble .L400 + ble .L426 ldr x0, [x1,3976] - b .L406 -.L400: + b .L432 +.L426: cmp w0, 185 - ble .L401 + ble .L427 ldr x0, [x1,3976] mov w1, 4226 - b .L405 -.L401: + b .L431 +.L427: cmp w0, 160 ldr x0, [x1,3976] - ble .L402 + ble .L428 mov w1, 4194 - b .L405 -.L402: + b .L431 +.L428: cmp w19, 35 mov w1, 4193 - bls .L405 + bls .L431 cmp w19, 99 mov w1, 4225 - bls .L405 -.L406: + bls .L431 +.L432: mov w1, 8322 -.L405: +.L431: str w1, [x0,4] ldr x19, [sp,16] ldp x29, x30, [sp], 32 @@ -2768,17 +2963,17 @@ FlashTimingCfg: and w1, w1, -33 cmp w1, 1 add x29, sp, 0 - bls .L408 + bls .L434 mov w1, 8322 cmp w0, w1 - bne .L409 -.L408: + bne .L435 +.L434: adrp x1, .LANCHOR0+3976 ldr x1, [x1,#:lo12:.LANCHOR0+3976] str w0, [x1,4] -.L409: - adrp x0, .LANCHOR1+277 - ldrb w0, [x0,#:lo12:.LANCHOR1+277] +.L435: + adrp x0, .LANCHOR1+493 + ldrb w0, [x0,#:lo12:.LANCHOR1+493] bl NandcTimeCfg ldp x29, x30, [sp], 16 ret @@ -2816,12 +3011,12 @@ NandcInit: ubfx x4, x4, 16, 4 str w4, [x3,580] ldr w4, [x0,352] - str w4, [x3,568] + str w4, [x3,584] cmp w4, 2049 - bne .L411 + bne .L437 mov w1, 8 str w1, [x3,580] -.L411: +.L437: add x20, x20, :lo12:.LANCHOR0 str w2, [x0] ldr x0, [x20,3976] @@ -2837,12 +3032,12 @@ NandcInit: mov w0, 36864 bl ftl_malloc add x1, x19, :lo12:.LANCHOR2 - str x0, [x1,584] str x0, [x1,592] - add x0, x0, 32768 - str wzr, [x1,632] str x0, [x1,600] + add x0, x0, 32768 str wzr, [x1,640] + str x0, [x1,608] + str wzr, [x1,648] ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 ret @@ -2880,24 +3075,24 @@ NandcBchSel: ldr x2, [x1,#:lo12:.LANCHOR0+3976] mov w1, 1 str w1, [x2,8] - adrp x1, .LANCHOR2+644 - str w0, [x1,#:lo12:.LANCHOR2+644] + adrp x1, .LANCHOR2+652 + str w0, [x1,#:lo12:.LANCHOR2+652] mov w1, 4096 - bne .L414 -.L417: + bne .L440 +.L443: and w1, w1, -17 - b .L415 -.L414: + b .L441 +.L440: cmp w0, 24 - bne .L416 + bne .L442 orr w1, w1, 16 - b .L415 -.L416: + b .L441 +.L442: cmp w0, 40 orr w1, w1, 262144 orr w1, w1, 16 - beq .L417 -.L415: + beq .L443 +.L441: orr w1, w1, 1 str w1, [x2,12] ret @@ -2907,10 +3102,10 @@ NandcBchSel: .type FlashBchSel, %function FlashBchSel: stp x29, x30, [sp, -16]! - adrp x1, .LANCHOR0+4044 + adrp x1, .LANCHOR0+4045 uxtb w0, w0 add x29, sp, 0 - strb w0, [x1,#:lo12:.LANCHOR0+4044] + strb w0, [x1,#:lo12:.LANCHOR0+4045] bl NandcBchSel ldp x29, x30, [sp], 16 ret @@ -2920,66 +3115,67 @@ FlashBchSel: .type ftl_flash_resume, %function ftl_flash_resume: stp x29, x30, [sp, -48]! - adrp x0, .LANCHOR0 - add x1, x0, :lo12:.LANCHOR0 add x29, sp, 0 stp x19, x20, [sp,16] - stp x21, x22, [sp,32] - adrp x20, IDByte - mov x19, 0 - ldr x2, [x1,3976] - mov x22, x0 - ldr w3, [x1,3984] - add x20, x20, :lo12:IDByte - ldr w21, [x1,4000] - str w3, [x2] - ldr w3, [x1,3988] - ldr x2, [x1,3976] - str w3, [x2,4] - ldr w3, [x1,3992] - ldr x2, [x1,3976] - str w3, [x2,8] - ldr w3, [x1,3996] - str w3, [x2,12] - str w21, [x2,304] - ldr w3, [x1,4004] - str w3, [x2,308] - ldr w3, [x1,4008] - str w3, [x2,336] - ldr w1, [x1,4012] - str w1, [x2,344] -.L424: - lsl x0, x19, 3 - ldrb w1, [x0,x20] - sub w1, w1, #1 - uxtb w1, w1 - cmp w1, 253 - bhi .L423 - mov w0, w19 + adrp x19, .LANCHOR0 + str x21, [sp,32] + add x0, x19, :lo12:.LANCHOR0 + adrp x21, IDByte + mov x20, 0 + add x21, x21, :lo12:IDByte + ldr x1, [x0,3976] + ldr w2, [x0,3984] + str w2, [x1] + ldr w2, [x0,3988] + ldr x1, [x0,3976] + str w2, [x1,4] + ldr w2, [x0,3992] + ldr x1, [x0,3976] + str w2, [x1,8] + ldr w2, [x0,3996] + str w2, [x1,12] + ldr w2, [x0,4000] + str w2, [x1,304] + ldr w2, [x0,4004] + str w2, [x1,308] + ldr w2, [x0,4008] + str w2, [x1,336] + ldr w0, [x0,4012] + str w0, [x1,344] +.L450: + lsl x0, x20, 3 + ldrb w0, [x0,x21] + sub w0, w0, #1 + uxtb w0, w0 + cmp w0, 253 + bhi .L449 + mov w0, w20 bl FlashReset -.L423: - add x19, x19, 1 - cmp x19, 4 - bne .L424 - adrp x19, .LANCHOR2 - add x19, x19, :lo12:.LANCHOR2 - ldrb w0, [x19,572] - cbz w0, .L425 +.L449: + add x20, x20, 1 + cmp x20, 4 + bne .L450 + adrp x20, .LANCHOR2 + add x20, x20, :lo12:.LANCHOR2 + ldrb w0, [x20,572] + cbz w0, .L451 mov w0, 1 bl NandcSetMode - ldrb w0, [x19,564] + ldrb w0, [x20,564] bl FlashSetInterfaceMode - ldrb w0, [x19,564] + ldrb w0, [x20,564] bl NandcSetMode - lsr w0, w21, 8 + add x0, x19, :lo12:.LANCHOR0 + ldr w0, [x0,4000] + lsr w0, w0, 8 bl NandcSetDdrPara -.L425: - add x0, x22, :lo12:.LANCHOR0 - ldr x0, [x0,1912] +.L451: + add x19, x19, :lo12:.LANCHOR0 + ldr x0, [x19,1912] ldrb w0, [x0,20] bl FlashBchSel + ldr x21, [sp,32] ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] ldp x29, x30, [sp], 48 ret .size ftl_flash_resume, .-ftl_flash_resume @@ -3006,18 +3202,18 @@ NandcIqrWaitFlashReady: orr w0, w0, 2 str w0, [x19,364] ldr w0, [x19] - tbnz x0, 9, .L432 + tbnz x0, 9, .L458 mov x0, x19 bl wait_for_nand_flash_ready - b .L431 -.L432: + b .L457 +.L458: ldr w0, [x19,368] orr w0, w0, 2 str w0, [x19,368] ldr w0, [x19,364] and w0, w0, -3 str w0, [x19,364] -.L431: +.L457: ldr x19, [sp,16] ldp x29, x30, [sp], 32 ret @@ -3041,17 +3237,17 @@ FlashEraseBlocks: mov x24, x0 ldrb w2, [x20,24] mov w19, 0 - cbz w2, .L435 + cbz w2, .L461 mov w1, w23 bl FlashEraseSLc2KBlocks - b .L436 -.L435: + b .L462 +.L461: mov w27, 56 adrp x28, .LANCHOR2 - add x25, x20, 1720 -.L466: + add x25, x20, 1716 +.L492: cmp w19, w23 - bcs .L467 + bcs .L493 umull x5, w19, w27 mov w1, 0 sub w4, w23, w19 @@ -3062,26 +3258,26 @@ FlashEraseBlocks: str x5, [x29,96] bl LogAddr2PhyAddr mov w22, w0 - ldrb w1, [x20,1676] + ldrb w1, [x20,1672] ldr w0, [x29,124] ldr x5, [x29,96] cmp w0, w1 - bcc .L437 + bcc .L463 mov w0, -1 str w0, [x24,x5] - b .L438 -.L437: + b .L464 +.L463: add x1, x28, :lo12:.LANCHOR2 mov x2, 24 - ldrb w1, [x1,648] + ldrb w1, [x1,656] cmp w1, wzr uxtw x1, w0 csel w22, w22, wzr, ne madd x1, x1, x2, x25 ldr x1, [x1,8] - cbz x1, .L440 + cbz x1, .L466 bl FlashWaitCmdDone -.L440: +.L466: ldr w1, [x29,124] mov x0, 24 ldr w2, [x29,120] @@ -3089,32 +3285,32 @@ FlashEraseBlocks: str x21, [x0,8] str xzr, [x0,16] str w2, [x0,4] - cbz w22, .L441 + cbz w22, .L467 add w2, w19, 1 umull x2, w2, w27 add x2, x24, x2 str x2, [x0,16] -.L441: - add x0, x20, x1 - ldrb w21, [x0,1680] +.L467: + add x0, x20, 1676 + ldrb w21, [x0,x1] mov x0, 24 mul x1, x1, x0 mov w0, w21 strb w21, [x25,x1] bl NandcFlashCs cmp w26, 1 - bne .L442 - ldrb w0, [x20,136] - cbz w0, .L442 + bne .L468 + ldrb w0, [x20,4044] + cbz w0, .L468 mov w0, w21 bl flash_enter_slc_mode - b .L443 -.L442: + b .L469 +.L468: mov w0, w21 bl flash_exit_slc_mode -.L443: +.L469: ldr w1, [x29,124] - add x0, x20, 1688 + add x0, x20, 1684 add w19, w19, w22 ldr w0, [x0,x1,lsl 2] ldr w1, [x29,120] @@ -3128,54 +3324,55 @@ FlashEraseBlocks: bl FlashEraseCmd mov w0, w21 bl NandcFlashDeCs -.L438: +.L464: add w19, w19, 1 - b .L466 -.L467: + b .L492 +.L493: ldr x0, [x29,104] mov x20, 0 - mov x21, 24 + mov x22, 24 add x19, x0, :lo12:.LANCHOR0 + add x21, x19, 1716 ldr x0, [x19,3976] bl NandcIqrWaitFlashReady -.L445: - ldrb w0, [x19,1676] +.L471: + ldrb w0, [x19,1672] cmp w0, w20 - bls .L468 + bls .L494 mov w0, w20 bl FlashWaitCmdDone cmp w26, 1 - bne .L446 - ldrb w0, [x19,136] - cbz w0, .L446 - madd x0, x20, x21, x19 - ldrb w0, [x0,1720] + bne .L472 + ldrb w0, [x19,4044] + cbz w0, .L472 + mul x0, x20, x22 + ldrb w0, [x0,x21] bl flash_exit_slc_mode -.L446: +.L472: add x20, x20, 1 - b .L445 -.L468: - adrp x0, .LANCHOR2+652 - ldr w0, [x0,#:lo12:.LANCHOR2+652] - cbnz w0, .L448 -.L450: + b .L471 +.L494: + adrp x0, .LANCHOR2+660 + ldr w0, [x0,#:lo12:.LANCHOR2+660] + cbnz w0, .L474 +.L476: mov w0, 0 - b .L436 -.L448: + b .L462 +.L474: adrp x0, IDByte ldrb w0, [x0,#:lo12:IDByte] cmp w0, 69 - bne .L450 + bne .L476 mov x0, 0 mov x1, 56 -.L449: +.L475: cmp w23, w0 - bls .L450 + bls .L476 mul x2, x0, x1 add x0, x0, 1 str wzr, [x24,x2] - b .L449 -.L436: + b .L475 +.L462: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -3213,11 +3410,11 @@ NandcSendDumpDataStart: .type NandcSendDumpDataDone, %function NandcSendDumpDataDone: sub sp, sp, #16 -.L471: +.L497: ldr w1, [x0,8] str w1, [sp,8] ldr w1, [sp,8] - tbz x1, 20, .L471 + tbz x1, 20, .L497 add sp, sp, 16 ret .size NandcSendDumpDataDone, .-NandcSendDumpDataDone @@ -3258,7 +3455,7 @@ NandcXferStart: ldr w0, [x0,580] bfi w20, w3, 4, 1 cmp w0, 3 - bls .L475 + bls .L501 ldr w0, [x21,16] cmp x5, xzr str w0, [x29,88] @@ -3266,11 +3463,11 @@ NandcXferStart: ldr w0, [x29,88] and w0, w0, -5 str w0, [x29,88] - cbnz w7, .L489 - cbz x22, .L476 -.L489: - cbnz w25, .L478 -.L486: + cbnz w7, .L515 + cbz x22, .L502 +.L515: + cbnz w25, .L504 +.L512: mov x0, x21 add w23, w23, 1 asr w23, w23, 1 @@ -3283,62 +3480,62 @@ NandcXferStart: orr w0, w0, 1 str w0, [x21,364] mov x0, x22 - cbnz x22, .L480 + cbnz x22, .L506 add x0, x19, :lo12:.LANCHOR2 - ldr x0, [x0,592] - b .L480 -.L478: + ldr x0, [x0,600] + b .L506 +.L504: add x1, x19, :lo12:.LANCHOR2 mov w4, 128 mov w2, 0 lsr w8, w23, 1 mov w3, w2 mov w9, -1 - ldr w0, [x1,644] + ldr w0, [x1,652] cmp w0, 25 mov w0, 64 csel w4, w0, w4, cc -.L482: +.L508: cmp w3, w8 - bcs .L486 + bcs .L512 lsr w0, w2, 2 ubfiz x0, x0, 2, 30 - cbz w7, .L483 + cbz w7, .L509 ldrh w6, [x5,2] - ldr x10, [x1,600] + ldr x10, [x1,608] ldrh w11, [x5],4 orr w6, w11, w6, lsl 16 str w6, [x10,x0] - b .L484 -.L483: - ldr x6, [x1,600] + b .L510 +.L509: + ldr x6, [x1,608] str w9, [x6,x0] -.L484: +.L510: add w3, w3, 1 add w2, w2, w4 - b .L482 -.L480: + b .L508 +.L506: add x19, x19, :lo12:.LANCHOR2 ubfx x23, x20, 22, 5 mov w2, w25 and x22, x22, 3 - ldr x1, [x19,600] - str x1, [x19,616] + ldr x1, [x19,608] + str x1, [x19,624] lsl w1, w23, 10 - str x0, [x19,608] + str x0, [x19,616] bl rknand_dma_map_single - str w0, [x19,624] - ldr x0, [x19,616] + str w0, [x19,632] + ldr x0, [x19,624] lsl w1, w23, 7 mov w2, w25 bl rknand_dma_map_single - str w0, [x19,628] + str w0, [x19,636] mov w0, 1 - str w0, [x19,632] - ldr w0, [x19,624] + str w0, [x19,640] + ldr w0, [x19,632] mov w1, 16 str w0, [x21,20] - ldr w0, [x19,628] + ldr w0, [x19,636] str w0, [x21,24] str wzr, [x29,88] ldr w0, [x29,88] @@ -3347,12 +3544,12 @@ NandcXferStart: ldr w0, [x29,88] orr w0, w0, 448 str w0, [x29,88] - cbnz x22, .L487 + cbnz x22, .L513 ldr w0, [x29,88] mov w1, 2 bfi w0, w1, 3, 3 str w0, [x29,88] -.L487: +.L513: ldr w0, [x29,88] cmp w25, wzr cset w1, eq @@ -3364,10 +3561,10 @@ NandcXferStart: ldr w0, [x29,88] orr w0, w0, 1 str w0, [x29,88] -.L476: +.L502: ldr w0, [x29,88] str w0, [x21,16] -.L475: +.L501: str w24, [x21,12] str w20, [x21,8] orr w20, w20, 4 @@ -3397,36 +3594,36 @@ NandcXferComp: add x0, x20, :lo12:.LANCHOR2 ldr w0, [x0,580] cmp w0, 3 - bls .L524 + bls .L550 ldr w0, [x19,16] - tbz x0, 2, .L524 + tbz x0, 2, .L550 mov x0, x19 bl wait_for_nandc_xfer_completed ldr w21, [x19,16] ldr w0, [x19,8] ubfx x21, x21, 1, 1 str w0, [x29,64] - cbz w21, .L495 + cbz w21, .L521 adrp x22, .LC4 adrp x23, .LC5 mov w21, 0 add x22, x22, :lo12:.LC4 add x23, x23, :lo12:.LC5 -.L496: +.L522: ldr w2, [x19,28] ldr w1, [x29,64] ubfx x2, x2, 16, 5 ubfx x1, x1, 22, 6 cmp w2, w1 - bge .L504 + bge .L530 add x0, x20, :lo12:.LANCHOR2 ldr w0, [x0,580] cmp w0, 5 - bhi .L497 -.L500: + bhi .L523 +.L526: add w21, w21, 1 and w0, w21, 16777215 - cbnz w0, .L496 + cbnz w0, .L522 ldr w2, [x19,28] mov w1, w21 ldr w3, [x29,64] @@ -3439,19 +3636,19 @@ NandcXferComp: mov w2, 4 mov w3, 512 bl rknand_print_hex - b .L496 -.L497: + b .L522 +.L523: ldr w0, [x19] str w0, [x29,72] ldr w0, [x29,72] - tbz x0, 13, .L500 + tbz x0, 13, .L526 ldr w0, [x29,72] - tbz x0, 17, .L500 -.L504: + tbz x0, 17, .L526 +.L530: add x19, x20, :lo12:.LANCHOR2 - add x19, x19, 592 + add x19, x19, 600 ldr w0, [x19,40] - cbz w0, .L505 + cbz w0, .L531 ldr w1, [x29,64] mov w2, 0 ldr w0, [x19,32] @@ -3464,20 +3661,20 @@ NandcXferComp: ubfx x1, x1, 22, 5 lsl w1, w1, 7 bl rknand_dma_unmap_single - b .L505 -.L495: + b .L531 +.L521: adrp x22, .LC6 adrp x23, .LC5 add x22, x22, :lo12:.LC6 add x23, x23, :lo12:.LC5 -.L506: +.L532: ldr w0, [x29,64] - tbnz x0, 20, .L532 + tbnz x0, 20, .L558 ldr w0, [x19,8] add w21, w21, 1 str w0, [x29,64] and w0, w21, 16777215 - cbnz w0, .L506 + cbnz w0, .L532 ldr w2, [x29,64] mov w1, w21 ldr w3, [x19,28] @@ -3489,18 +3686,18 @@ NandcXferComp: mov w2, 4 mov w3, 512 bl rknand_print_hex - b .L506 -.L532: + b .L532 +.L558: add x0, x20, :lo12:.LANCHOR2 - ldr w0, [x0,640] - cbz w0, .L509 + ldr w0, [x0,648] + cbz w0, .L535 mov x0, x19 bl NandcSendDumpDataStart -.L509: +.L535: add x21, x20, :lo12:.LANCHOR2 - add x21, x21, 592 + add x21, x21, 600 ldr w0, [x21,40] - cbz w0, .L510 + cbz w0, .L536 ldr w1, [x29,64] mov w2, 1 ldr w0, [x21,32] @@ -3513,22 +3710,22 @@ NandcXferComp: ubfx x1, x1, 22, 5 lsl w1, w1, 7 bl rknand_dma_unmap_single -.L510: +.L536: add x0, x20, :lo12:.LANCHOR2 - ldr w0, [x0,640] - cbz w0, .L505 + ldr w0, [x0,648] + cbz w0, .L531 mov x0, x19 bl NandcSendDumpDataDone -.L505: +.L531: add x20, x20, :lo12:.LANCHOR2 - str wzr, [x20,632] - b .L493 -.L524: + str wzr, [x20,640] + b .L519 +.L550: ldr w0, [x19,8] str w0, [x29,64] ldr w0, [x29,64] - tbz x0, 20, .L524 -.L493: + tbz x0, 20, .L550 +.L519: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldr x23, [sp,48] @@ -3551,14 +3748,14 @@ NandcCopy1KB: add x4, x0, 4096 add x21, x0, 512 add x2, x4, x2 - bne .L534 - cbz x3, .L535 + bne .L560 + cbz x3, .L561 mov x0, x2 mov x1, x3 mov w2, 1024 bl ftl_memcpy -.L535: - cbz x20, .L533 +.L561: + cbz x20, .L559 mov w0, 48 lsr w19, w19, 1 ldrb w1, [x20,1] @@ -3572,15 +3769,15 @@ NandcCopy1KB: ldrb w1, [x20,3] orr w0, w0, w1, lsl 24 str w0, [x21,w19,sxtw 2] - b .L533 -.L534: - cbz x3, .L538 + b .L559 +.L560: + cbz x3, .L564 mov x1, x2 mov x0, x3 mov w2, 1024 bl ftl_memcpy -.L538: - cbz x20, .L533 +.L564: + cbz x20, .L559 mov w0, 48 lsr w19, w19, 1 mul w19, w19, w0 @@ -3593,7 +3790,7 @@ NandcCopy1KB: lsr w0, w0, 24 strb w1, [x20,2] strb w0, [x20,3] -.L533: +.L559: ldp x19, x20, [sp,16] ldr x21, [sp,32] ldp x29, x30, [sp], 48 @@ -3620,14 +3817,14 @@ NandcXferData: uxtb w23, w2 mov x25, x3 mov x21, x4 - cbnz x0, .L550 - cbnz x4, .L551 + cbnz x0, .L576 + cbnz x4, .L577 add x0, x29, 112 mov w1, 255 mov w2, 64 add x21, x29, 112 bl ftl_memset -.L551: +.L577: mov w0, w24 mov w1, w20 mov w2, w23 @@ -3638,22 +3835,22 @@ NandcXferData: bl NandcXferStart mov w0, w24 bl NandcXferComp - cbnz w20, .L552 + cbnz w20, .L578 adrp x0, .LANCHOR2 ubfx x3, x23, 1, 7 add x2, x0, :lo12:.LANCHOR2 mov w4, 128 add x3, x21, x3, lsl 2 - ldr w1, [x2,644] + ldr w1, [x2,652] cmp w1, 25 mov w1, 64 csel w4, w1, w4, cc mov w1, w20 -.L554: +.L580: cmp x21, x3 add w5, w1, w4 - beq .L596 - ldr x6, [x2,600] + beq .L622 + ldr x6, [x2,608] and x1, x1, 4294967292 add x21, x21, 4 ldr w1, [x6,x1] @@ -3665,29 +3862,29 @@ NandcXferData: lsr w1, w1, 24 strb w1, [x21,-1] mov w1, w5 - b .L554 -.L596: + b .L580 +.L622: add x0, x0, :lo12:.LANCHOR2 lsr w23, w23, 2 - ldr w4, [x0,644] + ldr w4, [x0,652] ldr w5, [x0,580] mov w0, 0 mov w22, w0 -.L556: +.L582: cmp w0, w23 - bcs .L552 - cbz w4, .L552 + bcs .L578 + cbz w4, .L578 uxtw x1, w0 add x1, x1, 8 ldr w1, [x19,x1,lsl 2] str w1, [x29,104] ldr w1, [x29,104] - tbnz x1, 2, .L580 + tbnz x1, 2, .L606 ldr w3, [x29,104] ubfx x3, x3, 15, 1 - cbnz w3, .L580 + cbnz w3, .L606 cmp w5, 5 - bls .L558 + bls .L584 ldr w2, [x29,104] ubfx x6, x2, 3, 5 ldr w2, [x29,104] @@ -3700,20 +3897,20 @@ NandcXferData: orr w1, w3, w1, lsl 5 ldr w3, [x29,104] cmp w2, w1 - bls .L559 + bls .L585 ldr w1, [x29,104] ubfx x3, x3, 3, 5 ubfx x1, x1, 27, 1 orr w3, w3, w1, lsl 5 - b .L560 -.L559: + b .L586 +.L585: ubfx x1, x3, 16, 5 ldr w3, [x29,104] ubfx x3, x3, 29, 1 - b .L595 -.L558: + b .L621 +.L584: cmp w5, 3 - bls .L560 + bls .L586 ldr w2, [x29,104] ubfx x6, x2, 3, 5 ldr w2, [x29,104] @@ -3726,43 +3923,43 @@ NandcXferData: orr w1, w3, w1, lsl 5 ldr w3, [x29,104] cmp w2, w1 - bls .L561 + bls .L587 ubfx x1, x3, 3, 5 ldr w3, [x29,104] ubfx x3, x3, 28, 1 - b .L595 -.L561: + b .L621 +.L587: ubfx x1, x3, 16, 5 ldr w3, [x29,104] ubfx x3, x3, 30, 1 -.L595: +.L621: orr w3, w1, w3, lsl 5 -.L560: +.L586: cmp w22, w3 csel w22, w22, w3, cs - b .L557 -.L580: + b .L583 +.L606: mov w22, -1 -.L557: +.L583: add w0, w0, 1 - b .L556 -.L552: + b .L582 +.L578: str wzr, [x19,16] - b .L563 -.L550: + b .L589 +.L576: cmp w20, 1 - bne .L594 + bne .L620 mov w22, 0 mov w27, 2 -.L564: +.L590: cmp w22, w23 - bcs .L597 + bcs .L623 and w26, w22, 3 mov x3, x25 - cbz x25, .L566 + cbz x25, .L592 ubfiz x0, x22, 9, 23 add x3, x25, x0 -.L566: +.L592: cmp x21, xzr mov x0, x19 csel w4, w27, wzr, ne @@ -3781,11 +3978,11 @@ NandcXferData: bl NandcXferStart mov w0, w24 bl NandcXferComp - b .L564 -.L597: + b .L590 +.L623: mov w22, 0 - b .L563 -.L594: + b .L589 +.L620: mov w1, 0 mov x4, 0 mov w26, 0 @@ -3796,16 +3993,16 @@ NandcXferData: mov w22, w26 mov w27, 2 bl NandcXferStart -.L569: +.L595: cmp w26, w23 - bcs .L563 + bcs .L589 mov w0, w24 add w28, w26, 2 bl NandcXferComp ldr w0, [x19,32] cmp w28, w23 str w0, [x29,104] - bcs .L570 + bcs .L596 mov x4, 0 mov w0, w24 mov w1, 0 @@ -3813,9 +4010,9 @@ NandcXferData: and w3, w28, 3 mov x5, x4 bl NandcXferStart -.L570: +.L596: ldr w0, [x29,104] - tbnz x0, 2, .L585 + tbnz x0, 2, .L611 ldr w0, [x29,104] ubfx x1, x0, 3, 5 ldr w0, [x29,104] @@ -3823,16 +4020,16 @@ NandcXferData: orr w0, w1, w0, lsl 5 cmp w22, w0 csel w22, w22, w0, cs - b .L571 -.L585: + b .L597 +.L611: mov w22, -1 -.L571: +.L597: and w2, w26, 3 mov x3, x25 - cbz x25, .L572 + cbz x25, .L598 ubfiz x3, x26, 9, 23 add x3, x25, x3 -.L572: +.L598: cmp x21, xzr mov x0, x19 csel w4, w27, wzr, ne @@ -3841,23 +4038,23 @@ NandcXferData: mov w26, w28 add x4, x21, x4 bl NandcCopy1KB - b .L569 -.L563: - cbnz w20, .L575 + b .L595 +.L589: + cbnz w20, .L601 adrp x0, .LANCHOR2+580 ldr w0, [x0,#:lo12:.LANCHOR2+580] cmp w0, 5 - bls .L575 + bls .L601 ldr w0, [x19] mov w1, 8192 movk w1, 0x2, lsl 16 and w1, w0, w1 cmp w1, 139264 - bne .L575 + bne .L601 orr w0, w0, 131072 mov w22, -1 str w0, [x19] -.L575: +.L601: mov w0, w22 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -3876,11 +4073,11 @@ FlashReadRawPage: add x29, sp, 0 stp x19, x20, [sp,16] uxtb w19, w0 - adrp x0, .LANCHOR1+265 + adrp x0, .LANCHOR1+481 str x21, [sp,32] mov x21, x2 - ldrb w20, [x0,#:lo12:.LANCHOR1+265] - cbnz w19, .L599 + ldrb w20, [x0,#:lo12:.LANCHOR1+481] + cbnz w19, .L625 adrp x0, .LANCHOR0 add x0, x0, :lo12:.LANCHOR0 ldrb w5, [x0,25] @@ -3889,7 +4086,7 @@ FlashReadRawPage: cmp w1, w0 mov w0, 4 csel w20, w20, w0, cs -.L599: +.L625: mov w0, w19 str x4, [x29,48] str x1, [x29,56] @@ -3945,7 +4142,7 @@ FlashDdrTunningRead: cmp w0, 8 mov w0, 12 csel w22, w22, w0, cc - cbz w4, .L602 + cbz w4, .L628 mov w0, 1 bl FlashSetInterfaceMode mov w0, 1 @@ -3963,41 +4160,41 @@ FlashDdrTunningRead: ldrb w0, [x27,564] bl NandcSetMode cmn w21, #1 - bne .L603 -.L612: + bne .L629 +.L638: mov w21, -1 - b .L604 -.L603: + b .L630 +.L629: adrp x0, .LC7 mov w1, w25 add x0, x0, :lo12:.LC7 mov w2, w21 bl printk cmp w21, 9 - bhi .L605 + bhi .L631 add x20, x20, x24, sxtw 4 ldr x0, [x20,40] ldr w1, [x0,3840] ldr w1, [x0] orr w1, w1, 131072 str w1, [x0] -.L605: +.L631: add x19, x19, :lo12:.LANCHOR2 - ldr w0, [x19,656] + ldr w0, [x19,664] add w0, w0, 1 - str w0, [x19,656] + str w0, [x19,664] cmp w0, 2047 - bls .L604 + bls .L630 mov x23, 0 - str wzr, [x19,656] + str wzr, [x19,664] mov x28, x23 -.L602: +.L628: mov w19, 0 mov w27, -1 mov w5, w19 mov w6, w19 mov w20, w19 -.L610: +.L636: mov w0, w22 str x5, [x29,104] str x6, [x29,112] @@ -4011,63 +4208,63 @@ FlashDdrTunningRead: ldr x6, [x29,112] cmp w0, w1 ldr x5, [x29,104] - bhi .L606 + bhi .L632 cmp w0, 2 - bhi .L616 + bhi .L642 add w20, w20, 1 cmp w20, 9 - bls .L616 + bls .L642 sub w19, w22, w20 mov w21, w0 mov w27, 0 - b .L608 -.L606: + b .L634 +.L632: cmp w6, w20 - bcs .L617 + bcs .L643 cmp w20, 7 sub w5, w19, w20 - bhi .L618 + bhi .L644 mov w6, w20 - b .L617 -.L616: + b .L643 +.L642: mov x23, 0 mov w19, w22 mov w21, w0 mov w27, 0 mov x28, x23 - b .L607 -.L617: + b .L633 +.L643: mov w20, 0 -.L607: +.L633: add w22, w22, 2 cmp w22, 69 - bls .L610 -.L608: + bls .L636 +.L634: cmp w6, w20 csel w19, w19, w5, cc - b .L609 -.L618: + b .L635 +.L644: mov w19, w5 -.L609: - cbz w19, .L611 +.L635: + cbz w19, .L637 adrp x0, .LC8 mov w1, w19 add x0, x0, :lo12:.LC8 bl printk mov w0, w19 bl NandcSetDdrPara -.L611: - cbz w27, .L604 +.L637: + cbz w27, .L630 adrp x0, .LC9 mov w1, w24 add x0, x0, :lo12:.LC9 mov w2, w25 bl printk - cbz w26, .L612 + cbz w26, .L638 ldr w0, [x29,124] lsr w0, w0, 8 bl NandcSetDdrPara -.L604: +.L630: mov w0, w21 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -4097,17 +4294,17 @@ FlashReadPage: cmn w0, #1 mov w19, w0 adrp x23, .LANCHOR2 - bne .L628 + bne .L654 adrp x21, .LANCHOR0 add x26, x21, :lo12:.LANCHOR0 ldrb w27, [x26,32] - cbnz w27, .L629 -.L631: + cbnz w27, .L655 +.L657: add x0, x23, :lo12:.LANCHOR2 ldrb w0, [x0,572] - cbz w0, .L628 - b .L649 -.L629: + cbz w0, .L654 + b .L675 +.L655: mov w0, w20 mov w1, w22 mov x2, x25 @@ -4116,10 +4313,10 @@ FlashReadPage: bl FlashReadRawPage strb w27, [x26,32] cmn w0, #1 - beq .L631 + beq .L657 mov w19, w0 - b .L628 -.L649: + b .L654 +.L675: add x21, x21, :lo12:.LANCHOR0 mov w1, w22 mov x2, x25 @@ -4131,19 +4328,19 @@ FlashReadPage: bl FlashDdrTunningRead cmn w0, #1 mov w19, w0 - beq .L632 - ldrb w0, [x21,4044] + beq .L658 + ldrb w0, [x21,4045] cmp w19, w0, lsr 1 - bls .L628 -.L632: + bls .L654 +.L658: lsr w0, w26, 8 bl NandcSetDdrPara -.L628: +.L654: add x21, x23, :lo12:.LANCHOR2 cmn w19, #1 - ldr x4, [x21,664] - bne .L633 - cbz x4, .L633 + ldr x4, [x21,672] + bne .L659 + cbz x4, .L659 mov w1, w22 mov x2, x25 mov x3, x24 @@ -4157,13 +4354,13 @@ FlashReadPage: mov w3, w22 bl printk cmn w19, #1 - bne .L633 - adrp x0, .LANCHOR0+136 - ldrb w0, [x0,#:lo12:.LANCHOR0+136] - cbz w0, .L633 + bne .L659 + adrp x0, .LANCHOR0+4044 + ldrb w0, [x0,#:lo12:.LANCHOR0+4044] + cbz w0, .L659 mov w0, w20 bl flash_enter_slc_mode - ldr x4, [x21,664] + ldr x4, [x21,672] mov w0, w20 mov w1, w22 mov x2, x25 @@ -4172,7 +4369,7 @@ FlashReadPage: mov w19, w0 mov w0, w20 bl flash_exit_slc_mode -.L633: +.L659: mov w0, w19 ldr x27, [sp,80] ldp x19, x20, [sp,16] @@ -4211,24 +4408,24 @@ FlashDdrParaScan: mov x3, x2 bl FlashReadRawPage cmn w0, #1 - beq .L654 + beq .L680 cmn w22, #1 - bne .L651 -.L654: + bne .L677 +.L680: add x20, x19, :lo12:.LANCHOR2 ldrb w0, [x20,564] - tbz x0, 0, .L651 + tbz x0, 0, .L677 mov w0, 1 bl FlashSetInterfaceMode mov w0, 1 bl NandcSetMode strb wzr, [x20,572] - b .L653 -.L651: + b .L679 +.L677: add x19, x19, :lo12:.LANCHOR2 mov w0, 1 strb w0, [x19,572] -.L653: +.L679: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -4243,38 +4440,39 @@ FlashLoadPhyInfo: mov w0, 60 add x29, sp, 0 stp x19, x20, [sp,16] - stp x25, x26, [sp,64] + adrp x19, .LANCHOR0 + str x27, [sp,80] strb w0, [x29,104] mov w0, 40 strb w0, [x29,105] mov w0, 24 - adrp x25, .LANCHOR2 strb w0, [x29,106] - adrp x19, .LANCHOR0 mov w0, 16 - stp x23, x24, [sp,48] strb w0, [x29,107] - adrp x23, .LANCHOR1 - add x0, x25, :lo12:.LANCHOR2 - ldr x1, [x19,#:lo12:.LANCHOR0] + add x0, x19, :lo12:.LANCHOR0 + stp x23, x24, [sp,48] stp x21, x22, [sp,32] - add x21, x23, :lo12:.LANCHOR1 + stp x25, x26, [sp,64] + adrp x23, .LANCHOR2 + adrp x22, .LANCHOR1 + ldr w25, [x0,28] + add x0, x23, :lo12:.LANCHOR2 + ldr x1, [x19,#:lo12:.LANCHOR0] + add x22, x22, :lo12:.LANCHOR1 mov w20, 0 - stp x27, x28, [sp,80] - add x21, x21, 256 - str x1, [x0,672] - str wzr, [x0,680] - mov w27, 4 + mov w24, 4 + str x1, [x0,680] + mov w26, -1 + str wzr, [x0,688] + add x22, x22, 472 mov w0, 0 - mov w24, -1 - ldrh w28, [x21,10] bl flash_enter_slc_mode -.L662: - add w26, w20, 1 - mov x22, 0 -.L664: +.L688: + add w27, w20, 1 + mov x21, 0 +.L690: add x0, x29, 104 - ldrb w0, [x22,x0] + ldrb w0, [x21,x0] bl FlashBchSel ldr x2, [x19,#:lo12:.LANCHOR0] mov w0, 0 @@ -4282,93 +4480,95 @@ FlashLoadPhyInfo: mov x3, 0 bl FlashReadRawPage cmn w0, #1 - bne .L663 + bne .L689 ldr x2, [x19,#:lo12:.LANCHOR0] mov w0, 0 - mov w1, w26 + mov w1, w27 mov x3, 0 bl FlashReadRawPage cmn w0, #1 - bne .L663 - add x22, x22, 1 - cmp x22, 4 - beq .L665 - b .L664 -.L666: + bne .L689 + add x21, x21, 1 + cmp x21, 4 + beq .L691 + b .L690 +.L692: mov w1, 2036 - add x0, x26, 12 - mov w24, -1 - bl JSHash - ldr w1, [x26,8] + add x0, x27, 12 + mov w26, -1 + bl js_hash + ldr w1, [x27,8] cmp w1, w0 - beq .L676 -.L665: - subs w27, w27, #1 - add w20, w20, w28 - bne .L662 - mov w0, w27 -.L675: - bl flash_exit_slc_mode + beq .L702 +.L691: + subs w24, w24, #1 + add w20, w20, w25 + bne .L688 mov w0, w24 +.L701: + bl flash_exit_slc_mode + ldr x27, [sp,80] + mov w0, w26 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] ldp x25, x26, [sp,64] - ldp x27, x28, [sp,80] ldp x29, x30, [sp], 112 ret -.L663: - add x22, x25, :lo12:.LANCHOR2 +.L689: + add x21, x23, :lo12:.LANCHOR2 mov w0, 20036 movk w0, 0x4e41, lsl 16 - ldr x26, [x22,672] - ldr w1, [x26] + ldr x27, [x21,680] + ldr w1, [x27] cmp w1, w0 - bne .L665 - cbnz w24, .L666 - add x23, x23, :lo12:.LANCHOR1 + bne .L691 + cbnz w26, .L692 add x19, x19, :lo12:.LANCHOR0 - ldrh w0, [x23,266] + ldr w0, [x19,28] udiv w20, w20, w0 - mov w0, w24 + mov w0, w26 add w20, w20, 1 str w20, [x19,8] - b .L675 -.L676: - add x1, x26, 160 + b .L701 +.L702: + add x1, x27, 160 mov w2, 32 - mov x0, x21 - add x24, x19, :lo12:.LANCHOR0 + mov x0, x22 + add x26, x19, :lo12:.LANCHOR0 bl ftl_memcpy - ldr x1, [x22,672] + ldr x1, [x21,680] mov w2, 32 - add x0, x24, 104 + add x0, x26, 104 add x1, x1, 192 bl ftl_memcpy - ldr x1, [x22,672] + ldr x1, [x21,680] mov w2, 852 - add x0, x24, 4056 + add x0, x26, 4056 add x1, x1, 224 bl ftl_memcpy - str w20, [x22,680] - ldr x1, [x22,672] - ldr w0, [x1,1076] - strb w0, [x22,572] - ldrh w0, [x21,10] - udiv w0, w20, w0 - add w2, w0, 1 - cbz w0, .L668 - str w2, [x24,8] - b .L669 -.L668: + ldrh w0, [x22,10] + bl FlashBlockAlignInit + str w20, [x21,688] + ldr w1, [x26,28] + ldr x2, [x21,680] + udiv w1, w20, w1 + ldr w0, [x2,1076] + add w1, w1, 1 + strb w0, [x21,572] + cmp w1, 1 + bls .L694 + str w1, [x26,8] + b .L695 +.L694: mov w0, 2 - str w0, [x24,8] -.L669: - add x0, x25, :lo12:.LANCHOR2 - ldrh w1, [x1,14] - mov w24, 0 - strb w1, [x0,684] - b .L665 + str w0, [x26,8] +.L695: + add x0, x23, :lo12:.LANCHOR2 + ldrh w1, [x2,14] + mov w26, 0 + strb w1, [x0,692] + b .L691 .size FlashLoadPhyInfo, .-FlashLoadPhyInfo .align 2 .global ToshibaReadRetrial @@ -4405,21 +4605,21 @@ ToshibaReadRetrial: sub w0, w0, #67 uxtb w0, w0 cmp w0, 1 - bls .L678 + bls .L704 adrp x0, .LANCHOR2+572 ldrb w0, [x0,#:lo12:.LANCHOR2+572] - cbz w0, .L679 + cbz w0, .L705 mov w0, w22 mov w22, 1 bl NandcSetDdrMode -.L679: +.L705: ubfiz x0, x28, 8, 8 mov w2, 92 add x0, x24, x0 str w2, [x0,2056] mov w2, 197 str w2, [x0,2056] -.L678: +.L704: adrp x0, g_maxRetryCount mov w21, 1 add x0, x0, :lo12:g_maxRetryCount @@ -4431,44 +4631,44 @@ ToshibaReadRetrial: str x0, [x29,104] ubfiz x0, x28, 8, 8 str x0, [x29,96] -.L680: +.L706: adrp x0, g_maxRetryCount ldrb w0, [x0,#:lo12:g_maxRetryCount] add w0, w0, 1 cmp w21, w0 - bcs .L705 + bcs .L731 ldrb w0, [x20,#:lo12:g_retryMode] mov w1, w21 sub w0, w0, #67 uxtb w0, w0 cmp w0, 1 mov x0, x19 - bhi .L681 + bhi .L707 bl SandiskSetRRPara - b .L682 -.L681: + b .L708 +.L707: bl ToshibaSetRRPara -.L682: +.L708: ldrb w0, [x20,#:lo12:g_retryMode] cmp w0, 34 - bne .L683 + bne .L709 ldr x0, [x29,112] ldrb w0, [x0] sub w0, w0, #3 cmp w21, w0 - bne .L683 + bne .L709 ldr x0, [x29,104] mov w1, 179 add x0, x24, x0 str w1, [x0,8] -.L683: +.L709: ldr x0, [x29,96] mov w1, 38 add x0, x24, x0 str w1, [x0,2056] mov w1, 93 str w1, [x0,2056] - cbz w22, .L684 + cbz w22, .L710 mov w0, 4 bl NandcSetDdrMode ldr w1, [x29,132] @@ -4479,45 +4679,45 @@ ToshibaReadRetrial: mov w28, w0 mov w0, 0 bl NandcSetDdrMode - b .L685 -.L684: + b .L711 +.L710: ldr w1, [x29,132] mov w0, w23 mov x2, x27 mov x3, x26 bl FlashReadRawPage mov w28, w0 -.L685: +.L711: cmn w28, #1 - beq .L686 + beq .L712 ldr x0, [x29,120] cmn w25, #1 csel w25, w25, w28, ne add x0, x0, :lo12:.LANCHOR0 - ldrb w0, [x0,4044] + ldrb w0, [x0,4045] add w0, w0, w0, lsl 1 cmp w28, w0, lsr 2 - bcc .L688 + bcc .L714 mov x26, 0 mov x27, x26 -.L686: +.L712: add w21, w21, 1 - b .L680 -.L705: + b .L706 +.L731: mov w28, w25 -.L688: +.L714: ldrb w0, [x20,#:lo12:g_retryMode] mov w1, 0 sub w0, w0, #67 uxtb w0, w0 cmp w0, 1 mov x0, x19 - bhi .L690 + bhi .L716 bl SandiskSetRRPara - b .L691 -.L690: + b .L717 +.L716: bl ToshibaSetRRPara -.L691: +.L717: ldr x0, [x29,136] add x0, x0, 8 add x24, x24, x0, lsl 8 @@ -4525,20 +4725,20 @@ ToshibaReadRetrial: str w0, [x24,8] ldr x0, [x29,120] add x0, x0, :lo12:.LANCHOR0 - ldrb w0, [x0,4044] + ldrb w0, [x0,4045] add w0, w0, w0, lsl 1 cmp w28, w0, lsr 2 - bcc .L692 + bcc .L718 cmn w28, #1 mov w0, 256 csel w28, w28, w0, eq -.L692: +.L718: mov w0, w23 bl NandcWaitFlashReady - cbz w22, .L693 + cbz w22, .L719 mov w0, 4 bl NandcSetDdrMode -.L693: +.L719: mov w0, w28 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -4578,11 +4778,11 @@ SamsungReadRetrial: ldrb w21, [x2,8] add x21, x21, 8 add x21, x0, x21, lsl 8 -.L707: +.L733: ldrb w0, [x27] add w0, w0, 1 cmp w26, w0 - bcs .L710 + bcs .L736 mov x0, x21 mov w1, w26 bl SamsungSetRRPara @@ -4592,34 +4792,34 @@ SamsungReadRetrial: mov x3, x23 bl FlashReadRawPage cmn w0, #1 - beq .L708 + beq .L734 add x1, x20, :lo12:.LANCHOR0 cmn w19, #1 csel w19, w19, w0, ne - ldrb w1, [x1,4044] + ldrb w1, [x1,4045] add w1, w1, w1, lsl 1 cmp w0, w1, lsr 2 - bcc .L713 + bcc .L739 mov x23, 0 mov x24, x23 -.L708: +.L734: add w26, w26, 1 - b .L707 -.L713: + b .L733 +.L739: mov w19, w0 -.L710: +.L736: mov x0, x21 mov w1, 0 add x20, x20, :lo12:.LANCHOR0 bl SamsungSetRRPara - ldrb w0, [x20,4044] + ldrb w0, [x20,4045] add w0, w0, w0, lsl 1 cmp w19, w0, lsr 2 - bcc .L712 + bcc .L738 cmn w19, #1 mov w0, 256 csel w19, w19, w0, eq -.L712: +.L738: mov w0, w19 ldr x27, [sp,80] ldp x19, x20, [sp,16] @@ -4645,17 +4845,17 @@ MicronReadRetrial: stp x23, x24, [sp,48] mov w28, w1 mov x26, x2 - ldrb w19, [x0,4044] + ldrb w19, [x0,4045] mov x22, x3 - ldrb w0, [x0,136] - cbnz w0, .L720 + ldrb w0, [x0,4044] + cbnz w0, .L746 add w19, w19, w19, lsl 1 ubfx x19, x19, 2, 8 - b .L721 -.L720: + b .L747 +.L746: mov w0, 3 sdiv w19, w19, w0 -.L721: +.L747: adrp x0, g_maxRetryCount adrp x27, .LC11 add x0, x0, :lo12:g_maxRetryCount @@ -4666,7 +4866,7 @@ MicronReadRetrial: add x20, x20, :lo12:.LANCHOR0 add x23, x20, 40 add x23, x23, x21, sxtw 4 -.L732: +.L758: mov w0, w21 mov w24, 0 mov w27, -1 @@ -4676,13 +4876,13 @@ MicronReadRetrial: ldr x6, [x23] mov w10, 137 lsl x8, x4, 8 -.L722: +.L748: ldr x0, [x29,152] ldrb w0, [x0] cmp w24, w0 - bcs .L725 + bcs .L751 add x2, x6, x8 - mov w0, 200 + mov x0, 1000 str x4, [x29,96] str x8, [x29,104] str w9, [x2,2056] @@ -4691,7 +4891,7 @@ MicronReadRetrial: str x9, [x29,120] str x10, [x29,128] str x2, [x29,136] - bl NandcDelayns + bl __const_udelay ldr x2, [x29,136] add w7, w24, 1 mov w0, w21 @@ -4711,47 +4911,47 @@ MicronReadRetrial: ldr x6, [x29,112] ldr x8, [x29,104] ldr x4, [x29,96] - beq .L723 + beq .L749 cmn w27, #1 csel w27, w27, w0, ne cmp w0, w19 - bcc .L734 + bcc .L760 mov x22, 0 mov x26, x22 -.L723: +.L749: mov w24, w7 - b .L722 -.L734: + b .L748 +.L760: mov x22, 0 mov w27, w0 mov x26, x22 -.L725: +.L751: add x1, x6, x4, lsl 8 mov w0, 239 str x1, [x29,136] str w0, [x1,2056] mov w0, 137 str w0, [x1,2052] - mov w0, 200 - bl NandcDelayns + mov x0, 1000 + bl __const_udelay ldr x1, [x29,136] cmp w27, w19 str wzr, [x1,2048] str wzr, [x1,2048] str wzr, [x1,2048] str wzr, [x1,2048] - bcc .L727 + bcc .L753 cmn w27, #1 mov w0, 256 csel w27, w27, w0, eq -.L727: +.L753: cmn w27, #1 cset w6, eq - cbnz w6, .L736 + cbnz w6, .L762 cmp w27, 256 cset w1, eq - cbz w1, .L728 -.L736: + cbz w1, .L754 +.L762: ldr x0, [x29,144] mov w1, w24 mov w2, w28 @@ -4759,30 +4959,30 @@ MicronReadRetrial: mov w4, w27 str x6, [x29,136] bl printk - cbnz w25, .L730 + cbnz w25, .L756 ldr x6, [x29,136] - cbz w6, .L741 - ldrb w0, [x20,136] - cbz w0, .L741 + cbz w6, .L767 + ldrb w0, [x20,4044] + cbz w0, .L767 mov w0, w21 mov w1, 3 mov w25, 1 bl micron_auto_read_calibration_config - b .L732 -.L730: + b .L758 +.L756: mov w0, w21 mov w1, 0 bl micron_auto_read_calibration_config cmn w27, #1 mov w0, 256 csel w27, w27, w0, eq - b .L741 -.L728: - cbz w25, .L741 + b .L767 +.L754: + cbz w25, .L767 mov w0, w21 mov w27, 256 bl micron_auto_read_calibration_config -.L741: +.L767: mov w0, w27 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -4801,34 +5001,36 @@ HynixReadRetrial: stp x21, x22, [sp,32] adrp x21, .LANCHOR0 uxtb x22, w0 - stp x27, x28, [sp,80] - mov w27, w1 - add x1, x21, :lo12:.LANCHOR0 + add x0, x21, :lo12:.LANCHOR0 stp x23, x24, [sp,48] stp x25, x26, [sp,64] + stp x27, x28, [sp,80] stp x19, x20, [sp,16] mov x26, x2 - add x2, x1, 4056 - ldrb w25, [x1,4058] - add x0, x2, x22 - ldr x1, [x1,1912] + add x2, x0, 4056 + ldrb w25, [x0,4058] + mov w27, w1 + ldr x0, [x0,1912] + add x1, x2, x22 mov x23, x22 mov x24, x3 - ldrb w19, [x0,12] - ldrb w1, [x1,19] - cmp w1, 7 - bne .L750 - ldrb w19, [x0,20] -.L750: + ldrb w0, [x0,19] + ldrb w19, [x1,12] + sub w0, w0, #7 + uxtb w0, w0 + cmp w0, 1 + bhi .L776 + ldrb w19, [x1,20] +.L776: mov w0, w23 mov w28, 0 mov w20, -1 bl NandcWaitFlashReady add x4, x21, :lo12:.LANCHOR0 add x5, x4, 4060 -.L751: +.L777: cmp w28, w25 - bcs .L755 + bcs .L781 add w19, w19, 1 ldrb w1, [x4,4057] mov x2, x5 @@ -4848,42 +5050,44 @@ HynixReadRetrial: cmn w0, #1 ldr x5, [x29,104] ldr x4, [x29,96] - beq .L753 - ldrb w1, [x4,4044] + beq .L779 + ldrb w1, [x4,4045] cmn w20, #1 csel w20, w20, w0, ne add w1, w1, w1, lsl 1 cmp w0, w1, lsr 2 - bcc .L760 + bcc .L786 mov x24, 0 mov x26, x24 -.L753: +.L779: add w28, w28, 1 - b .L751 -.L760: + b .L777 +.L786: mov w20, w0 -.L755: +.L781: add x0, x21, :lo12:.LANCHOR0 ldr x1, [x0,1912] add x0, x0, 4056 add x0, x0, x22 ldrb w1, [x1,19] - cmp w1, 7 - bne .L757 + sub w1, w1, #7 + uxtb w1, w1 + cmp w1, 1 + bhi .L783 strb w19, [x0,20] - b .L758 -.L757: + b .L784 +.L783: strb w19, [x0,12] -.L758: +.L784: add x21, x21, :lo12:.LANCHOR0 - ldrb w0, [x21,4044] + ldrb w0, [x21,4045] add w0, w0, w0, lsl 1 cmp w20, w0, lsr 2 - bcc .L759 + bcc .L785 cmn w20, #1 mov w0, 256 csel w20, w20, w0, eq -.L759: +.L785: mov w0, w20 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -4902,26 +5106,26 @@ FlashProgPage: add x29, sp, 0 stp x19, x20, [sp,16] uxtb w19, w0 - adrp x0, .LANCHOR1+265 + adrp x0, .LANCHOR1+481 stp x21, x22, [sp,32] mov w20, w1 mov x22, x2 - ldrb w21, [x0,#:lo12:.LANCHOR1+265] - cbnz w19, .L767 + ldrb w21, [x0,#:lo12:.LANCHOR1+481] + cbnz w19, .L793 adrp x0, .LANCHOR0 add x0, x0, :lo12:.LANCHOR0 ldrb w1, [x0,25] ldr w2, [x0,28] mul w1, w1, w2 cmp w20, w1 - bcs .L767 + bcs .L793 ldrb w0, [x0,24] - cbnz w0, .L768 + cbnz w0, .L794 sub w21, w21, #2 - b .L767 -.L768: + b .L793 +.L794: mov w21, 4 -.L767: +.L793: mov w0, w19 str x4, [x29,56] bl NandcWaitFlashReady @@ -4969,20 +5173,20 @@ FlashSavePhyInfo: stp x25, x26, [sp,64] ldr x0, [x22,#:lo12:.LANCHOR0] mov w21, 0 - str x0, [x19,672] - ldrb w0, [x19,685] + str x0, [x19,680] + ldrb w0, [x19,693] bl FlashBchSel ldr x0, [x22,#:lo12:.LANCHOR0] mov w1, 0 mov w2, 2048 bl ftl_memset - ldr x1, [x19,672] + ldr x1, [x19,680] mov w0, 20036 movk w0, 0x4e41, lsl 16 mov w2, 32 str w0, [x1] - ldr x0, [x19,672] - ldrb w1, [x20,1676] + ldr x0, [x19,680] + ldrb w1, [x20,1672] add x0, x0, 16 strh w1, [x0,-4] ldrb w1, [x20,25] @@ -4992,46 +5196,46 @@ FlashSavePhyInfo: adrp x1, IDByte add x1, x1, :lo12:IDByte bl ftl_memcpy - ldr x0, [x19,672] - add x1, x20, 1680 + ldr x0, [x19,680] + add x1, x20, 1676 mov w2, 8 add x0, x0, 80 bl ftl_memcpy - ldr x0, [x19,672] - add x1, x20, 1688 + ldr x0, [x19,680] + add x1, x20, 1684 mov w2, 32 add x0, x0, 96 bl ftl_memcpy - ldr x0, [x19,672] + ldr x0, [x19,680] adrp x1, .LANCHOR1 add x1, x1, :lo12:.LANCHOR1 mov w2, 32 - add x1, x1, 256 + add x1, x1, 472 add x0, x0, 160 bl ftl_memcpy - ldr x0, [x19,672] + ldr x0, [x19,680] add x1, x20, 104 mov w2, 32 add x0, x0, 192 bl ftl_memcpy - ldr x0, [x19,672] + ldr x0, [x19,680] add x1, x20, 4056 mov w2, 852 add x0, x0, 224 bl ftl_memcpy - ldr x20, [x19,672] + ldr x20, [x19,680] mov w1, 2036 add x0, x20, 12 - bl JSHash + bl js_hash str w0, [x20,8] mov w0, 1592 str w0, [x20,4] - ldr x0, [x19,688] - str x0, [x19,672] + ldr x0, [x19,696] + str x0, [x19,680] mov w0, 0 mov w19, w21 bl flash_enter_slc_mode -.L772: +.L798: add x20, x22, :lo12:.LANCHOR0 mov w2, 0 mov w0, 0 @@ -5055,39 +5259,39 @@ FlashSavePhyInfo: bl FlashProgPage ldr w1, [x20,28] mov w0, 0 - ldr x2, [x24,688] + ldr x2, [x24,696] mov x3, 0 mul w1, w19, w1 bl FlashReadRawPage cmn w0, #1 - beq .L770 - ldr x25, [x24,672] + beq .L796 + ldr x25, [x24,680] mov w0, 20036 movk w0, 0x4e41, lsl 16 ldr w1, [x25] cmp w1, w0 - bne .L770 + bne .L796 mov w1, 2036 add x0, x25, 12 - bl JSHash + bl js_hash ldr w1, [x25,8] cmp w1, w0 - bne .L770 + bne .L796 ldr w0, [x20,28] cmp w21, 1 str w26, [x20,8] mul w19, w19, w0 - str w19, [x24,680] - beq .L773 + str w19, [x24,688] + beq .L799 mov w21, 1 -.L770: +.L796: cmp w26, 4 mov w19, w26 - bne .L772 - b .L771 -.L773: + bne .L798 + b .L797 +.L799: mov w21, 2 -.L771: +.L797: mov w0, 0 bl flash_exit_slc_mode cmp w21, wzr @@ -5122,16 +5326,13 @@ FlashReadIdbDataRaw: stp x19, x20, [sp,16] stp x23, x24, [sp,48] stp x25, x26, [sp,64] - ldrb w28, [x0,4044] + ldrb w28, [x0,4045] add x0, x22, :lo12:.LANCHOR2 - ldr w1, [x0,568] - mov w0, 12336 - movk w0, 0x5638, lsl 16 - cmp w1, w0 - bne .L779 + ldr w0, [x0,568] + cbz w0, .L805 mov w0, 0 bl flash_enter_slc_mode -.L779: +.L805: adrp x25, .LC12 mov x0, x27 mov w1, 0 @@ -5140,13 +5341,13 @@ FlashReadIdbDataRaw: mov w20, 2 add x25, x25, :lo12:.LC12 bl ftl_memset -.L780: +.L806: add x0, x21, :lo12:.LANCHOR0 ldrb w0, [x0,25] cmp w20, w0 - bcs .L784 + bcs .L810 mov x23, 0 -.L782: +.L808: add x0, x29, 104 add x19, x21, :lo12:.LANCHOR0 ldrb w26, [x23,x0] @@ -5159,18 +5360,18 @@ FlashReadIdbDataRaw: mul w1, w20, w1 bl FlashReadRawPage cmn w0, #1 - bne .L781 + bne .L807 add x23, x23, 1 cmp x23, 4 - bne .L782 - b .L783 -.L781: + bne .L808 + b .L809 +.L807: ldr x0, [x19] ldr w1, [x0] mov w0, 35899 movk w0, 0xfcdc, lsl 16 cmp w1, w0 - bne .L783 + bne .L809 mov w1, w26 mov x0, x25 bl printk @@ -5183,27 +5384,24 @@ FlashReadIdbDataRaw: strb w0, [x19,25] ldr w0, [x19,8] cmp w0, w20 - bls .L787 + bls .L813 mov w24, 0 str w20, [x19,8] bl FlashSavePhyInfo -.L783: +.L809: add w20, w20, 1 - b .L780 -.L787: + b .L806 +.L813: mov w24, 0 -.L784: +.L810: mov w0, w28 add x22, x22, :lo12:.LANCHOR2 bl FlashBchSel - ldr w1, [x22,568] - mov w0, 12336 - movk w0, 0x5638, lsl 16 - cmp w1, w0 - bne .L789 + ldr w0, [x22,568] + cbz w0, .L817 mov w0, 0 bl flash_exit_slc_mode -.L789: +.L817: mov w0, w24 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -5235,54 +5433,55 @@ FlashInit: add x24, x19, :lo12:.LANCHOR0 adrp x23, IDByte bl ftl_malloc - str x0, [x21,688] + str x0, [x21,696] mov w0, 4096 adrp x25, .LC13 add x24, x24, 40 mov w27, 0 bl ftl_malloc - str x0, [x21,696] + str x0, [x21,704] mov w0, 32768 mov w28, 44 bl ftl_malloc - str x0, [x21,704] + str x0, [x21,712] mov w0, 4096 bl ftl_malloc - str x0, [x21,712] + str x0, [x21,720] mov w0, 128 str w0, [x24,-12] mov w0, 60 mov w1, 50 - strb w0, [x21,685] + strb w0, [x21,693] mov x0, x22 strb w1, [x24,-15] - strb w1, [x21,684] + strb w1, [x21,692] str wzr, [x24,-32] strb wzr, [x21,572] - str wzr, [x21,656] + str wzr, [x21,664] add x21, x23, :lo12:IDByte strb wzr, [x24,-16] bl NandcInit add x0, x25, :lo12:.LC13 mov x26, x21 str x0, [x29,104] -.L796: - uxtb w25, w27 - mov w0, w25 - bl FlashReset - ldrb w22, [x24,8] +.L828: + uxtb w1, w27 ldr x2, [x24] - mov w0, w25 + mov w0, w1 + mov w25, w1 str x2, [x29,96] + ldrb w22, [x24,8] + bl FlashReset + mov w0, w25 ubfiz x22, x22, 8, 8 bl NandcFlashCs ldr x2, [x29,96] mov w0, 144 add x22, x2, x22 str w0, [x22,2056] - mov w0, 200 + mov x0, 1000 str wzr, [x22,2052] - bl NandcDelayns + bl __const_udelay ldr w0, [x22,2048] strb w0, [x21] ldr w0, [x22,2048] @@ -5301,7 +5500,7 @@ FlashInit: sub w0, w2, #1 uxtb w0, w0 cmp w0, 253 - bhi .L792 + bhi .L824 ldr x0, [x29,104] add w1, w27, 1 ldrb w3, [x21,1] @@ -5310,35 +5509,35 @@ FlashInit: ldrb w6, [x21,4] ldrb w7, [x21,5] bl printk -.L792: - cbnz w27, .L793 +.L824: + cbnz w27, .L825 ldrb w0, [x26] sub w0, w0, #1 uxtb w0, w0 cmp w0, 253 - bhi .L841 + bhi .L876 ldrb w0, [x26,1] cmp w0, 255 - beq .L841 + beq .L876 bl FlashCs123Init -.L793: +.L825: ldrb w0, [x21] cmp w0, 181 - bne .L795 + bne .L827 strb w28, [x21] -.L795: +.L827: add w27, w27, 1 add x24, x24, 16 cmp w27, 4 add x21, x21, 8 - bne .L796 + bne .L828 ldrb w0, [x23,#:lo12:IDByte] cmp w0, 173 - beq .L797 + beq .L829 add x0, x20, :lo12:.LANCHOR2 ldr w0, [x0,576] bl NandcSetDdrMode -.L797: +.L829: add x21, x19, :lo12:.LANCHOR0 mov w1, 0 mov w2, 852 @@ -5346,123 +5545,142 @@ FlashInit: bl ftl_memset strb wzr, [x21,32] adrp x1, .LANCHOR1 - add x4, x23, :lo12:IDByte + mov w2, 12336 add x0, x1, :lo12:.LANCHOR1 - add x0, x0, 256 + movk w2, 0x5638, lsl 16 + add x0, x0, 472 str x0, [x21,1912] - ldrb w0, [x4,1] + add x0, x20, :lo12:.LANCHOR2 + ldr w3, [x0,584] + cmp w3, w2 + bne .L830 + mov w2, 1 + str w2, [x0,568] +.L830: + add x5, x23, :lo12:IDByte + ldrb w0, [x5,1] cmp w0, 218 - cset w3, eq + cset w4, eq + cmp w0, 241 + cset w6, eq cmp w0, 161 cset w2, eq - orr w2, w3, w2 - cbnz w2, .L798 - and w2, w0, -33 + orr w2, w6, w2 + orr w2, w4, w2 + cbnz w2, .L831 + and w2, w0, -3 cmp w2, 209 - beq .L798 + beq .L831 cmp w0, 220 - bne .L799 - ldrb w2, [x4,3] + bne .L832 + ldrb w2, [x5,3] cmp w2, 149 - bne .L799 -.L798: + bne .L832 +.L831: add x2, x19, :lo12:.LANCHOR0 - mov w4, 1 - mov w5, 16 - add x6, x23, :lo12:IDByte - strb w4, [x2,24] - add x4, x20, :lo12:.LANCHOR2 - strb w5, [x2,25] + mov w5, 1 + mov w6, 16 + add x7, x23, :lo12:IDByte + strb w5, [x2,24] + add x5, x20, :lo12:.LANCHOR2 + strb w6, [x2,25] add x2, x1, :lo12:.LANCHOR1 - strb w5, [x4,685] - ldrb w5, [x23,#:lo12:IDByte] - strb w5, [x2,3129] - strb w0, [x2,3130] - cmp w5, 152 - bne .L800 - ldrsb w2, [x6,4] - tbnz w2, #31, .L800 + strb w6, [x5,693] + ldrb w6, [x23,#:lo12:IDByte] + strb w6, [x2,3257] + strb w0, [x2,3258] + cmp w6, 152 + bne .L833 + ldrsb w2, [x7,4] + tbnz w2, #31, .L833 mov w2, 24 - strb w2, [x4,685] -.L800: - add x2, x20, :lo12:.LANCHOR2 - ldr w4, [x2,568] - cmp w4, 2049 - beq .L843 + strb w2, [x5,693] +.L833: + cmp w3, 2049 + beq .L879 mov w2, 12336 movk w2, 0x5638, lsl 16 - cmp w4, w2 - bne .L801 -.L843: + cmp w3, w2 + bne .L834 +.L879: add x2, x20, :lo12:.LANCHOR2 - mov w4, 16 - strb w4, [x2,685] -.L801: - cbz w3, .L803 + mov w3, 16 + strb w3, [x2,693] +.L834: + cbz w4, .L836 add x0, x1, :lo12:.LANCHOR1 mov w2, 2048 - strh w2, [x0,3142] + strh w2, [x0,3270] mov w2, -38 - b .L876 -.L803: + b .L920 +.L836: cmp w0, 220 - bne .L804 + bne .L838 add x0, x1, :lo12:.LANCHOR1 mov w2, 4096 - strh w2, [x0,3142] + strh w2, [x0,3270] mov w2, -36 -.L876: - strb w2, [x0,3130] -.L804: +.L920: + strb w2, [x0,3258] + b .L837 +.L838: + cmp w0, 211 + bne .L837 + add x0, x1, :lo12:.LANCHOR1 + mov w2, 4096 + strh w2, [x0,3270] + mov w2, 2 + strb w2, [x0,3269] +.L837: add x21, x1, :lo12:.LANCHOR1 add x0, x19, :lo12:.LANCHOR0 - add x1, x21, 2784 + add x1, x21, 3128 mov w2, 32 add x0, x0, 104 bl ftl_memcpy - add x0, x21, 256 - add x1, x21, 3128 + add x0, x21, 472 + add x1, x21, 3256 mov w2, 32 bl ftl_memcpy -.L799: +.L832: add x21, x19, :lo12:.LANCHOR0 ldrb w0, [x21,24] - cbnz w0, .L805 + cbnz w0, .L839 bl FlashLoadPhyInfoInRam - cbnz w0, .L807 + cbnz w0, .L841 ldr x0, [x21,1912] add x21, x20, :lo12:.LANCHOR2 ldrb w1, [x0,17] and w0, w1, 7 strb w0, [x21,564] - tbnz x1, 0, .L807 + tbnz x1, 0, .L841 mov w1, 1 strb w1, [x21,572] bl FlashSetInterfaceMode ldrb w0, [x21,564] bl NandcSetMode -.L807: +.L841: add x0, x19, :lo12:.LANCHOR0 ldr x1, [x0,1912] ldrb w1, [x1,26] - strb w1, [x0,136] + strb w1, [x0,4044] bl FlashLoadPhyInfo - cbz w0, .L805 + cbz w0, .L839 add x21, x20, :lo12:.LANCHOR2 ldr w0, [x21,576] - cbz w0, .L810 + cbz w0, .L844 mov w0, 1 bl FlashSetInterfaceMode mov w0, 1 - b .L877 -.L810: + b .L916 +.L844: ldrb w0, [x21,564] bl FlashSetInterfaceMode ldrb w0, [x21,564] -.L877: +.L916: bl NandcSetMode bl FlashLoadPhyInfo - cbz w0, .L805 + cbz w0, .L839 mov w0, 1 add x21, x19, :lo12:.LANCHOR0 bl FlashSetInterfaceMode @@ -5475,7 +5693,7 @@ FlashInit: bl printk bl FlashLoadPhyInfoInRam cmn w0, #1 - beq .L794 + beq .L826 bl FlashDieInfoInit ldr x0, [x21,1912] ldrb w0, [x0,19] @@ -5485,41 +5703,41 @@ FlashInit: ldrb w2, [x0,9] add w1, w1, 4095 cmp w2, w1, lsr 12 - blt .L812 + blt .L846 ldrh w1, [x0,14] add w1, w1, 255 cmp w2, w1, lsr 8 - bge .L813 -.L812: + bge .L847 +.L846: ldrh w1, [x0,14] and w1, w1, -256 strh w1, [x0,14] -.L813: +.L847: add x21, x20, :lo12:.LANCHOR2 ldrb w0, [x21,564] tst w0, 6 - beq .L814 + beq .L848 bl FlashSavePhyInfo - ldr w1, [x21,680] + ldr w1, [x21,688] mov w0, 0 bl FlashDdrParaScan -.L814: +.L848: bl FlashSavePhyInfo -.L805: +.L839: add x21, x19, :lo12:.LANCHOR0 add x22, x20, :lo12:.LANCHOR2 ldr x2, [x21,1912] - str xzr, [x22,664] + str xzr, [x22,672] ldrb w0, [x2,26] - strb w0, [x21,136] + strb w0, [x21,4044] ldrh w0, [x2,16] ldrh w3, [x2,10] ubfx x1, x0, 7, 1 strb w1, [x21,32] ubfx x1, x0, 3, 1 - strb w1, [x22,720] + strb w1, [x22,728] ubfx x1, x0, 4, 1 - strb w1, [x22,648] + strb w1, [x22,656] ldrb w1, [x2,12] ubfx x0, x0, 8, 3 strb w0, [x22,564] @@ -5529,179 +5747,184 @@ FlashInit: bl FlashDieInfoInit ldr x0, [x21,1912] ldrh w1, [x0,16] - tbz x1, 6, .L816 + tbz x1, 6, .L850 adrp x1, g_retryMode - adrp x3, g_maxRegNum ldrb w0, [x0,19] - mov x5, x3 - ldrb w2, [x21,4058] + ldrb w2, [x21,4057] + ldrb w3, [x21,4058] strb w0, [x1,#:lo12:g_retryMode] - ldrb w1, [x21,4057] - strb w1, [x3,#:lo12:g_maxRegNum] - adrp x1, g_maxRetryCount - strb w2, [x1,#:lo12:g_maxRetryCount] - sub w2, w0, #1 - uxtb w2, w2 - cmp w2, 6 - mov x2, x1 - bhi .L817 + adrp x1, g_maxRegNum + strb w2, [x1,#:lo12:g_maxRegNum] + adrp x2, g_maxRetryCount + strb w3, [x2,#:lo12:g_maxRetryCount] + sub w3, w0, #1 + uxtb w3, w3 + cmp w3, 7 + mov x3, x2 + bhi .L851 adrp x1, HynixReadRetrial + cmp w0, 8 add x1, x1, :lo12:HynixReadRetrial - str x1, [x22,664] + str x1, [x22,672] sub w1, w0, #5 + cset w2, eq uxtb w1, w1 cmp w1, 1 - bhi .L818 - mov w1, 1 - str w1, [x22,640] - b .L819 -.L818: + bls .L880 + cbz w2, .L852 +.L880: + add x1, x20, :lo12:.LANCHOR2 + mov w3, 1 + str w3, [x1,648] +.L852: cmp w0, 7 - add x21, x21, 4084 - beq .L820 -.L819: - add x21, x19, :lo12:.LANCHOR0 - add x21, x21, 4076 -.L820: - mov x1, 0 - mov w2, w1 -.L822: - ldrsb w3, [x21,x1] - add x1, x1, 1 - cmp w3, wzr - csinc w2, w2, w2, ne - cmp x1, 32 - bne .L822 - cmp w2, 27 - bls .L816 + add x1, x19, :lo12:.LANCHOR0 + beq .L878 + cbnz w2, .L878 + add x1, x1, 4076 + b .L855 +.L878: + add x1, x1, 4084 +.L855: + mov x2, 0 + mov w3, w2 +.L857: + ldrsb w4, [x1,x2] + add x2, x2, 1 + cmp w4, wzr + csinc w3, w3, w3, ne + cmp x2, 32 + bne .L857 + cmp w3, 27 + bls .L850 bl FlashGetReadRetryDefault bl FlashSavePhyInfo - b .L816 -.L817: - sub w3, w0, #17 - uxtb w3, w3 - cmp w3, 2 - bhi .L824 - adrp x2, MicronReadRetrial + b .L850 +.L851: + sub w4, w0, #17 + uxtb w4, w4 + cmp w4, 2 + bhi .L859 + adrp x1, MicronReadRetrial cmp w0, 19 - add x2, x2, :lo12:MicronReadRetrial - str x2, [x22,664] - beq .L825 + add x1, x1, :lo12:MicronReadRetrial + str x1, [x22,672] + beq .L860 mov w0, 7 - b .L879 -.L825: + b .L918 +.L860: mov w0, 15 -.L879: - strb w0, [x1,#:lo12:g_maxRetryCount] - b .L816 -.L824: - sub w1, w0, #65 - uxtb w1, w1 - cmp w1, 1 - bls .L844 +.L918: + strb w0, [x2,#:lo12:g_maxRetryCount] + b .L850 +.L859: + sub w2, w0, #65 + uxtb w2, w2 + cmp w2, 1 + bls .L881 cmp w0, 33 - bne .L826 -.L844: + bne .L861 +.L881: add x0, x20, :lo12:.LANCHOR2 - adrp x1, ToshibaReadRetrial - add x1, x1, :lo12:ToshibaReadRetrial - str x1, [x0,664] + adrp x2, ToshibaReadRetrial + add x2, x2, :lo12:ToshibaReadRetrial + str x2, [x0,672] mov w0, 4 - strb w0, [x5,#:lo12:g_maxRegNum] + strb w0, [x1,#:lo12:g_maxRegNum] mov w0, 7 - strb w0, [x2,#:lo12:g_maxRetryCount] - b .L816 -.L826: - sub w1, w0, #67 - uxtb w1, w1 - cmp w1, 1 - sub w1, w0, #34 - cset w4, ls - uxtb w1, w1 - cmp w1, 1 - bls .L845 - cbz w4, .L828 -.L845: - add x1, x20, :lo12:.LANCHOR2 - adrp x3, ToshibaReadRetrial - add x3, x3, :lo12:ToshibaReadRetrial + strb w0, [x3,#:lo12:g_maxRetryCount] + b .L850 +.L861: + sub w2, w0, #67 + uxtb w2, w2 + cmp w2, 1 + sub w2, w0, #34 + cset w5, ls + uxtb w2, w2 + cmp w2, 1 + bls .L882 + cbz w5, .L863 +.L882: + add x2, x20, :lo12:.LANCHOR2 + adrp x4, ToshibaReadRetrial + add x4, x4, :lo12:ToshibaReadRetrial cmp w0, 35 - str x3, [x1,664] - beq .L830 + str x4, [x2,672] + beq .L865 cmp w0, 68 - beq .L830 + beq .L865 mov w0, 7 - b .L878 -.L830: + b .L917 +.L865: mov w0, 17 -.L878: - strb w0, [x2,#:lo12:g_maxRetryCount] +.L917: + strb w0, [x3,#:lo12:g_maxRetryCount] mov w0, 4 - cbnz w4, .L880 + cbnz w5, .L919 mov w0, 5 -.L880: - strb w0, [x5,#:lo12:g_maxRegNum] - b .L816 -.L828: +.L919: + strb w0, [x1,#:lo12:g_maxRegNum] + b .L850 +.L863: cmp w0, 49 - bne .L816 + bne .L850 adrp x0, SamsungReadRetrial add x0, x0, :lo12:SamsungReadRetrial - str x0, [x22,664] -.L816: + str x0, [x22,672] +.L850: add x0, x20, :lo12:.LANCHOR2 - ldr w1, [x0,568] + ldr w1, [x0,584] mov w0, 12336 movk w0, 0x5638, lsl 16 cmp w1, w0 - bne .L833 + bne .L868 add x0, x19, :lo12:.LANCHOR0 - ldrb w2, [x0,136] - cbz w2, .L833 + ldrb w2, [x0,4044] + cbz w2, .L868 ldr x0, [x0,1912] strb wzr, [x0,18] -.L833: +.L868: ldrb w0, [x23,#:lo12:IDByte] cmp w0, 44 - bne .L834 + bne .L869 add x0, x20, :lo12:.LANCHOR2 ldrb w0, [x0,572] - cbz w0, .L834 + cbz w0, .L869 mov w0, 12336 movk w0, 0x5638, lsl 16 cmp w1, w0 - bne .L835 + bne .L870 add x0, x19, :lo12:.LANCHOR0 - ldrb w0, [x0,136] - cbnz w0, .L834 -.L835: + ldrb w0, [x0,4044] + cbnz w0, .L869 +.L870: add x0, x20, :lo12:.LANCHOR2 strb wzr, [x0,572] mov w0, 1 bl FlashSetInterfaceMode mov w0, 1 bl NandcSetMode -.L834: - mov w0, 0 - bl flash_enter_slc_mode +.L869: add x1, x20, :lo12:.LANCHOR2 ldrb w0, [x1,564] tst w0, 6 - beq .L836 + beq .L871 ldrb w1, [x1,572] - cbnz w1, .L837 - tbnz x0, 0, .L836 -.L837: + cbnz w1, .L872 + tbnz x0, 0, .L871 +.L872: + mov w0, 0 add x20, x20, :lo12:.LANCHOR2 + bl flash_enter_slc_mode + ldr w1, [x20,688] mov w0, 0 - ldr w1, [x20,680] bl FlashDdrParaScan -.L836: - add x19, x19, :lo12:.LANCHOR0 mov w0, 0 + bl flash_exit_slc_mode +.L871: + add x19, x19, :lo12:.LANCHOR0 mov w20, 16 add x23, x23, :lo12:IDByte - bl flash_exit_slc_mode ldr x0, [x19,1912] ldrb w0, [x0,20] bl FlashBchSel @@ -5719,7 +5942,7 @@ FlashInit: str w2, [x19,4020] ldr w2, [x23] str w2, [x19,4016] - ldrb w2, [x19,1676] + ldrb w2, [x19,1672] strh w2, [x19,4026] ldrb w2, [x1,13] strh w2, [x19,4028] @@ -5743,7 +5966,7 @@ FlashInit: ldrb w5, [x19,24] strh w2, [x19,4038] cmp w5, 1 - bne .L839 + bne .L874 lsl w2, w2, 1 lsr w4, w4, 1 lsl w3, w3, 1 @@ -5753,15 +5976,15 @@ FlashInit: strh w4, [x19,4030] strh w3, [x19,4036] strh w2, [x19,4042] -.L839: +.L874: ldrb w0, [x1,20] bl FlashBchSel bl ftl_flash_suspend mov w0, 0 - b .L794 -.L841: + b .L826 +.L876: mov w0, -2 -.L794: +.L826: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -5777,66 +6000,69 @@ FlashPageProgMsbFFData: stp x29, x30, [sp, -80]! add x29, sp, 0 stp x19, x20, [sp,16] - adrp x20, .LANCHOR0 uxth w19, w2 + adrp x2, .LANCHOR0 stp x21, x22, [sp,32] - uxtb w22, w0 - add x0, x20, :lo12:.LANCHOR0 + uxtb w21, w0 + add x0, x2, :lo12:.LANCHOR0 stp x23, x24, [sp,48] - stp x25, x26, [sp,64] - ldr x2, [x0,1912] - ldrb w0, [x0,136] - ldrb w3, [x2,19] - cbz w0, .L882 + str x25, [sp,64] + ldr x3, [x0,1912] + ldrb w0, [x0,4044] + ldrb w20, [x3,19] + mov x3, x2 + cbz w0, .L922 adrp x0, .LANCHOR2+568 - ldr w2, [x0,#:lo12:.LANCHOR2+568] - mov w0, 12336 - movk w0, 0x5638, lsl 16 - cmp w2, w0 - beq .L881 -.L882: - sub w0, w3, #5 - uxtb w0, w0 - cmp w0, 2 - bls .L883 - cmp w3, 68 - beq .L883 - sub w3, w3, #19 - and w3, w3, -17 - uxtb w3, w3 - cbnz w3, .L881 -.L883: - add x20, x20, :lo12:.LANCHOR0 - mov w21, w1 - add x24, x20, 652 + ldr w0, [x0,#:lo12:.LANCHOR2+568] + cbnz w0, .L921 +.L922: + sub w2, w20, #5 + uxtb w2, w2 + cmp w2, 3 + bls .L923 + cmp w20, 68 + beq .L923 + sub w2, w20, #19 + and w2, w2, -17 + uxtb w2, w2 + cbnz w2, .L921 +.L923: + mov w24, w1 + add x22, x3, :lo12:.LANCHOR0 mov w25, 65535 - adrp x26, .LANCHOR2 -.L885: - ldr x0, [x20,1912] + adrp x23, .LANCHOR2 +.L925: + ldr x0, [x22,1912] ldrh w0, [x0,10] cmp w0, w19 - bls .L881 - ldrh w0, [x24,w19,sxtw 1] + bls .L921 + add x0, x22, 648 + ldrh w0, [x0,w19,sxtw 1] cmp w0, w25 - bne .L881 - add x23, x26, :lo12:.LANCHOR2 + bne .L921 + add x0, x23, :lo12:.LANCHOR2 + cmp w20, 8 + mov w1, 0 + ldr x0, [x0,696] + beq .L935 mov w1, 255 +.L935: mov w2, 32768 - ldr x0, [x23,688] bl ftl_memset - ldr x2, [x23,688] - add w1, w19, w21 - mov w0, w22 - mov x3, 0 + add x0, x23, :lo12:.LANCHOR2 + add w1, w19, w24 add w19, w19, 1 - bl FlashProgPage + ldr x2, [x0,696] + mov w0, w21 uxth w19, w19 - b .L885 -.L881: + mov x3, x2 + bl FlashProgPage + b .L925 +.L921: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] + ldr x25, [sp,64] ldp x29, x30, [sp], 80 ret .size FlashPageProgMsbFFData, .-FlashPageProgMsbFFData @@ -5846,43 +6072,41 @@ FlashPageProgMsbFFData: FlashReadSlc2KPages: stp x29, x30, [sp, -128]! add x29, sp, 0 - stp x25, x26, [sp,64] - mov w25, w1 - adrp x1, .LANCHOR1+265 - stp x21, x22, [sp,32] stp x23, x24, [sp,48] + mov w24, w1 + adrp x1, .LANCHOR1+481 + stp x21, x22, [sp,32] adrp x21, .LANCHOR0 adrp x23, .LC15 - adrp x24, .LC17 - ldrb w26, [x1,#:lo12:.LANCHOR1+265] + stp x25, x26, [sp,64] + add x21, x21, :lo12:.LANCHOR0 + ldrb w25, [x1,#:lo12:.LANCHOR1+481] stp x19, x20, [sp,16] stp x27, x28, [sp,80] + mov w26, w2 mov x19, x0 - mov w27, w2 mov w22, 0 - add x21, x21, :lo12:.LANCHOR0 + add x27, x21, 1676 add x23, x23, :lo12:.LC15 - add x24, x24, :lo12:.LC17 -.L891: - cmp w22, w25 - beq .L925 - mov w1, w27 - sub w4, w25, w22 +.L937: + cmp w22, w24 + beq .L971 + mov w1, w26 + sub w4, w24, w22 mov x0, x19 add x2, x29, 124 add x3, x29, 120 bl LogAddr2PhyAddr ldr w0, [x29,120] adrp x5, .LANCHOR0 - ldrb w1, [x21,1676] + ldrb w1, [x21,1672] cmp w0, w1 - bcc .L892 + bcc .L938 mov w0, -1 str w0, [x19] - b .L893 -.L892: - add x0, x21, x0, uxtw - ldrb w28, [x0,1680] + b .L939 +.L938: + ldrb w28, [x27,w0,uxtw] str x5, [x29,96] mov w0, w28 bl NandcWaitFlashReady @@ -5896,7 +6120,7 @@ FlashReadSlc2KPages: ldr x3, [x19,8] mov w1, 0 ldr x4, [x19,16] - mov w2, w26 + mov w2, w25 mov w0, w28 bl NandcXferData mov w6, w0 @@ -5908,7 +6132,7 @@ FlashReadSlc2KPages: bl FlashReadCmd ldr x0, [x19,8] mov w1, 0 - mov w2, w26 + mov w2, w25 cmp x0, xzr add x3, x0, 2048 ldr x0, [x19,16] @@ -5926,64 +6150,65 @@ FlashReadSlc2KPages: add x0, x5, :lo12:.LANCHOR0 cmp w20, w6 csel w3, w20, w6, cs - ldrb w0, [x0,4044] + ldrb w0, [x0,4045] add w0, w0, w0, lsl 1 cmp w3, w0, lsr 2 - bls .L896 + bls .L942 cmn w3, #1 mov w0, 256 csel w3, w3, w0, eq -.L896: +.L942: cmp w3, 256 - beq .L907 + beq .L953 cmn w3, #1 - bne .L897 -.L907: + bne .L943 +.L953: str w3, [x19] - b .L899 -.L897: + b .L945 +.L943: str wzr, [x19] -.L899: +.L945: ldr x0, [x19,16] - cbz x0, .L900 + cbz x0, .L946 ldr w1, [x0,12] cmn w1, #1 - bne .L900 + bne .L946 ldr w1, [x0,8] cmn w1, #1 - bne .L900 + bne .L946 ldr w0, [x0] cmn w0, #1 - beq .L900 + beq .L946 str w1, [x19] -.L900: +.L946: ldr w3, [x19] cmn w3, #1 - bne .L893 + bne .L939 add x5, x5, :lo12:.LANCHOR0 ldr w1, [x19,4] mov x0, x23 - ldrb w2, [x5,4044] + ldrb w2, [x5,4045] bl printk ldr x1, [x19,8] - cbz x1, .L902 + cbz x1, .L948 adrp x0, .LC16 mov w2, 4 add x0, x0, :lo12:.LC16 mov w3, 8 bl rknand_print_hex -.L902: +.L948: ldr x1, [x19,16] - cbz x1, .L893 + cbz x1, .L939 + adrp x0, .LC17 mov w2, 4 - mov x0, x24 + add x0, x0, :lo12:.LC17 mov w3, w2 bl rknand_print_hex -.L893: +.L939: add w22, w22, 1 add x19, x19, 56 - b .L891 -.L925: + b .L937 +.L971: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -5997,375 +6222,358 @@ FlashReadSlc2KPages: .global FlashReadPages .type FlashReadPages, %function FlashReadPages: - stp x29, x30, [sp, -176]! - adrp x3, .LANCHOR1+265 + stp x29, x30, [sp, -160]! + adrp x3, .LANCHOR1+481 add x29, sp, 0 - stp x21, x22, [sp,32] - ldrb w3, [x3,#:lo12:.LANCHOR1+265] - adrp x22, .LANCHOR0 - str w3, [x29,148] - add x3, x22, :lo12:.LANCHOR0 - stp x25, x26, [sp,64] stp x19, x20, [sp,16] + adrp x19, .LANCHOR0 + ldrb w3, [x3,#:lo12:.LANCHOR1+481] + add x19, x19, :lo12:.LANCHOR0 + str w3, [x29,136] stp x23, x24, [sp,48] - stp x27, x28, [sp,80] - str w1, [x29,144] + stp x25, x26, [sp,64] + ldrb w3, [x19,32] mov x26, x0 - ldrb w4, [x3,32] - ldrb w23, [x3,24] - str w2, [x29,140] - str w4, [x29,136] - cbz w23, .L966 + ldrb w23, [x19,24] + stp x21, x22, [sp,32] + stp x27, x28, [sp,80] + str w1, [x29,132] + str w2, [x29,128] + str w3, [x29,124] + cbz w23, .L1012 bl FlashReadSlc2KPages - b .L1015 -.L966: + b .L1061 +.L1012: + add x0, x19, 1676 + str x0, [x29,112] adrp x0, .LC15 mov w25, w23 add x0, x0, :lo12:.LC15 - str x0, [x29,128] + str x0, [x29,104] adrp x0, .LC17 add x0, x0, :lo12:.LC17 - str x0, [x29,120] - adrp x0, .LC18 - add x0, x0, :lo12:.LC18 - str x0, [x29,112] -.L927: - ldr w0, [x29,144] + str x0, [x29,96] +.L973: + ldr w0, [x29,132] cmp w25, w0 - bcs .L1017 + bcs .L1063 mov w27, 56 - ldr w0, [x29,144] - ldr w1, [x29,140] - add x2, x29, 172 + ldr w0, [x29,132] + ldr w1, [x29,128] + add x2, x29, 156 umull x27, w25, w27 sub w4, w0, w25 - add x3, x29, 168 - add x21, x26, x27 - mov x0, x21 - ldr w28, [x21,4] + add x3, x29, 152 + add x22, x26, x27 + mov x0, x22 + ldr w28, [x22,4] bl LogAddr2PhyAddr - add x1, x22, :lo12:.LANCHOR0 - mov w20, w0 - ldr w0, [x29,168] - ldrb w2, [x1,1676] - cmp w0, w2 - bcc .L929 + ldrb w1, [x19,1672] + mov w21, w0 + ldr w0, [x29,152] + cmp w0, w1 + bcc .L975 mov w0, -1 str w0, [x26,x27] - b .L930 -.L929: - add x0, x1, x0, uxtw + b .L976 +.L975: + ldr x1, [x29,112] adrp x24, .LANCHOR2 - ldrb w19, [x0,1680] + ldrb w20, [x1,w0,uxtw] add x0, x24, :lo12:.LANCHOR2 - str x1, [x29,152] - ldrb w0, [x0,720] + ldrb w0, [x0,728] cmp w0, wzr - mov w0, w19 - csel w20, w20, wzr, ne + mov w0, w20 + csel w21, w21, wzr, ne bl NandcWaitFlashReady - ldr x1, [x29,152] - ldr x0, [x1,1912] - ldrb w2, [x0,19] - sub w0, w2, #1 + ldr x0, [x19,1912] + ldrb w1, [x0,19] + sub w0, w1, #1 uxtb w0, w0 - cmp w0, 6 - bhi .L932 - add x1, x1, 4056 - sxtw x0, w19 - add x1, x1, x0 - cmp w2, 7 - ldrb w3, [x1,12] - bne .L933 - ldrb w3, [x1,20] -.L933: - add x1, x24, :lo12:.LANCHOR2 - add x0, x1, x0 - ldrb w0, [x0,560] + cmp w0, 7 + bhi .L978 + sub w1, w1, #7 + add x0, x19, 4056 + sxtw x2, w20 + add x0, x0, x2 + uxtb w1, w1 + cmp w1, 1 + ldrb w3, [x0,12] + bhi .L979 + ldrb w3, [x0,20] +.L979: + add x0, x24, :lo12:.LANCHOR2 + add x2, x0, x2 + ldrb w0, [x2,560] cmp w0, w3 - beq .L932 - add x2, x22, :lo12:.LANCHOR0 - mov w0, w19 - add x2, x2, 4060 - ldrb w1, [x2,-3] + beq .L978 + ldrb w1, [x19,4057] + mov w0, w20 + add x2, x19, 4060 bl HynixSetRRPara -.L932: - mov w0, w19 +.L978: + mov w0, w20 bl NandcFlashCs - ldr w0, [x29,140] + ldr w0, [x29,128] cmp w0, 1 cset w0, eq orr w0, w0, w28, lsr 31 - str w0, [x29,152] - cbz w0, .L934 - add x0, x22, :lo12:.LANCHOR0 - ldrb w0, [x0,136] - cbz w0, .L934 - mov w0, w19 + str w0, [x29,140] + cbz w0, .L980 + ldrb w0, [x19,4044] + cbz w0, .L980 + mov w0, w20 bl flash_enter_slc_mode - b .L935 -.L934: - mov w0, w19 + b .L981 +.L980: + mov w0, w20 bl flash_exit_slc_mode -.L935: - cmp w19, 255 - ldr w1, [x29,172] - bne .L973 +.L981: + cmp w20, 255 + ldr w1, [x29,156] + bne .L1019 cmn w1, #1 cset w0, ne - cbz w0, .L967 -.L973: - cbz w20, .L939 - add x0, x22, :lo12:.LANCHOR0 - ldr w2, [x0,28] - mov w0, w19 + cbz w0, .L1013 +.L1019: + cbz w21, .L985 + ldr w2, [x19,28] + mov w0, w20 add w2, w1, w2 bl FlashReadDpCmd - b .L940 -.L939: - mov w0, w19 + b .L986 +.L985: + mov w0, w20 bl FlashReadCmd - b .L940 -.L967: - mov w20, w0 -.L937: - ldrb w2, [x29,148] - mov w0, w19 - ldr x3, [x21,8] + b .L986 +.L1013: + mov w21, w0 +.L983: + ldrb w2, [x29,136] + mov w0, w20 + ldr x3, [x22,8] mov w1, 0 - ldr x4, [x21,16] + ldr x4, [x22,16] bl NandcXferData cmn w0, #1 mov w28, w0 - bne .L941 - add x0, x22, :lo12:.LANCHOR0 - ldrb w1, [x0,32] - cbz w1, .L941 - strb wzr, [x0,32] - mov w20, 0 - b .L935 -.L941: - cbz w20, .L942 - add x0, x22, :lo12:.LANCHOR0 - ldr w1, [x29,172] - ldr w2, [x0,28] - mov w0, w19 + bne .L987 + ldrb w0, [x19,32] + cbz w0, .L987 + strb wzr, [x19,32] + mov w21, 0 + b .L981 +.L987: + cbz w21, .L988 + ldr w2, [x19,28] + mov w0, w20 + ldr w1, [x29,156] add w1, w2, w1 bl FlashReadDpDataOutCmd add w0, w25, 1 mov w4, 56 - ldrb w2, [x29,148] + ldrb w2, [x29,136] mov w1, 0 umull x4, w0, w4 - mov w0, w19 + mov w0, w20 add x4, x26, x4 ldr x3, [x4,8] ldr x4, [x4,16] bl NandcXferData cmn w0, #1 mov w23, w0 - csel w20, w20, wzr, ne -.L942: - mov w0, w19 + csel w21, w21, wzr, ne +.L988: + mov w0, w20 bl NandcFlashDeCs - add x6, x22, :lo12:.LANCHOR0 - ldrb w0, [x29,136] + ldrb w0, [x29,124] cmn w28, #1 - strb w0, [x6,32] - bne .L949 + strb w0, [x19,32] + bne .L995 add x0, x24, :lo12:.LANCHOR2 ldrb w0, [x0,572] - cbnz w0, .L944 -.L948: + cbnz w0, .L990 +.L994: add x0, x24, :lo12:.LANCHOR2 - ldr x20, [x0,664] - cbnz x20, .L945 - b .L1018 -.L944: - ldr x0, [x6,3976] + ldr x21, [x0,672] + cbnz x21, .L991 + b .L1064 +.L990: + ldr x0, [x19,3976] mov w4, 1 - ldr w1, [x29,172] - ldr x2, [x21,8] - ldr x3, [x21,16] - ldr w20, [x0,304] - mov w0, w19 - str x6, [x29,104] + ldr w1, [x29,156] + ldr x2, [x22,8] + ldr x3, [x22,16] + ldr w21, [x0,304] + mov w0, w20 bl FlashDdrTunningRead cmn w0, #1 mov w28, w0 - beq .L947 - ldr x6, [x29,104] - ldrb w0, [x6,4044] + beq .L993 + ldrb w0, [x19,4045] cmp w28, w0, lsr 1 - bls .L969 -.L947: - lsr w0, w20, 8 + bls .L1015 +.L993: + lsr w0, w21, 8 bl NandcSetDdrPara cmn w28, #1 - beq .L948 - b .L969 -.L945: - ldr w1, [x29,172] - mov w0, w19 - ldr x2, [x21,8] - ldr x3, [x21,16] - blr x20 + beq .L994 + b .L1015 +.L991: + ldr w1, [x29,156] + mov w0, w20 + ldr x2, [x22,8] + ldr x3, [x22,16] + blr x21 cmn w0, #1 mov w28, w0 - mov w20, 0 - bne .L950 - add x2, x22, :lo12:.LANCHOR0 - ldr x0, [x2,1912] + mov w21, 0 + bne .L996 + ldr x0, [x19,1912] ldrb w0, [x0,19] sub w0, w0, #1 uxtb w0, w0 - cmp w0, 6 - bhi .L951 - ldrb w1, [x2,4057] - mov w0, w19 - add x2, x2, 4060 - mov w3, w20 + cmp w0, 7 + bhi .L997 + ldrb w1, [x19,4057] + mov w0, w20 + add x2, x19, 4060 + mov w3, w21 bl HynixSetRRPara -.L951: - ldr w1, [x29,172] - mov w0, w19 - ldr x2, [x21,8] - mov w20, 0 - ldr x3, [x21,16] +.L997: + ldr w1, [x29,156] + mov w0, w20 + ldr x2, [x22,8] + mov w21, 0 + ldr x3, [x22,16] bl FlashReadRawPage mov w28, w0 - add x4, x22, :lo12:.LANCHOR0 - ldr x0, [x29,112] - ldr w1, [x21,4] + ldr w1, [x22,4] + adrp x0, .LC18 + ldrb w2, [x19,4045] + add x0, x0, :lo12:.LC18 mov w3, w28 - str x4, [x29,104] - ldrb w2, [x4,4044] bl printk cmn w28, #1 - ldr x4, [x29,104] - bne .L950 - ldrb w0, [x4,136] - cbz w0, .L950 - ldr w0, [x29,152] - cbz w0, .L952 - mov w0, w19 + bne .L996 + ldrb w0, [x19,4044] + cbz w0, .L996 + ldr w0, [x29,140] + cbz w0, .L998 + mov w0, w20 bl flash_enter_slc_mode - b .L953 -.L952: - mov w0, w19 + b .L999 +.L998: + mov w0, w20 bl flash_exit_slc_mode -.L953: +.L999: add x0, x24, :lo12:.LANCHOR2 - ldr w1, [x29,172] - ldr x2, [x21,8] - mov w20, 0 - ldr x3, [x21,16] - ldr x4, [x0,664] - mov w0, w19 + ldr w1, [x29,156] + ldr x2, [x22,8] + mov w21, 0 + ldr x3, [x22,16] + ldr x4, [x0,672] + mov w0, w20 blr x4 mov w28, w0 - b .L950 -.L1018: - ldr w1, [x29,172] - mov w0, w19 - ldr x2, [x21,8] - ldr x3, [x21,16] + b .L996 +.L1064: + ldr w1, [x29,156] + mov w0, w20 + ldr x2, [x22,8] + ldr x3, [x22,16] bl FlashReadRawPage mov w28, w0 - b .L950 -.L969: - mov w20, 0 -.L949: - add x0, x22, :lo12:.LANCHOR0 - ldrb w0, [x0,4044] + b .L996 +.L1015: + mov w21, 0 +.L995: + ldrb w0, [x19,4045] add w0, w0, w0, lsl 1 cmp w28, w0, lsr 2 - bls .L950 + bls .L996 add x0, x24, :lo12:.LANCHOR2 - ldr x0, [x0,664] + ldr x0, [x0,672] cmp x0, xzr mov w0, 256 csel w28, w28, w0, ne -.L950: +.L996: cmp w28, 256 - beq .L974 + beq .L1020 cmn w28, #1 - bne .L954 -.L974: + bne .L1000 +.L1020: str w28, [x26,x27] - b .L956 -.L954: + b .L1002 +.L1000: str wzr, [x26,x27] -.L956: +.L1002: ldr w3, [x26,x27] cmn w3, #1 - bne .L958 - add x2, x22, :lo12:.LANCHOR0 - ldr w1, [x21,4] - ldr x0, [x29,128] - ldrb w2, [x2,4044] + bne .L1004 + ldr w1, [x22,4] + ldr x0, [x29,104] + ldrb w2, [x19,4045] bl printk - ldr x1, [x21,16] - cbz x1, .L958 + ldr x1, [x22,16] + cbz x1, .L1004 mov w2, 4 - ldr x0, [x29,120] + ldr x0, [x29,96] mov w3, w2 bl rknand_print_hex -.L958: - cbz w20, .L960 - add x0, x22, :lo12:.LANCHOR0 - ldrb w0, [x0,4044] +.L1004: + cbz w21, .L1006 + ldrb w0, [x19,4045] add w0, w0, w0, lsl 1 cmp w23, w0, lsr 2 - bls .L961 + bls .L1007 add x24, x24, :lo12:.LANCHOR2 - ldr x0, [x24,664] + ldr x0, [x24,672] cmp x0, xzr mov w0, 256 csel w23, w23, w0, ne -.L961: +.L1007: add w0, w25, 1 mov w1, 56 cmp w23, 256 umull x0, w0, w1 - beq .L975 + beq .L1021 cmn w23, #1 - bne .L962 -.L975: + bne .L1008 +.L1021: str w23, [x26,x0] - b .L960 -.L962: + b .L1006 +.L1008: str wzr, [x26,x0] -.L960: - ldr w0, [x29,152] - add w25, w25, w20 - cbz w0, .L930 - add x0, x22, :lo12:.LANCHOR0 - ldrb w0, [x0,136] - cbz w0, .L930 - mov w0, w19 +.L1006: + ldr w0, [x29,140] + add w25, w25, w21 + cbz w0, .L976 + ldrb w0, [x19,4044] + cbz w0, .L976 + mov w0, w20 bl flash_exit_slc_mode -.L930: +.L976: add w25, w25, 1 - b .L927 -.L1017: + b .L973 +.L1063: mov w0, 0 - b .L1015 -.L940: - mov w0, w19 + b .L1061 +.L986: + mov w0, w20 bl NandcWaitFlashReady - cbz w20, .L937 - ldr w1, [x29,172] - mov w0, w19 + cbz w21, .L983 + ldr w1, [x29,156] + mov w0, w20 bl FlashReadDpDataOutCmd - b .L937 -.L1015: + b .L983 +.L1061: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] ldp x25, x26, [sp,64] ldp x27, x28, [sp,80] - ldp x29, x30, [sp], 176 + ldp x29, x30, [sp], 160 ret .size FlashReadPages, .-FlashReadPages .align 2 @@ -6387,7 +6595,7 @@ FlashLoadFactorBbt: ldrh w1, [x0,4028] add x19, x23, :lo12:.LANCHOR2 ldrh w21, [x0,4030] - add x0, x19, 728 + add x0, x19, 736 mov w28, 0 adrp x26, .LC19 add x26, x26, :lo12:.LC19 @@ -6396,25 +6604,25 @@ FlashLoadFactorBbt: uxth w21, w21 bl ftl_memset add w25, w21, w27 - ldr x0, [x19,696] + ldr x0, [x19,704] str x0, [x29,152] mov w19, w28 sub w0, w21, #12 str xzr, [x29,144] uxth w25, w25 str w0, [x29,124] -.L1020: +.L1066: add x1, x22, :lo12:.LANCHOR0 - ldrb w1, [x1,1676] + ldrb w1, [x1,1672] cmp w1, w19 - bls .L1030 + bls .L1076 mul w3, w19, w21 mov w20, w25 mov w4, 61664 -.L1021: +.L1067: ldr w0, [x29,124] cmp w20, w0 - ble .L1023 + ble .L1069 add w1, w3, w20 add x0, x29, 136 lsl w1, w1, 10 @@ -6428,13 +6636,13 @@ FlashLoadFactorBbt: ldr x3, [x29,112] cmn w0, #1 ldr x4, [x29,104] - beq .L1022 + beq .L1068 add x24, x23, :lo12:.LANCHOR2 - ldr x0, [x24,696] + ldr x0, [x24,704] ldrh w0, [x0] cmp w0, w4 - bne .L1022 - add x24, x24, 728 + bne .L1068 + add x24, x24, 736 mov x0, x26 mov w1, w19 mov w2, w20 @@ -6442,20 +6650,20 @@ FlashLoadFactorBbt: bl printk strh w20, [x24,w19,sxtw 1] uxth w28, w28 - b .L1023 -.L1022: + b .L1069 +.L1068: sub w20, w20, #1 uxth w20, w20 - b .L1021 -.L1023: + b .L1067 +.L1069: add x1, x22, :lo12:.LANCHOR0 add w19, w19, 1 uxtb w19, w19 - ldrb w1, [x1,1676] + ldrb w1, [x1,1672] cmp w1, w28 csel w27, w27, wzr, ne - b .L1020 -.L1030: + b .L1066 +.L1076: mov w0, w27 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -6489,16 +6697,16 @@ FlashReadFacBbtData: mov x21, x4 mov w26, 61664 mul w3, w3, w1 - ldr x0, [x0,696] + ldr x0, [x0,704] str x0, [x29,104] uxth w3, w3 sub w20, w3, #1 sub w19, w3, #16 mul w24, w23, w3 uxth w20, w20 -.L1032: +.L1078: cmp w20, w19 - ble .L1040 + ble .L1086 add w0, w20, w24 mov w1, 1 lsl w0, w0, 10 @@ -6508,26 +6716,26 @@ FlashReadFacBbtData: bl FlashReadPages ldr w0, [x29,88] cmn w0, #1 - beq .L1033 + beq .L1079 add x0, x21, :lo12:.LANCHOR2 - ldr x0, [x0,696] + ldr x0, [x0,704] ldrh w0, [x0] cmp w0, w26 - bne .L1033 + bne .L1079 mov w0, w22 - cbz x22, .L1034 + cbz x22, .L1080 mov x0, x22 mov w1, w23 mov w2, w25 bl FlashReadFacBbtData.part.6 - b .L1034 -.L1033: + b .L1080 +.L1079: sub w20, w20, #1 uxth w20, w20 - b .L1032 -.L1040: + b .L1078 +.L1086: mov w0, -1 -.L1034: +.L1080: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -6551,43 +6759,43 @@ FlashGetBadBlockList: ldrh w19, [x0,14] add x0, x20, :lo12:.LANCHOR2 mul w19, w2, w19 - ldr x0, [x0,688] + ldr x0, [x0,696] uxth w19, w19 add w2, w19, 7 lsr w2, w2, 3 bl FlashReadFacBbtData cmn w0, #1 - bne .L1042 -.L1046: + bne .L1088 +.L1092: mov w1, 0 - b .L1043 -.L1042: + b .L1089 +.L1088: mov w2, 0 lsr w0, w19, 4 mov w1, w2 sub w19, w19, #1 mov w5, 1 -.L1044: +.L1090: cmp w2, w19 - bge .L1043 + bge .L1089 add x3, x20, :lo12:.LANCHOR2 ubfx x4, x2, 5, 11 - ldr x6, [x3,688] + ldr x6, [x3,696] lsl w3, w5, w2 ldr w4, [x6,x4,lsl 2] tst w3, w4 - beq .L1045 + beq .L1091 add w3, w1, 1 ubfiz x1, x1, 1, 16 strh w2, [x21,x1] uxth w1, w3 -.L1045: +.L1091: cmp w1, w0 - bcs .L1046 + bcs .L1092 add w2, w2, 1 uxth w2, w2 - b .L1044 -.L1043: + b .L1090 +.L1089: ubfiz x1, x1, 1, 16 mov w0, -1 ldp x19, x20, [sp,16] @@ -6605,23 +6813,23 @@ FlashProgSlc2KPages: add x29, sp, 0 stp x23, x24, [sp,48] mov w23, w1 - adrp x1, .LANCHOR1+265 + adrp x1, .LANCHOR1+481 stp x21, x22, [sp,32] - stp x25, x26, [sp,64] adrp x22, .LANCHOR0 - ldrb w26, [x1,#:lo12:.LANCHOR1+265] + mov w24, w2 + stp x25, x26, [sp,64] + add x22, x22, :lo12:.LANCHOR0 + ldrb w26, [x1,#:lo12:.LANCHOR1+481] stp x27, x28, [sp,80] stp x19, x20, [sp,16] - mov w24, w2 mov w27, w3 mov x19, x0 mov x21, x0 mov w25, 0 - add x22, x22, :lo12:.LANCHOR0 - mov w28, -1 -.L1052: + add x28, x22, 1676 +.L1098: cmp w25, w23 - beq .L1081 + beq .L1127 mov w1, w24 sub w4, w23, w25 mov x0, x21 @@ -6629,14 +6837,14 @@ FlashProgSlc2KPages: add x3, x29, 100 bl LogAddr2PhyAddr ldr w0, [x29,100] - ldrb w1, [x22,1676] + ldrb w1, [x22,1672] cmp w0, w1 - bcc .L1053 - str w28, [x21] - b .L1054 -.L1053: - add x0, x22, x0, uxtw - ldrb w20, [x0,1680] + bcc .L1099 + mov w0, -1 + str w0, [x21] + b .L1100 +.L1099: + ldrb w20, [x28,w0,uxtw] mov w0, w20 bl NandcWaitFlashReady mov w0, w20 @@ -6689,36 +6897,37 @@ FlashProgSlc2KPages: ldr w1, [x29,96] mov w0, w20 bl FlashReadStatus - tbz x0, 0, .L1057 - str w28, [x21] -.L1057: + tbz x0, 0, .L1103 + mov w0, -1 + str w0, [x21] +.L1103: mov w0, w20 bl NandcFlashDeCs -.L1054: +.L1100: add w25, w25, 1 add x21, x21, 56 - b .L1052 -.L1081: + b .L1098 +.L1127: mov w21, 0 - cbz w27, .L1079 + cbz w27, .L1125 adrp x25, .LC23 adrp x26, .LC22 adrp x27, .LC21 add x25, x25, :lo12:.LC23 add x26, x26, :lo12:.LC22 add x27, x27, :lo12:.LC21 -.L1080: +.L1126: cmp w21, w23 - beq .L1079 + beq .L1125 ldr w0, [x19] cmn w0, #1 - bne .L1060 + bne .L1106 adrp x0, .LC20 ldr w1, [x19,4] add x0, x0, :lo12:.LC20 bl printk - b .L1061 -.L1060: + b .L1107 +.L1106: adrp x20, .LANCHOR2 sub w4, w23, w21 add x22, x20, :lo12:.LANCHOR2 @@ -6727,62 +6936,62 @@ FlashProgSlc2KPages: add x2, x29, 96 mov x0, x19 bl LogAddr2PhyAddr - ldr x0, [x22,704] + ldr x0, [x22,712] mov x1, x19 mov x2, 56 str wzr, [x0] - ldr x0, [x22,712] + ldr x0, [x22,720] str wzr, [x0] add x0, x29, 104 bl memcpy - ldr x0, [x22,704] + ldr x0, [x22,712] mov w1, 1 str x0, [x29,112] mov w2, w24 - ldr x0, [x22,712] + ldr x0, [x22,720] str x0, [x29,120] add x0, x29, 104 bl FlashReadPages ldr w22, [x29,104] cmn w22, #1 - bne .L1062 + bne .L1108 ldr w1, [x19,4] mov x0, x27 bl printk str w22, [x19] -.L1062: +.L1108: ldr x0, [x19,16] - cbz x0, .L1063 + cbz x0, .L1109 ldr w2, [x0] add x0, x20, :lo12:.LANCHOR2 - ldr x0, [x0,712] + ldr x0, [x0,720] ldr w3, [x0] cmp w2, w3 - beq .L1063 + beq .L1109 ldr w1, [x19,4] mov x0, x26 bl printk mov w0, -1 str w0, [x19] -.L1063: +.L1109: ldr x0, [x19,8] - cbz x0, .L1061 + cbz x0, .L1107 add x20, x20, :lo12:.LANCHOR2 ldr w2, [x0] - ldr x0, [x20,704] + ldr x0, [x20,712] ldr w3, [x0] cmp w2, w3 - beq .L1061 + beq .L1107 ldr w1, [x19,4] mov x0, x25 bl printk mov w0, -1 str w0, [x19] -.L1061: +.L1107: add w21, w21, 1 add x19, x19, 56 - b .L1080 -.L1079: + b .L1126 +.L1125: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -6797,7 +7006,7 @@ FlashProgSlc2KPages: .type FlashProgPages, %function FlashProgPages: stp x29, x30, [sp, -192]! - adrp x6, .LANCHOR1+265 + adrp x6, .LANCHOR1+481 add x29, sp, 0 stp x21, x22, [sp,32] adrp x21, .LANCHOR0 @@ -6813,91 +7022,92 @@ FlashProgPages: ldr x5, [x4,1912] mov w23, w2 ldrb w4, [x4,24] - ldrb w27, [x6,#:lo12:.LANCHOR1+265] + ldrb w27, [x6,#:lo12:.LANCHOR1+481] ldrb w5, [x5,19] - cbz w4, .L1083 + cbz w4, .L1129 bl FlashProgSlc2KPages - b .L1084 -.L1083: + b .L1130 +.L1129: sub w0, w5, #1 adrp x28, .LANCHOR2 str w0, [x29,120] add x0, x28, :lo12:.LANCHOR2 str x0, [x29,112] -.L1135: +.L1181: cmp w22, w25 - bcs .L1136 + bcs .L1182 mov w20, 56 - mov w1, w23 - add x2, x29, 128 sub w4, w25, w22 + add x2, x29, 128 + mov w1, w23 umull x20, w22, w20 add x3, x29, 132 add x26, x19, x20 mov x0, x26 bl LogAddr2PhyAddr mov w24, w0 - add x1, x21, :lo12:.LANCHOR0 + add x2, x21, :lo12:.LANCHOR0 ldr w0, [x29,132] - ldrb w2, [x1,1676] - cmp w0, w2 - bcc .L1085 + ldrb w4, [x2,1672] + cmp w0, w4 + bcc .L1131 mov w0, -1 str w0, [x19,x20] - b .L1086 -.L1085: - add x3, x28, :lo12:.LANCHOR2 - uxtw x0, w0 - ldrb w3, [x3,648] - cmp w3, wzr - mov x3, 24 + b .L1132 +.L1131: + add x1, x28, :lo12:.LANCHOR2 + add x3, x2, 1716 + mov x5, 24 + ldrb w1, [x1,656] + cmp w1, wzr + uxtw x1, w0 csel w24, w24, wzr, ne - madd x0, x0, x3, x1 - ldr x0, [x0,1728] - cbz x0, .L1088 - cmp w2, 1 - bne .L1089 - ldr x0, [x1,3976] + madd x0, x1, x5, x3 + ldr x0, [x0,8] + cbz x0, .L1134 + cmp w4, 1 + bne .L1135 + ldr x0, [x2,3976] bl NandcIqrWaitFlashReady -.L1089: +.L1135: ldrb w0, [x29,132] bl FlashWaitCmdDone -.L1088: +.L1134: add x0, x21, :lo12:.LANCHOR0 ldr w2, [x29,132] mov x1, 24 - add x0, x0, 1720 + add x0, x0, 1716 madd x0, x2, x1, x0 ldr w1, [x29,128] str x26, [x0,8] str xzr, [x0,16] str w1, [x0,4] - cbz w24, .L1090 + cbz w24, .L1136 add w1, w22, 1 mov w3, 56 umull x1, w1, w3 add x1, x19, x1 str x1, [x0,16] -.L1090: +.L1136: add x1, x21, :lo12:.LANCHOR0 - add x0, x1, x2 - ldrb w20, [x0,1680] + add x0, x1, 1676 + ldrb w20, [x0,x2] mov x0, 24 madd x2, x2, x0, x1 - ldrb w0, [x1,1676] - strb w20, [x2,1720] + ldrb w0, [x1,1672] + strb w20, [x2,1716] cmp w0, 1 - bne .L1091 + bne .L1137 mov w0, w20 bl NandcWaitFlashReady - b .L1092 -.L1091: + b .L1138 +.L1137: mov w0, w20 str x1, [x29,104] bl NandcFlashCs ldr x1, [x29,104] ldr w0, [x29,132] - add x1, x1, 1688 + add x1, x1, 1684 ldr w0, [x1,x0,lsl 2] ldr w1, [x29,128] cmp w0, wzr @@ -6906,35 +7116,35 @@ FlashProgPages: bl FlashWaitReadyEN mov w0, w20 bl NandcFlashDeCs -.L1092: +.L1138: ldr w0, [x29,120] - cmp w0, 6 - bhi .L1093 + cmp w0, 7 + bhi .L1139 ldr x0, [x29,112] add x0, x0, x20, sxtw ldrb w0, [x0,560] - cbz w0, .L1093 + cbz w0, .L1139 add x2, x21, :lo12:.LANCHOR0 mov w0, w20 add x2, x2, 4060 mov w3, 0 ldrb w1, [x2,-3] bl HynixSetRRPara -.L1093: +.L1139: mov w0, w20 bl NandcFlashCs cmp w23, 1 - bne .L1094 + bne .L1140 add x0, x21, :lo12:.LANCHOR0 - ldrb w0, [x0,136] - cbz w0, .L1094 + ldrb w0, [x0,4044] + cbz w0, .L1140 mov w0, w20 bl flash_enter_slc_mode - b .L1095 -.L1094: + b .L1141 +.L1140: mov w0, w20 bl flash_exit_slc_mode -.L1095: +.L1141: ldr w1, [x29,128] mov w0, w20 bl FlashProgFirstCmd @@ -6944,13 +7154,13 @@ FlashProgPages: mov w1, 1 mov w2, w27 bl NandcXferData - cbz w24, .L1096 + cbz w24, .L1142 ldr w1, [x29,128] mov w0, w20 add x26, x21, :lo12:.LANCHOR0 bl FlashProgDpFirstCmd ldr w1, [x29,132] - add x0, x26, 1688 + add x0, x26, 1684 ldr w0, [x0,x1,lsl 2] ldr w1, [x29,128] cmp w0, wzr @@ -6972,45 +7182,46 @@ FlashProgPages: ldr x3, [x4,8] ldr x4, [x4,16] bl NandcXferData -.L1096: +.L1142: ldr w1, [x29,128] mov w0, w20 add w22, w22, w24 bl FlashProgSecondCmd mov w0, w20 bl NandcFlashDeCs -.L1086: +.L1132: add w22, w22, 1 - b .L1135 -.L1136: + b .L1181 +.L1182: add x21, x21, :lo12:.LANCHOR0 mov x20, 0 - mov x22, 24 + add x22, x21, 1716 + mov x24, 24 ldr x0, [x21,3976] bl NandcIqrWaitFlashReady -.L1098: - ldrb w0, [x21,1676] +.L1144: + ldrb w0, [x21,1672] cmp w0, w20 - bls .L1137 + bls .L1183 mov w0, w20 bl FlashWaitCmdDone cmp w23, 1 - bne .L1099 - ldrb w0, [x21,136] - cbz w0, .L1099 - madd x0, x20, x22, x21 - ldrb w0, [x0,1720] + bne .L1145 + ldrb w0, [x21,4044] + cbz w0, .L1145 + mul x0, x20, x24 + ldrb w0, [x0,x22] bl flash_exit_slc_mode -.L1099: +.L1145: add x20, x20, 1 - b .L1098 -.L1137: + b .L1144 +.L1183: ldr w0, [x29,124] - cbnz w0, .L1101 -.L1109: + cbnz w0, .L1147 +.L1155: mov w0, 0 - b .L1084 -.L1101: + b .L1130 +.L1147: adrp x24, .LC23 adrp x26, .LC22 adrp x27, .LC21 @@ -7018,18 +7229,18 @@ FlashProgPages: add x24, x24, :lo12:.LC23 add x26, x26, :lo12:.LC22 add x27, x27, :lo12:.LC21 -.L1102: +.L1148: cmp w21, w25 - beq .L1109 + beq .L1155 ldr w0, [x19] cmn w0, #1 - bne .L1103 + bne .L1149 adrp x0, .LC20 ldr w1, [x19,4] add x0, x0, :lo12:.LC20 bl printk - b .L1104 -.L1103: + b .L1150 +.L1149: adrp x20, .LANCHOR2 sub w4, w25, w21 add x22, x20, :lo12:.LANCHOR2 @@ -7038,62 +7249,62 @@ FlashProgPages: add x2, x29, 128 mov x0, x19 bl LogAddr2PhyAddr - ldr x0, [x22,704] + ldr x0, [x22,712] mov x1, x19 mov x2, 56 str wzr, [x0] - ldr x0, [x22,712] + ldr x0, [x22,720] str wzr, [x0] add x0, x29, 136 bl memcpy - ldr x0, [x22,704] + ldr x0, [x22,712] mov w1, 1 str x0, [x29,144] mov w2, w23 - ldr x0, [x22,712] + ldr x0, [x22,720] str x0, [x29,152] add x0, x29, 136 bl FlashReadPages ldr w22, [x29,136] cmn w22, #1 - bne .L1105 + bne .L1151 ldr w1, [x19,4] mov x0, x27 bl printk str w22, [x19] -.L1105: +.L1151: ldr x0, [x19,16] - cbz x0, .L1106 + cbz x0, .L1152 ldr w2, [x0] add x0, x20, :lo12:.LANCHOR2 - ldr x0, [x0,712] + ldr x0, [x0,720] ldr w3, [x0] cmp w2, w3 - beq .L1106 + beq .L1152 ldr w1, [x19,4] mov x0, x26 bl printk mov w0, -1 str w0, [x19] -.L1106: +.L1152: ldr x0, [x19,8] - cbz x0, .L1104 + cbz x0, .L1150 add x20, x20, :lo12:.LANCHOR2 ldr w2, [x0] - ldr x0, [x20,704] + ldr x0, [x20,712] ldr w3, [x0] cmp w2, w3 - beq .L1104 + beq .L1150 ldr w1, [x19,4] mov x0, x24 bl printk mov w0, -1 str w0, [x19] -.L1104: +.L1150: add w21, w21, 1 add x19, x19, 56 - b .L1102 -.L1084: + b .L1148 +.L1130: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -7114,12 +7325,12 @@ FlashTestBlk.part.7: uxth w20, w0 add x19, x19, :lo12:.LANCHOR2 lsl w20, w20, 10 - ldr x0, [x19,688] + ldr x0, [x19,696] str x0, [x29,48] add x0, x29, 96 str x0, [x29,56] bl ftl_memset - ldr x0, [x19,688] + ldr x0, [x19,696] mov w1, 90 mov w2, 8 bl ftl_memset @@ -7156,10 +7367,10 @@ FlashTestBlk: ldr w2, [x0,#:lo12:.LANCHOR0+8] mov w0, 0 cmp w1, w2 - bcc .L1140 + bcc .L1186 mov w0, w1 bl FlashTestBlk.part.7 -.L1140: +.L1186: ldp x29, x30, [sp], 16 ret .size FlashTestBlk, .-FlashTestBlk @@ -7167,334 +7378,324 @@ FlashTestBlk: .global FlashMakeFactorBbt .type FlashMakeFactorBbt, %function FlashMakeFactorBbt: - stp x29, x30, [sp, -224]! + stp x29, x30, [sp, -240]! adrp x2, .LANCHOR2 + adrp x4, .LANCHOR0 add x29, sp, 0 add x0, x2, :lo12:.LANCHOR2 stp x19, x20, [sp,16] - stp x21, x22, [sp,32] stp x23, x24, [sp,48] + stp x21, x22, [sp,32] stp x25, x26, [sp,64] stp x27, x28, [sp,80] - adrp x19, .LANCHOR0 + mov x20, x4 str x2, [x29,136] - ldr x0, [x0,696] - mov w20, 0 - str x0, [x29,152] - add x0, x19, :lo12:.LANCHOR0 + ldr x0, [x0,704] + add x24, x20, :lo12:.LANCHOR0 + str x0, [x29,160] + add x0, x4, :lo12:.LANCHOR0 + mov w19, 0 ldrh w1, [x0,4028] - ldrh w22, [x0,4030] - ldrh w25, [x0,28] - mul w22, w1, w22 + ldrh w21, [x0,4030] + mul w21, w1, w21 ldr x1, [x0,1912] - ldrb w0, [x0,24] - uxth w22, w22 + uxth w21, w21 ldrb w1, [x1,24] + str w1, [x29,144] + ldrh w1, [x0,28] + str w1, [x29,172] + ldrb w0, [x0,24] + ubfiz w1, w1, 1, 15 cmp w0, 1 - str w1, [x29,148] + ldr w0, [x29,172] + csel w0, w1, w0, eq + str w0, [x29,172] adrp x0, .LC24 - ubfiz w1, w25, 1, 15 - add x0, x0, :lo12:.LC24 - csel w25, w1, w25, eq mov w1, 1 + add x0, x0, :lo12:.LC24 bl printk ldr x0, [x29,136] mov w1, 0 mov w2, 4096 add x0, x0, :lo12:.LANCHOR2 - ldr x0, [x0,696] + ldr x0, [x0,704] bl ftl_memset - lsr w0, w22, 4 - str w0, [x29,144] - ldr w0, [x29,148] + lsr w0, w21, 4 + str w0, [x29,168] + add x0, x24, 1676 + str x0, [x29,120] + ldr w0, [x29,144] and w0, w0, 1 - str w0, [x29,124] - ldr w0, [x29,148] - and w0, w0, 2 - uxtb w0, w0 - str w0, [x29,120] - sub w0, w22, #1 + str w0, [x29,116] + sub w0, w21, #1 uxth w0, w0 str w0, [x29,132] -.L1144: - add x23, x19, :lo12:.LANCHOR0 - ldrb w0, [x23,1676] - cmp w0, w20 - bls .L1195 +.L1190: + ldrb w0, [x24,1672] + cmp w0, w19 + bls .L1241 ldr x0, [x29,136] - sxtw x24, w20 + sxtw x23, w19 add x0, x0, :lo12:.LANCHOR2 - add x0, x0, 728 - ldrh w21, [x0,w20,sxtw 1] - cbnz w21, .L1174 - ldrh w2, [x23,4036] - mov w1, w21 - ldr x0, [x19,#:lo12:.LANCHOR0] - add x23, x23, x24 + add x0, x0, 736 + ldrh w20, [x0,w19,sxtw 1] + cbnz w20, .L1220 + ldrh w2, [x24,4036] + mov w1, w20 + ldr x0, [x24] + mov w25, w20 lsl w2, w2, 9 - mov w26, w21 + mov w22, w20 + add x28, x24, 1684 bl ftl_memset - ldrb w27, [x23,1680] - ldr w0, [x29,148] - mov w23, w21 - and w0, w0, 4 + ldr x0, [x29,120] + ldrb w26, [x0,x23] + ldr w0, [x29,144] + and w0, w0, 2 uxtb w0, w0 str w0, [x29,128] -.L1146: - uxth w28, w26 - cmp w28, w22 - bcs .L1156 +.L1192: + uxth w27, w25 + cmp w27, w21 + bcs .L1202 mov w0, -1 - strb w0, [x29,166] - strb w0, [x29,167] - ldr w0, [x29,124] - cbz w0, .L1148 - add x4, x19, :lo12:.LANCHOR0 - add x2, x29, 166 - add x0, x4, 1688 - str x4, [x29,104] - ldr w3, [x0,x24,lsl 2] - mov w0, w27 - add w3, w21, w3 - str x3, [x29,112] + strb w0, [x29,182] + strb w0, [x29,183] + ldr w0, [x29,116] + cbz w0, .L1194 + ldr w3, [x28,x23,lsl 2] + mov w0, w26 + add x2, x29, 182 + add w3, w20, w3 + str x3, [x29,104] mov w1, w3 bl FlashReadSpare - ldr x4, [x29,104] - ldr x3, [x29,112] - ldrb w0, [x4,24] + ldrb w0, [x24,24] + ldr x3, [x29,104] cmp w0, 1 - bne .L1148 - ldr w1, [x4,28] - mov w0, w27 - add x2, x29, 167 + bne .L1194 + ldr w1, [x24,28] + mov w0, w26 + add x2, x29, 183 add w1, w3, w1 bl FlashReadSpare - ldrb w0, [x29,166] - ldrb w1, [x29,167] + ldrb w0, [x29,182] + ldrb w1, [x29,183] and w0, w1, w0 - strb w0, [x29,166] -.L1148: - ldr w0, [x29,120] - cbz w0, .L1150 - add x0, x19, :lo12:.LANCHOR0 - add x2, x29, 167 - add x0, x0, 1688 - ldr x1, [x0,224] - ldr w0, [x0,x24,lsl 2] - ldrh w1, [x1,10] + strb w0, [x29,182] +.L1194: + ldr w0, [x29,128] + cbz w0, .L1196 + ldr x0, [x24,1912] + add x2, x29, 183 + ldrh w1, [x0,10] + ldr w0, [x28,x23,lsl 2] sub w1, w1, #1 add w1, w1, w0 - mov w0, w27 - add w1, w1, w21 + mov w0, w26 + add w1, w1, w20 bl FlashReadSpare -.L1150: - add x0, x19, :lo12:.LANCHOR0 - ldrb w1, [x29,166] - ldr x0, [x0,1912] +.L1196: + ldr x0, [x24,1912] + ldrb w1, [x29,182] ldrb w0, [x0,7] cmp w0, 8 - beq .L1175 + beq .L1221 cmp w0, 1 - bne .L1151 -.L1175: + bne .L1197 +.L1221: mov w0, 1 - cbz w1, .L1153 - ldrb w0, [x29,167] + cbz w1, .L1199 + ldrb w0, [x29,183] cmp w0, wzr cset w0, eq - b .L1153 -.L1151: + b .L1199 +.L1197: cmp w1, 255 mov w0, 1 - bne .L1153 - ldrb w0, [x29,167] + bne .L1199 + ldrb w0, [x29,183] cmp w0, 255 cset w0, ne -.L1153: - ldr w1, [x29,128] - cbz w1, .L1154 - add x0, x19, :lo12:.LANCHOR0 - add x0, x0, 1688 - ldr w1, [x0,x24,lsl 2] - mov w0, w27 - add w1, w21, w1 +.L1199: + ldr x1, [x29,144] + tbz x1, 2, .L1200 + ldr w1, [x28,x23,lsl 2] + mov w0, w26 + add w1, w20, w1 bl SandiskProgTestBadBlock -.L1154: - cbz w0, .L1155 +.L1200: + cbz w0, .L1201 adrp x0, .LC25 - mov w1, w20 - mov w2, w26 + mov w1, w19 + mov w2, w25 add x0, x0, :lo12:.LC25 - add w23, w23, 1 + add w22, w22, 1 bl printk - ubfx x1, x28, 5, 11 - ldr x3, [x19,#:lo12:.LANCHOR0] + ubfx x1, x27, 5, 11 + ldr x2, [x24] lsl x1, x1, 2 mov w0, 1 - lsl w28, w0, w28 - add x2, x19, :lo12:.LANCHOR0 - uxth w23, w23 - ldr w0, [x3,x1] - orr w28, w0, w28 - str w28, [x3,x1] - ldr w1, [x29,144] - ldrb w0, [x2,1676] + lsl w27, w0, w27 + uxth w22, w22 + ldr w0, [x2,x1] + orr w27, w0, w27 + str w27, [x2,x1] + ldr w1, [x29,168] + ldrb w0, [x24,1672] mul w0, w1, w0 - cmp w23, w0 - bgt .L1156 -.L1155: - add w26, w26, 1 - add w21, w21, w25 - b .L1146 -.L1156: + cmp w22, w0 + bgt .L1202 +.L1201: + ldr w0, [x29,172] + add w25, w25, 1 + add w20, w20, w0 + b .L1192 +.L1202: adrp x0, .LC26 - mov w1, w20 - mov w2, w23 + mov w1, w19 add x0, x0, :lo12:.LC26 + mov w2, w22 bl printk - add x1, x19, :lo12:.LANCHOR0 - ldr w2, [x29,144] - ldrb w0, [x1,1676] - mul w0, w2, w0 - cmp w23, w0 - blt .L1158 - ldrh w2, [x1,4036] + ldrb w0, [x24,1672] + ldr w1, [x29,168] + mul w0, w1, w0 + cmp w22, w0 + blt .L1204 + ldrh w2, [x24,4036] mov w1, 0 - ldr x0, [x19,#:lo12:.LANCHOR0] + ldr x0, [x24] lsl w2, w2, 9 bl ftl_memset -.L1158: - cbnz w20, .L1160 - add x0, x19, :lo12:.LANCHOR0 - adrp x26, .LC27 - mov w21, w20 - add x26, x26, :lo12:.LC27 - mov w23, 1 - ldrh w27, [x0,8] -.L1161: - add x0, x19, :lo12:.LANCHOR0 - ldrb w0, [x0,25] - cmp w0, w27 - bls .L1196 - mov w0, w27 +.L1204: + cbnz w19, .L1206 + adrp x25, .LC27 + ldrh w26, [x24,8] + mov w20, w19 + add x25, x25, :lo12:.LC27 + mov w22, 1 +.L1207: + ldrb w0, [x24,25] + cmp w0, w26 + bls .L1242 + mov w0, w26 bl FlashTestBlk - cbz w0, .L1162 - mov w1, w27 - mov x0, x26 - add w21, w21, 1 + cbz w0, .L1208 + mov w1, w26 + mov x0, x25 + add w20, w20, 1 bl printk - ubfx x1, x27, 5, 11 - ldr x2, [x19,#:lo12:.LANCHOR0] + ubfx x1, x26, 5, 11 + ldr x2, [x24] lsl x1, x1, 2 - lsl w0, w23, w27 - uxth w21, w21 + lsl w0, w22, w26 + uxth w20, w20 ldr w3, [x2,x1] orr w0, w3, w0 str w0, [x2,x1] -.L1162: - add w27, w27, 1 - uxth w27, w27 - b .L1161 -.L1196: - adrp x26, .LC27 - ldr w28, [x29,132] - sub w27, w22, #50 - add x26, x26, :lo12:.LC27 - mov w23, 1 -.L1164: - cmp w28, w27 - ble .L1197 - mov w0, w28 +.L1208: + add w26, w26, 1 + uxth w26, w26 + b .L1207 +.L1242: + adrp x25, .LC27 + ldr w27, [x29,132] + sub w26, w21, #50 + add x25, x25, :lo12:.LC27 + mov w22, 1 +.L1210: + cmp w27, w26 + ble .L1243 + mov w0, w27 bl FlashTestBlk - cbz w0, .L1165 - mov w1, w28 - mov x0, x26 + cbz w0, .L1211 + mov w1, w27 + mov x0, x25 bl printk - ubfx x1, x28, 5, 11 - ldr x2, [x19,#:lo12:.LANCHOR0] + ubfx x1, x27, 5, 11 + ldr x2, [x24] lsl x1, x1, 2 - lsl w0, w23, w28 + lsl w0, w22, w27 ldr w3, [x2,x1] orr w0, w3, w0 str w0, [x2,x1] -.L1165: - sub w28, w28, #1 - uxth w28, w28 - b .L1164 -.L1197: - add x0, x19, :lo12:.LANCHOR0 - ldrb w1, [x0,25] - ldr w2, [x0,8] - sub w1, w1, w2 - cmp w21, w1 - bcc .L1160 - ldrh w2, [x0,4036] +.L1211: + sub w27, w27, #1 + uxth w27, w27 + b .L1210 +.L1243: + ldrb w0, [x24,25] + ldr w1, [x24,8] + sub w0, w0, w1 + cmp w20, w0 + bcc .L1206 + ldrh w2, [x24,4036] mov w1, 0 - ldr x0, [x19,#:lo12:.LANCHOR0] + ldr x0, [x24] lsl w2, w2, 9 bl ftl_memset -.L1160: +.L1206: ldr x0, [x29,136] - adrp x23, .LC28 - ldr w27, [x29,132] - add x23, x23, :lo12:.LC28 - mul w26, w20, w22 - add x28, x0, :lo12:.LANCHOR2 - mov w21, -3872 -.L1168: - mov w2, w27 - mov x0, x23 - mov w1, w20 + adrp x22, .LC28 + ldr w26, [x29,132] + add x22, x22, :lo12:.LC28 + mul w25, w19, w21 + add x27, x0, :lo12:.LANCHOR2 + mov w20, -3872 +.L1214: + mov w2, w26 + mov x0, x22 + mov w1, w19 bl printk - ldr x2, [x19,#:lo12:.LANCHOR0] -.L1169: - ubfx x0, x27, 5, 11 + ldr x2, [x24] +.L1215: + ubfx x0, x26, 5, 11 ldr w0, [x2,x0,lsl 2] - lsr w0, w0, w27 + lsr w0, w0, w26 and w1, w0, 1 - tbz x0, 0, .L1198 - sub w27, w27, #1 - uxth w27, w27 - b .L1169 -.L1198: - add x0, x28, 728 - strh w27, [x0,x24,lsl 1] - ldr x0, [x29,152] - strh w21, [x0] - strh w27, [x0,2] + tbz x0, 0, .L1244 + sub w26, w26, #1 + uxth w26, w26 + b .L1215 +.L1244: + add x0, x27, 736 + strh w26, [x0,x23,lsl 1] + ldr x0, [x29,160] + strh w20, [x0] + strh w26, [x0,2] strh w1, [x0,8] mov w1, 1 - ldr x0, [x19,#:lo12:.LANCHOR0] + ldr x0, [x24] mov w2, w1 - str x0, [x29,176] - ldr x0, [x28,696] - str x0, [x29,184] - add w0, w27, w26 + str x0, [x29,192] + ldr x0, [x27,704] + str x0, [x29,200] + add w0, w26, w25 lsl w0, w0, 10 - str w0, [x29,172] - add x0, x29, 168 + str w0, [x29,188] + add x0, x29, 184 bl FlashEraseBlocks mov w1, 1 - add x0, x29, 168 + add x0, x29, 184 mov w2, w1 mov w3, w1 bl FlashProgPages - ldr w0, [x29,168] - cbz w0, .L1174 - sub w27, w27, #1 - uxth w27, w27 - b .L1168 -.L1174: - add w20, w20, 1 - uxtb w20, w20 - b .L1144 -.L1195: + ldr w0, [x29,184] + cbz w0, .L1220 + sub w26, w26, #1 + uxth w26, w26 + b .L1214 +.L1220: + add w19, w19, 1 + uxtb w19, w19 + b .L1190 +.L1241: 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], 224 + ldp x29, x30, [sp], 240 ret .size FlashMakeFactorBbt, .-FlashMakeFactorBbt .align 2 @@ -7503,14 +7704,14 @@ FlashMakeFactorBbt: Ftl_log2: mov w2, 1 mov w1, 0 -.L1200: +.L1246: cmp w2, w0 - bhi .L1202 + bhi .L1248 add w1, w1, 1 lsl w2, w2, 1 uxth w1, w1 - b .L1200 -.L1202: + b .L1246 +.L1248: sub w0, w1, #1 ret .size Ftl_log2, .-Ftl_log2 @@ -7530,17 +7731,17 @@ FtlSysBlkNumInit: csel w0, w0, w1, hi adrp x1, .LANCHOR2 add x1, x1, :lo12:.LANCHOR2 - ldrh w2, [x1,748] - ldrh w3, [x1,758] - str w0, [x1,744] + ldrh w2, [x1,756] + ldrh w3, [x1,766] + str w0, [x1,752] mul w2, w0, w2 sub w0, w3, w0 - strh w0, [x1,756] - ldr w0, [x1,764] - str w2, [x1,752] + strh w0, [x1,764] + ldr w0, [x1,772] + str w2, [x1,760] sub w2, w0, w2 mov w0, 0 - str w2, [x1,760] + str w2, [x1,768] ret .size FtlSysBlkNumInit, .-FtlSysBlkNumInit .align 2 @@ -7552,215 +7753,212 @@ FtlConstantsInit: add x29, sp, 0 stp x19, x20, [sp,16] stp x23, x24, [sp,48] + adrp x19, .LANCHOR2 + mov x24, x0 stp x21, x22, [sp,32] stp x25, x26, [sp,64] stp x27, x28, [sp,80] - mov x24, x0 - adrp x19, .LANCHOR2 - ldrh w6, [x0,8] - add x0, x19, :lo12:.LANCHOR2 - ldrh w2, [x24,10] - ldrh w1, [x24,12] + add x1, x19, :lo12:.LANCHOR2 ldrh w4, [x24,14] - strh w6, [x0,768] - strh w2, [x0,770] - strh w1, [x0,772] - strh w4, [x0,758] -.L1207: - add x5, x0, 776 + ldrh w6, [x0,8] + ldrh w2, [x0,10] + ldrh w0, [x0,12] + strh w6, [x1,776] + strh w2, [x1,778] + strh w0, [x1,780] + strh w4, [x1,766] +.L1253: + add x5, x1, 784 strb w3, [x3,x5] add x3, x3, 1 cmp x3, 32 - bne .L1207 + bne .L1253 ldrh w3, [x24,20] - ldrb w0, [x24,15] - cmp w3, w0 - bcs .L1208 - uxtb w8, w1 + ldrb w1, [x24,15] + cmp w3, w1 + bcs .L1254 + uxtb w8, w0 mov w3, 0 - mul w11, w1, w2 + mul w11, w0, w2 ubfiz w10, w8, 1, 7 add x12, x19, :lo12:.LANCHOR2 -.L1209: - cmp w3, w1 - bcs .L1211 - uxtb w0, w3 +.L1255: + cmp w3, w0 + bcs .L1257 + uxtb w1, w3 mov w5, w3 mov w7, 0 -.L1212: +.L1258: cmp w7, w2 - bcs .L1234 - add x9, x12, 776 + bcs .L1280 + add x9, x12, 784 add w13, w5, w11 - add w14, w0, w8 + add w14, w1, w8 add w7, w7, 1 - strb w0, [x9,w5,uxtw] - add w0, w0, w10 + strb w1, [x9,w5,uxtw] + add w1, w1, w10 strb w14, [x9,x13] - add w5, w5, w1 - uxtb w0, w0 - b .L1212 -.L1234: + add w5, w5, w0 + uxtb w1, w1 + b .L1258 +.L1280: add w3, w3, 1 - b .L1209 -.L1211: - add x0, x19, :lo12:.LANCHOR2 + b .L1255 +.L1257: + add x1, x19, :lo12:.LANCHOR2 lsl w2, w2, 1 lsr w4, w4, 1 - strh w2, [x0,770] - strh w4, [x0,758] -.L1208: - add x0, x19, :lo12:.LANCHOR2 + strh w2, [x1,778] + strh w4, [x1,766] +.L1254: + add x1, x19, :lo12:.LANCHOR2 mov w2, 5 cmp w6, 1 - strh w2, [x0,808] - strh wzr, [x0,810] - bne .L1213 - strh w6, [x0,808] -.L1213: - add x0, x19, :lo12:.LANCHOR2 + strh w2, [x1,816] + strh wzr, [x1,818] + bne .L1259 + strh w6, [x1,816] +.L1259: + add x1, x19, :lo12:.LANCHOR2 mov w2, 4352 - adrp x22, .LANCHOR0 - strh w2, [x0,812] - add x2, x22, :lo12:.LANCHOR0 + adrp x21, .LANCHOR0 + strh w2, [x1,820] + add x2, x21, :lo12:.LANCHOR0 ldrb w27, [x2,24] - cbz w27, .L1214 + cbz w27, .L1260 mov w2, 384 - strh w2, [x0,812] -.L1214: - add x21, x19, :lo12:.LANCHOR2 - ldrh w20, [x21,758] - ldrh w23, [x21,770] - mul w23, w1, w23 - mul w1, w20, w1 - uxth w23, w23 - strh w23, [x21,748] - uxth w0, w1 - strh w0, [x21,814] - bl Ftl_log2 + strh w2, [x1,820] +.L1260: + add x22, x19, :lo12:.LANCHOR2 ldrh w26, [x24,16] ldrh w25, [x24,20] - strh w0, [x21,816] + ldrh w28, [x24,18] + ldrh w23, [x22,778] + ldrh w20, [x22,766] + strh w26, [x22,824] + mul w23, w0, w23 + mul w0, w20, w0 + strh w0, [x22,822] + uxth w23, w23 + strh w28, [x22,826] + strh w23, [x22,756] mul w0, w23, w26 - strh w0, [x21,822] + strh w0, [x22,828] mov w0, w25 - ldrh w28, [x24,18] - strh w26, [x21,818] - strh w28, [x21,820] - strh w25, [x21,824] + strh w25, [x22,830] bl Ftl_log2 - lsl w2, w25, 9 uxth w3, w0 - strh w0, [x21,826] - cmp w20, 1024 + lsl w2, w25, 9 + strh w0, [x22,832] ldrh w0, [x24,26] - strh w2, [x21,828] + cmp w20, 1024 + strh w2, [x22,834] ubfx x2, x2, 9, 7 - strh w0, [x21,832] + strh w0, [x22,838] lsl w2, w2, 1 mul w0, w23, w20 - strh w2, [x21,830] - str w0, [x21,764] - bls .L1215 + strh w2, [x22,836] + str w0, [x22,772] + bls .L1261 and w0, w20, 255 - strh w0, [x21,810] -.L1215: + strh w0, [x22,818] +.L1261: add x2, x19, :lo12:.LANCHOR2 mul w0, w25, w28 - ldrh w1, [x2,810] + ldrh w1, [x2,818] sub w1, w20, w1 mul w1, w23, w1 mul w1, w1, w25 mul w1, w1, w26 asr w1, w1, 11 - str w1, [x2,836] - ldrh w1, [x2,812] + str w1, [x2,840] + ldrh w1, [x2,820] lsl w1, w1, 3 sdiv w0, w1, w0 uxth w0, w0 cmp w0, 4 - bhi .L1231 + bhi .L1277 mov w0, 4 -.L1231: - strh w0, [x2,840] - cbz w27, .L1218 +.L1277: + strh w0, [x2,844] + cbz w27, .L1264 add x0, x19, :lo12:.LANCHOR2 mov w1, 640 - strh w1, [x0,812] -.L1218: + strh w1, [x0,820] +.L1264: add x1, x19, :lo12:.LANCHOR2 lsl w20, w20, 6 cmp w23, 1 - ldrh w0, [x1,812] + ldrh w0, [x1,820] asr w0, w0, w3 add w3, w3, 9 asr w20, w20, w3 - strh w20, [x1,844] + strh w20, [x1,848] and w20, w20, 65535 add w0, w0, 2 - strh w0, [x1,842] + strh w0, [x1,846] mul w0, w20, w23 - str w0, [x1,848] + str w0, [x1,852] add w20, w20, 8 - ldrh w0, [x1,840] + ldrh w0, [x1,844] udiv w0, w0, w23 add w20, w20, w0 - bne .L1232 + bne .L1278 add w20, w20, 4 -.L1232: - str w20, [x1,744] +.L1278: + str w20, [x1,752] add x20, x19, :lo12:.LANCHOR2 - add x22, x22, :lo12:.LANCHOR0 - ldrh w0, [x20,744] + add x21, x21, :lo12:.LANCHOR0 + ldrh w0, [x20,752] bl FtlSysBlkNumInit - str wzr, [x22,4048] - ldr w0, [x20,744] - str w0, [x20,852] - ldr w0, [x20,760] - ldrh w1, [x20,818] + str wzr, [x21,4048] + ldr w0, [x20,752] + str w0, [x20,856] + ldr w0, [x20,768] + ldrh w1, [x20,824] lsl w0, w0, 2 - ldrh w3, [x20,824] - ldrh w2, [x20,840] + ldrh w3, [x20,830] + ldrh w2, [x20,844] mul w1, w0, w1 - ldrh w0, [x20,826] - ldrb w5, [x22,136] + ldrh w0, [x20,832] + ldrb w5, [x21,4044] add w0, w0, 9 lsr w0, w1, w0 mov w1, 2048 add w0, w0, 2 sdiv w1, w1, w3 - strh w1, [x20,858] + strh w1, [x20,862] uxth w0, w0 - strh w0, [x20,856] + strh w0, [x20,860] add w1, w2, 3 - strh w1, [x20,840] - ldr w1, [x20,848] + strh w1, [x20,844] + ldr w1, [x20,852] add w4, w1, 3 - str w4, [x20,848] - cbz w5, .L1221 + str w4, [x20,852] + cbz w5, .L1267 add w2, w2, 4 add w1, w1, 5 - strh w2, [x20,840] - b .L1233 -.L1221: + strh w2, [x20,844] + b .L1279 +.L1267: cmp w4, 7 - bhi .L1222 + bhi .L1268 mov w1, 8 -.L1233: - str w1, [x20,848] -.L1222: +.L1279: + str w1, [x20,852] +.L1268: add x19, x19, :lo12:.LANCHOR2 - ldrh w1, [x19,756] - strh wzr, [x19,860] + ldrh w1, [x19,764] + strh wzr, [x19,864] lsr w2, w1, 3 add w1, w2, w1, lsl 1 add w1, w1, 52 add w0, w1, w0, lsl 2 cmp w0, w3, lsl 9 - bcs .L1223 + bcs .L1269 mov w0, 1 - strh w0, [x19,860] -.L1223: + strh w0, [x19,864] +.L1269: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -7782,13 +7980,12 @@ FtlMemInit: str x23, [sp,48] add x0, x20, :lo12:.LANCHOR2 stp x21, x22, [sp,32] - str w1, [x0,932] + str w1, [x0,936] mov w1, -1 - strh wzr, [x0,862] - strh w1, [x0,948] - strh w1, [x0,950] + strh wzr, [x0,866] strh w1, [x0,952] - str wzr, [x0,864] + strh w1, [x0,954] + strh w1, [x0,956] str wzr, [x0,868] str wzr, [x0,872] str wzr, [x0,876] @@ -7805,311 +8002,312 @@ FtlMemInit: str wzr, [x0,920] str wzr, [x0,924] str wzr, [x0,928] - str wzr, [x0,936] + str wzr, [x0,932] str wzr, [x0,940] str wzr, [x0,944] - strh w1, [x0,954] + str wzr, [x0,948] + strh w1, [x0,958] mov w1, 32 - ldrh w2, [x0,824] - strh w1, [x0,956] + ldrh w2, [x0,830] + strh w1, [x0,960] mov w1, 128 - strh w1, [x0,958] + strh w1, [x0,962] mov w1, 1024 - strh wzr, [x0,960] - sdiv w2, w1, w2 - ldrh w1, [x0,748] - strh wzr, [x0,962] - lsl w1, w1, 2 strh wzr, [x0,964] + sdiv w2, w1, w2 + ldrh w1, [x0,756] strh wzr, [x0,966] + lsl w1, w1, 2 + strh wzr, [x0,968] + strh wzr, [x0,970] cmp w2, w1 - str w2, [x0,968] - bls .L1236 - str w1, [x0,968] -.L1236: + str w2, [x0,972] + bls .L1282 + str w1, [x0,972] +.L1282: add x19, x20, :lo12:.LANCHOR2 mov w22, 56 - ldrh w0, [x19,822] - str wzr, [x19,972] + ldrh w0, [x19,828] + str wzr, [x19,976] lsl w0, w0, 1 bl ftl_malloc - str x0, [x19,976] - ldrh w1, [x19,822] + str x0, [x19,984] + ldrh w1, [x19,828] mov w0, 12 mul w0, w1, w0 bl ftl_malloc - ldrh w21, [x19,748] - str x0, [x19,984] + ldrh w21, [x19,756] + str x0, [x19,992] mul w21, w21, w22 lsl w23, w21, 3 mov w0, w23 bl ftl_malloc - str x0, [x19,992] - mov w0, w21 - bl ftl_malloc str x0, [x19,1000] - mov w0, w23 + mov w0, w21 bl ftl_malloc str x0, [x19,1008] - mov w0, w21 + mov w0, w23 bl ftl_malloc str x0, [x19,1016] mov w0, w21 bl ftl_malloc str x0, [x19,1024] - ldr w0, [x19,968] - mul w0, w0, w22 + mov w0, w21 bl ftl_malloc str x0, [x19,1032] - ldrh w0, [x19,748] - ldrh w21, [x19,828] + ldr w0, [x19,972] + mul w0, w0, w22 + bl ftl_malloc + str x0, [x19,1040] + ldrh w0, [x19,756] + ldrh w21, [x19,834] lsl w0, w0, 1 add w0, w0, 1 - str w0, [x19,1040] - mov w0, w21 - bl ftl_malloc - str x0, [x19,1048] + str w0, [x19,1048] mov w0, w21 bl ftl_malloc str x0, [x19,1056] mov w0, w21 bl ftl_malloc str x0, [x19,1064] - ldr w0, [x19,1040] - mul w0, w21, w0 + mov w0, w21 bl ftl_malloc str x0, [x19,1072] - ldr w0, [x19,968] + ldr w0, [x19,1048] mul w0, w21, w0 bl ftl_malloc str x0, [x19,1080] - mov w0, w21 + ldr w0, [x19,972] + mul w0, w21, w0 bl ftl_malloc str x0, [x19,1088] mov w0, w21 bl ftl_malloc str x0, [x19,1096] - ldr w1, [x19,1040] + mov w0, w21 + bl ftl_malloc + str x0, [x19,1104] + ldr w1, [x19,1048] mov w0, 24 mul w0, w1, w0 bl ftl_malloc - ldrh w21, [x19,748] - str x0, [x19,1104] - ldrh w0, [x19,830] + ldrh w21, [x19,756] + str x0, [x19,1112] + ldrh w0, [x19,836] mul w21, w0, w21 mov w0, w21 bl ftl_malloc - str x0, [x19,1112] - lsl w0, w21, 3 - bl ftl_malloc str x0, [x19,1120] - ldrh w1, [x19,830] - ldr w0, [x19,1040] - mul w0, w1, w0 + lsl w0, w21, 3 bl ftl_malloc str x0, [x19,1128] - ldrh w1, [x19,830] - ldr w0, [x19,968] + ldrh w1, [x19,836] + ldr w0, [x19,1048] mul w0, w1, w0 bl ftl_malloc str x0, [x19,1136] - ldrh w0, [x19,758] + ldrh w1, [x19,836] + ldr w0, [x19,972] + mul w0, w1, w0 + bl ftl_malloc + str x0, [x19,1144] + ldrh w0, [x19,766] lsl w0, w0, 1 - strh w0, [x19,1144] + strh w0, [x19,1152] and w0, w0, 65534 bl ftl_malloc - str x0, [x19,1152] - ldrh w0, [x19,1144] + str x0, [x19,1160] + ldrh w0, [x19,1152] add x0, x0, 547 lsr x0, x0, 9 - strh w0, [x19,1144] + strh w0, [x19,1152] lsl w0, w0, 9 bl ftl_malloc - ldrh w21, [x19,758] - str x0, [x19,1160] + ldrh w21, [x19,766] + str x0, [x19,1168] add x0, x0, 32 lsl w21, w21, 1 - str x0, [x19,1168] - mov w0, w21 - bl ftl_malloc str x0, [x19,1176] mov w0, w21 bl ftl_malloc - ldr w21, [x19,848] str x0, [x19,1184] - lsl w21, w21, 1 mov w0, w21 bl ftl_malloc + ldr w21, [x19,852] str x0, [x19,1192] + lsl w21, w21, 1 mov w0, w21 bl ftl_malloc str x0, [x19,1200] - ldrh w0, [x19,758] + mov w0, w21 + bl ftl_malloc + str x0, [x19,1208] + ldrh w0, [x19,766] lsr w0, w0, 3 add w0, w0, 4 bl ftl_malloc adrp x1, .LANCHOR0+16 str x0, [x1,#:lo12:.LANCHOR0+16] - ldrh w0, [x19,840] - lsl w0, w0, 1 - bl ftl_malloc - str x0, [x19,1208] - ldrh w0, [x19,840] + ldrh w0, [x19,844] lsl w0, w0, 1 bl ftl_malloc str x0, [x19,1216] - ldrh w0, [x19,840] - lsl w0, w0, 2 + ldrh w0, [x19,844] + lsl w0, w0, 1 bl ftl_malloc str x0, [x19,1224] - ldrh w0, [x19,842] + ldrh w0, [x19,844] lsl w0, w0, 2 bl ftl_malloc str x0, [x19,1232] - ldrh w2, [x19,842] + ldrh w0, [x19,846] + lsl w0, w0, 2 + bl ftl_malloc + str x0, [x19,1240] + ldrh w2, [x19,846] mov w1, 0 lsl w2, w2, 2 bl ftl_memset - ldrh w21, [x19,856] + ldrh w21, [x19,860] lsl w21, w21, 2 mov w0, w21 bl ftl_malloc - str x0, [x19,1240] + str x0, [x19,1248] mov w0, w21 bl ftl_malloc - str x0, [x19,1248] - ldr w0, [x19,848] + str x0, [x19,1256] + ldr w0, [x19,852] lsl w0, w0, 2 bl ftl_malloc - str x0, [x19,1256] - ldrh w0, [x19,858] + str x0, [x19,1264] + ldrh w0, [x19,862] lsl w0, w0, 4 bl ftl_malloc - str x0, [x19,1264] - ldrh w1, [x19,858] - ldrh w0, [x19,828] + str x0, [x19,1272] + ldrh w1, [x19,862] + ldrh w0, [x19,834] mul w0, w1, w0 bl ftl_malloc - str x0, [x19,1272] - ldrh w1, [x19,758] + str x0, [x19,1280] + ldrh w1, [x19,766] mov w0, 6 mul w0, w1, w0 bl ftl_malloc - str x0, [x19,1280] - ldrh w0, [x19,814] - ldrh w1, [x19,770] + str x0, [x19,1288] + ldrh w0, [x19,822] + ldrh w1, [x19,778] add w0, w0, 31 asr w0, w0, 5 - strh w0, [x19,1288] + strh w0, [x19,1296] mul w0, w0, w1 lsl w0, w0, 2 bl ftl_malloc - str x0, [x19,1328] - add x1, x19, 1296 - ldrh w4, [x19,1288] - ldrh w5, [x19,770] + str x0, [x19,1336] + add x1, x19, 1304 + ldrh w4, [x19,1296] + ldrh w5, [x19,778] mov w0, 1 mov w2, w4 -.L1237: +.L1283: cmp w0, w5 add x1, x1, 8 - bcs .L1337 - ldr x3, [x19,1328] + bcs .L1383 + ldr x3, [x19,1336] add w0, w0, 1 add x3, x3, x2, uxtw 2 add w2, w2, w4 str x3, [x1,32] - b .L1237 -.L1337: + b .L1283 +.L1383: add x1, x20, :lo12:.LANCHOR2 -.L1239: +.L1285: cmp w0, 8 - beq .L1338 + beq .L1384 add x2, x1, x0, uxtw 3 add w0, w0, 1 - str xzr, [x2,1328] - b .L1239 -.L1338: + str xzr, [x2,1336] + b .L1285 +.L1384: add x0, x20, :lo12:.LANCHOR2 - ldr x1, [x0,1192] - cbnz x1, .L1241 -.L1243: + ldr x1, [x0,1200] + cbnz x1, .L1287 +.L1289: adrp x0, .LC29 adrp x1, .LANCHOR3 add x0, x0, :lo12:.LC29 add x1, x1, :lo12:.LANCHOR3 bl printk mov w0, -1 - b .L1242 -.L1241: - ldr x1, [x0,1200] - cbz x1, .L1243 - ldr x1, [x0,1240] - cbz x1, .L1243 - ldr x1, [x0,1256] - cbz x1, .L1243 + b .L1288 +.L1287: + ldr x1, [x0,1208] + cbz x1, .L1289 + ldr x1, [x0,1248] + cbz x1, .L1289 ldr x1, [x0,1264] - cbz x1, .L1243 + cbz x1, .L1289 ldr x1, [x0,1272] - cbz x1, .L1243 + cbz x1, .L1289 ldr x1, [x0,1280] - cbz x1, .L1243 - ldr x1, [x0,1328] - cbz x1, .L1243 - ldr x0, [x0,1184] - cbz x0, .L1243 + cbz x1, .L1289 + ldr x1, [x0,1288] + cbz x1, .L1289 + ldr x1, [x0,1336] + cbz x1, .L1289 + ldr x0, [x0,1192] + cbz x0, .L1289 add x0, x20, :lo12:.LANCHOR2 - ldr x1, [x0,976] - cbz x1, .L1243 ldr x1, [x0,984] - cbz x1, .L1243 + cbz x1, .L1289 ldr x1, [x0,992] - cbz x1, .L1243 - ldr x1, [x0,1008] - cbz x1, .L1243 + cbz x1, .L1289 + ldr x1, [x0,1000] + cbz x1, .L1289 ldr x1, [x0,1016] - cbz x1, .L1243 + cbz x1, .L1289 ldr x1, [x0,1024] - cbz x1, .L1243 - ldr x1, [x0,1000] - cbz x1, .L1243 - ldr x1, [x0,1048] - cbz x1, .L1243 + cbz x1, .L1289 + ldr x1, [x0,1032] + cbz x1, .L1289 + ldr x1, [x0,1008] + cbz x1, .L1289 ldr x1, [x0,1056] - cbz x1, .L1243 - ldr x0, [x0,1064] - cbz x0, .L1243 + cbz x1, .L1289 + ldr x1, [x0,1064] + cbz x1, .L1289 + ldr x0, [x0,1072] + cbz x0, .L1289 add x0, x20, :lo12:.LANCHOR2 - ldr x1, [x0,1072] - cbz x1, .L1243 - ldr x1, [x0,1088] - cbz x1, .L1243 + ldr x1, [x0,1080] + cbz x1, .L1289 ldr x1, [x0,1096] - cbz x1, .L1243 + cbz x1, .L1289 ldr x1, [x0,1104] - cbz x1, .L1243 + cbz x1, .L1289 ldr x1, [x0,1112] - cbz x1, .L1243 + cbz x1, .L1289 ldr x1, [x0,1120] - cbz x1, .L1243 + cbz x1, .L1289 ldr x1, [x0,1128] - cbz x1, .L1243 - ldr x1, [x0,1168] - cbz x1, .L1243 - ldr x1, [x0,1152] - cbz x1, .L1243 - ldr x0, [x0,1208] - cbz x0, .L1243 + cbz x1, .L1289 + ldr x1, [x0,1136] + cbz x1, .L1289 + ldr x1, [x0,1176] + cbz x1, .L1289 + ldr x1, [x0,1160] + cbz x1, .L1289 + ldr x0, [x0,1216] + cbz x0, .L1289 adrp x0, .LANCHOR2 add x0, x0, :lo12:.LANCHOR2 - ldr x1, [x0,1216] - cbz x1, .L1243 ldr x1, [x0,1224] - cbz x1, .L1243 - ldr x0, [x0,1232] - cbz x0, .L1243 + cbz x1, .L1289 + ldr x1, [x0,1232] + cbz x1, .L1289 + ldr x0, [x0,1240] + cbz x0, .L1289 mov w0, 0 -.L1242: +.L1288: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldr x23, [sp,48] @@ -8124,24 +8322,24 @@ IsBlkInVendorPart: uxth w4, w0 add x1, x1, :lo12:.LANCHOR2 mov w0, 0 - ldrh w2, [x1,1392] - cbz w2, .L1340 - ldrh w2, [x1,840] - ldr x3, [x1,1208] + ldrh w2, [x1,1400] + cbz w2, .L1386 + ldrh w2, [x1,844] + ldr x3, [x1,1216] mov x1, 0 -.L1341: +.L1387: cmp w2, w1, uxth - bls .L1346 + bls .L1392 add x1, x1, 1 add x0, x3, x1, lsl 1 ldrh w0, [x0,-2] cmp w0, w4 - bne .L1341 + bne .L1387 mov w0, 1 - b .L1340 -.L1346: + b .L1386 +.L1392: mov w0, 0 -.L1340: +.L1386: ret .size IsBlkInVendorPart, .-IsBlkInVendorPart .align 2 @@ -8152,26 +8350,26 @@ FtlCacheMetchLpa: mov w6, w0 add x2, x2, :lo12:.LANCHOR2 mov w0, 0 - ldr w3, [x2,972] - cbz w3, .L1348 - ldr x5, [x2,1032] + ldr w3, [x2,976] + cbz w3, .L1394 + ldr x5, [x2,1040] mov x0, 56 mov x2, 0 -.L1349: +.L1395: cmp w3, w2 - bls .L1358 + bls .L1404 madd x4, x2, x0, x5 add x2, x2, 1 ldr w4, [x4,24] cmp w4, w6 - bcc .L1349 + bcc .L1395 cmp w4, w1 - bhi .L1349 + bhi .L1395 mov w0, 1 - b .L1348 -.L1358: + b .L1394 +.L1404: mov w0, 0 -.L1348: +.L1394: ret .size FtlCacheMetchLpa, .-FtlCacheMetchLpa .align 2 @@ -8194,8 +8392,8 @@ ftl_get_density: .global FtlGetLpn .type FtlGetLpn, %function FtlGetLpn: - adrp x0, .LANCHOR2+1396 - ldr w0, [x0,#:lo12:.LANCHOR2+1396] + adrp x0, .LANCHOR2+1404 + ldr w0, [x0,#:lo12:.LANCHOR2+1404] ret .size FtlGetLpn, .-FtlGetLpn .align 2 @@ -8209,8 +8407,8 @@ FtlBbmMapBadBlock: str x19, [sp,16] adrp x19, .LANCHOR2 add x19, x19, :lo12:.LANCHOR2 - ldrh w3, [x19,814] - add x19, x19, 1296 + ldrh w3, [x19,822] + add x19, x19, 1304 udiv w2, w1, w3 add x0, x19, x2, uxth 3 ldr x0, [x0,32] @@ -8240,11 +8438,11 @@ FtlBbmIsBadBlock: adrp x2, .LANCHOR2 uxth w0, w0 add x3, x2, :lo12:.LANCHOR2 - ldrh w1, [x3,814] + ldrh w1, [x3,822] udiv w2, w0, w1 msub w0, w2, w1, w0 add x2, x3, x2, uxth 3 - ldr x1, [x2,1328] + ldr x1, [x2,1336] uxth w0, w0 ubfx x3, x0, 5, 11 ldr w1, [x1,x3,lsl 2] @@ -8266,9 +8464,9 @@ FtlBbt2Bitmap: add x29, sp, 0 stp x19, x20, [sp,16] mov x20, x0 - adrp x0, .LANCHOR2+1288 + adrp x0, .LANCHOR2+1296 mov x19, x1 - ldrh w2, [x0,#:lo12:.LANCHOR2+1288] + ldrh w2, [x0,#:lo12:.LANCHOR2+1296] mov x0, x1 mov w1, 0 lsl w2, w2, 2 @@ -8276,10 +8474,10 @@ FtlBbt2Bitmap: mov x3, 0 mov w0, 65535 mov w5, 1 -.L1367: +.L1413: ldrh w2, [x20,x3] cmp w2, w0 - beq .L1365 + beq .L1411 ubfx x4, x2, 5, 11 add x3, x3, 2 lsl x4, x4, 2 @@ -8288,8 +8486,8 @@ FtlBbt2Bitmap: ldr w1, [x19,x4] orr w2, w1, w2 str w2, [x19,x4] - bne .L1367 -.L1365: + bne .L1413 +.L1411: ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 ret @@ -8305,34 +8503,34 @@ FtlBbmTblFlush: add x19, x19, :lo12:.LANCHOR2 stp x21, x22, [sp,32] stp x23, x24, [sp,48] - ldr w1, [x19,1400] + ldr w1, [x19,1408] stp x25, x26, [sp,64] - cbnz w1, .L1372 - ldr x0, [x19,1048] + cbnz w1, .L1418 + ldr x0, [x19,1056] mov x22, 0 - ldr x3, [x19,1112] - add x21, x19, 1296 - ldrh w2, [x19,828] - str x0, [x19,1416] - str x3, [x19,1424] + ldr x3, [x19,1120] + add x21, x19, 1304 + ldrh w2, [x19,834] + str x0, [x19,1424] + str x3, [x19,1432] bl ftl_memset -.L1373: - ldrh w1, [x19,770] +.L1419: + ldrh w1, [x19,778] mov w0, w22 - add x20, x19, 1408 + add x20, x19, 1416 add x22, x22, 1 cmp w0, w1 - bge .L1381 + bge .L1427 add x1, x21, x22, lsl 3 - ldrh w2, [x19,1288] + ldrh w2, [x19,1296] ldr x3, [x20,8] ldr x1, [x1,24] mul w0, w0, w2 add x0, x3, x0, sxtw 2 lsl w2, w2, 2 bl ftl_memcpy - b .L1373 -.L1381: + b .L1419 +.L1427: ldr x26, [x20,16] mov w1, 255 mov w2, 16 @@ -8348,83 +8546,83 @@ FtlBbmTblFlush: add x25, x25, :lo12:.LC32 ldr w0, [x21,8] str w0, [x26,4] - ldrh w0, [x19,1296] + ldrh w0, [x19,1304] strh w0, [x26,2] ldrh w0, [x21,4] strh w0, [x26,8] ldrh w0, [x21,6] strh w0, [x26,10] - ldr w0, [x19,744] + ldr w0, [x19,752] strh w0, [x26,12] -.L1375: - ldr x0, [x19,1048] +.L1421: + ldr x0, [x19,1056] str x0, [x20,8] - ldrh w1, [x19,1296] - ldr x0, [x19,1112] + ldrh w1, [x19,1304] + ldr x0, [x19,1120] str x0, [x20,16] - ldrh w2, [x19,1298] - ldrh w3, [x19,1300] + ldrh w2, [x19,1306] + ldrh w3, [x19,1308] orr w0, w2, w1, lsl 10 ldrh w4, [x26,10] str w0, [x20,4] mov x0, x23 str wzr, [x20] bl printk - ldrh w1, [x19,820] - ldrh w0, [x19,1298] + ldrh w1, [x19,826] + ldrh w0, [x19,1306] sub w1, w1, #1 cmp w0, w1 - blt .L1376 - ldr w1, [x19,1304] - ldrh w0, [x19,1296] + blt .L1422 + ldr w1, [x19,1312] + ldrh w0, [x19,1304] add w1, w1, 1 - str w1, [x19,1304] + str w1, [x19,1312] str w1, [x26,4] strh w0, [x26,8] - ldrh w1, [x19,1300] - strh w0, [x19,1300] - ldr x0, [x19,1016] - strh w1, [x19,1296] + ldrh w1, [x19,1308] + strh w0, [x19,1308] + ldr x0, [x19,1024] + strh w1, [x19,1304] lsl w1, w1, 10 str w1, [x20,4] str w1, [x0,4] mov w1, 1 mov w2, w1 - strh wzr, [x19,1298] - ldr x0, [x19,1016] + strh wzr, [x19,1306] + ldr x0, [x19,1024] bl FlashEraseBlocks -.L1376: +.L1422: mov w1, 1 mov x0, x20 mov w2, w1 mov w3, w1 bl FlashProgPages - ldrh w1, [x19,1298] + ldrh w1, [x19,1306] ldr w0, [x20] add w1, w1, 1 - strh w1, [x19,1298] + strh w1, [x19,1306] cmn w0, #1 - bne .L1377 + bne .L1423 ldr w1, [x20,4] mov x0, x25 add w22, w22, 1 bl printk uxth w22, w22 cmp w22, 3 - bls .L1375 + bls .L1421 adrp x0, .LC33 ldr w1, [x20,4] add x0, x0, :lo12:.LC33 mov w2, w22 bl printk mov w0, 1 - str w0, [x19,1400] - b .L1372 -.L1377: - cbnz w24, .L1372 + str w0, [x19,1408] + b .L1418 +.L1423: + cbnz w24, .L1418 mov w24, 1 - b .L1375 -.L1372: + b .L1421 +.L1418: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -8445,29 +8643,29 @@ FtlLoadFactoryBbt: stp x25, x26, [sp,64] stp x19, x20, [sp,16] stp x23, x24, [sp,48] - add x21, x1, 1408 - add x23, x1, 1296 - ldr x0, [x1,1048] + add x21, x1, 1416 + add x23, x1, 1304 + ldr x0, [x1,1056] mov w22, 0 - ldr x24, [x1,1112] + ldr x24, [x1,1120] mov x19, x1 str x0, [x21,8] mov w25, -1 str x24, [x21,16] mov w26, 61664 -.L1383: - ldrh w0, [x19,770] +.L1429: + ldrh w0, [x19,778] cmp w22, w0 - bcs .L1392 - ldrh w20, [x19,814] + bcs .L1438 + ldrh w20, [x19,822] strh w25, [x23,12] -.L1385: +.L1431: sub w20, w20, #1 - ldrh w0, [x19,814] + ldrh w0, [x19,822] uxth w20, w20 sub w1, w0, #16 cmp w20, w1 - ble .L1386 + ble .L1432 madd w0, w22, w0, w20 mov w1, 1 lsl w0, w0, 10 @@ -8477,16 +8675,16 @@ FtlLoadFactoryBbt: bl FlashReadPages ldr w0, [x21] cmn w0, #1 - beq .L1385 + beq .L1431 ldrh w0, [x24] cmp w0, w26 - bne .L1385 + bne .L1431 strh w20, [x23,12] -.L1386: +.L1432: add w22, w22, 1 add x23, x23, 2 - b .L1383 -.L1392: + b .L1429 +.L1438: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -8505,7 +8703,7 @@ FtlBbtMemInit: add x0, x0, :lo12:.LANCHOR2 mov w2, 16 add x29, sp, 0 - add x0, x0, 1308 + add x0, x0, 1316 strh w1, [x0,-12] mov w1, 255 strh wzr, [x0,-6] @@ -8525,22 +8723,22 @@ FtlBbtCalcTotleCnt: str x21, [sp,32] mov w19, 0 mov w20, w19 - ldrh w1, [x0,814] - ldrh w21, [x0,770] + ldrh w1, [x0,822] + ldrh w21, [x0,778] mul w21, w1, w21 -.L1395: +.L1441: cmp w20, w21 - bge .L1401 + bge .L1447 mov w0, w20 bl FtlBbmIsBadBlock - cbz w0, .L1396 + cbz w0, .L1442 add w19, w19, 1 uxth w19, w19 -.L1396: +.L1442: add w20, w20, 1 uxth w20, w20 - b .L1395 -.L1401: + b .L1441 +.L1447: mov w0, w19 ldr x21, [sp,32] ldp x19, x20, [sp,16] @@ -8561,28 +8759,28 @@ FtlMakeBbt: stp x25, x26, [sp,64] stp x27, x28, [sp,80] mov x21, x19 - ldr w22, [x20,1400] - cbnz w22, .L1403 - add x24, x20, 1296 + ldr w22, [x20,1408] + cbnz w22, .L1449 + add x24, x20, 1304 mov x19, x20 mov x25, x24 - add x20, x20, 1408 + add x20, x20, 1416 mov w28, -3872 bl FtlBbtMemInit bl FtlLoadFactoryBbt -.L1404: - ldrh w0, [x19,770] +.L1450: + ldrh w0, [x19,778] cmp w22, w0 - bcs .L1422 + bcs .L1468 ldrh w4, [x25,12] mov w1, 65535 - ldr x0, [x19,1048] - ldr x26, [x19,1112] + ldr x0, [x19,1056] + ldr x26, [x19,1120] cmp w4, w1 str x0, [x20,8] str x26, [x20,16] - beq .L1405 - ldrh w0, [x19,814] + beq .L1451 + ldrh w0, [x19,822] mov w1, 1 mov w2, w1 madd w27, w22, w0, w4 @@ -8590,41 +8788,41 @@ FtlMakeBbt: str w0, [x20,4] mov x0, x20 bl FlashReadPages - ldrh w2, [x19,814] + ldrh w2, [x19,822] ldr x0, [x24,32] add w2, w2, 7 ldr x1, [x20,8] lsr w2, w2, 3 bl ftl_memcpy - b .L1406 -.L1405: + b .L1452 +.L1451: mov w1, w22 bl FlashGetBadBlockList ldr x0, [x20,8] ldr x1, [x24,32] bl FtlBbt2Bitmap - ldrh w23, [x19,814] -.L1408: + ldrh w23, [x19,822] +.L1454: sub w23, w23, #1 uxth w23, w23 -.L1407: - ldrh w0, [x19,814] +.L1453: + ldrh w0, [x19,822] madd w0, w22, w0, w23 bl FtlBbmIsBadBlock cmp w0, 1 - beq .L1408 - ldr x0, [x19,1112] + beq .L1454 + ldr x0, [x19,1120] mov w1, 0 mov w2, 16 strh w23, [x25,12] bl ftl_memset strh w28, [x26] str wzr, [x26,4] - ldrh w2, [x19,1288] + ldrh w2, [x19,1296] ldrh w0, [x25,12] strh w0, [x26,2] lsl w2, w2, 2 - ldrh w0, [x19,814] + ldrh w0, [x19,822] ldrh w4, [x25,12] ldr x1, [x24,32] madd w27, w22, w0, w4 @@ -8643,93 +8841,93 @@ FtlMakeBbt: bl FlashProgPages ldr w0, [x20] cmn w0, #1 - bne .L1406 + bne .L1452 mov w0, w27 bl FtlBbmMapBadBlock - b .L1407 -.L1406: + b .L1453 +.L1452: mov w0, w27 add w22, w22, 1 add x24, x24, 8 add x25, x25, 2 bl FtlBbmMapBadBlock - b .L1404 -.L1422: + b .L1450 +.L1468: mov w19, 0 -.L1411: +.L1457: add x20, x21, :lo12:.LANCHOR2 - ldrh w0, [x20,832] + ldrh w0, [x20,838] cmp w0, w19 - bls .L1423 + bls .L1469 mov w0, w19 add w19, w19, 1 bl FtlBbmMapBadBlock uxth w19, w19 - b .L1411 -.L1423: - ldrh w19, [x20,1308] + b .L1457 +.L1469: + ldrh w19, [x20,1316] mov w23, 65535 sub w19, w19, #1 uxth w19, w19 -.L1413: - add x22, x20, 1296 +.L1459: + add x22, x20, 1304 ldrh w0, [x22,12] sub w0, w0, #48 cmp w19, w0 - ble .L1417 + ble .L1463 mov w0, w19 bl FtlBbmIsBadBlock cmp w0, 1 - beq .L1414 + beq .L1460 mov w0, w19 bl FlashTestBlk - cbz w0, .L1415 + cbz w0, .L1461 mov w0, w19 bl FtlBbmMapBadBlock - b .L1414 -.L1415: - ldrh w0, [x20,1296] + b .L1460 +.L1461: + ldrh w0, [x20,1304] cmp w0, w23 - bne .L1416 - strh w19, [x20,1296] - b .L1414 -.L1416: + bne .L1462 + strh w19, [x20,1304] + b .L1460 +.L1462: strh w19, [x22,4] - b .L1417 -.L1414: + b .L1463 +.L1460: sub w19, w19, #1 uxth w19, w19 - b .L1413 -.L1417: + b .L1459 +.L1463: add x19, x21, :lo12:.LANCHOR2 mov w2, 2 - ldr x1, [x19,1016] - ldrh w0, [x19,1296] - str wzr, [x19,1304] + ldr x1, [x19,1024] + ldrh w0, [x19,1304] + str wzr, [x19,1312] lsl w0, w0, 10 str w0, [x1,4] - strh wzr, [x19,1298] - ldr x0, [x19,1016] - ldrh w1, [x19,1300] + strh wzr, [x19,1306] + ldr x0, [x19,1024] + ldrh w1, [x19,1308] lsl w1, w1, 10 str w1, [x0,60] mov w1, 1 bl FlashEraseBlocks - ldrh w0, [x19,1296] + ldrh w0, [x19,1304] bl FtlBbmMapBadBlock - ldrh w0, [x19,1300] + ldrh w0, [x19,1308] bl FtlBbmMapBadBlock bl FtlBbmTblFlush - strh wzr, [x19,1298] - ldr w0, [x19,1304] - ldrh w1, [x19,1300] + strh wzr, [x19,1306] + ldr w0, [x19,1312] + ldrh w1, [x19,1308] add w0, w0, 1 - str w0, [x19,1304] - ldrh w0, [x19,1296] - strh w0, [x19,1300] - strh w1, [x19,1296] + str w0, [x19,1312] + ldrh w0, [x19,1304] + strh w0, [x19,1308] + strh w1, [x19,1304] bl FtlBbmTblFlush -.L1403: +.L1449: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -8747,11 +8945,11 @@ V2P_block: uxth w0, w0 add x3, x3, :lo12:.LANCHOR2 uxth w1, w1 - ldrh w4, [x3,772] + ldrh w4, [x3,780] udiv w2, w0, w4 msub w0, w2, w4, w0 madd w0, w1, w4, w0 - ldrh w1, [x3,814] + ldrh w1, [x3,822] madd w0, w2, w1, w0 ret .size V2P_block, .-V2P_block @@ -8762,8 +8960,8 @@ P2V_plane: adrp x2, .LANCHOR2 uxth w0, w0 add x2, x2, :lo12:.LANCHOR2 - ldrh w1, [x2,772] - ldrh w3, [x2,814] + ldrh w1, [x2,780] + ldrh w3, [x2,822] udiv w2, w0, w1 udiv w3, w0, w3 msub w0, w2, w1, w0 @@ -8777,10 +8975,10 @@ P2V_block_in_plane: adrp x2, .LANCHOR2 uxth w0, w0 add x2, x2, :lo12:.LANCHOR2 - ldrh w3, [x2,814] + ldrh w3, [x2,822] udiv w1, w0, w3 msub w0, w1, w3, w0 - ldrh w1, [x2,772] + ldrh w1, [x2,780] uxth w0, w0 udiv w0, w0, w1 ret @@ -8791,16 +8989,16 @@ P2V_block_in_plane: ftl_cmp_data_ver: cmp w0, w1 mov w2, -2147483648 - bls .L1428 + bls .L1474 sub w1, w0, w1 cmp w1, w2 cset w0, ls - b .L1429 -.L1428: + b .L1475 +.L1474: sub w1, w1, w0 cmp w1, w2 cset w0, hi -.L1429: +.L1475: ret .size ftl_cmp_data_ver, .-ftl_cmp_data_ver .align 2 @@ -8817,12 +9015,12 @@ FtlGetLastWrittenPage: str x25, [sp,64] mov w23, w1 add x3, x3, :lo12:.LANCHOR2 - bne .L1431 - ldrh w19, [x3,820] - b .L1432 -.L1431: - ldrh w19, [x3,818] -.L1432: + bne .L1477 + ldrh w19, [x3,826] + b .L1478 +.L1477: + ldrh w19, [x3,824] +.L1478: sub w19, w19, #1 lsl w21, w0, 10 mov w1, 1 @@ -8837,12 +9035,12 @@ FtlGetLastWrittenPage: bl FlashReadPages ldr w0, [x29,144] cmn w0, #1 - bne .L1433 + bne .L1479 mov w22, 0 mov w25, 2 -.L1434: +.L1480: cmp w22, w19 - bgt .L1433 + bgt .L1479 add w3, w22, w19 mov w1, 1 mov w2, w23 @@ -8854,21 +9052,21 @@ FtlGetLastWrittenPage: bl FlashReadPages ldr w0, [x24] cmn w0, #1 - bne .L1435 + bne .L1481 ldr w0, [x24,4] cmn w0, #1 - bne .L1435 + bne .L1481 ldr w0, [x29,88] cmn w0, #1 - beq .L1435 + beq .L1481 sub w19, w20, #1 sxth w19, w19 - b .L1434 -.L1435: + b .L1480 +.L1481: add w20, w20, 1 sxth w22, w20 - b .L1434 -.L1433: + b .L1480 +.L1479: mov w0, w19 ldr x25, [sp,64] ldp x19, x20, [sp,16] @@ -8889,20 +9087,20 @@ FtlLoadBbt: add x23, x19, :lo12:.LANCHOR2 mov w24, 61649 stp x21, x22, [sp,32] - add x21, x23, 1408 - ldr x0, [x23,1048] - ldr x22, [x23,1112] + add x21, x23, 1416 + ldr x0, [x23,1056] + ldr x22, [x23,1120] str x0, [x21,8] str x22, [x21,16] bl FtlBbtMemInit - ldrh w20, [x23,814] + ldrh w20, [x23,822] sub w20, w20, #1 uxth w20, w20 -.L1442: - ldrh w0, [x23,814] +.L1488: + ldrh w0, [x23,822] sub w0, w0, #48 cmp w20, w0 - ble .L1445 + ble .L1491 lsl w0, w20, 10 mov w1, 1 str w0, [x21,4] @@ -8911,7 +9109,7 @@ FtlLoadBbt: bl FlashReadPages ldr w0, [x21] cmn w0, #1 - bne .L1443 + bne .L1489 ldr w0, [x21,4] mov w1, 1 mov w2, w1 @@ -8919,128 +9117,128 @@ FtlLoadBbt: str w0, [x21,4] mov x0, x21 bl FlashReadPages -.L1443: +.L1489: ldr w0, [x21] cmn w0, #1 - beq .L1444 + beq .L1490 ldrh w0, [x22] cmp w0, w24 - bne .L1444 + bne .L1490 ldr w1, [x22,4] - str w1, [x23,1304] - strh w20, [x23,1296] + str w1, [x23,1312] + strh w20, [x23,1304] ldrh w1, [x22,8] - strh w1, [x23,1300] - b .L1445 -.L1444: + strh w1, [x23,1308] + b .L1491 +.L1490: sub w20, w20, #1 uxth w20, w20 - b .L1442 -.L1445: + b .L1488 +.L1491: add x21, x19, :lo12:.LANCHOR2 mov w2, 65535 mov w0, -1 - ldrh w1, [x21,1296] + ldrh w1, [x21,1304] cmp w1, w2 - beq .L1447 - ldrh w1, [x21,1300] + beq .L1493 + ldrh w1, [x21,1308] cmp w1, w2 - beq .L1449 - add x0, x21, 1408 + beq .L1495 + add x0, x21, 1416 lsl w1, w1, 10 str w1, [x0,4] mov w1, 1 mov w2, w1 bl FlashReadPages - ldr w0, [x21,1408] + ldr w0, [x21,1416] cmn w0, #1 - beq .L1449 + beq .L1495 ldrh w1, [x22] mov w0, 61649 cmp w1, w0 - bne .L1449 + bne .L1495 ldr w0, [x22,4] - ldr w1, [x21,1304] + ldr w1, [x21,1312] cmp w0, w1 - bls .L1449 - str w0, [x21,1304] - ldrh w1, [x21,1300] + bls .L1495 + str w0, [x21,1312] + ldrh w1, [x21,1308] ldrh w0, [x22,8] - strh w1, [x21,1296] - strh w0, [x21,1300] -.L1449: + strh w1, [x21,1304] + strh w0, [x21,1308] +.L1495: add x20, x19, :lo12:.LANCHOR2 mov w1, 1 - add x23, x20, 1408 + add x23, x20, 1416 mov w24, 61649 - ldrh w0, [x20,1296] + ldrh w0, [x20,1304] bl FtlGetLastWrittenPage sxth w21, w0 add w0, w0, 1 - strh w0, [x20,1298] -.L1451: - tbnz w21, #31, .L1456 - ldrh w0, [x20,1296] + strh w0, [x20,1306] +.L1497: + tbnz w21, #31, .L1502 + ldrh w0, [x20,1304] mov w1, 1 mov w2, w1 orr w0, w21, w0, lsl 10 str w0, [x23,4] - ldr x0, [x20,1048] + ldr x0, [x20,1056] str x0, [x23,8] mov x0, x23 bl FlashReadPages ldr w0, [x23] cmn w0, #1 - beq .L1452 + beq .L1498 ldrh w0, [x22] cmp w0, w24 - bne .L1452 -.L1456: + bne .L1498 +.L1502: add x1, x19, :lo12:.LANCHOR2 ldrh w0, [x22,10] mov w2, 65535 - strh w0, [x1,1302] + strh w0, [x1,1310] ldrh w0, [x22,12] cmp w0, w2 - bne .L1453 - b .L1454 -.L1452: + bne .L1499 + b .L1500 +.L1498: sub w21, w21, #1 sxth w21, w21 - b .L1451 -.L1453: - ldr w2, [x1,744] + b .L1497 +.L1499: + ldr w2, [x1,752] cmp w0, w2 - beq .L1454 - ldrh w1, [x1,758] + beq .L1500 + ldrh w1, [x1,766] lsr w1, w1, 2 cmp w0, w1 - bcs .L1454 + bcs .L1500 cmp w2, w1 - bcs .L1454 + bcs .L1500 bl FtlSysBlkNumInit -.L1454: +.L1500: add x19, x19, :lo12:.LANCHOR2 mov x20, 0 - add x21, x19, 1296 -.L1457: - ldrh w0, [x19,770] + add x21, x19, 1304 +.L1503: + ldrh w0, [x19,778] mov w1, w20 add x20, x20, 1 cmp w1, w0 - bcs .L1475 - ldrh w2, [x19,1288] + bcs .L1521 + ldrh w2, [x19,1296] add x0, x21, x20, lsl 3 - ldr x3, [x19,1416] + ldr x3, [x19,1424] mul w1, w1, w2 ldr x0, [x0,24] lsl w2, w2, 2 add x1, x3, x1, lsl 2 bl ftl_memcpy - b .L1457 -.L1475: + b .L1503 +.L1521: mov w0, 0 -.L1447: +.L1493: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -9056,11 +9254,11 @@ FtlFreeSysBlkQueueInit: stp x29, x30, [sp, -16]! add x1, x1, :lo12:.LANCHOR2 add x29, sp, 0 - strh w0, [x1,1464] - add x0, x1, 1472 - strh wzr, [x1,1466] - strh wzr, [x1,1468] - strh wzr, [x1,1470] + strh w0, [x1,1472] + add x0, x1, 1480 + strh wzr, [x1,1474] + strh wzr, [x1,1476] + strh wzr, [x1,1478] mov w1, 0 bl ftl_memset mov w0, 0 @@ -9071,8 +9269,8 @@ FtlFreeSysBlkQueueInit: .global FtlFreeSysBlkQueueEmpty .type FtlFreeSysBlkQueueEmpty, %function FtlFreeSysBlkQueueEmpty: - adrp x0, .LANCHOR2+1470 - ldrh w0, [x0,#:lo12:.LANCHOR2+1470] + adrp x0, .LANCHOR2+1478 + ldrh w0, [x0,#:lo12:.LANCHOR2+1478] cmp w0, wzr cset w0, eq ret @@ -9081,8 +9279,8 @@ FtlFreeSysBlkQueueEmpty: .global FtlFreeSysBlkQueueFull .type FtlFreeSysBlkQueueFull, %function FtlFreeSysBlkQueueFull: - adrp x0, .LANCHOR2+1470 - ldrh w0, [x0,#:lo12:.LANCHOR2+1470] + adrp x0, .LANCHOR2+1478 + ldrh w0, [x0,#:lo12:.LANCHOR2+1478] cmp w0, 1024 cset w0, eq ret @@ -9100,37 +9298,37 @@ FtlFreeSysBlkQueueIn: mov w0, 65533 sub w2, w21, #1 cmp w0, w2, uxth - bcc .L1479 + bcc .L1525 adrp x2, .LANCHOR2 add x20, x2, :lo12:.LANCHOR2 mov x19, x2 - ldrh w0, [x20,1470] + ldrh w0, [x20,1478] cmp w0, 1024 - beq .L1479 - cbz w1, .L1481 - ldr w0, [x20,1400] - cbnz w0, .L1481 + beq .L1525 + cbz w1, .L1527 + ldr w0, [x20,1408] + cbnz w0, .L1527 mov w0, w21 bl P2V_block_in_plane uxth w22, w0 - ldr x0, [x20,1016] + ldr x0, [x20,1024] lsl w1, w21, 10 str w1, [x0,4] mov w1, 1 mov w2, w1 - ldr x0, [x20,1016] + ldr x0, [x20,1024] bl FlashEraseBlocks ubfiz x0, x22, 1, 16 - ldr x2, [x20,1168] + ldr x2, [x20,1176] ldrh w1, [x2,x0] add w1, w1, 1 strh w1, [x2,x0] - ldr w0, [x20,912] + ldr w0, [x20,916] add w0, w0, 1 - str w0, [x20,912] -.L1481: + str w0, [x20,916] +.L1527: add x1, x19, :lo12:.LANCHOR2 - add x1, x1, 1464 + add x1, x1, 1472 ldrh w0, [x1,6] ldrh w2, [x1,4] add w0, w0, 1 @@ -9140,7 +9338,7 @@ FtlFreeSysBlkQueueIn: and w2, w2, 1023 strh w21, [x0,8] strh w2, [x1,4] -.L1479: +.L1525: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x29, x30, [sp], 48 @@ -9161,53 +9359,53 @@ FtlLowFormatEraseBlock: stp x27, x28, [sp,80] uxth w25, w0 uxtb w24, w1 - ldrb w0, [x3,648] - ldr w2, [x3,1400] + ldrb w0, [x3,656] + ldr w2, [x3,1408] str w0, [x29,120] mov w0, 0 - cbnz w2, .L1489 + cbnz w2, .L1535 adrp x28, .LANCHOR0 - str w25, [x3,944] + str w25, [x3,948] add x0, x28, :lo12:.LANCHOR0 mov w27, w2 mov w20, w2 mov w19, w2 mov x26, x3 mov w23, 56 - ldrb w0, [x0,136] + ldrb w0, [x0,4044] str w0, [x29,124] -.L1490: - ldrh w0, [x26,748] +.L1536: + ldrh w0, [x26,756] cmp w0, w27 - bls .L1534 + bls .L1580 umull x0, w27, w23 - ldr x1, [x26,1016] + ldr x1, [x26,1024] str wzr, [x1,x0] - add x0, x26, 776 + add x0, x26, 784 mov w1, w25 ldrb w0, [x0,w27,sxtw] bl V2P_block uxth w22, w0 mov w1, w22 - cbz w24, .L1491 + cbz w24, .L1537 str x1, [x29,112] bl IsBlkInVendorPart ldr x1, [x29,112] - cbnz w0, .L1492 -.L1491: + cbnz w0, .L1538 +.L1537: mov w0, w1 bl FtlBbmIsBadBlock - cbnz w0, .L1493 + cbnz w0, .L1539 umull x0, w20, w23 - ldr x1, [x26,1016] + ldr x1, [x26,1024] lsl w22, w22, 10 mov w2, 4 add x1, x1, x0 str w22, [x1,4] - ldr x1, [x26,1016] - ldr x4, [x26,1120] + ldr x1, [x26,1024] + ldr x4, [x26,1128] add x1, x1, x0 - ldrh w0, [x26,830] + ldrh w0, [x26,836] mul w0, w20, w0 add w20, w20, 1 str xzr, [x1,8] @@ -9215,141 +9413,141 @@ FtlLowFormatEraseBlock: uxth w20, w20 add x0, x4, x0, sxtw 2 str x0, [x1,16] - b .L1492 -.L1493: + b .L1538 +.L1539: add w19, w19, 1 uxth w19, w19 -.L1492: +.L1538: add w2, w27, 1 uxth w27, w2 - b .L1490 -.L1534: - cbz w20, .L1513 + b .L1536 +.L1580: + cbz w20, .L1559 ldr w0, [x29,124] mov w2, w20 - strb wzr, [x26,648] + strb wzr, [x26,656] mov x23, 0 cmp w0, wzr - ldr x0, [x26,1016] + ldr x0, [x26,1024] cset w22, ne mov w1, w22 bl FlashEraseBlocks ldrb w0, [x29,120] - strb w0, [x26,648] + strb w0, [x26,656] mov x26, 56 -.L1496: +.L1542: cmp w20, w23, uxth - bls .L1535 + bls .L1581 add x1, x21, :lo12:.LANCHOR2 mul x0, x23, x26 - ldr x1, [x1,1016] + ldr x1, [x1,1024] add x2, x1, x0 ldr w0, [x1,x0] cmn w0, #1 - bne .L1497 + bne .L1543 ldr w0, [x2,4] add w19, w19, 1 lsr w0, w0, 10 uxth w19, w19 bl FtlBbmMapBadBlock -.L1497: +.L1543: add x23, x23, 1 - b .L1496 -.L1535: - cbnz w24, .L1499 + b .L1542 +.L1581: + cbnz w24, .L1545 mov w0, 1 uxth w22, w22 mov w27, 6 str w0, [x29,124] - b .L1500 -.L1499: + b .L1546 +.L1545: add x0, x21, :lo12:.LANCHOR2 add x28, x28, :lo12:.LANCHOR0 - ldrh w0, [x0,820] + ldrh w0, [x0,826] str w0, [x29,124] - ldrb w0, [x28,136] - cbnz w0, .L1516 + ldrb w0, [x28,4044] + cbnz w0, .L1562 ldr w0, [x29,124] mov w22, 1 lsr w27, w0, 2 - b .L1500 -.L1516: + b .L1546 +.L1562: mov w22, 1 mov w27, w22 -.L1500: +.L1546: mov w23, 0 add x28, x21, :lo12:.LANCHOR2 -.L1509: +.L1555: mov w26, 0 mov w20, w26 -.L1501: - ldrh w0, [x28,748] +.L1547: + ldrh w0, [x28,756] cmp w0, w26 - bls .L1536 + bls .L1582 mov w0, 56 - ldr x1, [x28,1016] + ldr x1, [x28,1024] umull x0, w26, w0 str wzr, [x1,x0] - add x0, x28, 776 + add x0, x28, 784 mov w1, w25 ldrb w0, [x0,w26,sxtw] bl V2P_block uxth w2, w0 str w2, [x29,112] mov w1, w2 - cbz w24, .L1502 + cbz w24, .L1548 str x1, [x29,104] bl IsBlkInVendorPart ldr x1, [x29,104] - cbnz w0, .L1503 -.L1502: + cbnz w0, .L1549 +.L1548: mov w0, w1 bl FtlBbmIsBadBlock - cbnz w0, .L1503 + cbnz w0, .L1549 mov w0, 56 - ldr x1, [x28,1016] + ldr x1, [x28,1024] ldr w2, [x29,112] umull x0, w20, w0 add x1, x1, x0 add w2, w23, w2, lsl 10 str w2, [x1,4] mov w2, 4 - ldr x1, [x28,1016] + ldr x1, [x28,1024] add x1, x1, x0 - ldr x0, [x28,1088] + ldr x0, [x28,1096] str x0, [x1,8] - ldrh w0, [x28,830] + ldrh w0, [x28,836] mul w0, w20, w0 add w20, w20, 1 sdiv w0, w0, w2 uxth w20, w20 - ldr x2, [x28,1096] + ldr x2, [x28,1104] add x0, x2, x0, sxtw 2 str x0, [x1,16] -.L1503: +.L1549: add w3, w26, 1 uxth w26, w3 - b .L1501 -.L1536: - cbz w20, .L1513 - ldr x0, [x28,1016] + b .L1547 +.L1582: + cbz w20, .L1559 + ldr x0, [x28,1024] mov w1, w20 mov w2, w22 mov w3, 1 - strb wzr, [x28,648] + strb wzr, [x28,656] bl FlashProgPages ldrb w0, [x29,120] mov x1, 0 - strb w0, [x28,648] -.L1506: + strb w0, [x28,656] +.L1552: cmp w20, w1, uxth - bls .L1537 + bls .L1583 mov x0, 56 - ldr x2, [x28,1016] + ldr x2, [x28,1024] mul x0, x1, x0 add x3, x2, x0 ldr w0, [x2,x0] - cbz w0, .L1507 + cbz w0, .L1553 ldr w0, [x3,4] add w19, w19, 1 str x1, [x29,112] @@ -9357,47 +9555,47 @@ FtlLowFormatEraseBlock: uxth w19, w19 bl FtlBbmMapBadBlock ldr x1, [x29,112] -.L1507: +.L1553: add x1, x1, 1 - b .L1506 -.L1537: + b .L1552 +.L1583: add w23, w23, w27 ldr w0, [x29,124] uxth w23, w23 cmp w23, w0 - bcc .L1509 + bcc .L1555 mov x23, 0 mov x26, 56 -.L1510: +.L1556: cmp w20, w23, uxth - bls .L1538 - cbz w24, .L1511 + bls .L1584 + cbz w24, .L1557 add x1, x21, :lo12:.LANCHOR2 mul x0, x23, x26 - ldr x1, [x1,1016] + ldr x1, [x1,1024] add x2, x1, x0 ldr w0, [x1,x0] - cbnz w0, .L1511 + cbnz w0, .L1557 ldr w0, [x2,4] mov w1, 1 lsr w0, w0, 10 bl FtlFreeSysBlkQueueIn -.L1511: +.L1557: add x23, x23, 1 - b .L1510 -.L1538: + b .L1556 +.L1584: cmp w25, 63 - bls .L1517 - cbz w24, .L1513 -.L1517: + bls .L1563 + cbz w24, .L1559 +.L1563: add x21, x21, :lo12:.LANCHOR2 mov w1, w22 mov w2, w20 - ldr x0, [x21,1016] + ldr x0, [x21,1024] bl FlashEraseBlocks -.L1513: +.L1559: mov w0, w19 -.L1489: +.L1535: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -9412,18 +9610,18 @@ FtlLowFormatEraseBlock: FtlFreeSysBLkSort: adrp x1, .LANCHOR2 add x0, x1, :lo12:.LANCHOR2 - add x0, x0, 1464 + add x0, x0, 1472 ldrh w6, [x0,2084] ldrh w2, [x0,6] - cbz w2, .L1539 + cbz w2, .L1585 mov w5, 0 ldrh w3, [x0,2] ldrh w2, [x0,4] mov w4, w5 and w6, w6, 31 -.L1541: +.L1587: cmp w4, w6 - bge .L1549 + bge .L1595 add x5, x0, x3, sxtw 1 ldrh w7, [x5,8] add x5, x0, x2, sxtw 1 @@ -9435,13 +9633,13 @@ FtlFreeSysBLkSort: uxth w4, w4 and w3, w3, 1023 and w2, w2, 1023 - b .L1541 -.L1549: - cbz w5, .L1539 + b .L1587 +.L1595: + cbz w5, .L1585 add x0, x1, :lo12:.LANCHOR2 - strh w3, [x0,1466] - strh w2, [x0,1468] -.L1539: + strh w3, [x0,1474] + strh w2, [x0,1476] +.L1585: ret .size FtlFreeSysBLkSort, .-FtlFreeSysBLkSort .align 2 @@ -9457,70 +9655,70 @@ FtlFreeSysBlkQueueOut: adrp x23, .LC35 stp x21, x22, [sp,32] stp x25, x26, [sp,64] - add x21, x19, 1464 + add x21, x19, 1472 adrp x24, .LANCHOR0 add x23, x23, :lo12:.LC35 -.L1551: +.L1597: ldrh w1, [x21,6] adrp x22, .LANCHOR2 - cbz w1, .L1552 + cbz w1, .L1598 ldrh w2, [x21,2] sub w1, w1, #1 add x0, x21, x2, sxtw 1 strh w1, [x21,6] add w2, w2, 1 - ldr w1, [x19,1400] + ldr w1, [x19,1408] and w2, w2, 1023 strh w2, [x21,2] ldrh w20, [x0,8] - cbnz w1, .L1553 + cbnz w1, .L1599 mov w0, w20 str x1, [x29,88] bl P2V_block_in_plane uxth w26, w0 - ldr x0, [x19,1016] + ldr x0, [x19,1024] lsl w2, w20, 10 ldr x1, [x29,88] str w2, [x0,4] add x0, x24, :lo12:.LANCHOR0 - ldrb w0, [x0,136] - cbz w0, .L1554 - ldr x0, [x19,1016] + ldrb w0, [x0,4044] + cbz w0, .L1600 + ldr x0, [x19,1024] mov w2, 1 bl FlashEraseBlocks -.L1554: +.L1600: add x25, x22, :lo12:.LANCHOR2 mov w1, 1 mov w2, w1 - ldr x0, [x25,1016] + ldr x0, [x25,1024] bl FlashEraseBlocks ubfiz x0, x26, 1, 16 - ldr x2, [x25,1168] + ldr x2, [x25,1176] ldrh w1, [x2,x0] add w1, w1, 1 strh w1, [x2,x0] - ldr w0, [x25,912] + ldr w0, [x25,916] add w0, w0, 1 - str w0, [x25,912] - b .L1553 -.L1552: + str w0, [x25,916] + b .L1599 +.L1598: adrp x0, .LC34 add x0, x0, :lo12:.LC34 bl printk -.L1555: - b .L1555 -.L1553: +.L1601: + b .L1601 +.L1599: sub w0, w20, #1 mov w1, 65533 cmp w1, w0, uxth - bcs .L1556 + bcs .L1602 add x22, x22, :lo12:.LANCHOR2 mov x0, x23 mov w1, w20 - ldrh w2, [x22,1470] + ldrh w2, [x22,1478] bl printk - b .L1551 -.L1556: + b .L1597 +.L1602: mov w0, w20 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -9534,31 +9732,31 @@ FtlFreeSysBlkQueueOut: .type test_node_in_list, %function test_node_in_list: ldr x2, [x0] - adrp x0, .LANCHOR2+1280 + adrp x0, .LANCHOR2+1288 mov x4, -6148914691236517206 uxth w1, w1 mov w5, 65535 - ldr x3, [x0,#:lo12:.LANCHOR2+1280] + ldr x3, [x0,#:lo12:.LANCHOR2+1288] sub x0, x2, x3 asr x0, x0, 1 madd x0, x4, x0, x0 mov w4, 6 uxth w0, w0 -.L1562: +.L1608: cmp w1, w0 - beq .L1563 + beq .L1609 ldrh w0, [x2] cmp w0, w5 - beq .L1564 + beq .L1610 umull x2, w0, w4 add x2, x3, x2 - b .L1562 -.L1563: + b .L1608 +.L1609: mov w0, 1 - b .L1561 -.L1564: + b .L1607 +.L1610: mov w0, 0 -.L1561: +.L1607: ret .size test_node_in_list, .-test_node_in_list .align 2 @@ -9569,31 +9767,31 @@ insert_data_list: uxth w0, w0 add x3, x2, :lo12:.LANCHOR2 mov x4, x2 - ldrh w1, [x3,756] + ldrh w1, [x3,764] cmp w1, w0 - bls .L1567 + bls .L1613 mov w7, 6 - ldr x11, [x3,1280] + ldr x11, [x3,1288] mov w1, -1 umull x10, w0, w7 add x5, x11, x10 strh w1, [x5,2] strh w1, [x11,x10] - ldr x1, [x3,3568] - cbnz x1, .L1568 - str x5, [x3,3568] - b .L1567 -.L1568: + ldr x1, [x3,3576] + cbnz x1, .L1614 + str x5, [x3,3576] + b .L1613 +.L1614: ubfiz x8, x0, 1, 16 - ldr x13, [x3,1184] + ldr x13, [x3,1192] ldrh w2, [x5,4] mov x9, -6148914691236517206 - ldr x12, [x3,1280] + ldr x12, [x3,1288] mov w18, 65535 ldrh w6, [x13,x8] cmp w2, wzr - ldr x14, [x3,1168] - ldrh w17, [x3,756] + ldr x14, [x3,1176] + ldrh w17, [x3,764] mov w3, 0 mul w6, w6, w2 sub x2, x1, x12 @@ -9603,13 +9801,13 @@ insert_data_list: add x9, x14, x8 mov w8, w7 uxth w2, w2 -.L1576: +.L1622: add w3, w3, 1 cmp w0, w2 uxth w3, w3 - beq .L1567 + beq .L1613 cmp w3, w17 - bhi .L1567 + bhi .L1613 ubfiz x15, x2, 1, 16 ldrh w16, [x1,4] cmp w16, wzr @@ -9617,47 +9815,47 @@ insert_data_list: mul w7, w7, w16 csinv w7, w7, wzr, ne cmp w7, w6 - bne .L1572 + bne .L1618 ldrh w15, [x14,x15] ldrh w7, [x9] cmp w15, w7 - bcc .L1574 - b .L1573 -.L1572: - bhi .L1573 -.L1574: + bcc .L1620 + b .L1619 +.L1618: + bhi .L1619 +.L1620: ldrh w7, [x1] cmp w7, w18 - bne .L1575 + bne .L1621 strh w2, [x5,2] add x2, x4, :lo12:.LANCHOR2 strh w0, [x1] - str x5, [x2,3576] - b .L1567 -.L1575: + str x5, [x2,3584] + b .L1613 +.L1621: umull x1, w7, w8 mov w2, w7 add x1, x12, x1 - b .L1576 -.L1573: + b .L1622 +.L1619: strh w2, [x11,x10] ldrh w2, [x1,2] strh w2, [x5,2] add x2, x4, :lo12:.LANCHOR2 - ldr x3, [x2,3568] + ldr x3, [x2,3576] cmp x1, x3 - bne .L1577 + bne .L1623 strh w0, [x1,2] - str x5, [x2,3568] - b .L1567 -.L1577: + str x5, [x2,3576] + b .L1613 +.L1623: ldrh w3, [x1,2] mov w4, 6 - ldr x2, [x2,1280] + ldr x2, [x2,1288] umull x3, w3, w4 strh w0, [x2,x3] strh w0, [x1,2] -.L1567: +.L1613: mov w0, 0 ret .size insert_data_list, .-insert_data_list @@ -9670,9 +9868,9 @@ INSERT_DATA_LIST: bl insert_data_list adrp x0, .LANCHOR2 add x0, x0, :lo12:.LANCHOR2 - ldrh w1, [x0,3584] + ldrh w1, [x0,3592] add w1, w1, 1 - strh w1, [x0,3584] + strh w1, [x0,3592] ldp x29, x30, [sp], 16 ret .size INSERT_DATA_LIST, .-INSERT_DATA_LIST @@ -9683,66 +9881,66 @@ insert_free_list: uxth w0, w0 mov w7, 65535 cmp w0, w7 - beq .L1582 + beq .L1628 adrp x2, .LANCHOR2 mov w6, 6 add x5, x2, :lo12:.LANCHOR2 mov w1, -1 umull x8, w0, w6 mov x3, x2 - ldr x9, [x5,1280] + ldr x9, [x5,1288] add x4, x9, x8 strh w1, [x4,2] strh w1, [x9,x8] - ldr x1, [x5,3592] - cbnz x1, .L1583 - str x4, [x5,3592] - b .L1582 -.L1583: - ldr x11, [x5,1168] + ldr x1, [x5,3600] + cbnz x1, .L1629 + str x4, [x5,3600] + b .L1628 +.L1629: + ldr x11, [x5,1176] ubfiz x2, x0, 1, 16 - ldr x10, [x5,1280] + ldr x10, [x5,1288] mov x5, -6148914691236517206 ldrh w12, [x11,x2] sub x2, x1, x10 asr x2, x2, 1 madd x2, x5, x2, x2 uxth w2, w2 -.L1586: +.L1632: ubfiz x5, x2, 1, 16 ldrh w5, [x11,x5] cmp w5, w12 - bcs .L1584 + bcs .L1630 ldrh w5, [x1] cmp w5, w7 - bne .L1585 + bne .L1631 strh w2, [x4,2] strh w0, [x1] - b .L1582 -.L1585: + b .L1628 +.L1631: umull x1, w5, w6 mov w2, w5 add x1, x10, x1 - b .L1586 -.L1584: + b .L1632 +.L1630: ldrh w5, [x1,2] strh w5, [x4,2] strh w2, [x9,x8] add x2, x3, :lo12:.LANCHOR2 - ldr x3, [x2,3592] + ldr x3, [x2,3600] cmp x1, x3 - bne .L1587 + bne .L1633 strh w0, [x1,2] - str x4, [x2,3592] - b .L1582 -.L1587: + str x4, [x2,3600] + b .L1628 +.L1633: ldrh w3, [x1,2] mov w4, 6 - ldr x2, [x2,1280] + ldr x2, [x2,1288] umull x3, w3, w4 strh w0, [x2,x3] strh w0, [x1,2] -.L1582: +.L1628: mov w0, 0 ret .size insert_free_list, .-insert_free_list @@ -9755,9 +9953,9 @@ INSERT_FREE_LIST: bl insert_free_list adrp x0, .LANCHOR2 add x0, x0, :lo12:.LANCHOR2 - ldrh w1, [x0,3600] + ldrh w1, [x0,3608] add w1, w1, 1 - strh w1, [x0,3600] + strh w1, [x0,3608] ldp x29, x30, [sp], 16 ret .size INSERT_FREE_LIST, .-INSERT_FREE_LIST @@ -9772,43 +9970,43 @@ List_remove_node: ldr x3, [x0] mov w7, 65535 umull x1, w1, w5 - ldr x2, [x6,1280] + ldr x2, [x6,1288] add x4, x2, x1 cmp x4, x3 - bne .L1590 + bne .L1636 ldrh w3, [x2,x1] cmp w3, w7 - bne .L1591 + bne .L1637 str xzr, [x0] - b .L1592 -.L1591: + b .L1638 +.L1637: umull x3, w3, w5 add x3, x2, x3 str x3, [x0] mov w0, -1 strh w0, [x3,2] - b .L1592 -.L1590: + b .L1638 +.L1636: ldrh w0, [x2,x1] ldrh w3, [x4,2] cmp w0, w7 - bne .L1593 + bne .L1639 cmp w3, w0 - beq .L1592 + beq .L1638 umull x3, w3, w5 mov w0, -1 strh w0, [x2,x3] - b .L1592 -.L1593: + b .L1638 +.L1639: umull x0, w0, w5 add x0, x2, x0 strh w3, [x0,2] ldrh w3, [x4,2] - ldr x0, [x6,1280] + ldr x0, [x6,1288] ldrh w7, [x2,x1] umull x3, w3, w5 strh w7, [x0,x3] -.L1592: +.L1638: mov w0, -1 strh w0, [x2,x1] strh w0, [x4,2] @@ -9825,14 +10023,14 @@ List_pop_index_node: str x19, [sp,16] mov w19, 65535 ldr x2, [x0] - cbz x2, .L1595 - adrp x3, .LANCHOR2+1280 + cbz x2, .L1641 + adrp x3, .LANCHOR2+1288 mov w5, w19 mov w6, 6 - ldr x4, [x3,#:lo12:.LANCHOR2+1280] -.L1596: - cbnz w1, .L1597 -.L1599: + ldr x4, [x3,#:lo12:.LANCHOR2+1288] +.L1642: + cbnz w1, .L1643 +.L1645: sub x2, x2, x4 mov x1, -6148914691236517206 asr x2, x2, 1 @@ -9840,17 +10038,17 @@ List_pop_index_node: uxth w19, w2 mov w1, w19 bl List_remove_node - b .L1595 -.L1597: + b .L1641 +.L1643: ldrh w3, [x2] cmp w3, w5 - beq .L1599 + beq .L1645 umull x3, w3, w6 sub w1, w1, #1 add x2, x4, x3 uxth w1, w1 - b .L1596 -.L1595: + b .L1642 +.L1641: mov w0, w19 ldr x19, [sp,16] ldp x29, x30, [sp], 32 @@ -9864,27 +10062,27 @@ List_get_gc_head_node: uxth w3, w0 add x2, x2, :lo12:.LANCHOR2 mov w0, 65535 - ldr x1, [x2,3568] - cbz x1, .L1607 - ldr x4, [x2,1280] + ldr x1, [x2,3576] + cbz x1, .L1653 + ldr x4, [x2,1288] mov w5, 6 -.L1603: - cbz w3, .L1604 +.L1649: + cbz w3, .L1650 ldrh w2, [x1] cmp w2, w0 - beq .L1607 + beq .L1653 umull x2, w2, w5 sub w3, w3, #1 add x1, x4, x2 uxth w3, w3 - b .L1603 -.L1604: + b .L1649 +.L1650: sub x1, x1, x4 mov x0, -6148914691236517206 asr x1, x1, 1 madd x1, x0, x1, x1 uxth w0, w1 -.L1607: +.L1653: ret .size List_get_gc_head_node, .-List_get_gc_head_node .align 2 @@ -9897,23 +10095,23 @@ List_update_data_list: adrp x19, .LANCHOR2 uxth w20, w0 add x0, x19, :lo12:.LANCHOR2 - ldrh w1, [x0,3608] + ldrh w1, [x0,3616] cmp w1, w20 - beq .L1609 - ldrh w1, [x0,3656] + beq .L1655 + ldrh w1, [x0,3664] cmp w1, w20 - beq .L1609 - ldrh w1, [x0,3704] + beq .L1655 + ldrh w1, [x0,3712] cmp w1, w20 - beq .L1609 + beq .L1655 mov w3, 6 - ldr x4, [x0,1280] - ldr x2, [x0,3568] + ldr x4, [x0,1288] + ldr x2, [x0,3576] umull x3, w20, w3 add x1, x4, x3 cmp x1, x2 - beq .L1609 - ldr x5, [x0,1184] + beq .L1655 + ldr x5, [x0,1192] ubfiz x0, x20, 1, 16 ldrh w2, [x5,x0] ldrh w0, [x1,4] @@ -9923,11 +10121,11 @@ List_update_data_list: mov w0, 65535 csinv w2, w2, wzr, ne cmp w1, w0 - bne .L1611 + bne .L1657 ldrh w0, [x4,x3] cmp w0, w1 - beq .L1609 -.L1611: + beq .L1655 +.L1657: mov w0, 6 mov x3, -6148914691236517206 umull x1, w1, w0 @@ -9940,17 +10138,17 @@ List_update_data_list: mul w0, w0, w1 csinv w0, w0, wzr, ne cmp w2, w0 - bcs .L1609 + bcs .L1655 add x19, x19, :lo12:.LANCHOR2 mov w1, w20 - add x0, x19, 3568 + add x0, x19, 3576 bl List_remove_node - ldrh w0, [x19,3584] + ldrh w0, [x19,3592] sub w0, w0, #1 - strh w0, [x19,3584] + strh w0, [x19,3592] mov w0, w20 bl INSERT_DATA_LIST -.L1609: +.L1655: mov w0, 0 ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 @@ -9976,76 +10174,76 @@ ftl_free_no_use_map_blk: mov x0, x21 bl ftl_memset mov w0, 0 -.L1616: +.L1662: ldrh w1, [x19,6] cmp w1, w0 - bls .L1638 + bls .L1684 ubfiz x1, x0, 2, 16 ldr w2, [x20,x1] mov w1, 0 ubfx x2, x2, 10, 16 -.L1617: +.L1663: ldrh w3, [x19,10] cmp w3, w1 - bls .L1639 + bls .L1685 ubfiz x3, x1, 1, 16 ldrh w4, [x22,x3] cmp w2, w4 - bne .L1618 - cbz w4, .L1618 + bne .L1664 + cbz w4, .L1664 ldrh w4, [x21,x3] add w4, w4, 1 strh w4, [x21,x3] -.L1618: +.L1664: add w1, w1, 1 uxth w1, w1 - b .L1617 -.L1639: + b .L1663 +.L1685: add w0, w0, 1 uxth w0, w0 - b .L1616 -.L1638: - adrp x0, .LANCHOR2+820 + b .L1662 +.L1684: + adrp x0, .LANCHOR2+826 mov w23, 0 mov w20, w23 - ldrh w1, [x0,#:lo12:.LANCHOR2+820] + ldrh w1, [x0,#:lo12:.LANCHOR2+826] ldrh w0, [x19] strh w1, [x21,x0,lsl 1] ldrh w24, [x21] -.L1621: +.L1667: ldrh w0, [x19,10] cmp w0, w20 - bls .L1640 + bls .L1686 ubfiz x2, x20, 1, 16 ldrh w1, [x21,x2] cmp w24, w1 - bls .L1622 + bls .L1668 ldrh w0, [x22,x2] add x25, x22, x2 - cbnz w0, .L1623 - b .L1624 -.L1622: - cbnz w1, .L1624 + cbnz w0, .L1669 + b .L1670 +.L1668: + cbnz w1, .L1670 ldrh w0, [x22,x2] add x25, x22, x2 - cbz w0, .L1624 -.L1626: + cbz w0, .L1670 +.L1672: mov w1, 1 bl FtlFreeSysBlkQueueIn strh wzr, [x25] ldrh w0, [x19,8] sub w0, w0, #1 strh w0, [x19,8] -.L1624: +.L1670: add w20, w20, 1 uxth w20, w20 - b .L1621 -.L1623: + b .L1667 +.L1669: mov w23, w20 mov w24, w1 - cbz w1, .L1626 - b .L1624 -.L1640: + cbz w1, .L1672 + b .L1670 +.L1686: mov w0, w23 ldr x25, [sp,64] ldp x19, x20, [sp,16] @@ -10065,12 +10263,12 @@ ftl_map_blk_alloc_new_blk: mov w20, 0 ldrh w2, [x0,10] ldr x1, [x0,16] -.L1642: +.L1688: cmp w20, w2 - beq .L1646 + beq .L1692 mov x22, x1 ldrh w21, [x1],2 - cbnz w21, .L1643 + cbnz w21, .L1689 mov x19, x0 bl FtlFreeSysBlkQueueOut strh w0, [x22] @@ -10078,15 +10276,15 @@ ftl_map_blk_alloc_new_blk: sub w2, w1, #1 mov w0, 65533 cmp w0, w2, uxth - bcs .L1644 - adrp x2, .LANCHOR2+1470 + bcs .L1690 + adrp x2, .LANCHOR2+1478 adrp x0, .LC36 add x0, x0, :lo12:.LC36 - ldrh w2, [x2,#:lo12:.LANCHOR2+1470] + ldrh w2, [x2,#:lo12:.LANCHOR2+1478] bl printk -.L1645: - b .L1645 -.L1644: +.L1691: + b .L1691 +.L1690: ldr w0, [x19,48] strh w21, [x19,2] add w0, w0, 1 @@ -10095,12 +10293,12 @@ ftl_map_blk_alloc_new_blk: strh w20, [x19] add w0, w0, 1 strh w0, [x19,8] - b .L1646 -.L1643: + b .L1692 +.L1689: add w20, w20, 1 uxth w20, w20 - b .L1642 -.L1646: + b .L1688 +.L1692: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -10114,113 +10312,127 @@ FtlMapWritePage: stp x29, x30, [sp, -112]! add x29, sp, 0 stp x25, x26, [sp,64] - adrp x25, .LANCHOR2 - mov x26, x2 stp x23, x24, [sp,48] - stp x27, x28, [sp,80] + adrp x26, .LANCHOR2 adrp x23, .LC37 - add x28, x25, :lo12:.LANCHOR2 stp x21, x22, [sp,32] + stp x27, x28, [sp,80] stp x19, x20, [sp,16] - mov w24, w1 + mov w25, w1 mov x19, x0 + mov x27, x2 mov w22, 0 - add x0, x23, :lo12:.LC37 - mov w27, 65535 - add x21, x28, 1408 - str x0, [x29,104] -.L1649: - add x0, x25, :lo12:.LANCHOR2 + mov w28, 65535 + add x21, x26, :lo12:.LANCHOR2 + add x23, x23, :lo12:.LC37 +.L1695: + add x0, x26, :lo12:.LANCHOR2 adrp x20, .LANCHOR2 - ldr w1, [x0,896] + ldr w1, [x0,900] add w1, w1, 1 - str w1, [x0,896] - ldrh w0, [x0,820] + str w1, [x0,900] + ldrh w0, [x0,826] ldrh w1, [x19,2] sub w0, w0, #1 cmp w1, w0 - bge .L1650 + bge .L1696 ldrh w0, [x19] - cmp w0, w27 - bne .L1651 -.L1650: + cmp w0, w28 + bne .L1697 +.L1696: mov x0, x19 bl Ftl_write_map_blk_to_last_page -.L1651: - ldr w1, [x28,1400] - cbnz w1, .L1652 +.L1697: + ldr w1, [x21,1408] + cbnz w1, .L1698 ldrh w2, [x19] + add x3, x21, 1416 ldr x0, [x19,16] - ldrh w23, [x0,x2,lsl 1] + str x3, [x29,104] + ldrh w24, [x0,x2,lsl 1] mov w2, 16 ldrh w0, [x19,2] - str x26, [x21,8] - orr w0, w0, w23, lsl 10 - str w0, [x21,4] - ldr x0, [x28,1112] - str x0, [x21,16] + str x27, [x21,1424] + orr w0, w0, w24, lsl 10 + str w0, [x21,1420] + ldr x0, [x21,1120] + str x0, [x21,1432] bl ftl_memset - ldr x0, [x21,16] - ldr w1, [x19,48] - str w1, [x0,4] - strh w24, [x0,8] - ldrh w1, [x19,4] - strh w1, [x0] + ldr x3, [x29,104] + ldr w0, [x19,48] + ldr x2, [x3,16] + str w0, [x2,4] + strh w25, [x2,8] + ldrh w0, [x19,4] + strh w0, [x2] + adrp x0, .LANCHOR0+24 + strh w24, [x2,2] + ldrb w0, [x0,#:lo12:.LANCHOR0+24] + cbz w0, .L1699 + ldr x0, [x3,8] + ldrh w1, [x21,834] + str x2, [x29,104] + bl js_hash + ldr x2, [x29,104] + str w0, [x2,12] +.L1699: + add x4, x21, 1416 mov w1, 1 - strh w23, [x0,2] - mov w3, w1 - mov x0, x21 mov w2, w1 + mov x0, x4 + mov w3, w1 + str x4, [x29,104] bl FlashProgPages - ldrh w3, [x19,2] - add w3, w3, 1 - uxth w3, w3 - strh w3, [x19,2] - ldr w0, [x21] - cmn w0, #1 - bne .L1653 - ldr x0, [x29,104] + ldrh w1, [x19,2] + ldr x4, [x29,104] + add w1, w1, 1 + uxth w1, w1 + strh w1, [x19,2] + ldr w2, [x21,1416] + cmn w2, #1 + bne .L1700 + ldr w1, [x4,4] + mov x0, x23 add w22, w22, 1 - ldr w1, [x21,4] - uxth w22, w22 bl printk + uxth w22, w22 ldrh w0, [x19,2] cmp w0, 2 - bhi .L1654 - ldrh w0, [x28,820] + bhi .L1701 + ldrh w0, [x21,826] sub w0, w0, #1 strh w0, [x19,2] -.L1654: +.L1701: cmp w22, 3 - bls .L1649 + bls .L1695 add x20, x20, :lo12:.LANCHOR2 adrp x0, .LC38 add x0, x0, :lo12:.LC38 mov w2, w22 - ldr w1, [x20,1412] + ldr w1, [x20,1420] bl printk mov w0, 1 - str w0, [x20,1400] - b .L1652 -.L1653: - cbz w0, .L1656 - strh w23, [x19,60] -.L1656: - cmp w3, 1 - beq .L1657 - cmp w0, 256 - beq .L1657 + str w0, [x20,1408] + b .L1698 +.L1700: + cbz w2, .L1703 + strh w24, [x19,60] +.L1703: + cmp w1, 1 + beq .L1704 + cmp w2, 256 + beq .L1704 ldr w0, [x19,56] - cbz w0, .L1658 -.L1657: + cbz w0, .L1705 +.L1704: str wzr, [x19,56] - b .L1649 -.L1658: + b .L1695 +.L1705: add x20, x20, :lo12:.LANCHOR2 ldr x0, [x19,40] - ldr w1, [x20,1412] - str w1, [x0,w24,uxtw 2] -.L1652: + ldr w1, [x20,1420] + str w1, [x0,w25,uxtw 2] +.L1698: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -10250,12 +10462,12 @@ ftl_map_blk_gc: ldrh w2, [x19,8] sub w1, w1, #4 cmp w2, w1 - blt .L1663 + blt .L1713 ubfiz x1, x0, 1, 16 ldrh w24, [x21,x1] - cbz w24, .L1663 + cbz w24, .L1713 ldr w0, [x19,52] - cbnz w0, .L1663 + cbnz w0, .L1713 mov w2, 1 str w2, [x19,52] strh w0, [x21,x1] @@ -10264,26 +10476,26 @@ ftl_map_blk_gc: sub w0, w0, #1 strh w0, [x19,8] add x0, x20, :lo12:.LANCHOR2 - ldrh w0, [x0,820] + ldrh w0, [x0,826] cmp w1, w0 - bcc .L1664 + bcc .L1714 mov x0, x19 bl ftl_map_blk_alloc_new_blk -.L1664: +.L1714: add x26, x20, :lo12:.LANCHOR2 mov w21, 0 - add x22, x26, 1408 -.L1665: + add x22, x26, 1416 +.L1715: ldrh w0, [x19,6] cmp w0, w21 - bls .L1674 + bls .L1724 ubfiz x0, x21, 2, 16 add x27, x25, x0 ldr w1, [x25,x0] cmp w24, w1, lsr 10 - bne .L1666 - ldr x1, [x26,1056] - ldr x23, [x26,1112] + bne .L1716 + ldr x1, [x26,1064] + ldr x23, [x26,1120] str x1, [x22,8] mov w1, 1 str x23, [x22,16] @@ -10294,48 +10506,48 @@ ftl_map_blk_gc: bl FlashReadPages ldr w0, [x22] cmn w0, #1 - bne .L1667 -.L1669: + bne .L1717 +.L1719: add x20, x20, :lo12:.LANCHOR2 str wzr, [x27] adrp x0, .LC39 ldrh w2, [x23,8] add x0, x0, :lo12:.LC39 - ldr w1, [x20,1412] + ldr w1, [x20,1420] bl printk mov w0, 1 - str w0, [x20,1400] - b .L1668 -.L1667: + str w0, [x20,1408] + b .L1718 +.L1717: ldrh w0, [x23,8] cmp w0, w21 - bne .L1669 + bne .L1719 ldrh w1, [x23] ldrh w0, [x19,4] cmp w1, w0 - bne .L1669 + bne .L1719 ldr x2, [x22,8] mov x0, x19 mov w1, w21 bl FtlMapWritePage -.L1666: +.L1716: add w21, w21, 1 uxth w21, w21 - b .L1665 -.L1674: + b .L1715 +.L1724: mov w0, w24 mov w1, 1 bl FtlFreeSysBlkQueueIn str wzr, [x19,52] -.L1663: +.L1713: add x20, x20, :lo12:.LANCHOR2 ldrh w1, [x19,2] - ldrh w0, [x20,820] + ldrh w0, [x20,826] cmp w1, w0 - bcc .L1668 + bcc .L1718 mov x0, x19 bl ftl_map_blk_alloc_new_blk -.L1668: +.L1718: mov w0, 0 ldr x27, [sp,80] ldp x19, x20, [sp,16] @@ -10353,18 +10565,18 @@ Ftl_write_map_blk_to_last_page: add x29, sp, 0 stp x21, x22, [sp,32] adrp x21, .LANCHOR2 - str x23, [sp,48] add x1, x21, :lo12:.LANCHOR2 stp x19, x20, [sp,16] - ldr w20, [x1,1400] + stp x23, x24, [sp,48] + ldr w20, [x1,1408] ldr x22, [x0,16] - ldr x23, [x0,40] - cbnz w20, .L1676 + ldr x24, [x0,40] + cbnz w20, .L1726 mov x19, x0 ldrh w0, [x0] mov w2, 65535 cmp w0, w2 - bne .L1677 + bne .L1727 ldrh w0, [x19,8] add w0, w0, 1 strh w0, [x19,8] @@ -10375,56 +10587,65 @@ Ftl_write_map_blk_to_last_page: strh w20, [x19] add w0, w0, 1 str w0, [x19,48] - b .L1676 -.L1677: + b .L1726 +.L1727: ubfiz x0, x0, 1, 16 - ldr w2, [x19,48] - ldrh w22, [x22,x0] - ldrh w0, [x19,2] - orr w0, w0, w22, lsl 10 - str w0, [x1,1412] - ldr x0, [x1,1048] - str x0, [x1,1416] - ldr x0, [x1,1112] - str x0, [x1,1424] - str w2, [x0,4] - mov w2, -1291 - strh w2, [x0,8] - ldrh w2, [x19,4] - strh w2, [x0] - strh w22, [x0,2] - ldrh w2, [x1,820] - ldr x0, [x1,1048] + ldrh w2, [x19,2] + ldrh w23, [x22,x0] + ldr x22, [x1,1120] + str x22, [x1,1432] + orr w2, w2, w23, lsl 10 + str w2, [x1,1420] + ldr x2, [x1,1056] + str x2, [x1,1424] + ldr w0, [x19,48] + str w0, [x22,4] + mov w0, -1291 + strh w0, [x22,8] + ldrh w0, [x19,4] + strh w0, [x22] + strh w23, [x22,2] + ldrh w2, [x1,826] + ldr x0, [x1,1056] mov w1, 255 lsl w2, w2, 3 bl ftl_memset mov w0, w20 -.L1678: +.L1728: ldrh w1, [x19,6] cmp w1, w0 - bls .L1681 + bls .L1735 ubfiz x3, x0, 2, 32 - ldr w1, [x23,x3] - cmp w22, w1, lsr 10 - bne .L1679 + ldr w1, [x24,x3] + cmp w23, w1, lsr 10 + bne .L1729 add x2, x21, :lo12:.LANCHOR2 add w20, w20, 1 uxth w20, w20 - ldr x4, [x2,1048] + ldr x4, [x2,1056] ubfiz x1, x20, 3, 16 str w0, [x4,x1] - ldr x2, [x2,1048] - ldr w3, [x23,x3] + ldr x2, [x2,1056] + ldr w3, [x24,x3] add x1, x2, x1 str w3, [x1,4] -.L1679: +.L1729: add w0, w0, 1 uxth w0, w0 - b .L1678 -.L1681: + b .L1728 +.L1735: + adrp x0, .LANCHOR0+24 + ldrb w0, [x0,#:lo12:.LANCHOR0+24] + cbz w0, .L1731 + add x1, x21, :lo12:.LANCHOR2 + ldr x0, [x1,1424] + ldrh w1, [x1,834] + bl js_hash + str w0, [x22,12] +.L1731: mov w1, 1 add x0, x21, :lo12:.LANCHOR2 - add x0, x0, 1408 + add x0, x0, 1416 mov w2, w1 mov w3, 0 bl FlashProgPages @@ -10433,11 +10654,11 @@ Ftl_write_map_blk_to_last_page: strh w0, [x19,2] mov x0, x19 bl ftl_map_blk_gc -.L1676: +.L1726: mov w0, 0 - ldr x23, [sp,48] ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] + ldp x23, x24, [sp,48] ldp x29, x30, [sp], 64 ret .size Ftl_write_map_blk_to_last_page, .-Ftl_write_map_blk_to_last_page @@ -10451,13 +10672,13 @@ flush_l2p_region: adrp x20, .LANCHOR2 ubfiz x19, x0, 4, 16 add x20, x20, :lo12:.LANCHOR2 - add x0, x20, 3752 - ldr x1, [x20,1264] + add x0, x20, 3760 + ldr x1, [x20,1272] add x2, x1, x19 ldrh w1, [x1,x19] ldr x2, [x2,8] bl FtlMapWritePage - ldr x0, [x20,1264] + ldr x0, [x20,1272] add x19, x0, x19 ldr w0, [x19,4] and w0, w0, 2147483647 @@ -10476,65 +10697,65 @@ select_l2p_ram_region: add x1, x0, :lo12:.LANCHOR2 mov x3, x0 mov w5, 65535 - ldrh w2, [x1,858] - ldr x1, [x1,1264] -.L1684: + ldrh w2, [x1,862] + ldr x1, [x1,1272] +.L1738: uxth w0, w4 cmp w0, w2 - bcs .L1700 + bcs .L1754 add x4, x4, 1 add x6, x1, x4, lsl 4 ldrh w6, [x6,-16] cmp w6, w5 - bne .L1684 - b .L1685 -.L1700: + bne .L1738 + b .L1739 +.L1754: mov w0, w2 mov x4, 0 mov w7, -2147483648 -.L1687: +.L1741: uxth w6, w4 cmp w6, w2 - bcs .L1701 + bcs .L1755 add x5, x1, x4, lsl 4 ldr w5, [x5,4] - tbnz w5, #31, .L1696 + tbnz w5, #31, .L1750 cmp w5, w7 - bcc .L1688 -.L1696: + bcc .L1742 +.L1750: mov w5, w7 mov w6, w0 -.L1688: +.L1742: add x4, x4, 1 mov w7, w5 mov w0, w6 - b .L1687 -.L1701: + b .L1741 +.L1755: cmp w0, w2 - bcc .L1685 + bcc .L1739 add x0, x3, :lo12:.LANCHOR2 add x1, x1, 4 mov w4, -1 mov w3, 0 - ldrh w5, [x0,3816] + ldrh w5, [x0,3824] mov w0, w2 -.L1691: +.L1745: cmp w3, w2 - beq .L1685 + beq .L1739 ldr w7, [x1] cmp w7, w4 - bcs .L1692 + bcs .L1746 ldrh w6, [x1,-4] cmp w6, w5 csel w4, w4, w7, eq cmp w6, w5 csel w0, w0, w3, eq -.L1692: +.L1746: add w3, w3, 1 add x1, x1, 16 uxth w3, w3 - b .L1691 -.L1685: + b .L1745 +.L1739: ret .size select_l2p_ram_region, .-select_l2p_ram_region .align 2 @@ -10545,162 +10766,174 @@ log2phys: add x29, sp, 0 stp x21, x22, [sp,32] adrp x21, .LANCHOR2 - add x3, x21, :lo12:.LANCHOR2 + add x4, x21, :lo12:.LANCHOR2 + stp x19, x20, [sp,16] stp x23, x24, [sp,48] stp x25, x26, [sp,64] stp x27, x28, [sp,80] - stp x19, x20, [sp,16] - mov x26, x1 - mov w27, w2 - ldrh w1, [x3,826] - mov x2, 1 - ldr x19, [x3,1264] - add w1, w1, 7 - lsr w25, w0, w1 - lsl x1, x2, x1 - sub w1, w1, #1 - and w23, w1, w0 - ldrh w1, [x3,858] - uxth w24, w25 - uxth w0, w23 - str w0, [x29,108] + ldr w5, [x4,1404] + ldrh w3, [x4,832] + cmp w0, w5 + bcs .L1757 + add w27, w3, 7 + str x1, [x29,104] + lsr w28, w0, w27 + mov w25, w0 + str w2, [x29,100] mov x0, 0 -.L1703: - uxth x20, w0 - cmp w20, w1 - bcs .L1718 + uxth w22, w28 + ldrh w1, [x4,862] + ldr x19, [x4,1272] + b .L1758 +.L1757: + mov w0, -1 + cbnz w2, .L1759 + str w0, [x1] + b .L1759 +.L1763: add x0, x0, 1 add x2, x19, x0, lsl 4 ldrh w2, [x2,-16] - cmp w2, w24 - bne .L1703 -.L1704: - ldr w23, [x29,108] - cbnz w27, .L1705 - add x0, x21, :lo12:.LANCHOR2 - ldr x1, [x0,1264] - add x1, x1, x20, lsl 4 - ldr x0, [x1,8] - ldr w0, [x0,x23,lsl 2] - str w0, [x26] - b .L1706 -.L1705: - add x1, x21, :lo12:.LANCHOR2 - lsl x0, x20, 4 - ldr w3, [x26] - ldr x2, [x1,1264] - add x2, x2, x0 - ldr x2, [x2,8] - str w3, [x2,x23,lsl 2] - strh w24, [x1,3816] - ldr x2, [x1,1264] - add x0, x2, x0 - ldr w2, [x0,4] - orr w2, w2, -2147483648 - str w2, [x0,4] -.L1706: - add x21, x21, :lo12:.LANCHOR2 - ldr x0, [x21,1264] - add x20, x0, x20, lsl 4 - ldr w0, [x20,4] - cmn w0, #1 - beq .L1715 - add w0, w0, 1 - str w0, [x20,4] - b .L1715 -.L1718: + cmp w2, w22 + beq .L1760 +.L1758: + uxth x20, w0 + cmp w20, w1 + bcc .L1763 bl select_l2p_ram_region uxth x20, w0 - ubfiz x22, x20, 4, 16 + ubfiz x26, x20, 4, 16 mov w2, 65535 - add x1, x19, x22 - ldrh w3, [x19,x22] + add x1, x19, x26 + ldrh w3, [x19,x26] cmp w3, w2 - beq .L1709 - ldr w1, [x1,4] - tbz w1, #31, .L1709 - bl flush_l2p_region -.L1709: + bne .L1771 +.L1764: add x19, x21, :lo12:.LANCHOR2 - ubfiz x0, x24, 2, 16 - ldr x1, [x19,1240] - ldr w23, [x1,x0] - cbnz w23, .L1710 - ldr x0, [x19,1264] + ubfiz x0, x22, 2, 16 + ldr x1, [x19,1248] + ldr w24, [x1,x0] + cbnz w24, .L1765 + ldr x0, [x19,1272] mov w1, 255 - ldrh w2, [x19,828] - add x0, x0, x22 + ldrh w2, [x19,834] + add x0, x0, x26 ldr x0, [x0,8] bl ftl_memset - ldr x0, [x19,1264] - strh w24, [x0,x22] - ldr x0, [x19,1264] - add x22, x0, x22 - str w23, [x22,4] - b .L1704 -.L1710: - ldr x0, [x19,1264] + ldr x0, [x19,1272] + strh w22, [x0,x26] + ldr x0, [x19,1272] + add x26, x0, x26 + str w24, [x26,4] +.L1760: + mov x1, 1 + lsl x3, x1, x27 + ldr w1, [x29,100] + sub w3, w3, #1 + and w0, w25, w3 + uxth x0, w0 + cbnz w1, .L1761 + add x1, x21, :lo12:.LANCHOR2 + ldr x1, [x1,1272] + add x1, x1, x20, lsl 4 + ldr x1, [x1,8] + ldr w0, [x1,x0,lsl 2] + ldr x1, [x29,104] + str w0, [x1] + b .L1762 +.L1761: + ldr x2, [x29,104] + lsl x1, x20, 4 + ldr w4, [x2] + add x2, x21, :lo12:.LANCHOR2 + ldr x3, [x2,1272] + add x3, x3, x1 + ldr x3, [x3,8] + str w4, [x3,x0,lsl 2] + strh w22, [x2,3824] + ldr x0, [x2,1272] + add x0, x0, x1 + ldr w1, [x0,4] + orr w1, w1, -2147483648 + str w1, [x0,4] +.L1762: + add x21, x21, :lo12:.LANCHOR2 + ldr x0, [x21,1272] + add x20, x0, x20, lsl 4 + mov w0, 0 + ldr w1, [x20,4] + cmn w1, #1 + beq .L1759 + add w1, w1, 1 + str w1, [x20,4] + b .L1759 +.L1771: + ldr w1, [x1,4] + tbz w1, #31, .L1764 + bl flush_l2p_region + b .L1764 +.L1765: + ldr x0, [x19,1272] mov w1, 1 - add x28, x19, 1408 + add x23, x19, 1416 mov w2, w1 - add x0, x0, x22 - str w23, [x19,1412] + add x0, x0, x26 + str w24, [x19,1420] ldr x0, [x0,8] - str x0, [x19,1416] - ldr x0, [x19,1112] str x0, [x19,1424] - mov x0, x28 + ldr x0, [x19,1120] + str x0, [x19,1432] + mov x0, x23 bl FlashReadPages - ldr x0, [x19,1424] + ldr x0, [x19,1432] ldrh w0, [x0,8] - cmp w0, w24 - beq .L1711 + cmp w0, w22 + beq .L1766 adrp x0, .LC40 - uxth w1, w25 - mov w2, w23 + uxth w1, w28 + mov w2, w24 add x0, x0, :lo12:.LC40 bl printk mov w2, 4 - ldr x1, [x19,1424] + ldr x1, [x19,1432] adrp x0, .LC17 mov w3, w2 add x0, x0, :lo12:.LC17 bl rknand_print_hex adrp x0, .LC41 - ldr x1, [x19,1240] - ldrh w3, [x19,856] + ldr x1, [x19,1248] + ldrh w3, [x19,860] add x0, x0, :lo12:.LC41 mov w2, 4 bl rknand_print_hex mov w0, 1 - str w0, [x19,1400] - b .L1712 -.L1711: - ldr w0, [x19,1408] + str w0, [x19,1408] + b .L1767 +.L1766: + ldr w0, [x19,1416] cmp w0, 256 - bne .L1712 - and w25, w25, 65535 + bne .L1767 + and w28, w28, 65535 adrp x0, .LC42 - mov w1, w25 - mov w2, w23 + mov w1, w28 + mov w2, w24 add x0, x0, :lo12:.LC42 bl printk - ldr x2, [x19,1264] - add x0, x19, 3752 - mov w1, w25 - add x2, x2, x22 + ldr x2, [x19,1272] + add x0, x19, 3760 + mov w1, w28 + add x2, x2, x26 ldr x2, [x2,8] bl FtlMapWritePage -.L1712: +.L1767: add x1, x21, :lo12:.LANCHOR2 - ldr x0, [x1,1264] - add x0, x0, x22 + ldr x0, [x1,1272] + add x0, x0, x26 str wzr, [x0,4] - ldr x0, [x1,1264] - strh w24, [x0,x22] - b .L1704 -.L1715: - mov w0, 0 + ldr x0, [x1,1272] + strh w22, [x0,x26] + b .L1760 +.L1759: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -10723,21 +10956,21 @@ FtlVendorPartWrite: mov w22, w1 mov w25, w0 add w1, w0, w1 - ldrh w0, [x19,812] + ldrh w0, [x19,820] stp x23, x24, [sp,48] stp x27, x28, [sp,80] cmp w1, w0 mov x24, x2 - ldrh w23, [x19,826] + ldrh w23, [x19,832] mov w21, -1 - bhi .L1720 + bhi .L1773 lsr w23, w25, w23 mov w21, 0 - add x27, x19, 3824 -.L1721: - cbz w22, .L1720 - ldrh w1, [x19,824] - ldr x0, [x19,1232] + add x27, x19, 3832 +.L1774: + cbz w22, .L1773 + ldrh w1, [x19,830] + ldr x0, [x19,1240] udiv w26, w25, w1 ldr w2, [x0,w23,uxtw 2] uxth w0, w22 @@ -10747,9 +10980,9 @@ FtlVendorPartWrite: cmp w20, w22 csel w20, w0, w20, hi cmp w20, w1 - beq .L1723 - cbz w2, .L1723 - ldr x0, [x19,1064] + beq .L1776 + cbz w2, .L1776 + ldr x0, [x19,1072] mov w1, 1 str w2, [x29,108] mov w2, w1 @@ -10757,14 +10990,14 @@ FtlVendorPartWrite: add x0, x29, 104 str xzr, [x29,120] bl FlashReadPages - b .L1724 -.L1723: - ldr x0, [x19,1064] + b .L1777 +.L1776: + ldr x0, [x19,1072] mov w1, 0 - ldrh w2, [x19,828] + ldrh w2, [x19,834] bl ftl_memset -.L1724: - ldr x0, [x19,1064] +.L1777: + ldr x0, [x19,1072] lsl w28, w20, 9 ubfiz x26, x26, 9, 16 mov x1, x24 @@ -10774,15 +11007,15 @@ FtlVendorPartWrite: add w25, w25, w20 bl ftl_memcpy add x24, x24, x28, sxtw - ldr x2, [x19,1064] + ldr x2, [x19,1072] mov w1, w23 mov x0, x27 add w23, w23, 1 bl FtlMapWritePage cmn w0, #1 csinv w21, w21, wzr, ne - b .L1721 -.L1720: + b .L1774 +.L1773: mov w0, w21 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -10808,23 +11041,23 @@ FtlVendorPartRead: mov w22, w1 mov x25, x2 add w2, w0, w1 - ldrh w1, [x3,812] + ldrh w1, [x3,820] mov w23, w0 - ldrh w20, [x3,826] + ldrh w20, [x3,832] cmp w2, w1 mov w0, -1 - bhi .L1735 + bhi .L1788 adrp x26, .LC43 - add x0, x3, 3824 + add x0, x3, 3832 lsr w20, w23, w20 mov w21, 0 mov x28, x3 add x26, x26, :lo12:.LC43 str x0, [x29,104] -.L1736: - cbz w22, .L1744 - ldrh w19, [x28,824] - ldr x0, [x28,1232] +.L1789: + cbz w22, .L1797 + ldrh w19, [x28,830] + ldr x0, [x28,1240] udiv w24, w23, w19 ldr w4, [x0,w20,uxtw 2] uxth w0, w22 @@ -10834,8 +11067,8 @@ FtlVendorPartRead: cmp w19, w22 csel w19, w0, w19, hi lsl w27, w19, 9 - cbz w4, .L1738 - ldr x0, [x28,1064] + cbz w4, .L1791 + ldr x0, [x28,1072] mov w1, 1 str x0, [x29,128] mov w2, w1 @@ -10847,40 +11080,40 @@ FtlVendorPartRead: ldr w0, [x29,120] ldr x4, [x29,96] cmn w0, #1 - ldr w0, [x28,1408] + ldr w0, [x28,1416] csinv w21, w21, wzr, ne cmp w0, 256 - bne .L1740 + bne .L1793 mov w1, w20 mov w2, w4 mov x0, x26 bl printk ldr x0, [x29,104] mov w1, w20 - ldr x2, [x28,1064] + ldr x2, [x28,1072] bl FtlMapWritePage -.L1740: - ldr x1, [x28,1064] +.L1793: + ldr x1, [x28,1072] ubfiz x24, x24, 9, 16 mov x0, x25 mov w2, w27 add x1, x1, x24 bl ftl_memcpy - b .L1741 -.L1738: + b .L1794 +.L1791: mov x0, x25 mov w1, w4 mov w2, w27 bl ftl_memset -.L1741: +.L1794: add w20, w20, 1 sub w22, w22, w19 add w23, w23, w19 add x25, x25, x27, sxtw - b .L1736 -.L1744: + b .L1789 +.L1797: mov w0, w21 -.L1735: +.L1788: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -10917,35 +11150,35 @@ ftl_sys_read: FtlUpdateVaildLpn: adrp x1, .LANCHOR2 add x3, x1, :lo12:.LANCHOR2 - ldrh w2, [x3,3888] - cbnz w0, .L1748 + ldrh w2, [x3,3896] + cbnz w0, .L1801 cmp w2, 4 - bhi .L1748 + bhi .L1801 add w2, w2, 1 - strh w2, [x3,3888] - b .L1747 -.L1748: + strh w2, [x3,3896] + b .L1800 +.L1801: add x0, x1, :lo12:.LANCHOR2 mov w7, 65535 - strh wzr, [x0,3888] - str wzr, [x0,3892] - ldrh w5, [x0,756] - ldr x6, [x0,1184] + strh wzr, [x0,3896] + str wzr, [x0,3900] + ldrh w5, [x0,764] + ldr x6, [x0,1192] mov x0, 0 -.L1749: +.L1802: cmp w5, w0, uxth - bls .L1747 + bls .L1800 ldrh w4, [x6,x0,lsl 1] cmp w4, w7 - beq .L1750 + beq .L1803 add x3, x1, :lo12:.LANCHOR2 - ldr w2, [x3,3892] + ldr w2, [x3,3900] add w2, w4, w2 - str w2, [x3,3892] -.L1750: + str w2, [x3,3900] +.L1803: add x0, x0, 1 - b .L1749 -.L1747: + b .L1802 +.L1800: ret .size FtlUpdateVaildLpn, .-FtlUpdateVaildLpn .align 2 @@ -10959,41 +11192,41 @@ FtlMapBlkWriteDumpData: ldr w1, [x0,56] ldrh w19, [x0,6] ldr x4, [x0,40] - cbz w1, .L1753 + cbz w1, .L1806 adrp x1, .LANCHOR2 str wzr, [x0,56] add x2, x1, :lo12:.LANCHOR2 mov x21, x1 - ldr w3, [x2,1400] - cbnz w3, .L1753 + ldr w3, [x2,1408] + cbnz w3, .L1806 mov x20, x0 sub w19, w19, #1 - add x0, x2, 1408 - ldr x3, [x2,1112] + add x0, x2, 1416 + ldr x3, [x2,1120] uxth w19, w19 - ldr x1, [x2,1056] + ldr x1, [x2,1064] str x3, [x0,16] ubfiz x3, x19, 2, 16 str x1, [x0,8] ldr w3, [x4,x3] str w3, [x0,4] - cbz w3, .L1757 + cbz w3, .L1810 mov w1, 1 mov w2, w1 bl FlashReadPages - b .L1758 -.L1757: - ldrh w2, [x2,828] + b .L1811 +.L1810: + ldrh w2, [x2,834] mov x0, x1 mov w1, 255 bl ftl_memset -.L1758: +.L1811: add x2, x21, :lo12:.LANCHOR2 mov x0, x20 mov w1, w19 - ldr x2, [x2,1416] + ldr x2, [x2,1424] bl FtlMapWritePage -.L1753: +.L1806: ldp x19, x20, [sp,16] ldr x21, [sp,32] ldp x29, x30, [sp], 48 @@ -11011,81 +11244,81 @@ FtlVpcTblFlush: stp x19, x20, [sp,16] add x19, x22, :lo12:.LANCHOR2 stp x23, x24, [sp,48] - ldr w0, [x19,1400] - cbnz w0, .L1761 - ldr x21, [x19,1112] - add x20, x19, 3520 - ldr x1, [x19,1048] - str x1, [x19,1416] - str x21, [x19,1424] - ldrh w2, [x19,3896] + ldr w0, [x19,1408] + cbnz w0, .L1814 + ldr x21, [x19,1120] + add x20, x19, 3528 + ldr x1, [x19,1056] + str x1, [x19,1424] + str x21, [x19,1432] + ldrh w2, [x19,3904] strh w2, [x21,2] mov w2, -3932 strh w2, [x21] str w0, [x21,12] - ldr w2, [x19,3904] + ldr w2, [x19,3912] str w2, [x21,4] str w0, [x21,8] mov w0, 19539 - ldrh w1, [x19,3608] + ldrh w1, [x19,3616] movk w0, 0x4654, lsl 16 strh w1, [x20,14] - ldrh w1, [x19,3610] - ldrb w2, [x19,3614] - str w0, [x19,3520] - mov w0, 80 + ldrh w1, [x19,3618] + ldrb w2, [x19,3622] + str w0, [x19,3528] + mov w0, 83 orr w1, w2, w1, lsl 6 strh w1, [x20,16] - ldrh w1, [x19,3656] + ldrh w1, [x19,3664] movk w0, 0x5000, lsl 16 strh w1, [x20,18] - ldrh w1, [x19,3658] - ldrb w2, [x19,3662] + ldrh w1, [x19,3666] + ldrb w2, [x19,3670] str w0, [x20,4] - ldrh w0, [x19,3902] + ldrh w0, [x19,3910] orr w1, w2, w1, lsl 6 strh w0, [x20,8] - ldrh w0, [x19,770] + ldrh w0, [x19,778] strb w0, [x20,10] - ldrb w0, [x19,3616] + ldrb w0, [x19,3624] strb w0, [x20,11] strh w1, [x20,20] - ldrb w0, [x19,3664] - ldrh w1, [x19,3704] + ldrb w0, [x19,3672] + ldrh w1, [x19,3712] strb w0, [x20,12] strh w1, [x20,22] - ldrh w1, [x19,3706] - ldrb w0, [x19,3712] + ldrh w1, [x19,3714] + ldrb w0, [x19,3720] strb w0, [x20,13] - ldr w0, [x19,904] + ldr w0, [x19,908] str w0, [x20,32] - ldr w0, [x19,872] - str w0, [x20,40] ldr w0, [x19,876] - ldrb w2, [x19,3710] + str w0, [x20,40] + ldr w0, [x19,880] + ldrb w2, [x19,3718] str w0, [x20,36] - ldrh w0, [x19,948] + ldrh w0, [x19,952] orr w1, w2, w1, lsl 6 strh w0, [x20,44] - ldrh w0, [x19,950] + ldrh w0, [x19,954] strh w0, [x20,46] - ldrh w2, [x19,828] - ldr x0, [x19,1416] + ldrh w2, [x19,834] + ldr x0, [x19,1424] strh w1, [x20,24] mov w1, 255 bl ftl_memset - ldr x0, [x19,1416] + ldr x0, [x19,1424] mov x1, x20 mov w2, 48 bl ftl_memcpy - ldr x0, [x19,1416] - ldrh w2, [x19,756] - ldr x1, [x19,1184] + ldr x0, [x19,1424] + ldrh w2, [x19,764] + ldr x1, [x19,1192] add x0, x0, 48 lsl w2, w2, 1 bl ftl_memcpy - ldrh w2, [x19,756] - ldr x1, [x19,1416] + ldrh w2, [x19,764] + ldr x1, [x19,1424] uxth x0, w2 lsr w2, w2, 3 add x0, x0, 24 @@ -11095,95 +11328,95 @@ FtlVpcTblFlush: adrp x1, .LANCHOR0+16 ldr x1, [x1,#:lo12:.LANCHOR0+16] bl ftl_memcpy - ldrh w0, [x19,860] - cbz w0, .L1762 - ldrh w0, [x19,756] - ldrh w2, [x19,856] + ldrh w0, [x19,864] + cbz w0, .L1815 + ldrh w0, [x19,764] + ldrh w2, [x19,860] lsr w1, w0, 3 add w0, w1, w0, lsl 1 - ldr x1, [x19,1416] + ldr x1, [x19,1424] add w0, w0, 52 lsl w2, w2, 2 and x0, x0, 65532 add x0, x1, x0 - ldr x1, [x19,1240] + ldr x1, [x19,1248] bl ftl_memcpy -.L1762: +.L1815: mov w0, 0 mov w20, 0 mov w25, 65535 add x19, x22, :lo12:.LANCHOR2 bl FtlUpdateVaildLpn -.L1763: - ldrh w1, [x19,3896] - ldr x0, [x19,1048] - ldrh w2, [x19,3898] - str x0, [x19,1416] - ldr x0, [x19,1112] +.L1816: + ldrh w1, [x19,3904] + ldr x0, [x19,1056] + ldrh w2, [x19,3906] str x0, [x19,1424] + ldr x0, [x19,1120] + str x0, [x19,1432] orr w0, w2, w1, lsl 10 - str w0, [x19,1412] - ldrh w0, [x19,820] + str w0, [x19,1420] + ldrh w0, [x19,826] sub w0, w0, #1 cmp w2, w0 - blt .L1764 - ldrh w25, [x19,3900] - strh wzr, [x19,3898] - strh w1, [x19,3900] + blt .L1817 + ldrh w25, [x19,3908] + strh wzr, [x19,3906] + strh w1, [x19,3908] bl FtlFreeSysBlkQueueOut - ldr w1, [x19,872] - str w1, [x19,3904] + ldr w1, [x19,876] + str w1, [x19,3912] add w2, w1, 1 - str w2, [x19,872] + str w2, [x19,876] ubfiz w2, w0, 10, 16 - str w2, [x19,1412] - strh w0, [x19,3896] + str w2, [x19,1420] + strh w0, [x19,3904] str w1, [x21,4] strh w0, [x21,2] -.L1764: +.L1817: mov w1, 1 - add x0, x19, 1408 + add x0, x19, 1416 mov w2, w1 mov w3, w1 bl FlashProgPages - ldrh w1, [x19,3898] - ldr w2, [x19,1408] + ldrh w1, [x19,3906] + ldr w2, [x19,1416] add w1, w1, 1 cmn w2, #1 uxth w1, w1 - strh w1, [x19,3898] - bne .L1765 + strh w1, [x19,3906] + bne .L1818 cmp w1, 1 - bne .L1766 - ldrh w1, [x19,820] + bne .L1819 + ldrh w1, [x19,826] sub w1, w1, #1 - strh w1, [x19,3898] -.L1766: + strh w1, [x19,3906] +.L1819: add w20, w20, 1 uxth w20, w20 cmp w20, 3 - bls .L1763 + bls .L1816 add x22, x22, :lo12:.LANCHOR2 adrp x0, .LC44 add x0, x0, :lo12:.LC44 mov w2, w20 - ldr w1, [x22,1412] + ldr w1, [x22,1420] bl printk mov w0, 1 - str w0, [x22,1400] - b .L1761 -.L1765: + str w0, [x22,1408] + b .L1814 +.L1818: cmp w1, 1 - beq .L1763 + beq .L1816 cmp w2, 256 - beq .L1763 + beq .L1816 mov w0, 65535 cmp w25, w0 - beq .L1761 + beq .L1814 mov w0, w25 mov w1, 1 bl FtlFreeSysBlkQueueIn -.L1761: +.L1814: mov w0, 0 ldr x25, [sp,64] ldp x19, x20, [sp,16] @@ -11206,48 +11439,48 @@ FtlScanSysBlk: stp x25, x26, [sp,64] stp x23, x24, [sp,48] stp x27, x28, [sp,80] - strh wzr, [x20,3908] + strh wzr, [x20,3920] mov x26, 56 - ldr w2, [x20,848] + ldr w2, [x20,852] mov w22, 65535 - ldr x0, [x20,1256] + ldr x0, [x20,1264] lsl w2, w2, 2 - strh wzr, [x20,1392] + strh wzr, [x20,1400] bl ftl_memset - ldr w2, [x20,848] + ldr w2, [x20,852] mov w1, 0 - ldr x0, [x20,1192] + ldr x0, [x20,1200] lsl w2, w2, 1 bl ftl_memset - ldrh w2, [x20,840] + ldrh w2, [x20,844] mov w1, 0 - ldr x0, [x20,1224] + ldr x0, [x20,1232] lsl w2, w2, 2 bl ftl_memset - ldrh w2, [x20,840] + ldrh w2, [x20,844] mov w1, 0 - ldr x0, [x20,1208] + ldr x0, [x20,1216] lsl w2, w2, 1 bl ftl_memset - add x0, x20, 3896 + add x0, x20, 3904 mov w1, 255 - mov w2, 12 + mov w2, 16 bl ftl_memset - ldrh w21, [x20,756] -.L1773: + ldrh w21, [x20,764] +.L1826: add x1, x19, :lo12:.LANCHOR2 - ldrh w0, [x1,758] + ldrh w0, [x1,766] cmp w0, w21 - bls .L1814 + bls .L1867 mov x27, 0 - ldrh w3, [x1,748] - ldrh w2, [x1,830] + ldrh w3, [x1,756] + ldrh w2, [x1,836] mov w20, w27 mov x23, x1 -.L1815: +.L1868: cmp w3, w27, uxth - bls .L1848 - add x0, x23, 776 + bls .L1901 + add x0, x23, 784 mov w1, w21 str x2, [x29,112] str x3, [x29,120] @@ -11257,64 +11490,64 @@ FtlScanSysBlk: bl FtlBbmIsBadBlock ldr x3, [x29,120] ldr x2, [x29,112] - cbnz w0, .L1774 + cbnz w0, .L1827 mov w0, 56 - ldr x1, [x23,992] + ldr x1, [x23,1000] lsl w28, w28, 10 mov w4, 4 umull x0, w20, w0 add x1, x1, x0 str w28, [x1,4] - ldr x1, [x23,992] + ldr x1, [x23,1000] add x0, x1, x0 - ldr x1, [x23,1072] + ldr x1, [x23,1080] str x1, [x0,8] mul w1, w20, w2 add w20, w20, 1 sdiv w1, w1, w4 uxth w20, w20 - ldr x4, [x23,1128] + ldr x4, [x23,1136] add x1, x4, x1, sxtw 2 str x1, [x0,16] -.L1774: +.L1827: add x27, x27, 1 - b .L1815 -.L1848: - cbz w20, .L1777 + b .L1868 +.L1901: + cbz w20, .L1830 add x0, x19, :lo12:.LANCHOR2 mov w1, w20 mov w2, 1 mov x23, 0 mov w27, -1 adrp x28, .LANCHOR0 - ldr x0, [x0,992] + ldr x0, [x0,1000] bl FlashReadPages -.L1778: +.L1831: cmp w20, w23, uxth - bls .L1777 + bls .L1830 add x0, x19, :lo12:.LANCHOR2 mul x5, x23, x26 - ldr x0, [x0,992] + ldr x0, [x0,1000] add x1, x0, x5 ldr w0, [x0,x5] ldr w4, [x1,4] cmn w0, #1 ldr x25, [x1,16] ubfx x24, x4, 10, 16 - bne .L1780 + bne .L1833 mov w6, 16 -.L1779: +.L1832: add x7, x19, :lo12:.LANCHOR2 str x6, [x29,104] str x7, [x29,112] str x5, [x29,120] - ldr x0, [x7,992] + ldr x0, [x7,1000] add x0, x0, x5 ldr w1, [x0,4] add w1, w1, 1 str w1, [x0,4] mov w1, 1 - ldr x0, [x7,992] + ldr x0, [x7,1000] mov w2, w1 add x0, x0, x5 bl FlashReadPages @@ -11323,333 +11556,333 @@ FtlScanSysBlk: cmp w0, w22 ldr x5, [x29,120] ldr x6, [x29,104] - ldr x0, [x7,992] - bne .L1781 + ldr x0, [x7,1000] + bne .L1834 str w27, [x0,x5] - b .L1780 -.L1781: + b .L1833 +.L1834: ldr w0, [x0,x5] cmn w0, #1 - bne .L1780 + bne .L1833 sub w6, w6, #1 uxth w6, w6 - cbnz w6, .L1779 -.L1780: + cbnz w6, .L1832 +.L1833: add x0, x19, :lo12:.LANCHOR2 - ldr x1, [x0,992] + ldr x1, [x0,1000] ldr w1, [x1,x5] cmn w1, #1 - beq .L1783 - ldr w0, [x0,872] + beq .L1836 + ldr w0, [x0,876] cmn w0, #1 - beq .L1784 + beq .L1837 ldr w1, [x25,4] cmp w0, w1 - bhi .L1785 -.L1784: + bhi .L1838 +.L1837: ldr w0, [x25,4] cmn w0, #1 - beq .L1785 + beq .L1838 add x1, x19, :lo12:.LANCHOR2 add w0, w0, 1 - str w0, [x1,872] -.L1785: + str w0, [x1,876] +.L1838: ldrh w0, [x25] mov w1, 61604 cmp w0, w1 - beq .L1787 - bhi .L1788 + beq .L1840 + bhi .L1841 mov w1, 61574 cmp w0, w1 - bne .L1786 + bne .L1839 add x5, x19, :lo12:.LANCHOR2 - ldrh w6, [x5,840] - ldrh w0, [x5,1392] + ldrh w6, [x5,844] + ldrh w0, [x5,1400] sub w2, w6, #1 - ldr x5, [x5,1224] + ldr x5, [x5,1232] sxth x1, w2 sub w2, w2, w0 - b .L1801 -.L1788: + b .L1854 +.L1841: mov w1, 61634 cmp w0, w1 - beq .L1790 + beq .L1843 cmp w0, w22 - bne .L1786 + bne .L1839 mov w0, w24 - b .L1847 -.L1790: + b .L1900 +.L1843: add x5, x19, :lo12:.LANCHOR2 - ldr w6, [x5,848] - ldrh w0, [x5,3908] - ldr x5, [x5,1256] + ldr w6, [x5,852] + ldrh w0, [x5,3920] + ldr x5, [x5,1264] uxth w2, w6 sub w1, w2, #1 sub w2, w2, w0 sub w2, w2, #1 sxth x1, w1 sxth w2, w2 -.L1792: +.L1845: cmp w1, w2 - ble .L1849 + ble .L1902 sbfiz x7, x1, 2, 32 ldr w10, [x25,4] sxth x8, w1 ldr w9, [x5,x7] cmp w10, w9 - bls .L1793 + bls .L1846 ldr w2, [x5] - cbnz w2, .L1794 + cbnz w2, .L1847 cmp w0, w6 - beq .L1794 + beq .L1847 add x2, x19, :lo12:.LANCHOR2 add w0, w0, 1 - strh w0, [x2,3908] -.L1794: + strh w0, [x2,3920] +.L1847: mov w0, 0 -.L1795: +.L1848: cmp w0, w1 - beq .L1850 + beq .L1903 add x5, x19, :lo12:.LANCHOR2 sxtw x2, w0 lsl x6, x2, 2 lsl x2, x2, 1 add w0, w0, 1 - ldr x9, [x5,1256] + ldr x9, [x5,1264] sxth w0, w0 add x10, x9, x6 ldr w10, [x10,4] str w10, [x9,x6] - ldr x5, [x5,1192] + ldr x5, [x5,1200] add x6, x5, x2 ldrh w6, [x6,2] strh w6, [x5,x2] - b .L1795 -.L1850: + b .L1848 +.L1903: add x2, x19, :lo12:.LANCHOR2 ldr w5, [x25,4] - ldr x0, [x2,1256] + ldr x0, [x2,1264] str w5, [x0,x7] - ldr x0, [x2,1192] + ldr x0, [x2,1200] strh w24, [x0,x8,lsl 1] - tbz w1, #31, .L1797 - b .L1786 -.L1793: + tbz w1, #31, .L1850 + b .L1839 +.L1846: sub w1, w1, #1 sxth x1, w1 - b .L1792 -.L1849: - tbz w1, #31, .L1830 - b .L1786 -.L1797: - ldrh w0, [x2,3908] - ldr w2, [x2,848] + b .L1845 +.L1902: + tbz w1, #31, .L1883 + b .L1839 +.L1850: + ldrh w0, [x2,3920] + ldr w2, [x2,852] sub w2, w2, w0 sub w2, w2, #1 cmp w1, w2, sxth - bgt .L1786 -.L1830: + bgt .L1839 +.L1883: add x2, x19, :lo12:.LANCHOR2 add w0, w0, 1 ldr w3, [x25,4] - strh w0, [x2,3908] - ldr x0, [x2,1256] + strh w0, [x2,3920] + ldr x0, [x2,1264] str w3, [x0,x1,lsl 2] - ldr x0, [x2,1192] - b .L1846 -.L1807: + ldr x0, [x2,1200] + b .L1899 +.L1860: sbfiz x7, x1, 2, 32 ldr w10, [x25,4] sxth x8, w1 ldr w9, [x5,x7] cmp w10, w9 - bhi .L1851 + bhi .L1904 sub w1, w1, #1 sxth x1, w1 -.L1801: +.L1854: cmp w1, w2 - bgt .L1807 - b .L1806 -.L1851: + bgt .L1860 + b .L1859 +.L1904: ldr w2, [x5] - cbnz w2, .L1803 + cbnz w2, .L1856 cmp w0, w6 - beq .L1803 + beq .L1856 add x2, x19, :lo12:.LANCHOR2 add w0, w0, 1 - strh w0, [x2,1392] -.L1803: + strh w0, [x2,1400] +.L1856: mov w0, 0 -.L1804: +.L1857: cmp w0, w1 - beq .L1852 + beq .L1905 add x5, x19, :lo12:.LANCHOR2 sxtw x2, w0 lsl x6, x2, 2 lsl x2, x2, 1 add w0, w0, 1 - ldr x9, [x5,1224] + ldr x9, [x5,1232] sxth w0, w0 add x10, x9, x6 ldr w10, [x10,4] str w10, [x9,x6] - ldr x5, [x5,1208] + ldr x5, [x5,1216] add x6, x5, x2 ldrh w6, [x6,2] strh w6, [x5,x2] - b .L1804 -.L1852: + b .L1857 +.L1905: add x0, x19, :lo12:.LANCHOR2 ldr w5, [x25,4] - ldr x2, [x0,1224] + ldr x2, [x0,1232] str w5, [x2,x7] - ldr x0, [x0,1208] + ldr x0, [x0,1216] strh w24, [x0,x8,lsl 1] -.L1806: - tbnz w1, #31, .L1786 +.L1859: + tbnz w1, #31, .L1839 add x0, x19, :lo12:.LANCHOR2 - ldrh w2, [x0,840] - ldrh w5, [x0,1392] + ldrh w2, [x0,844] + ldrh w5, [x0,1400] sub w2, w2, #1 sub w2, w2, w5 cmp w1, w2, sxth - bgt .L1786 - ldr x2, [x0,1224] + bgt .L1839 + ldr x2, [x0,1232] add w5, w5, 1 ldr w3, [x25,4] - strh w5, [x0,1392] + strh w5, [x0,1400] str w3, [x2,x1,lsl 2] - ldr x0, [x0,1208] -.L1846: + ldr x0, [x0,1216] +.L1899: strh w24, [x0,x1,lsl 1] - b .L1786 -.L1787: + b .L1839 +.L1840: add x0, x19, :lo12:.LANCHOR2 - add x1, x0, 3896 - ldrh w2, [x0,3896] + add x1, x0, 3904 + ldrh w2, [x0,3904] cmp w2, w22 - bne .L1808 - strh w24, [x0,3896] + bne .L1861 + strh w24, [x0,3904] ldr w0, [x25,4] str w0, [x1,8] - b .L1786 -.L1808: + b .L1839 +.L1861: ldrh w0, [x1,4] cmp w0, w22 - beq .L1809 + beq .L1862 mov w1, 1 bl FtlFreeSysBlkQueueIn -.L1809: +.L1862: add x1, x19, :lo12:.LANCHOR2 ldr w2, [x25,4] - add x0, x1, 3896 + add x0, x1, 3904 ldr w5, [x0,8] cmp w5, w2 - bcs .L1810 - ldrh w2, [x1,3896] + bcs .L1863 + ldrh w2, [x1,3904] strh w2, [x0,4] - strh w24, [x1,3896] + strh w24, [x1,3904] ldr w1, [x25,4] str w1, [x0,8] - b .L1786 -.L1810: + b .L1839 +.L1863: strh w24, [x0,4] - b .L1786 -.L1783: + b .L1839 +.L1836: add x0, x28, :lo12:.LANCHOR0 - ldrb w1, [x0,136] + ldrb w1, [x0,4044] mov w0, w24 - cbz w1, .L1811 -.L1847: + cbz w1, .L1864 +.L1900: mov w1, 0 -.L1811: +.L1864: bl FtlFreeSysBlkQueueIn -.L1786: +.L1839: add x23, x23, 1 - b .L1778 -.L1777: + b .L1831 +.L1830: add w21, w21, 1 uxth w21, w21 - b .L1773 -.L1814: - ldr x2, [x1,1192] + b .L1826 +.L1867: + ldr x2, [x1,1200] ldrh w0, [x2] - cbz w0, .L1816 -.L1819: + cbz w0, .L1869 +.L1872: add x1, x19, :lo12:.LANCHOR2 - ldr x2, [x1,1208] + ldr x2, [x1,1216] ldrh w0, [x2] - cbz w0, .L1817 - b .L1840 -.L1816: - ldrh w3, [x1,3908] - cbz w3, .L1819 - ldr w1, [x1,848] -.L1820: + cbz w0, .L1870 + b .L1893 +.L1869: + ldrh w3, [x1,3920] + cbz w3, .L1872 + ldr w1, [x1,852] +.L1873: cmp w0, w1 - bcs .L1819 + bcs .L1872 ldrh w3, [x2,w0,sxtw 1] - cbz w3, .L1821 + cbz w3, .L1874 mov w6, w0 -.L1822: +.L1875: add x1, x19, :lo12:.LANCHOR2 - ldr w2, [x1,848] + ldr w2, [x1,852] cmp w0, w2 - bcs .L1819 + bcs .L1872 sxtw x5, w0 sub w2, w0, w6 - ldr x4, [x1,1192] + ldr x4, [x1,1200] lsl x3, x5, 1 sxtw x2, w2 add w0, w0, 1 ldrh w7, [x4,x3] sxth w0, w0 strh w7, [x4,x2,lsl 1] - ldr x4, [x1,1256] + ldr x4, [x1,1264] ldr w5, [x4,x5,lsl 2] str w5, [x4,x2,lsl 2] - ldr x1, [x1,1192] + ldr x1, [x1,1200] strh wzr, [x1,x3] - b .L1822 -.L1821: + b .L1875 +.L1874: add w0, w0, 1 sxth w0, w0 - b .L1820 -.L1817: - ldrh w3, [x1,1392] - cbz w3, .L1840 - ldrh w1, [x1,840] -.L1825: + b .L1873 +.L1870: + ldrh w3, [x1,1400] + cbz w3, .L1893 + ldrh w1, [x1,844] +.L1878: cmp w0, w1 mov w6, w0 - bge .L1840 + bge .L1893 ldrh w3, [x2,w0,sxtw 1] - cbz w3, .L1826 -.L1827: + cbz w3, .L1879 +.L1880: add x1, x19, :lo12:.LANCHOR2 - ldrh w2, [x1,840] + ldrh w2, [x1,844] cmp w0, w2 - bge .L1840 + bge .L1893 sxtw x5, w0 sub w2, w0, w6 - ldr x4, [x1,1208] + ldr x4, [x1,1216] lsl x3, x5, 1 sxtw x2, w2 add w0, w0, 1 ldrh w7, [x4,x3] sxth w0, w0 strh w7, [x4,x2,lsl 1] - ldr x4, [x1,1224] + ldr x4, [x1,1232] ldr w5, [x4,x5,lsl 2] str w5, [x4,x2,lsl 2] - ldr x1, [x1,1208] + ldr x1, [x1,1216] strh wzr, [x1,x3] - b .L1827 -.L1826: + b .L1880 +.L1879: add w0, w0, 1 sxth w0, w0 - b .L1825 -.L1840: + b .L1878 +.L1893: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -11669,26 +11902,26 @@ FtlLoadEctTbl: str x19, [sp,16] adrp x19, .LANCHOR2 add x19, x19, :lo12:.LANCHOR2 - ldrh w1, [x19,1144] - ldr x2, [x19,1160] + ldrh w1, [x19,1152] + ldr x2, [x19,1168] bl FtlVendorPartRead - ldr x0, [x19,1160] + ldr x0, [x19,1168] ldr w1, [x0] mov w0, 17221 movk w0, 0x4254, lsl 16 cmp w1, w0 - beq .L1854 + beq .L1907 adrp x0, .LC45 adrp x1, .LC46 add x1, x1, :lo12:.LC46 add x0, x0, :lo12:.LC45 bl printk - ldrh w2, [x19,1144] + ldrh w2, [x19,1152] mov w1, 0 - ldr x0, [x19,1160] + ldr x0, [x19,1168] lsl w2, w2, 9 bl ftl_memset -.L1854: +.L1907: mov w0, 0 ldr x19, [sp,16] ldp x29, x30, [sp], 32 @@ -11701,10 +11934,10 @@ ftl_set_blk_mode: stp x29, x30, [sp, -16]! uxth w0, w0 add x29, sp, 0 - cbz w1, .L1856 + cbz w1, .L1909 bl ftl_set_blk_mode.part.17 - b .L1855 -.L1856: + b .L1908 +.L1909: adrp x1, .LANCHOR0+16 ubfx x2, x0, 5, 11 lsl x2, x2, 2 @@ -11714,7 +11947,7 @@ ftl_set_blk_mode: ldr w1, [x3,x2] bic w0, w1, w0 str w0, [x3,x2] -.L1855: +.L1908: ldp x29, x30, [sp], 16 ret .size ftl_set_blk_mode, .-ftl_set_blk_mode @@ -11750,35 +11983,35 @@ FtlCheckVpc: stp x23, x24, [sp,48] add x19, x19, :lo12:.LANCHOR2 bl printk - add x0, x19, 3912 + add x0, x19, 3928 mov w1, 0 mov x2, 8192 bl memset -.L1860: - ldr w0, [x19,1396] +.L1913: + ldr w0, [x19,1404] cmp w20, w0 - bcs .L1877 + bcs .L1930 mov w0, w20 add x1, x29, 92 mov w2, 0 bl log2phys ldr w0, [x29,92] cmn w0, #1 - beq .L1861 + beq .L1914 lsr w0, w0, 10 bl P2V_block_in_plane uxth w0, w0 - add x2, x19, 3912 + add x2, x19, 3928 ldrh w1, [x2,w0,sxtw 1] add w1, w1, 1 strh w1, [x2,w0,sxtw 1] -.L1861: +.L1914: add w20, w20, 1 - b .L1860 -.L1877: - ldr x1, [x19,1184] + b .L1913 +.L1930: + ldr x1, [x19,1192] adrp x0, .LC48 - ldrh w3, [x19,756] + ldrh w3, [x19,764] add x0, x0, :lo12:.LC48 mov w2, 2 adrp x21, .LC50 @@ -11786,35 +12019,35 @@ FtlCheckVpc: add x21, x21, :lo12:.LC50 bl rknand_print_hex adrp x0, .LC49 - ldrh w3, [x19,756] + ldrh w3, [x19,764] add x0, x0, :lo12:.LC49 - add x1, x19, 3912 + add x1, x19, 3928 mov w2, 2 bl rknand_print_hex -.L1863: - ldrh w0, [x19,756] +.L1916: + ldrh w0, [x19,764] cmp w0, w20 - bls .L1878 + bls .L1931 ubfiz x0, x20, 1, 16 - ldr x1, [x19,1184] + ldr x1, [x19,1192] ldrh w2, [x1,x0] - add x0, x19, 3912 + add x0, x19, 3928 ldrh w3, [x0,w20,sxtw 1] cmp w2, w3 - beq .L1864 + beq .L1917 mov x0, x21 mov w1, w20 bl printk -.L1864: +.L1917: add w20, w20, 1 uxth w20, w20 - b .L1863 -.L1878: - ldr x0, [x19,3592] - cbz x0, .L1859 - ldr x20, [x19,1280] + b .L1916 +.L1931: + ldr x0, [x19,3600] + cbz x0, .L1912 + ldr x20, [x19,1288] adrp x22, .LC51 - ldrh w23, [x19,3600] + ldrh w23, [x19,3608] mov w21, 0 sub x20, x0, x20 mov x0, -6148914691236517206 @@ -11824,28 +12057,28 @@ FtlCheckVpc: mov w25, 65535 madd x20, x0, x20, x20 uxth w20, w20 -.L1867: +.L1920: cmp w21, w23 - beq .L1859 + beq .L1912 ubfiz x0, x20, 1, 16 - ldr x1, [x19,1184] + ldr x1, [x19,1192] ldrh w2, [x1,x0] - cbz w2, .L1868 - add x3, x19, 3912 + cbz w2, .L1921 + add x3, x19, 3928 mov x0, x22 mov w1, w20 ldrh w3, [x3,w20,sxtw 1] bl printk -.L1868: +.L1921: umull x20, w20, w24 - ldr x0, [x19,1280] + ldr x0, [x19,1288] ldrh w20, [x0,x20] cmp w20, w25 - beq .L1859 + beq .L1912 add w21, w21, 1 uxth w21, w21 - b .L1867 -.L1859: + b .L1920 +.L1912: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -11866,23 +12099,23 @@ FtlDumpSysBlock: stp x21, x22, [sp,48] stp x23, x24, [sp,64] str x25, [sp,80] - add x19, x2, 1408 + add x19, x2, 1416 uxth w23, w0 adrp x22, .LC52 - ldr x0, [x2,1048] + ldr x0, [x2,1056] adrp x25, .LC53 str x0, [x19,8] lsl w24, w23, 10 - ldr x0, [x2,1112] + ldr x0, [x2,1120] mov w20, 0 str x0, [x19,16] mov x21, x2 add x22, x22, :lo12:.LC52 add x25, x25, :lo12:.LC53 -.L1880: - ldrh w0, [x21,820] +.L1933: + ldrh w0, [x21,826] cmp w20, w0 - bge .L1886 + bge .L1939 mov w1, 1 orr w0, w20, w24 mov w2, w1 @@ -11905,17 +12138,17 @@ FtlDumpSysBlock: ldr x0, [x19,16] ldr w0, [x0] cmn w0, #1 - beq .L1881 - ldr x1, [x21,1048] + beq .L1934 + ldr x1, [x21,1056] mov x0, x25 mov w2, 4 mov w3, 768 bl rknand_print_hex -.L1881: +.L1934: add w20, w20, 1 sxth w20, w20 - b .L1880 -.L1886: + b .L1933 +.L1939: sub sp, x29, #16 ldp x19, x20, [sp,32] ldp x21, x22, [sp,48] @@ -11943,47 +12176,47 @@ Ftlscanalldata: stp x19, x20, [sp,32] add x21, x21, :lo12:.LC55 mov w20, 0 - add x19, x22, 1408 + add x19, x22, 1416 bl printk -.L1888: +.L1941: add x0, x23, :lo12:.LANCHOR2 - ldr w0, [x0,1396] + ldr w0, [x0,1404] cmp w20, w0 - bcs .L1895 + bcs .L1948 mov w0, w20 add x1, x29, 76 mov w2, 0 bl log2phys and w0, w20, 2047 - cbnz w0, .L1889 + cbnz w0, .L1942 ldr w2, [x29,76] mov x0, x21 mov w1, w20 bl printk -.L1889: +.L1942: ldr w0, [x29,76] cmn w0, #1 - beq .L1891 + beq .L1944 str w0, [x19,4] mov w1, 1 - ldr x0, [x22,1048] + ldr x0, [x22,1056] mov w2, 0 str x0, [x19,8] mov x0, x19 - ldr x24, [x22,1112] + ldr x24, [x22,1120] str w20, [x19,24] str x24, [x19,16] str wzr, [x19] bl FlashReadPages ldr w0, [x19] cmn w0, #1 - beq .L1892 + beq .L1945 cmp w0, 256 - beq .L1892 + beq .L1945 ldr w0, [x24,8] cmp w0, w20 - beq .L1891 -.L1892: + beq .L1944 +.L1945: ldr x7, [x19,8] mov w1, w20 ldr x6, [x19,16] @@ -11998,10 +12231,10 @@ Ftlscanalldata: ldr w6, [x6,12] ldr w7, [x7] bl printk -.L1891: +.L1944: add w20, w20, 1 - b .L1888 -.L1895: + b .L1941 +.L1948: sub sp, x29, #16 ldp x19, x20, [sp,32] ldp x21, x22, [sp,48] @@ -12026,23 +12259,23 @@ dump_map_info: stp x19, x20, [sp,32] adrp x24, .LC57 mov w25, 56 - ldrh w21, [x0,756] + ldrh w21, [x0,764] mov w26, 4 mov x27, 56 add x24, x24, :lo12:.LC57 -.L1897: +.L1950: add x19, x22, :lo12:.LANCHOR2 - ldrh w0, [x19,758] + ldrh w0, [x19,766] cmp w0, w21 - bls .L1910 + bls .L1963 mov x23, 0 - ldrh w3, [x19,748] - ldrh w2, [x19,830] + ldrh w3, [x19,756] + ldrh w2, [x19,836] mov w20, w23 -.L1906: +.L1959: cmp w3, w23, uxth - bls .L1911 - add x0, x19, 776 + bls .L1964 + add x0, x19, 784 mov w1, w21 str x2, [x29,96] str x3, [x29,104] @@ -12052,16 +12285,16 @@ dump_map_info: bl FtlBbmIsBadBlock ldr x3, [x29,104] ldr x2, [x29,96] - cbnz w0, .L1898 + cbnz w0, .L1951 umull x0, w20, w25 - ldr x1, [x19,992] + ldr x1, [x19,1000] lsl w28, w28, 10 add x1, x1, x0 str w28, [x1,4] - ldr x1, [x19,992] - ldr x4, [x19,1128] + ldr x1, [x19,1000] + ldr x4, [x19,1136] add x0, x1, x0 - ldr x1, [x19,1072] + ldr x1, [x19,1080] str x1, [x0,8] mul w1, w20, w2 add w20, w20, 1 @@ -12069,22 +12302,22 @@ dump_map_info: uxth w20, w20 add x1, x4, x1, sxtw 2 str x1, [x0,16] -.L1898: +.L1951: add x23, x23, 1 - b .L1906 -.L1911: - cbz w20, .L1901 + b .L1959 +.L1964: + cbz w20, .L1954 add x0, x22, :lo12:.LANCHOR2 mov w1, w20 mov w2, 1 mov x19, 0 - ldr x0, [x0,992] + ldr x0, [x0,1000] bl FlashReadPages -.L1902: +.L1955: cmp w20, w19, uxth - bls .L1901 + bls .L1954 add x0, x22, :lo12:.LANCHOR2 - ldr x0, [x0,992] + ldr x0, [x0,1000] madd x0, x19, x27, x0 add x19, x19, 1 ldr x7, [x0,8] @@ -12100,27 +12333,27 @@ dump_map_info: ldr w7, [x7] ldr w6, [x6,12] bl printk - b .L1902 -.L1901: + b .L1955 +.L1954: add w21, w21, 1 uxth w21, w21 - b .L1897 -.L1910: + b .L1950 +.L1963: adrp x23, .LC58 mov w21, 0 - add x22, x19, 1408 + add x22, x19, 1416 add x23, x23, :lo12:.LC58 -.L1905: - ldrh w0, [x19,3908] +.L1958: + ldrh w0, [x19,3920] cmp w21, w0 - bge .L1908 + bge .L1961 sbfiz x24, x21, 1, 32 mov w20, 0 -.L1909: - ldrh w0, [x19,820] +.L1962: + ldrh w0, [x19,826] cmp w20, w0 - bge .L1912 - ldr x0, [x19,1192] + bge .L1965 + ldr x0, [x19,1200] mov w1, 1 mov w2, w1 ldrh w0, [x0,x24] @@ -12131,7 +12364,7 @@ dump_map_info: bl FlashReadPages sxth w20, w20 ldr x0, [x22,8] - ldr x1, [x19,1192] + ldr x1, [x19,1200] ldr x7, [x22,16] ldr w2, [x0] ldrh w1, [x1,x24] @@ -12146,27 +12379,27 @@ dump_map_info: ldr w3, [x22,4] ldr w7, [x7,12] bl printk - b .L1909 -.L1912: + b .L1962 +.L1965: add w21, w21, 1 sxth w21, w21 - b .L1905 -.L1908: - ldr x1, [x19,1192] + b .L1958 +.L1961: + ldr x1, [x19,1200] adrp x0, .LC59 - ldr w3, [x19,848] + ldr w3, [x19,852] add x0, x0, :lo12:.LC59 mov w2, 2 bl rknand_print_hex - ldr x1, [x19,1240] + ldr x1, [x19,1248] adrp x0, .LC60 - ldrh w3, [x19,856] + ldrh w3, [x19,860] add x0, x0, :lo12:.LC60 mov w2, 4 bl rknand_print_hex - ldr x1, [x19,1248] + ldr x1, [x19,1256] adrp x0, .LC61 - ldrh w3, [x19,856] + ldrh w3, [x19,860] add x0, x0, :lo12:.LC61 mov w2, 4 bl rknand_print_hex @@ -12184,192 +12417,227 @@ dump_map_info: .global FtlMapTblRecovery .type FtlMapTblRecovery, %function FtlMapTblRecovery: - stp x29, x30, [sp, -128]! + stp x29, x30, [sp, -144]! mov w1, 0 add x29, sp, 0 stp x19, x20, [sp,16] - mov x19, x0 - adrp x20, .LANCHOR2 stp x21, x22, [sp,32] - stp x23, x24, [sp,48] stp x25, x26, [sp,64] stp x27, x28, [sp,80] - ldrh w23, [x19,6] - mov w27, 0 - ldr x0, [x0,40] - lsl w2, w23, 2 - ldrh w24, [x19,8] - str x0, [x29,120] - ldr x22, [x19,16] - ldr x25, [x19,24] + stp x23, x24, [sp,48] + mov x27, x0 + adrp x20, .LANCHOR2 + ldr x22, [x0,40] + mov w19, 0 + ldrh w24, [x0,6] + ldr x23, [x0,16] + ldr x26, [x0,24] + lsl w2, w24, 2 + ldrh w0, [x0,8] + str w0, [x29,136] + mov x0, x22 bl ftl_memset - add x5, x20, :lo12:.LANCHOR2 - str x20, [x29,112] - add x4, x5, 1408 - str wzr, [x19,52] - str wzr, [x19,48] - mov x26, x5 - ldr x0, [x5,1048] - mov x20, x4 - ldr x21, [x5,1112] - str x0, [x5,1416] + str x20, [x29,128] + add x6, x20, :lo12:.LANCHOR2 + str wzr, [x27,52] + add x4, x6, 1416 + str wzr, [x27,48] + mov x20, x6 + mov x25, x4 + ldr x0, [x6,1056] + ldr x21, [x6,1120] + str x0, [x6,1424] mov w0, -1 - str x21, [x5,1424] - strh w0, [x19] - strh w0, [x19,2] + str x21, [x6,1432] + strh w0, [x27] + strh w0, [x27,2] mov w0, 1 - str w0, [x19,56] - sub w0, w24, #1 - str w0, [x29,108] -.L1914: - cmp w27, w24 - bge .L1930 - ldr w0, [x29,108] - sxtw x28, w27 - cmp w27, w0 - bne .L1915 + str w0, [x27,56] + ldr w0, [x29,136] + sub w0, w0, #1 + str w0, [x29,116] +.L1967: + ldr w0, [x29,136] + cmp w19, w0 + bge .L1985 + ldr w0, [x29,116] + sxtw x28, w19 + cmp w19, w0 + bne .L1968 lsl x0, x28, 1 mov w1, 1 - add x24, x22, x0 - ldrh w0, [x22,x0] - mov w22, 0 + add x25, x23, x0 + mov w20, 0 + ldrh w0, [x23,x0] bl FtlGetLastWrittenPage - strh w27, [x19] - sxth w26, w0 + strh w19, [x27] + sxth w1, w0 add w0, w0, 1 - strh w0, [x19,2] - add w26, w26, 1 - ldr w0, [x25,x28,lsl 2] - str w0, [x19,48] - ldr x0, [x29,112] - add x25, x0, :lo12:.LANCHOR2 - add x25, x25, 1408 -.L1916: - cmp w22, w26 - bge .L1930 - ldrh w0, [x24] + strh w0, [x27,2] + add w19, w1, 1 + ldr w0, [x26,x28,lsl 2] + adrp x26, .LANCHOR0 + str w0, [x27,48] + ldr x0, [x29,128] + add x23, x0, :lo12:.LANCHOR2 + add x28, x23, 1416 +.L1969: + cmp w20, w19 + bge .L1985 + ldrh w0, [x25] mov w1, 1 mov w2, w1 - orr w0, w22, w0, lsl 10 - str w0, [x25,4] - mov x0, x25 + orr w0, w20, w0, lsl 10 + str w0, [x28,4] + mov x0, x28 bl FlashReadPages - ldr w0, [x25] + add x0, x26, :lo12:.LANCHOR0 + ldrb w0, [x0,24] + cbz w0, .L1970 + ldr x0, [x28,16] + ldr w2, [x0,12] + cbz w2, .L1970 + ldr x0, [x28,8] + ldrh w1, [x23,834] + str x2, [x29,136] + bl js_hash + ldr x2, [x29,136] + cmp w2, w0 + beq .L1970 + mov w0, -1 + str w0, [x28] +.L1970: + ldr w0, [x28] cmn w0, #1 - beq .L1917 + beq .L1971 ldrh w0, [x21,8] - cmp w0, w23 - bcs .L1917 + cmp w0, w24 + bcs .L1971 ldrh w2, [x21] - ldrh w1, [x19,4] + ldrh w1, [x27,4] cmp w2, w1 - bne .L1917 + bne .L1971 ubfiz x0, x0, 2, 16 - ldr x2, [x29,120] - ldr w1, [x25,4] - str w1, [x2,x0] -.L1917: - add w22, w22, 1 - sxth w22, w22 - b .L1916 -.L1930: - mov x0, x19 + ldr w1, [x28,4] + str w1, [x22,x0] +.L1971: + add w4, w20, 1 + sxth w20, w4 + b .L1969 +.L1985: + mov x0, x27 bl ftl_free_no_use_map_blk - ldr x0, [x29,112] - ldrh w1, [x19,2] + ldr x0, [x29,128] + ldrh w1, [x27,2] add x20, x0, :lo12:.LANCHOR2 - ldrh w0, [x20,820] + ldrh w0, [x20,826] cmp w1, w0 - bne .L1920 - mov x0, x19 + bne .L1974 + mov x0, x27 bl ftl_map_blk_alloc_new_blk - b .L1920 -.L1915: - ldr x0, [x26,1048] - str x0, [x20,8] + b .L1974 +.L1968: + ldr x0, [x20,1056] + str x0, [x25,8] lsl x0, x28, 1 - add x28, x22, x0 - ldrh w1, [x22,x0] - ldrh w0, [x26,820] + add x1, x23, x0 + str x1, [x29,120] + ldrh w1, [x23,x0] + ldrh w0, [x20,826] sub w0, w0, #1 orr w0, w0, w1, lsl 10 mov w1, 1 - str w0, [x20,4] + str w0, [x25,4] mov w2, w1 - mov x0, x20 + mov x0, x25 bl FlashReadPages - ldr w0, [x20] + ldr w0, [x25] cmn w0, #1 - beq .L1931 + beq .L1986 ldrh w1, [x21] - mov w3, 0 - ldrh w0, [x19,4] + mov w28, 0 + ldrh w0, [x27,4] cmp w1, w0 - bne .L1940 - ldrh w0, [x21,8] - mov w1, 64245 - cmp w0, w1 - bne .L1940 -.L1922: - ldrh w0, [x26,820] + bne .L2007 + ldrh w1, [x21,8] + mov w0, 64245 + cmp w1, w0 + bne .L2007 + mov w5, w28 +.L1976: + ldrh w0, [x20,826] sub w0, w0, #1 - cmp w3, w0 - bge .L1925 - ldr x2, [x26,1048] - sbfiz x1, x3, 3, 32 + cmp w5, w0 + bge .L1979 + ldr x2, [x20,1056] + sbfiz x1, x5, 3, 32 ldrh w0, [x2,x1] - cmp w0, w23 - bcs .L1923 + cmp w0, w24 + bcs .L1977 add x1, x2, x1 ubfiz x0, x0, 2, 16 - ldr x2, [x29,120] ldr w1, [x1,4] - str w1, [x2,x0] -.L1923: - add w3, w3, 1 - sxth w3, w3 - b .L1922 -.L1931: - mov w3, 0 -.L1940: - ldrh w0, [x26,820] - cmp w3, w0 - bge .L1925 - ldrh w0, [x28] + str w1, [x22,x0] +.L1977: + add w5, w5, 1 + sxth w5, w5 + b .L1976 +.L1986: + mov w28, 0 +.L2007: + ldrh w0, [x20,826] + cmp w28, w0 + bge .L1979 + ldr x0, [x29,120] mov w1, 1 mov w2, w1 - str x3, [x29,96] - orr w0, w3, w0, lsl 10 - str w0, [x20,4] - mov x0, x20 + ldrh w0, [x0] + orr w0, w28, w0, lsl 10 + str w0, [x25,4] + mov x0, x25 bl FlashReadPages - ldr w0, [x20] - ldr x3, [x29,96] + adrp x0, .LANCHOR0 + add x0, x0, :lo12:.LANCHOR0 + ldrb w0, [x0,24] + cbz w0, .L1980 + ldr x0, [x25,16] + ldr w2, [x0,12] + cbz w2, .L1980 + ldr x0, [x25,8] + ldrh w1, [x20,834] + str x2, [x29,104] + bl js_hash + ldr x2, [x29,104] + cmp w2, w0 + beq .L1980 + mov w0, -1 + str w0, [x25] +.L1980: + ldr w0, [x25] cmn w0, #1 - beq .L1926 + beq .L1981 ldrh w0, [x21,8] - cmp w0, w23 - bcs .L1926 + cmp w0, w24 + bcs .L1981 ldrh w2, [x21] - ldrh w1, [x19,4] + ldrh w1, [x27,4] cmp w2, w1 - bne .L1926 + bne .L1981 ubfiz x0, x0, 2, 16 - ldr x2, [x29,120] - ldr w1, [x20,4] - str w1, [x2,x0] -.L1926: - add w3, w3, 1 - sxth w3, w3 - b .L1940 -.L1925: - add w6, w27, 1 - sxth w27, w6 - b .L1914 -.L1920: - mov x0, x19 + ldr w1, [x25,4] + str w1, [x22,x0] +.L1981: + add w5, w28, 1 + sxth w28, w5 + b .L2007 +.L1979: + add w19, w19, 1 + sxth w19, w19 + b .L1967 +.L1974: + mov x0, x27 bl ftl_map_blk_gc - mov x0, x19 + mov x0, x27 bl ftl_map_blk_gc mov w0, 0 ldp x19, x20, [sp,16] @@ -12377,7 +12645,7 @@ FtlMapTblRecovery: ldp x23, x24, [sp,48] ldp x25, x26, [sp,64] ldp x27, x28, [sp,80] - ldp x29, x30, [sp], 128 + ldp x29, x30, [sp], 144 ret .size FtlMapTblRecovery, .-FtlMapTblRecovery .align 2 @@ -12387,22 +12655,22 @@ FtlLoadVonderInfo: adrp x1, .LANCHOR2 add x1, x1, :lo12:.LANCHOR2 stp x29, x30, [sp, -16]! - add x0, x1, 3824 + add x0, x1, 3832 add x29, sp, 0 - ldrh w2, [x1,840] + ldrh w2, [x1,844] strh w2, [x0,10] mov w2, -3962 strh w2, [x0,4] - ldrh w2, [x1,1392] + ldrh w2, [x1,1400] strh w2, [x0,8] - ldrh w2, [x1,842] + ldrh w2, [x1,846] strh w2, [x0,6] - ldr x2, [x1,1208] + ldr x2, [x1,1216] str x2, [x0,16] - ldr x2, [x1,1224] + ldr x2, [x1,1232] str x2, [x0,24] - ldr x2, [x1,1216] - ldr x1, [x1,1232] + ldr x2, [x1,1224] + ldr x1, [x1,1240] str x2, [x0,32] str x1, [x0,40] bl FtlMapTblRecovery @@ -12420,33 +12688,33 @@ FtlL2PDataInit: stp x19, x20, [sp,16] adrp x20, .LANCHOR2 add x19, x20, :lo12:.LANCHOR2 - ldr w2, [x19,848] - ldr x0, [x19,1200] + ldr w2, [x19,852] + ldr x0, [x19,1208] lsl w2, w2, 1 bl ftl_memset - ldrh w3, [x19,828] + ldrh w3, [x19,834] mov w1, 255 - ldrh w2, [x19,858] - ldr x0, [x19,1272] + ldrh w2, [x19,862] + ldr x0, [x19,1280] mul w2, w3, w2 bl ftl_memset mov w2, 0 mov w4, -1 -.L1943: +.L2010: add x0, x20, :lo12:.LANCHOR2 - ldrh w1, [x0,858] + ldrh w1, [x0,862] cmp w1, w2 - bls .L1945 - ldr x3, [x0,1264] + bls .L2012 + ldr x3, [x0,1272] ubfiz x1, x2, 4, 16 add x3, x3, x1 str wzr, [x3,4] - ldr x3, [x0,1264] + ldr x3, [x0,1272] strh w4, [x3,x1] - ldr x3, [x0,1264] + ldr x3, [x0,1272] add x3, x3, x1 - ldrh w1, [x0,828] - ldr x0, [x0,1272] + ldrh w1, [x0,834] + ldr x0, [x0,1280] mul w1, w1, w2 add w2, w2, 1 sxtw x1, w1 @@ -12454,27 +12722,27 @@ FtlL2PDataInit: and x1, x1, -4 add x0, x0, x1 str x0, [x3,8] - b .L1943 -.L1945: + b .L2010 +.L2012: mov w2, -1 - strh w2, [x0,3754] - strh w2, [x0,3752] - add x1, x0, 3752 - ldr w2, [x0,848] strh w2, [x0,3762] - mov w2, -3902 - strh w2, [x0,3756] - ldrh w2, [x0,3908] strh w2, [x0,3760] - ldrh w2, [x0,856] - strh w2, [x0,3758] - ldr x2, [x0,1192] - str x2, [x0,3768] - ldr x2, [x0,1256] - str x2, [x0,3776] + add x1, x0, 3760 + ldr w2, [x0,852] + strh w2, [x0,3770] + mov w2, -3902 + strh w2, [x0,3764] + ldrh w2, [x0,3920] + strh w2, [x0,3768] + ldrh w2, [x0,860] + strh w2, [x0,3766] ldr x2, [x0,1200] + str x2, [x0,3776] + ldr x2, [x0,1264] str x2, [x0,3784] - ldr x0, [x0,1240] + ldr x2, [x0,1208] + str x2, [x0,3792] + ldr x0, [x0,1248] str x0, [x1,40] ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 @@ -12489,7 +12757,7 @@ FtlLoadMapInfo: bl FtlL2PDataInit adrp x0, .LANCHOR2 add x0, x0, :lo12:.LANCHOR2 - add x0, x0, 3752 + add x0, x0, 3760 bl FtlMapTblRecovery mov w0, 0 ldp x29, x30, [sp], 16 @@ -12505,42 +12773,42 @@ ftl_sb_update_avl_pages: uxth w2, w2 strh wzr, [x0,4] mov w6, 65535 - ldrh w4, [x4,748] -.L1948: + ldrh w4, [x4,756] +.L2015: cmp w2, w4 - bcs .L1954 + bcs .L2021 add x5, x0, x2, sxtw 1 ldrh w5, [x5,16] cmp w5, w6 - beq .L1949 + beq .L2016 ldrh w5, [x0,4] add w5, w5, 1 strh w5, [x0,4] -.L1949: +.L2016: add w2, w2, 1 uxth w2, w2 - b .L1948 -.L1954: + b .L2015 +.L2021: add x3, x3, :lo12:.LANCHOR2 mov w6, 65535 add x4, x0, x4, uxth 1 - ldrh w5, [x3,818] + ldrh w5, [x3,824] mov x3, x0 -.L1951: +.L2018: cmp x3, x4 - beq .L1955 + beq .L2022 ldrh w2, [x3,16] cmp w2, w6 - beq .L1952 + beq .L2019 ldrh w2, [x0,4] add w2, w5, w2 sub w2, w2, #1 sub w2, w2, w1 strh w2, [x0,4] -.L1952: +.L2019: add x3, x3, 2 - b .L1951 -.L1955: + b .L2018 +.L2022: ret .size ftl_sb_update_avl_pages, .-ftl_sb_update_avl_pages .align 2 @@ -12559,51 +12827,51 @@ FtlReUsePrevPpa: uxth w0, w0 add x2, x21, :lo12:.LANCHOR2 ubfiz x22, x0, 1, 16 - ldr x3, [x2,1184] + ldr x3, [x2,1192] ldrh w1, [x3,x22] - cbnz w1, .L1957 - ldr x19, [x2,3592] - cbz x19, .L1958 - ldrh w3, [x2,3600] + cbnz w1, .L2024 + ldr x19, [x2,3600] + cbz x19, .L2025 + ldrh w3, [x2,3608] mov x4, -6148914691236517206 - ldr x2, [x2,1280] + ldr x2, [x2,1288] mov w5, 65535 sub x19, x19, x2 asr x19, x19, 1 madd x19, x4, x19, x19 mov w4, 6 uxth w19, w19 -.L1959: +.L2026: cmp w1, w3 - beq .L1958 + beq .L2025 cmp w19, w0 - bne .L1960 + bne .L2027 add x21, x21, :lo12:.LANCHOR2 mov w1, w19 - add x0, x21, 3592 + add x0, x21, 3600 bl List_remove_node - ldrh w0, [x21,3600] + ldrh w0, [x21,3608] sub w0, w0, #1 - strh w0, [x21,3600] + strh w0, [x21,3608] mov w0, w19 bl INSERT_DATA_LIST - ldr x1, [x21,1184] + ldr x1, [x21,1192] ldrh w0, [x1,x22] add w0, w0, 1 strh w0, [x1,x22] - b .L1958 -.L1960: + b .L2025 +.L2027: umull x19, w19, w4 ldrh w19, [x2,x19] cmp w19, w5 - beq .L1958 + beq .L2025 add w1, w1, 1 uxth w1, w1 - b .L1959 -.L1957: + b .L2026 +.L2024: add w1, w1, 1 strh w1, [x3,x22] -.L1958: +.L2025: add x1, x29, 60 mov w0, w20 mov w2, 1 @@ -12633,49 +12901,49 @@ make_superblock: mov x20, x0 mov x23, x1 mov w25, -1 - ldrh w24, [x1,748] -.L1966: + ldrh w24, [x1,756] +.L2033: cmp w24, w21, uxth - bls .L1977 - add x0, x23, 776 + bls .L2044 + add x0, x23, 784 ldrh w1, [x19] ldrb w0, [x0,x21] bl V2P_block strh w25, [x22] mov w26, w0 bl FtlBbmIsBadBlock - cbnz w0, .L1967 + cbnz w0, .L2034 strh w26, [x22] ldrb w0, [x19,7] add w0, w0, 1 strb w0, [x19,7] -.L1967: +.L2034: add x21, x21, 1 add x22, x22, 2 - b .L1966 -.L1977: + b .L2033 +.L2044: add x0, x20, :lo12:.LANCHOR2 ldrb w1, [x19,7] strb wzr, [x19,9] - ldrh w2, [x0,818] + ldrh w2, [x0,824] mul w1, w1, w2 strh w1, [x19,4] - ldr w1, [x0,652] - cbz w1, .L1969 + ldr w1, [x0,660] + cbz w1, .L2036 ldrh w1, [x19] - ldr x0, [x0,1168] + ldr x0, [x0,1176] ldrh w0, [x0,x1,lsl 1] cmp w0, 79 - bhi .L1969 + bhi .L2036 mov w0, 1 strb w0, [x19,9] -.L1969: +.L2036: adrp x0, .LANCHOR0+24 ldrb w0, [x0,#:lo12:.LANCHOR0+24] - cbz w0, .L1970 + cbz w0, .L2037 mov w0, 1 strb w0, [x19,9] -.L1970: +.L2037: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -12688,79 +12956,104 @@ make_superblock: .global FtlLoadSysInfo .type FtlLoadSysInfo, %function FtlLoadSysInfo: - stp x29, x30, [sp, -64]! + stp x29, x30, [sp, -96]! mov w1, 0 add x29, sp, 0 stp x19, x20, [sp,16] adrp x20, .LANCHOR2 - str x23, [sp,48] add x19, x20, :lo12:.LANCHOR2 stp x21, x22, [sp,32] - add x21, x19, 1408 - add x23, x19, 3896 - ldr x0, [x19,1048] - ldrh w2, [x19,756] - str x0, [x21,8] - ldr x0, [x19,1112] + stp x23, x24, [sp,48] + stp x25, x26, [sp,64] + stp x27, x28, [sp,80] + add x22, x19, 1416 + add x23, x19, 3904 + ldr x0, [x19,1056] + ldrh w2, [x19,764] + str x0, [x22,8] + ldr x0, [x19,1120] lsl w2, w2, 1 - str x0, [x21,16] - ldr x0, [x19,1184] + str x0, [x22,16] + ldr x0, [x19,1192] bl ftl_memset - ldrh w0, [x19,3896] + ldrh w0, [x19,3904] mov w1, 65535 cmp w0, w1 - bne .L1979 -.L1987: + bne .L2046 +.L2057: mov w19, -1 - b .L1980 -.L1979: + b .L2047 +.L2046: mov w1, 1 + adrp x24, .LANCHOR0 + mov w25, 61604 + mov w26, -1 bl FtlGetLastWrittenPage - sxth w22, w0 + ldrsh w28, [x19,3904] + sxth w21, w0 add w0, w0, 1 strh w0, [x23,2] - mov w23, 61604 -.L1981: - tbnz w22, #31, .L1986 - ldrh w0, [x19,3896] +.L2048: + adrp x23, .LANCHOR0 + tbnz w21, #31, .L2056 + orr w0, w21, w28, lsl 10 mov w1, 1 + str w0, [x22,4] mov w2, w1 - orr w0, w22, w0, lsl 10 - str w0, [x21,4] - ldr x0, [x19,1048] - str x0, [x21,8] - mov x0, x21 + ldr x0, [x19,1056] + str x0, [x22,8] + mov x0, x22 bl FlashReadPages - ldr w0, [x21] + add x0, x24, :lo12:.LANCHOR0 + ldrb w0, [x0,24] + cbz w0, .L2049 + ldr x0, [x22,16] + ldr w27, [x0,12] + cbz w27, .L2049 + ldr x0, [x22,8] + ldrh w1, [x19,834] + bl js_hash + cmp w27, w0 + beq .L2049 + cbnz w21, .L2050 + ldrh w0, [x19,3908] + cmp w28, w0 + beq .L2050 + sxth w28, w0 + ldrh w21, [x19,826] + b .L2052 +.L2050: + str w26, [x22] +.L2049: + ldr w0, [x22] cmn w0, #1 - beq .L1982 - ldr x0, [x19,1048] + beq .L2052 + ldr x0, [x19,1056] ldr w1, [x0] mov w0, 19539 movk w0, 0x4654, lsl 16 cmp w1, w0 - bne .L1982 - ldr x0, [x19,1112] + bne .L2052 + ldr x0, [x19,1120] ldrh w0, [x0] - cmp w0, w23 - bne .L1982 -.L1986: + cmp w0, w25 + bne .L2052 +.L2056: add x19, x20, :lo12:.LANCHOR2 mov w2, 48 - add x22, x19, 1408 - add x0, x19, 3520 - adrp x21, .LANCHOR0 - ldr x1, [x22,8] + add x21, x19, 1416 + add x0, x19, 3528 + ldr x1, [x21,8] bl ftl_memcpy - ldr x1, [x22,8] - ldrh w2, [x19,756] - ldr x0, [x19,1184] + ldr x1, [x21,8] + ldrh w2, [x19,764] + ldr x0, [x19,1192] add x1, x1, 48 lsl w2, w2, 1 bl ftl_memcpy - ldrh w2, [x19,756] - add x0, x21, :lo12:.LANCHOR0 - ldr x3, [x22,8] + ldrh w2, [x19,764] + add x0, x23, :lo12:.LANCHOR0 + ldr x3, [x21,8] uxth x1, w2 ldr x0, [x0,16] add x1, x1, 24 @@ -12769,146 +13062,148 @@ FtlLoadSysInfo: add w2, w2, 4 add x1, x3, x1, lsl 2 bl ftl_memcpy - ldrh w0, [x19,860] - cbz w0, .L1984 - ldrh w0, [x19,756] - ldr x3, [x22,8] + ldrh w0, [x19,864] + cbz w0, .L2054 + ldrh w0, [x19,764] + ldr x3, [x21,8] lsr w1, w0, 3 - ldrh w2, [x19,856] + ldrh w2, [x19,860] add w1, w1, w0, lsl 1 - ldr x0, [x19,1248] + ldr x0, [x19,1256] add w1, w1, 52 lsl w2, w2, 2 and x1, x1, 65532 add x1, x3, x1 bl ftl_memcpy - b .L1984 -.L1982: - sub w22, w22, #1 - sxth w22, w22 - b .L1981 -.L1984: + b .L2054 +.L2052: + sub w21, w21, #1 + sxth w21, w21 + b .L2048 +.L2054: add x0, x20, :lo12:.LANCHOR2 mov w2, 19539 movk w2, 0x4654, lsl 16 - ldr w3, [x0,3520] + ldr w3, [x0,3528] cmp w3, w2 - bne .L1987 - ldrb w3, [x0,3530] - ldrh w2, [x0,770] - ldrh w6, [x0,3528] - strh w6, [x0,3902] + bne .L2057 + ldrb w3, [x0,3538] + ldrh w2, [x0,778] + ldrh w5, [x0,3536] + strh w5, [x0,3910] cmp w3, w2 - bne .L1987 - ldrh w3, [x0,818] - add x21, x21, :lo12:.LANCHOR0 - ldrh w2, [x0,824] - adrp x4, .LANCHOR4 - add x5, x4, :lo12:.LANCHOR4 - mov x19, x4 - mul w3, w3, w6 - str w3, [x0,1396] - str w6, [x5,3400] + bne .L2057 + ldrh w3, [x0,824] + add x23, x23, :lo12:.LANCHOR0 + ldrh w2, [x0,830] + adrp x6, .LANCHOR4 + add x4, x6, :lo12:.LANCHOR4 + mov x19, x6 + mul w3, w3, w5 + str w3, [x0,1404] + str w5, [x4,3416] mul w3, w3, w2 - str w3, [x21,4048] - ldrh w2, [x0,1302] - ldr w3, [x0,760] - strh wzr, [x5,3410] + str w3, [x23,4048] + ldrh w2, [x0,1310] + ldr w3, [x0,768] + strh wzr, [x4,3426] sub w2, w3, w2 - ldrh w3, [x0,748] - sub w2, w2, w6 - strb wzr, [x5,3414] - strb wzr, [x5,3416] + ldrh w3, [x0,756] + sub w2, w2, w5 + strb wzr, [x4,3430] + strb wzr, [x4,3432] udiv w2, w2, w3 - ldrh w3, [x0,3536] - strh w2, [x5,3404] + ldrh w3, [x0,3544] + strh w2, [x4,3420] lsr w7, w3, 6 and w3, w3, 63 - strb w3, [x0,3614] - ldrb w3, [x0,3531] - strb w3, [x0,3616] + strb w3, [x0,3622] + ldrb w3, [x0,3539] + strb w3, [x0,3624] mov w3, -1 - strh w3, [x5,3408] - ldrh w3, [x0,3538] - strh w3, [x0,3656] - ldrh w3, [x0,3540] - ldrh w6, [x0,3534] - lsr w5, w3, 6 + strh w3, [x4,3424] + ldrh w3, [x0,3546] + strh w3, [x0,3664] + ldrh w3, [x0,3548] + ldrh w5, [x0,3542] + lsr w4, w3, 6 and w3, w3, 63 - strb w3, [x0,3662] - ldrb w3, [x0,3532] - strb w3, [x0,3664] - ldrh w3, [x0,3542] - strh w3, [x0,3704] - ldrh w3, [x0,3544] - strh w5, [x0,3658] - lsr w5, w3, 6 + strb w3, [x0,3670] + ldrb w3, [x0,3540] + strb w3, [x0,3672] + ldrh w3, [x0,3550] + strh w3, [x0,3712] + ldrh w3, [x0,3552] + strh w4, [x0,3666] + lsr w4, w3, 6 and w3, w3, 63 - strh w6, [x0,3608] - strb w3, [x0,3710] - strh w7, [x0,3610] - strh w5, [x0,3706] - ldrb w3, [x0,3533] - strb w3, [x0,3712] - ldr w2, [x0,3552] - str w2, [x0,904] - ldr w1, [x0,3560] - ldr w2, [x0,872] - str wzr, [x0,880] + strh w5, [x0,3616] + strb w3, [x0,3718] + strh w7, [x0,3618] + strh w4, [x0,3714] + ldrb w3, [x0,3541] + strb w3, [x0,3720] + ldr w2, [x0,3560] + str w2, [x0,908] + ldr w1, [x0,3568] + ldr w2, [x0,876] str wzr, [x0,884] + str wzr, [x0,888] cmp w1, w2 + str wzr, [x0,904] str wzr, [x0,900] + str wzr, [x0,912] + str wzr, [x0,920] str wzr, [x0,896] - str wzr, [x0,908] - str wzr, [x0,916] - str wzr, [x0,892] - bls .L1988 - str w1, [x0,872] -.L1988: + bls .L2058 + str w1, [x0,876] +.L2058: add x0, x20, :lo12:.LANCHOR2 - ldr w1, [x0,3556] - ldr w2, [x0,876] + ldr w1, [x0,3564] + ldr w2, [x0,880] cmp w1, w2 - bls .L1989 - str w1, [x0,876] -.L1989: + bls .L2059 + str w1, [x0,880] +.L2059: mov w0, 65535 - cmp w6, w0 - beq .L1990 + cmp w5, w0 + beq .L2060 add x0, x20, :lo12:.LANCHOR2 - add x0, x0, 3608 + add x0, x0, 3616 bl make_superblock -.L1990: +.L2060: add x1, x20, :lo12:.LANCHOR2 - add x0, x1, 3656 - ldrh w2, [x1,3656] + add x0, x1, 3664 + ldrh w2, [x1,3664] mov w1, 65535 cmp w2, w1 - beq .L1991 + beq .L2061 bl make_superblock -.L1991: +.L2061: add x20, x20, :lo12:.LANCHOR2 mov w1, 65535 - add x0, x20, 3704 - ldrh w2, [x20,3704] + add x0, x20, 3712 + ldrh w2, [x20,3712] cmp w2, w1 - beq .L1992 + beq .L2062 bl make_superblock -.L1992: +.L2062: add x1, x19, :lo12:.LANCHOR4 mov w19, 0 - add x0, x1, 3408 - ldrh w2, [x1,3408] + add x0, x1, 3424 + ldrh w2, [x1,3424] mov w1, 65535 cmp w2, w1 - beq .L1980 + beq .L2047 bl make_superblock -.L1980: +.L2047: mov w0, w19 - ldr x23, [sp,48] ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] - ldp x29, x30, [sp], 64 + ldp x23, x24, [sp,48] + ldp x25, x26, [sp,64] + ldp x27, x28, [sp,80] + ldp x29, x30, [sp], 96 ret .size FtlLoadSysInfo, .-FtlLoadSysInfo .align 2 @@ -12934,9 +13229,9 @@ FtlDumpBlockInfo: adrp x0, .LC47 add x1, x1, 32 add x0, x0, :lo12:.LC47 - ldrh w23, [x19,818] + ldrh w23, [x19,824] bl printk - ldr x3, [x19,1184] + ldr x3, [x19,1192] ubfiz x2, x22, 1, 16 adrp x0, .LC62 mov w1, w22 @@ -12946,58 +13241,58 @@ FtlDumpBlockInfo: strh w22, [x29,112] add x0, x29, 112 bl make_superblock - cbnz w24, .L2006 - adrp x0, .LANCHOR0+136 - ldrb w0, [x0,#:lo12:.LANCHOR0+136] - cbz w0, .L2006 + cbnz w24, .L2082 + adrp x0, .LANCHOR0+4044 + ldrb w0, [x0,#:lo12:.LANCHOR0+4044] + cbz w0, .L2082 mov w0, w22 bl ftl_get_blk_mode cmp w0, 1 mov w22, w0 - bne .L1998 - ldrh w23, [x19,820] - b .L1998 -.L2006: + bne .L2074 + ldrh w23, [x19,826] + b .L2074 +.L2082: mov w22, 0 -.L1998: +.L2074: add x3, x20, :lo12:.LANCHOR2 adrp x0, .LC63 adrp x24, .LC58 add x0, x0, :lo12:.LC63 mov w1, w22 mov w2, w23 - ldrh w3, [x3,818] + ldrh w3, [x3,824] mov w21, 0 mov w26, 65535 mov w27, 56 mov w25, 4 add x24, x24, :lo12:.LC58 bl printk -.L1999: +.L2075: add x0, x20, :lo12:.LANCHOR2 mov x3, 0 mov w19, w3 - ldrh w5, [x0,748] - ldrh w6, [x0,828] - ldrh w7, [x0,830] -.L2000: + ldrh w5, [x0,756] + ldrh w6, [x0,834] + ldrh w7, [x0,836] +.L2076: cmp w5, w3, uxth - bls .L2014 + bls .L2090 add x0, x29, 112 add x0, x0, x3, lsl 1 ldrh w1, [x0,16] cmp w1, w26 - beq .L2001 + beq .L2077 add x2, x20, :lo12:.LANCHOR2 orr w1, w21, w1, lsl 10 umull x0, w19, w27 - ldr x4, [x2,992] + ldr x4, [x2,1000] add x4, x4, x0 str w1, [x4,4] - ldr x1, [x2,992] - ldr x4, [x2,1072] + ldr x1, [x2,1000] + ldr x4, [x2,1080] add x0, x1, x0 - ldr x2, [x2,1128] + ldr x2, [x2,1136] mul w1, w19, w6 sdiv w1, w1, w25 add x1, x4, x1, sxtw 2 @@ -13008,26 +13303,26 @@ FtlDumpBlockInfo: sdiv w1, w1, w25 add x1, x2, x1, sxtw 2 str x1, [x0,16] -.L2001: +.L2077: add x3, x3, 1 - b .L2000 -.L2014: + b .L2076 +.L2090: add x0, x20, :lo12:.LANCHOR2 mov w1, w19 mov w2, w22 mov x28, 0 - ldr x0, [x0,992] + ldr x0, [x0,1000] bl FlashReadPages mov x8, 56 -.L2003: +.L2079: cmp w19, w28, uxth - bls .L2015 + bls .L2091 add x0, x20, :lo12:.LANCHOR2 ldrh w1, [x29,112] mul x2, x28, x8 str x8, [x29,104] add x28, x28, 1 - ldr x4, [x0,992] + ldr x4, [x0,1000] add x3, x4, x2 ldr x0, [x3,8] ldr x7, [x3,16] @@ -13044,13 +13339,13 @@ FtlDumpBlockInfo: ldr w7, [x7,12] bl printk ldr x8, [x29,104] - b .L2003 -.L2015: + b .L2079 +.L2091: add w21, w21, 1 uxth w21, w21 cmp w21, w23 - bne .L1999 -.L2005: + bne .L2075 +.L2081: sub sp, x29, #16 mov w0, 0 ldp x19, x20, [sp,32] @@ -13086,17 +13381,17 @@ FtlScanAllBlock: add x24, x24, :lo12:.LC66 stp x25, x26, [sp,80] bl printk -.L2017: +.L2093: adrp x21, .LANCHOR2 add x19, x21, :lo12:.LANCHOR2 - ldrh w0, [x19,758] + ldrh w0, [x19,766] cmp w0, w20 - bls .L2026 + bls .L2102 mov w0, w20 strh w20, [x29,80] bl ftl_get_blk_mode mov w3, w0 - ldr x4, [x19,1184] + ldr x4, [x19,1192] ubfiz x2, x20, 1, 16 mov w1, w20 mov x0, x22 @@ -13105,31 +13400,31 @@ FtlScanAllBlock: add x0, x29, 80 bl make_superblock mov x1, 0 - ldrh w6, [x19,748] - ldrh w7, [x19,828] + ldrh w6, [x19,756] + ldrh w7, [x19,834] mov w9, 65535 - ldrh w8, [x19,830] + ldrh w8, [x19,836] mov w10, 56 mov w19, w1 mov w5, 4 -.L2018: +.L2094: cmp w6, w1, uxth - bls .L2027 + bls .L2103 add x0, x29, 80 add x0, x0, x1, lsl 1 ldrh w0, [x0,16] cmp w0, w9 - beq .L2019 + beq .L2095 add x3, x21, :lo12:.LANCHOR2 lsl w0, w0, 10 umull x2, w19, w10 - ldr x4, [x3,992] + ldr x4, [x3,1000] add x4, x4, x2 str w0, [x4,4] - ldr x0, [x3,992] - ldr x4, [x3,1072] + ldr x0, [x3,1000] + ldr x4, [x3,1080] add x2, x0, x2 - ldr x3, [x3,1128] + ldr x3, [x3,1136] mul w0, w19, w7 sdiv w0, w0, w5 add x0, x4, x0, sxtw 2 @@ -13140,22 +13435,22 @@ FtlScanAllBlock: sdiv w0, w0, w5 add x0, x3, x0, sxtw 2 str x0, [x2,16] -.L2019: +.L2095: add x1, x1, 1 - b .L2018 -.L2027: + b .L2094 +.L2103: add x0, x21, :lo12:.LANCHOR2 mov w1, w19 mov w2, 0 mov x25, 0 mov x26, 56 - ldr x0, [x0,992] + ldr x0, [x0,1000] bl FlashReadPages -.L2021: +.L2097: add x0, x21, :lo12:.LANCHOR2 cmp w19, w25, uxth - bls .L2028 - ldr x4, [x0,992] + bls .L2104 + ldr x4, [x0,1000] mul x2, x25, x26 ldrh w1, [x29,80] add x25, x25, 1 @@ -13174,22 +13469,22 @@ FtlScanAllBlock: ldr w3, [x3,4] ldr w7, [x7,12] bl printk - b .L2021 -.L2028: - ldr x0, [x0,992] + b .L2097 +.L2104: + ldr x0, [x0,1000] mov w1, w19 mov w2, 1 mov x25, 0 mov x26, 56 bl FlashReadPages -.L2023: +.L2099: cmp w19, w25, uxth - bls .L2029 + bls .L2105 add x0, x21, :lo12:.LANCHOR2 ldrh w1, [x29,80] mul x2, x25, x26 add x25, x25, 1 - ldr x4, [x0,992] + ldr x4, [x0,1000] add x3, x4, x2 ldr x0, [x3,8] ldr x7, [x3,16] @@ -13205,12 +13500,12 @@ FtlScanAllBlock: ldr w3, [x3,4] ldr w7, [x7,12] bl printk - b .L2023 -.L2029: + b .L2099 +.L2105: add w20, w20, 1 uxth w20, w20 - b .L2017 -.L2026: + b .L2093 +.L2102: sub sp, x29, #16 mov w0, 0 ldp x19, x20, [sp,32] @@ -13237,34 +13532,34 @@ SupperBlkListInit: stp x27, x28, [sp,80] mov w23, 6 mov w27, 0 - ldrh w2, [x19,758] + ldrh w2, [x19,766] mov w22, w27 - ldr x0, [x19,1280] + ldr x0, [x19,1288] mov w24, -1 mov w25, 32768 mul w2, w2, w23 bl ftl_memset - str xzr, [x19,3592] - str xzr, [x19,3568] + str xzr, [x19,3600] str xzr, [x19,3576] - strh wzr, [x19,3584] - strh wzr, [x19,3600] - strh wzr, [x19,862] + str xzr, [x19,3584] + strh wzr, [x19,3592] + strh wzr, [x19,3608] + strh wzr, [x19,866] mov w19, w27 -.L2031: +.L2107: add x0, x21, :lo12:.LANCHOR2 - ldrh w1, [x0,756] + ldrh w1, [x0,764] cmp w19, w1 - bge .L2038 + bge .L2114 mov w20, 0 - ldrh w3, [x0,748] - ldrh w2, [x0,818] + ldrh w3, [x0,756] + ldrh w2, [x0,824] mov w28, w20 mov x26, x0 -.L2039: +.L2115: cmp w28, w3 - bge .L2040 - add x0, x26, 776 + bge .L2116 + add x0, x26, 784 mov w1, w19 str x2, [x29,96] str x3, [x29,104] @@ -13273,56 +13568,56 @@ SupperBlkListInit: bl FtlBbmIsBadBlock ldr x3, [x29,104] ldr x2, [x29,96] - cbnz w0, .L2032 + cbnz w0, .L2108 add w20, w2, w20 sxth w20, w20 -.L2032: +.L2108: add w28, w28, 1 sxth w28, w28 - b .L2039 -.L2040: - cbz w20, .L2034 + b .L2115 +.L2116: + cbz w20, .L2110 sdiv w20, w25, w20 sxth w20, w20 - b .L2035 -.L2034: + b .L2111 +.L2110: add x0, x21, :lo12:.LANCHOR2 - ldr x0, [x0,1184] + ldr x0, [x0,1192] strh w24, [x0,w19,sxtw 1] -.L2035: +.L2111: add x0, x21, :lo12:.LANCHOR2 - ldr x1, [x0,1280] + ldr x1, [x0,1288] smaddl x1, w19, w23, x1 strh w20, [x1,4] - ldrh w1, [x0,3608] + ldrh w1, [x0,3616] cmp w19, w1 - beq .L2036 - ldrh w1, [x0,3656] + beq .L2112 + ldrh w1, [x0,3664] cmp w19, w1 - beq .L2036 - ldrh w1, [x0,3704] + beq .L2112 + ldrh w1, [x0,3712] cmp w19, w1 - beq .L2036 - ldr x0, [x0,1184] + beq .L2112 + ldr x0, [x0,1192] ldrh w0, [x0,w19,sxtw 1] - cbnz w0, .L2037 + cbnz w0, .L2113 add w27, w27, 1 mov w0, w19 uxth w27, w27 bl INSERT_FREE_LIST - b .L2036 -.L2037: + b .L2112 +.L2113: add w22, w22, 1 mov w0, w19 uxth w22, w22 bl INSERT_DATA_LIST -.L2036: +.L2112: add w19, w19, 1 sxth w19, w19 - b .L2031 -.L2038: - strh w22, [x0,3584] - strh w27, [x0,3600] + b .L2107 +.L2114: + strh w22, [x0,3592] + strh w27, [x0,3608] mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -13341,48 +13636,48 @@ Ftl_save_ext_data: add x0, x0, :lo12:.LANCHOR4 movk w1, 0x4654, lsl 16 stp x29, x30, [sp, -16]! - add x2, x0, 3456 + add x2, x0, 3472 add x29, sp, 0 - ldr w3, [x0,3456] + ldr w3, [x0,3472] cmp w3, w1 - bne .L2041 - mov w1, 80 + bne .L2117 + mov w1, 83 movk w1, 0x5000, lsl 16 str w1, [x2,4] - ldr w1, [x0,3968] - ldr w0, [x0,3972] + ldr w1, [x0,3984] + ldr w0, [x0,3988] str w0, [x2,92] adrp x0, .LANCHOR2 add x0, x0, :lo12:.LANCHOR2 str w1, [x2,88] - ldr w1, [x0,880] - str w1, [x2,8] ldr w1, [x0,884] + str w1, [x2,8] + ldr w1, [x0,888] str w1, [x2,12] - ldr w1, [x0,900] + ldr w1, [x0,904] str w1, [x2,16] - ldr w1, [x0,896] + ldr w1, [x0,900] str w1, [x2,20] - ldr w1, [x0,908] - str w1, [x2,28] ldr w1, [x0,912] + str w1, [x2,28] + ldr w1, [x0,916] str w1, [x2,32] - ldr w1, [x0,888] - str w1, [x2,36] ldr w1, [x0,892] + str w1, [x2,36] + ldr w1, [x0,896] str w1, [x2,40] - ldr w1, [x0,916] - str w1, [x2,44] ldr w1, [x0,920] + str w1, [x2,44] + ldr w1, [x0,924] str w1, [x2,48] - ldr w1, [x0,868] - ldr w0, [x0,864] + ldr w1, [x0,872] + ldr w0, [x0,868] str w1, [x2,60] mov w1, 1 str w0, [x2,64] mov w0, 0 bl FtlVendorPartWrite -.L2041: +.L2117: ldp x29, x30, [sp], 16 ret .size Ftl_save_ext_data, .-Ftl_save_ext_data @@ -13395,51 +13690,51 @@ FtlEctTblFlush: add x3, x2, :lo12:.LANCHOR2 stp x29, x30, [sp, -16]! add x29, sp, 0 - ldr w4, [x3,652] - cbz w4, .L2044 - ldr w3, [x3,920] + ldr w4, [x3,660] + cbz w4, .L2120 + ldr w3, [x3,924] cmp w3, 39 mov w3, 4 csel w1, w1, w3, hi -.L2044: +.L2120: adrp x3, .LANCHOR4 add x3, x3, :lo12:.LANCHOR4 - ldrh w4, [x3,3976] + ldrh w4, [x3,3992] cmp w4, 31 - bhi .L2045 + bhi .L2121 add w4, w4, 1 mov w1, 1 - strh w4, [x3,3976] -.L2045: - cbnz w0, .L2046 + strh w4, [x3,3992] +.L2121: + cbnz w0, .L2122 add x0, x2, :lo12:.LANCHOR2 - ldr x3, [x0,1160] + ldr x3, [x0,1168] ldr w0, [x3,20] add w1, w1, w0 ldr w0, [x3,16] cmp w0, w1 - bcc .L2047 -.L2046: + bcc .L2123 +.L2122: add x2, x2, :lo12:.LANCHOR2 - ldr x0, [x2,1160] + ldr x0, [x2,1168] ldr w1, [x0,16] str w1, [x0,20] mov w1, 17221 movk w1, 0x4254, lsl 16 str w1, [x0] - ldr x0, [x2,1160] - ldrh w1, [x2,1144] + ldr x0, [x2,1168] + ldrh w1, [x2,1152] str wzr, [x0,4] lsl w3, w1, 9 str w3, [x0,12] ldr w3, [x0,8] - ldr x2, [x2,1160] + ldr x2, [x2,1168] add w3, w3, 1 str w3, [x0,8] mov w0, 64 bl FtlVendorPartWrite bl Ftl_save_ext_data -.L2047: +.L2123: mov w0, 0 ldp x29, x30, [sp], 16 ret @@ -13456,84 +13751,84 @@ Ftl_load_ext_data: adrp x19, .LANCHOR4 str x21, [sp,32] add x20, x19, :lo12:.LANCHOR4 - add x21, x20, 3456 + add x21, x20, 3472 mov x2, x21 bl FtlVendorPartRead - ldr w1, [x20,3456] + ldr w1, [x20,3472] mov w0, 19539 movk w0, 0x4654, lsl 16 cmp w1, w0 - beq .L2052 + beq .L2128 mov x0, x21 mov w1, 0 mov w2, 512 bl ftl_memset mov w0, 19539 movk w0, 0x4654, lsl 16 - str w0, [x20,3456] -.L2052: + str w0, [x20,3472] +.L2128: add x1, x19, :lo12:.LANCHOR4 mov w2, 19539 movk w2, 0x4654, lsl 16 - add x0, x1, 3456 + add x0, x1, 3472 adrp x20, .LANCHOR2 - ldr w3, [x1,3456] + ldr w3, [x1,3472] cmp w3, w2 - bne .L2053 - ldr w2, [x1,3544] - str w2, [x1,3968] - ldr w2, [x1,3548] - str w2, [x1,3972] + bne .L2129 + ldr w2, [x1,3560] + str w2, [x1,3984] + ldr w2, [x1,3564] + str w2, [x1,3988] add x1, x20, :lo12:.LANCHOR2 ldr w2, [x0,8] - str w2, [x1,880] - ldr w2, [x0,12] str w2, [x1,884] + ldr w2, [x0,12] + str w2, [x1,888] ldr w2, [x0,16] - str w2, [x1,900] + str w2, [x1,904] ldr w2, [x0,20] - str w2, [x1,896] + str w2, [x1,900] ldr w2, [x0,28] - str w2, [x1,908] - ldr w2, [x0,32] str w2, [x1,912] + ldr w2, [x0,32] + str w2, [x1,916] ldr w2, [x0,36] - str w2, [x1,888] - ldr w2, [x0,40] str w2, [x1,892] + ldr w2, [x0,40] + str w2, [x1,896] ldr w2, [x0,44] - str w2, [x1,916] + str w2, [x1,920] ldr w2, [x0,48] ldr w0, [x0,60] - str w2, [x1,920] - str w0, [x1,868] -.L2053: + str w2, [x1,924] + str w0, [x1,872] +.L2129: add x1, x19, :lo12:.LANCHOR4 add x0, x20, :lo12:.LANCHOR2 - ldr w2, [x1,3524] + ldr w2, [x1,3540] mov w1, 34661 movk w1, 0x1234, lsl 16 - str wzr, [x0,864] + str wzr, [x0,868] cmp w2, w1 - bne .L2054 + bne .L2130 mov w1, 1 - str w1, [x0,652] + str w1, [x0,660] adrp x0, .LC45 adrp x1, .LC67 add x0, x0, :lo12:.LC45 add x1, x1, :lo12:.LC67 bl printk -.L2054: +.L2130: add x0, x20, :lo12:.LANCHOR2 add x19, x19, :lo12:.LANCHOR4 ldr x21, [sp,32] - ldrh w2, [x0,808] - ldr w3, [x0,904] - ldr w1, [x0,908] - ldrh w0, [x0,756] + ldrh w2, [x0,816] + ldr w3, [x0,908] + ldr w1, [x0,912] + ldrh w0, [x0,764] madd w1, w2, w3, w1 udiv w0, w1, w0 - str w0, [x19,3980] + str w0, [x19,3996] ldp x19, x20, [sp,16] ldp x29, x30, [sp], 48 ret @@ -13553,33 +13848,33 @@ update_multiplier_value: stp x23, x24, [sp,48] mov x22, 0 mov x21, x0 - ldrh w24, [x1,748] + ldrh w24, [x1,756] mov w19, w22 - ldrh w25, [x1,818] + ldrh w25, [x1,824] mov x23, x1 -.L2056: +.L2132: cmp w24, w22, uxth - bls .L2063 - add x0, x23, 776 + bls .L2139 + add x0, x23, 784 mov w1, w20 ldrb w0, [x0,x22] bl V2P_block bl FtlBbmIsBadBlock - cbnz w0, .L2057 + cbnz w0, .L2133 add w19, w19, w25 uxth w19, w19 -.L2057: +.L2133: add x22, x22, 1 - b .L2056 -.L2063: - cbz w19, .L2059 + b .L2132 +.L2139: + cbz w19, .L2135 mov w0, 32768 sdiv w19, w0, w19 -.L2059: +.L2135: add x0, x21, :lo12:.LANCHOR2 mov w1, 6 umull x20, w20, w1 - ldr x0, [x0,1280] + ldr x0, [x0,1288] add x20, x0, x20 mov w0, 0 strh w19, [x20,4] @@ -13596,18 +13891,18 @@ update_multiplier_value: GetFreeBlockMinEraseCount: adrp x2, .LANCHOR2 add x2, x2, :lo12:.LANCHOR2 - ldr x1, [x2,3592] + ldr x1, [x2,3600] mov w0, w1 - cbz x1, .L2065 - ldr x0, [x2,1280] + cbz x1, .L2141 + ldr x0, [x2,1288] sub x1, x1, x0 mov x0, -6148914691236517206 asr x1, x1, 1 madd x1, x0, x1, x1 - ldr x0, [x2,1168] + ldr x0, [x2,1176] and x1, x1, 65535 ldrh w0, [x0,x1,lsl 1] -.L2065: +.L2141: ret .size GetFreeBlockMinEraseCount, .-GetFreeBlockMinEraseCount .align 2 @@ -13617,15 +13912,15 @@ GetFreeBlockMaxEraseCount: adrp x2, .LANCHOR2 uxth w4, w0 add x5, x2, :lo12:.LANCHOR2 - ldr x1, [x5,3592] + ldr x1, [x5,3600] mov w0, w1 - cbz x1, .L2068 - ldrh w3, [x5,3600] + cbz x1, .L2144 + ldrh w3, [x5,3608] mov w0, 7 mov w6, 6 mov w7, 65535 mul w3, w3, w0 - ldr x0, [x5,1280] + ldr x0, [x5,1288] asr w3, w3, 3 cmp w4, w3 sub x1, x1, x0 @@ -13635,25 +13930,25 @@ GetFreeBlockMaxEraseCount: madd x1, x3, x1, x1 mov w3, 0 uxth w1, w1 -.L2070: +.L2146: cmp w3, w4 - beq .L2073 + beq .L2149 umull x5, w1, w6 ldrh w5, [x0,x5] cmp w5, w7 - bne .L2071 -.L2073: + bne .L2147 +.L2149: add x2, x2, :lo12:.LANCHOR2 ubfiz x1, x1, 1, 16 - ldr x0, [x2,1168] + ldr x0, [x2,1176] ldrh w0, [x0,x1] - b .L2068 -.L2071: + b .L2144 +.L2147: add w3, w3, 1 mov w1, w5 uxth w3, w3 - b .L2070 -.L2068: + b .L2146 +.L2144: ret .size GetFreeBlockMaxEraseCount, .-GetFreeBlockMaxEraseCount .align 2 @@ -13684,17 +13979,17 @@ FtlPrintInfo2buf: add x20, x20, x0, sxtw adrp x1, .LC70 mov x0, x20 - ldr w2, [x22,836] + ldr w2, [x22,840] add x1, x1, :lo12:.LC70 bl sprintf add x20, x20, x0, sxtw - adrp x0, .LANCHOR1+3160 - ldr w0, [x0,#:lo12:.LANCHOR1+3160] + adrp x0, .LANCHOR1+3288 + ldr w0, [x0,#:lo12:.LANCHOR1+3288] cmp w0, 1 - beq .L2076 + beq .L2152 sub w0, w20, w23 - b .L2077 -.L2076: + b .L2153 +.L2152: add x0, x29, 96 add x1, x29, 100 add x2, x29, 104 @@ -13716,75 +14011,75 @@ FtlPrintInfo2buf: adrp x20, .LANCHOR4 bl strcpy add x20, x20, :lo12:.LANCHOR4 - ldr w2, [x22,1396] + ldr w2, [x22,1404] adrp x1, .LC73 mov x0, x21 add x1, x1, :lo12:.LC73 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x22,3892] + ldr w2, [x22,3900] adrp x1, .LC74 mov x0, x21 add x1, x1, :lo12:.LC74 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x22,900] + ldr w2, [x22,904] adrp x1, .LC75 mov x0, x21 add x1, x1, :lo12:.LC75 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x22,888] + ldr w2, [x22,892] adrp x1, .LC76 mov x0, x21 add x1, x1, :lo12:.LC76 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x22,884] + ldr w2, [x22,888] adrp x1, .LC77 mov x0, x21 add x1, x1, :lo12:.LC77 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x22,892] + ldr w2, [x22,896] adrp x1, .LC78 mov x0, x21 add x1, x1, :lo12:.LC78 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x22,896] + ldr w2, [x22,900] adrp x1, .LC79 mov x0, x21 add x1, x1, :lo12:.LC79 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x22,880] + ldr w2, [x22,884] adrp x1, .LC80 mov x0, x21 add x1, x1, :lo12:.LC80 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x20,3968] + ldr w2, [x20,3984] adrp x1, .LC81 mov x0, x21 add x1, x1, :lo12:.LC81 lsr w2, w2, 11 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x20,3972] + ldr w2, [x20,3988] adrp x1, .LC82 mov x0, x21 add x1, x1, :lo12:.LC82 lsr w2, w2, 11 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x22,872] + ldr w2, [x22,876] adrp x1, .LC83 mov x0, x21 add x1, x1, :lo12:.LC83 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x22,876] + ldr w2, [x22,880] adrp x1, .LC84 add x1, x1, :lo12:.LC84 mov x0, x21 @@ -13792,61 +14087,61 @@ FtlPrintInfo2buf: add x21, x21, x0, sxtw bl FtlBbtCalcTotleCnt uxth w3, w0 - ldrh w2, [x22,1302] + ldrh w2, [x22,1310] adrp x1, .LC85 mov x0, x21 add x1, x1, :lo12:.LC85 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x22,3600] + ldrh w2, [x22,3608] adrp x1, .LC86 mov x0, x21 add x1, x1, :lo12:.LC86 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x22,904] + ldr w2, [x22,908] adrp x1, .LC87 mov x0, x21 add x1, x1, :lo12:.LC87 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x22,908] + ldr w2, [x22,912] adrp x1, .LC88 mov x0, x21 add x1, x1, :lo12:.LC88 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x20,3980] + ldr w2, [x20,3996] adrp x1, .LC89 mov x0, x21 add x1, x1, :lo12:.LC89 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x22,912] + ldr w2, [x22,916] adrp x1, .LC90 mov x0, x21 add x1, x1, :lo12:.LC90 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x22,916] + ldr w2, [x22,920] adrp x1, .LC91 mov x0, x21 add x1, x1, :lo12:.LC91 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x22,920] + ldr w2, [x22,924] adrp x1, .LC92 mov x0, x21 add x1, x1, :lo12:.LC92 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x22,3550] + ldrh w2, [x22,3558] adrp x1, .LC93 mov x0, x21 add x1, x1, :lo12:.LC93 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x22,3548] + ldrh w2, [x22,3556] adrp x1, .LC94 mov x0, x21 add x1, x1, :lo12:.LC94 @@ -13858,232 +14153,232 @@ FtlPrintInfo2buf: add x1, x1, :lo12:.LC95 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x22,852] + ldr w2, [x22,856] adrp x1, .LC96 mov x0, x21 add x1, x1, :lo12:.LC96 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x22,744] + ldr w2, [x22,752] adrp x1, .LC97 mov x0, x21 add x1, x1, :lo12:.LC97 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x22,1470] + ldrh w2, [x22,1478] adrp x1, .LC98 mov x0, x21 add x1, x1, :lo12:.LC98 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x22,756] + ldrh w2, [x22,764] adrp x1, .LC99 mov x0, x21 add x1, x1, :lo12:.LC99 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x20,3404] + ldrh w2, [x20,3420] adrp x1, .LC100 mov x0, x21 add x1, x1, :lo12:.LC100 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x22,760] + ldr w2, [x22,768] adrp x1, .LC101 mov x0, x21 add x1, x1, :lo12:.LC101 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x22,3896] + ldrh w2, [x22,3904] adrp x1, .LC102 mov x0, x21 add x1, x1, :lo12:.LC102 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x22,1296] + ldrh w2, [x22,1304] adrp x1, .LC103 mov x0, x21 add x1, x1, :lo12:.LC103 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x22,3610] + ldrh w2, [x22,3618] adrp x1, .LC104 mov x0, x21 add x1, x1, :lo12:.LC104 bl sprintf add x21, x21, x0, sxtw - ldrb w2, [x22,3614] + ldrb w2, [x22,3622] adrp x1, .LC105 mov x0, x21 add x1, x1, :lo12:.LC105 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x22,3608] + ldrh w2, [x22,3616] adrp x1, .LC106 mov x0, x21 add x1, x1, :lo12:.LC106 bl sprintf add x21, x21, x0, sxtw - ldrb w2, [x22,3616] + ldrb w2, [x22,3624] adrp x1, .LC107 mov x0, x21 add x1, x1, :lo12:.LC107 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x22,3612] + ldrh w2, [x22,3620] adrp x1, .LC108 mov x0, x21 add x1, x1, :lo12:.LC108 bl sprintf add x21, x21, x0, sxtw - ldrh w3, [x22,3608] + ldrh w3, [x22,3616] adrp x1, .LC109 - ldr x2, [x22,1184] + ldr x2, [x22,1192] mov x0, x21 add x1, x1, :lo12:.LC109 ldrh w2, [x2,x3,lsl 1] bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x22,3658] + ldrh w2, [x22,3666] adrp x1, .LC110 mov x0, x21 add x1, x1, :lo12:.LC110 bl sprintf add x21, x21, x0, sxtw - ldrb w2, [x22,3662] + ldrb w2, [x22,3670] adrp x1, .LC111 mov x0, x21 add x1, x1, :lo12:.LC111 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x22,3656] + ldrh w2, [x22,3664] adrp x1, .LC112 mov x0, x21 add x1, x1, :lo12:.LC112 bl sprintf add x21, x21, x0, sxtw - ldrb w2, [x22,3664] + ldrb w2, [x22,3672] adrp x1, .LC113 mov x0, x21 add x1, x1, :lo12:.LC113 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x22,3660] + ldrh w2, [x22,3668] adrp x1, .LC114 mov x0, x21 add x1, x1, :lo12:.LC114 bl sprintf add x21, x21, x0, sxtw - ldrh w3, [x22,3656] + ldrh w3, [x22,3664] adrp x1, .LC115 - ldr x2, [x22,1184] + ldr x2, [x22,1192] mov x0, x21 add x1, x1, :lo12:.LC115 ldrh w2, [x2,x3,lsl 1] bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x22,3706] + ldrh w2, [x22,3714] adrp x1, .LC116 mov x0, x21 add x1, x1, :lo12:.LC116 bl sprintf add x21, x21, x0, sxtw - ldrb w2, [x22,3710] + ldrb w2, [x22,3718] adrp x1, .LC117 mov x0, x21 add x1, x1, :lo12:.LC117 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x22,3704] + ldrh w2, [x22,3712] adrp x1, .LC118 mov x0, x21 add x1, x1, :lo12:.LC118 bl sprintf add x21, x21, x0, sxtw - ldrb w2, [x22,3712] + ldrb w2, [x22,3720] adrp x1, .LC119 mov x0, x21 add x1, x1, :lo12:.LC119 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x22,3708] + ldrh w2, [x22,3716] adrp x1, .LC120 mov x0, x21 add x1, x1, :lo12:.LC120 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x20,3410] + ldrh w2, [x20,3426] adrp x1, .LC121 mov x0, x21 add x1, x1, :lo12:.LC121 bl sprintf add x21, x21, x0, sxtw - ldrb w2, [x20,3414] + ldrb w2, [x20,3430] adrp x1, .LC122 mov x0, x21 add x1, x1, :lo12:.LC122 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x20,3408] + ldrh w2, [x20,3424] adrp x1, .LC123 mov x0, x21 add x1, x1, :lo12:.LC123 bl sprintf add x21, x21, x0, sxtw - ldrb w2, [x20,3416] + ldrb w2, [x20,3432] adrp x1, .LC124 mov x0, x21 add x1, x1, :lo12:.LC124 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x20,3412] + ldrh w2, [x20,3428] adrp x1, .LC125 mov x0, x21 add x1, x1, :lo12:.LC125 bl sprintf add x21, x21, x0, sxtw - ldr w3, [x22,868] + ldr w3, [x22,872] adrp x1, .LC126 - ldr w2, [x22,652] + ldr w2, [x22,660] add x1, x1, :lo12:.LC126 - ldr w4, [x20,3540] + ldr w4, [x20,3556] mov x0, x21 - ldr w5, [x20,3532] + ldr w5, [x20,3548] orr w2, w2, w3, lsl 8 - ldr w3, [x20,3536] + ldr w3, [x20,3552] bl sprintf add x19, x21, x0, sxtw - ldr w2, [x20,3528] + ldr w2, [x20,3544] adrp x1, .LC127 mov x0, x19 add x1, x1, :lo12:.LC127 bl sprintf add x19, x19, x0, sxtw - ldr w2, [x20,3552] + ldr w2, [x20,3568] adrp x1, .LC128 mov x0, x19 add x1, x1, :lo12:.LC128 bl sprintf add x19, x19, x0, sxtw - ldrh w2, [x22,956] + ldrh w2, [x22,960] adrp x1, .LC129 mov x0, x19 add x1, x1, :lo12:.LC129 bl sprintf add x19, x19, x0, sxtw - ldrh w2, [x22,958] + ldrh w2, [x22,962] adrp x1, .LC130 mov x0, x19 add x1, x1, :lo12:.LC130 bl sprintf add x19, x19, x0, sxtw - ldr w2, [x22,940] + ldr w2, [x22,944] adrp x1, .LC131 mov x0, x19 add x1, x1, :lo12:.LC131 bl sprintf add x19, x19, x0, sxtw - ldrh w2, [x22,960] + ldrh w2, [x22,964] adrp x1, .LC132 add x1, x1, :lo12:.LC132 mov x0, x19 @@ -14096,7 +14391,7 @@ FtlPrintInfo2buf: add x1, x1, :lo12:.LC133 bl sprintf add x19, x19, x0, sxtw - ldrh w0, [x22,3600] + ldrh w0, [x22,3608] bl GetFreeBlockMaxEraseCount uxth w2, w0 adrp x1, .LC134 @@ -14104,19 +14399,19 @@ FtlPrintInfo2buf: add x1, x1, :lo12:.LC134 bl sprintf add x19, x19, x0, sxtw - ldrh w0, [x20,3408] + ldrh w0, [x20,3424] mov w1, 65535 cmp w0, w1 - beq .L2078 + beq .L2154 ubfiz x2, x0, 1, 16 - ldr x3, [x22,1184] + ldr x3, [x22,1192] adrp x1, .LC135 mov x0, x19 add x1, x1, :lo12:.LC135 ldrh w2, [x3,x2] bl sprintf add x19, x19, x0, sxtw -.L2078: +.L2154: mov w0, 0 adrp x22, .LC136 mov w20, 0 @@ -14125,67 +14420,67 @@ FtlPrintInfo2buf: mov w26, 6 uxth w3, w0 add x22, x22, :lo12:.LC136 -.L2080: +.L2156: cmp w3, w27 - beq .L2079 + beq .L2155 add x21, x24, :lo12:.LANCHOR2 ubfiz x6, x3, 1, 16 umull x25, w3, w26 mov x0, x19 mov w2, w20 - ldr x5, [x21,1280] + ldr x5, [x21,1288] mov x1, x22 - ldr x4, [x21,1184] + ldr x4, [x21,1192] add w20, w20, 1 - ldr x7, [x21,1168] + ldr x7, [x21,1176] add x5, x5, x25 ldrh w4, [x4,x6] ldrh w5, [x5,4] ldrh w6, [x7,x6] bl sprintf add x19, x19, x0, sxtw - ldr x0, [x21,1280] + ldr x0, [x21,1288] cmp w20, 16 ldrh w3, [x0,x25] - bne .L2080 -.L2079: + bne .L2156 +.L2155: add x1, x24, :lo12:.LANCHOR2 adrp x22, .LC137 mov w20, 0 mov w27, 65535 mov w26, 6 add x22, x22, :lo12:.LC137 - ldr x0, [x1,3592] - ldr x3, [x1,1280] + ldr x0, [x1,3600] + ldr x3, [x1,1288] sub x3, x0, x3 mov x0, -6148914691236517206 asr x3, x3, 1 madd x3, x0, x3, x3 uxth w3, w3 -.L2082: +.L2158: cmp w3, w27 - beq .L2081 + beq .L2157 add x21, x24, :lo12:.LANCHOR2 ubfiz x5, x3, 1, 16 umull x25, w3, w26 mov x0, x19 mov w2, w20 - ldr x4, [x21,1280] + ldr x4, [x21,1288] mov x1, x22 - ldr x6, [x21,1168] + ldr x6, [x21,1176] add w20, w20, 1 add x4, x4, x25 ldrh w5, [x6,x5] ldrh w4, [x4,4] bl sprintf add x19, x19, x0, sxtw - ldr x0, [x21,1280] + ldr x0, [x21,1288] cmp w20, 4 ldrh w3, [x0,x25] - bne .L2082 -.L2081: + bne .L2158 +.L2157: sub w0, w19, w23 -.L2077: +.L2153: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -14229,111 +14524,111 @@ GetSwlReplaceBlock: stp x23, x24, [sp,48] stp x25, x26, [sp,64] adrp x19, .LANCHOR2 - ldr w3, [x1,3980] + ldr w3, [x1,3996] add x1, x19, :lo12:.LANCHOR2 - ldr w2, [x1,920] + ldr w2, [x1,924] cmp w3, w2 - bcs .L2087 - str wzr, [x1,904] - ldrh w3, [x1,756] - ldr x5, [x1,1168] + bcs .L2163 + str wzr, [x1,908] + ldrh w3, [x1,764] + ldr x5, [x1,1176] mov x1, 0 -.L2088: +.L2164: cmp w3, w1 - bls .L2120 + bls .L2196 add x4, x19, :lo12:.LANCHOR2 ldrh w6, [x5,x1,lsl 1] add x1, x1, 1 - ldr w2, [x4,904] + ldr w2, [x4,908] add w2, w6, w2 - str w2, [x4,904] - b .L2088 -.L2120: + str w2, [x4,908] + b .L2164 +.L2196: add x2, x19, :lo12:.LANCHOR2 add x4, x0, :lo12:.LANCHOR4 - ldr w1, [x2,904] + ldr w1, [x2,908] udiv w3, w1, w3 - str w3, [x4,3980] - ldr w3, [x2,908] + str w3, [x4,3996] + ldr w3, [x2,912] sub w1, w1, w3 - ldrh w3, [x2,808] + ldrh w3, [x2,816] udiv w1, w1, w3 - str w1, [x2,904] - b .L2090 -.L2087: - ldr w2, [x1,916] + str w1, [x2,908] + b .L2166 +.L2163: + ldr w2, [x1,920] cmp w3, w2 - bls .L2090 + bls .L2166 add w2, w2, 1 - str w2, [x1,916] + str w2, [x1,920] mov w1, 0 -.L2092: +.L2168: add x2, x19, :lo12:.LANCHOR2 - ldrh w3, [x2,756] + ldrh w3, [x2,764] cmp w1, w3 - bcs .L2090 + bcs .L2166 ubfiz x3, x1, 1, 32 - ldr x4, [x2,1168] + ldr x4, [x2,1176] add w1, w1, 1 ldrh w2, [x4,x3] add w2, w2, 1 strh w2, [x4,x3] - b .L2092 -.L2090: + b .L2168 +.L2166: add x1, x19, :lo12:.LANCHOR2 add x0, x0, :lo12:.LANCHOR4 - ldr w21, [x1,920] - ldr w23, [x0,3980] + ldr w21, [x1,924] + ldr w23, [x0,3996] add w0, w21, 256 cmp w0, w23 - bls .L2095 - ldr w2, [x1,916] + bls .L2171 + ldr w2, [x1,920] add w0, w21, 768 cmp w0, w2 - bls .L2095 - ldr w0, [x1,652] - cbz w0, .L2098 + bls .L2171 + ldr w0, [x1,660] + cbz w0, .L2174 cmp w21, 40 - bls .L2095 -.L2098: + bls .L2171 +.L2174: mov w0, 65535 - b .L2097 -.L2095: + b .L2173 +.L2171: add x0, x19, :lo12:.LANCHOR2 - ldrh w0, [x0,3600] + ldrh w0, [x0,3608] add w0, w0, w0, lsl 1 lsr w0, w0, 2 bl GetFreeBlockMaxEraseCount uxth w6, w0 add w0, w21, 64 cmp w6, w0 - bcs .L2107 + bcs .L2183 cmp w21, 40 - bhi .L2098 -.L2107: + bhi .L2174 +.L2183: add x1, x19, :lo12:.LANCHOR2 - ldr x3, [x1,3568] - cbz x3, .L2098 + ldr x3, [x1,3576] + cbz x3, .L2174 mov w26, 65535 mov x0, -6148914691236517206 - ldrh w9, [x1,756] + ldrh w9, [x1,764] mov w20, w26 - ldr x7, [x1,1280] + ldr x7, [x1,1288] mov w8, w26 - ldr x25, [x1,1168] + ldr x25, [x1,1176] add x0, x0, 1 mov w1, 0 mov w10, 6 -.L2100: +.L2176: ldrh w5, [x3] cmp w5, w8 - beq .L2102 + beq .L2178 add w1, w1, 1 uxth w1, w1 cmp w1, w9 - bhi .L2098 + bhi .L2174 ldrh w2, [x3,4] - cbz w2, .L2101 + cbz w2, .L2177 sub x4, x3, x7 asr x4, x4, 1 mul x4, x4, x0 @@ -14341,61 +14636,61 @@ GetSwlReplaceBlock: and x4, x4, 65535 ldrh w2, [x25,x4,lsl 1] cmp w2, w21 - bls .L2106 + bls .L2182 cmp w2, w26 - bcs .L2101 + bcs .L2177 mov w26, w2 mov w20, w3 -.L2101: +.L2177: umull x3, w5, w10 add x3, x7, x3 - b .L2100 -.L2106: + b .L2176 +.L2182: mov w20, w3 -.L2102: +.L2178: mov w0, 65535 cmp w20, w0 - beq .L2098 + beq .L2174 ubfiz x24, x20, 1, 16 ldrh w22, [x25,x24] cmp w22, w21 - bls .L2104 + bls .L2180 str x6, [x29,88] bl GetFreeBlockMinEraseCount ldr x6, [x29,88] cmp w21, w0, uxth - bcs .L2104 + bcs .L2180 add x0, x19, :lo12:.LANCHOR2 - str w26, [x0,920] -.L2104: + str w26, [x0,924] +.L2180: cmp w22, w23 - bcs .L2098 + bcs .L2174 add w0, w22, 128 cmp w6, w0 - ble .L2098 + ble .L2174 add w0, w22, 256 cmp w0, w23 - bcc .L2105 + bcc .L2181 add x0, x19, :lo12:.LANCHOR2 add w22, w22, 768 - ldr w0, [x0,916] + ldr w0, [x0,920] cmp w22, w0 - bcs .L2098 -.L2105: + bcs .L2174 +.L2181: add x19, x19, :lo12:.LANCHOR2 adrp x0, .LC139 ldrh w5, [x25,x24] add x0, x0, :lo12:.LC139 mov w1, w20 mov w2, w23 - ldr x4, [x19,1184] - ldr w3, [x19,916] + ldr x4, [x19,1192] + ldr w3, [x19,920] ldrh w4, [x4,x24] bl printk mov w0, 1 - str w0, [x19,928] + str w0, [x19,932] mov w0, w20 -.L2097: +.L2173: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -14412,13 +14707,13 @@ free_data_superblock: mov w1, 65535 cmp w0, w1 add x29, sp, 0 - beq .L2122 - adrp x2, .LANCHOR2+1184 + beq .L2198 + adrp x2, .LANCHOR2+1192 ubfiz x1, x0, 1, 16 - ldr x2, [x2,#:lo12:.LANCHOR2+1184] + ldr x2, [x2,#:lo12:.LANCHOR2+1192] strh wzr, [x2,x1] bl INSERT_FREE_LIST -.L2122: +.L2198: mov w0, 0 ldp x29, x30, [sp], 16 ret @@ -14435,209 +14730,209 @@ allocate_data_superblock: add x19, x21, :lo12:.LANCHOR2 stp x23, x24, [sp,48] stp x25, x26, [sp,64] - ldr w1, [x19,1400] + ldr w1, [x19,1408] stp x27, x28, [sp,80] - cbnz w1, .L2124 + cbnz w1, .L2200 mov x20, x0 - add x23, x19, 3704 + add x23, x19, 3712 adrp x22, .LANCHOR0 mov w24, 7 - add x25, x19, 3592 -.L2125: + add x25, x19, 3600 +.L2201: cmp x20, x23 - bne .L2126 - ldrh w2, [x19,3600] - ldr w4, [x19,928] + bne .L2202 + ldrh w2, [x19,3608] + ldr w4, [x19,932] lsr w3, w2, 1 add w1, w3, 1 mul w0, w2, w4 add w1, w1, w0, lsr 2 - ldr w0, [x19,652] + ldr w0, [x19,660] uxth w1, w1 - cbz w0, .L2127 - ldr w0, [x19,920] + cbz w0, .L2203 + ldr w0, [x19,924] cmp w0, 39 - bhi .L2127 + bhi .L2203 cmp w0, 2 mov w1, 0 - bls .L2128 - tbz x2, 0, .L2155 - cbz w4, .L2128 -.L2155: + bls .L2204 + tbz x2, 0, .L2231 + cbz w4, .L2204 +.L2231: mov w1, w3 - b .L2127 -.L2126: + b .L2203 +.L2202: ldrb w0, [x20,8] mov w1, 0 cmp w0, 1 - bne .L2128 - ldrh w0, [x19,768] + bne .L2204 + ldrh w0, [x19,776] cmp w0, 1 - beq .L2128 + beq .L2204 add x0, x22, :lo12:.LANCHOR0 - ldrb w0, [x0,136] - cbnz w0, .L2128 - ldr w2, [x19,652] - ldrh w0, [x19,3600] + ldrb w0, [x0,4044] + cbnz w0, .L2204 + ldr w2, [x19,660] + ldrh w0, [x19,3608] lsr w1, w0, 3 - cbz w2, .L2127 - ldr w2, [x19,920] + cbz w2, .L2203 + ldr w2, [x19,924] cmp w2, 1 - bhi .L2127 + bhi .L2203 mul w1, w0, w24 lsr w1, w1, 3 -.L2127: - cbz w1, .L2128 +.L2203: + cbz w1, .L2204 sub w1, w1, #1 uxth w1, w1 -.L2128: +.L2204: ldrb w2, [x20,8] mov x0, x25 bl List_pop_index_node uxth w28, w0 - ldrh w0, [x19,3600] + ldrh w0, [x19,3608] sub w0, w0, #1 - strh w0, [x19,3600] - ldrh w0, [x19,756] + strh w0, [x19,3608] + ldrh w0, [x19,764] cmp w0, w28 - bls .L2125 + bls .L2201 ubfiz x26, x28, 1, 16 - ldr x0, [x19,1184] + ldr x0, [x19,1192] ldrh w0, [x0,x26] - cbnz w0, .L2125 + cbnz w0, .L2201 strh w28, [x20] mov x0, x20 bl make_superblock ldrb w0, [x20,7] - cbz w0, .L2180 + cbz w0, .L2256 mov x0, 0 - ldrh w5, [x19,748] + ldrh w5, [x19,756] mov w27, w0 mov x3, 56 mov w6, 65535 -.L2132: +.L2208: cmp w5, w0, uxth - bls .L2183 - ldr x4, [x19,1016] + bls .L2259 + ldr x4, [x19,1024] madd x1, x0, x3, x4 str xzr, [x1,16] str xzr, [x1,8] add x1, x20, x0, lsl 1 ldrh w1, [x1,16] cmp w1, w6 - beq .L2133 + beq .L2209 umull x2, w27, w3 add w27, w27, 1 lsl w1, w1, 10 add x2, x4, x2 uxth w27, w27 str w1, [x2,4] -.L2133: +.L2209: add x0, x0, 1 - b .L2132 -.L2183: - add x0, x19, 3608 + b .L2208 +.L2259: + add x0, x19, 3616 cmp x20, x0 - bne .L2135 - ldr w1, [x19,652] - cbz w1, .L2135 - ldr x1, [x19,1168] + bne .L2211 + ldr w1, [x19,660] + cbz w1, .L2211 + ldr x1, [x19,1176] ldrh w1, [x1,x26] cmp w1, 40 - bls .L2135 - strb wzr, [x19,3616] -.L2135: + bls .L2211 + strb wzr, [x19,3624] +.L2211: ldrb w0, [x20,8] - cbnz w0, .L2136 - ldr x0, [x19,1168] + cbnz w0, .L2212 + ldr x0, [x19,1176] mov w1, 2 ldrh w2, [x0,x26] - cbz w2, .L2181 - ldrh w1, [x19,808] + cbz w2, .L2257 + ldrh w1, [x19,816] add w1, w2, w1 -.L2181: +.L2257: strh w1, [x0,x26] mov w1, 0 - ldr w0, [x19,904] + ldr w0, [x19,908] add w0, w0, 1 - str w0, [x19,904] + str w0, [x19,908] mov w0, w28 bl ftl_set_blk_mode - b .L2139 -.L2136: - ldr x1, [x19,1168] + b .L2215 +.L2212: + ldr x1, [x19,1176] ldrh w0, [x1,x26] add w0, w0, 1 strh w0, [x1,x26] - ldr w0, [x19,908] + ldr w0, [x19,912] add w0, w0, 1 - str w0, [x19,908] + str w0, [x19,912] mov w0, w28 bl ftl_set_blk_mode.part.17 -.L2139: - ldr x0, [x19,1168] - ldr w1, [x19,916] +.L2215: + ldr x0, [x19,1176] + ldr w1, [x19,920] ldrh w0, [x0,x26] cmp w0, w1 - bls .L2140 - str w0, [x19,916] -.L2140: - ldrh w1, [x19,808] + bls .L2216 + str w0, [x19,920] +.L2216: + ldrh w1, [x19,816] mov x3, 56 - ldr w2, [x19,904] - ldr w0, [x19,908] + ldr w2, [x19,908] + ldr w0, [x19,912] madd w0, w1, w2, w0 - ldrh w1, [x19,756] + ldrh w1, [x19,764] udiv w0, w0, w1 - adrp x1, .LANCHOR4+3980 - str w0, [x1,#:lo12:.LANCHOR4+3980] - ldr x1, [x19,1160] + adrp x1, .LANCHOR4+3996 + str w0, [x1,#:lo12:.LANCHOR4+3996] + ldr x1, [x19,1168] ldr w0, [x1,16] add w0, w0, 1 str w0, [x1,16] mov x0, 0 -.L2141: +.L2217: cmp w27, w0, uxth - bls .L2184 - ldr x1, [x19,1016] + bls .L2260 + ldr x1, [x19,1024] madd x1, x0, x3, x1 add x0, x0, 1 ldr w2, [x1,4] and w2, w2, -1024 str w2, [x1,4] - b .L2141 -.L2184: + b .L2217 +.L2260: add x0, x22, :lo12:.LANCHOR0 - ldrb w0, [x0,136] - cbz w0, .L2143 + ldrb w0, [x0,4044] + cbz w0, .L2219 ldrb w0, [x20,8] cmp w0, 1 - ldr x0, [x19,1016] - bne .L2144 + ldr x0, [x19,1024] + bne .L2220 mov w1, 0 - b .L2182 -.L2144: + b .L2258 +.L2220: mov w1, 1 -.L2182: +.L2258: mov w2, w27 bl FlashEraseBlocks -.L2143: +.L2219: ldrb w1, [x20,8] mov w2, w27 - ldr x0, [x19,1016] + ldr x0, [x19,1024] bl FlashEraseBlocks mov x1, 0 mov x4, 56 mov w2, w1 -.L2145: +.L2221: cmp w27, w1, uxth - bls .L2185 + bls .L2261 mul x0, x1, x4 - ldr x3, [x19,1016] + ldr x3, [x19,1024] add x5, x3, x0 ldr w3, [x3,x0] cmn w3, #1 - bne .L2146 + bne .L2222 ldr w0, [x5,4] add w2, w2, 1 str x4, [x29,104] @@ -14656,39 +14951,39 @@ allocate_data_superblock: ldrb w0, [x20,7] sub w0, w0, #1 strb w0, [x20,7] -.L2146: +.L2222: add x1, x1, 1 - b .L2145 -.L2185: - cbz w2, .L2148 + b .L2221 +.L2261: + cbz w2, .L2224 mov w0, w28 bl update_multiplier_value bl FtlBbmTblFlush -.L2148: +.L2224: ldrb w0, [x20,7] - cbnz w0, .L2149 -.L2180: - ldr x0, [x19,1184] + cbnz w0, .L2225 +.L2256: + ldr x0, [x19,1192] mov w1, -1 strh w1, [x0,x26] - b .L2125 -.L2149: + b .L2201 +.L2225: add x21, x21, :lo12:.LANCHOR2 strh wzr, [x20,2] strb wzr, [x20,6] - ldrh w1, [x21,818] + ldrh w1, [x21,824] strh w28, [x20] mul w0, w0, w1 - ldr w1, [x21,872] + ldr w1, [x21,876] str w1, [x20,12] uxth w0, w0 add w1, w1, 1 strh w0, [x20,4] - str w1, [x21,872] - ldr x1, [x21,1184] + str w1, [x21,876] + ldr x1, [x21,1192] ldrh w2, [x20] strh w0, [x1,x2,lsl 1] -.L2124: +.L2200: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -14702,36 +14997,36 @@ allocate_data_superblock: .global FtlGcBufInit .type FtlGcBufInit, %function FtlGcBufInit: - adrp x0, .LANCHOR4+3984 + adrp x0, .LANCHOR4+4000 mov w1, 0 adrp x7, .LANCHOR2 mov w8, 24 mov w9, 1 mov w4, 4 - str wzr, [x0,#:lo12:.LANCHOR4+3984] + str wzr, [x0,#:lo12:.LANCHOR4+4000] mov w10, 56 -.L2187: +.L2263: add x2, x7, :lo12:.LANCHOR2 adrp x6, .LANCHOR2 - ldrh w0, [x2,748] + ldrh w0, [x2,756] cmp w1, w0 - bcs .L2191 + bcs .L2267 umull x3, w1, w8 - ldr x5, [x2,1104] - ldr x6, [x2,1072] + ldr x5, [x2,1112] + ldr x6, [x2,1080] add x0, x5, x3 str w9, [x0,16] - ldrh w0, [x2,828] + ldrh w0, [x2,834] mul w0, w1, w0 sdiv w0, w0, w4 add x0, x6, x0, sxtw 2 str x0, [x5,x3] - ldrh w0, [x2,830] - ldr x6, [x2,1104] - ldr x11, [x2,1128] + ldrh w0, [x2,836] + ldr x6, [x2,1112] + ldr x11, [x2,1136] mul w0, w1, w0 add x5, x6, x3 - ldr x2, [x2,1024] + ldr x2, [x2,1032] sdiv w0, w0, w4 add x0, x11, x0, sxtw 2 str x0, [x5,8] @@ -14743,28 +15038,28 @@ FtlGcBufInit: str x2, [x0,8] ldr x2, [x5,8] str x2, [x0,16] - b .L2187 -.L2191: + b .L2263 +.L2267: mov w7, 24 mov w4, 4 -.L2189: +.L2265: add x1, x6, :lo12:.LANCHOR2 - ldr w2, [x1,1040] + ldr w2, [x1,1048] cmp w0, w2 - bcs .L2192 + bcs .L2268 umull x3, w0, w7 - ldr x5, [x1,1104] - ldr x8, [x1,1072] + ldr x5, [x1,1112] + ldr x8, [x1,1080] add x2, x5, x3 str wzr, [x2,16] - ldrh w2, [x1,828] + ldrh w2, [x1,834] mul w2, w0, w2 sdiv w2, w2, w4 add x2, x8, x2, sxtw 2 str x2, [x5,x3] - ldrh w2, [x1,830] - ldr x5, [x1,1104] - ldr x1, [x1,1128] + ldrh w2, [x1,836] + ldr x5, [x1,1112] + ldr x1, [x1,1136] mul w2, w0, w2 add x3, x5, x3 add w0, w0, 1 @@ -14772,8 +15067,8 @@ FtlGcBufInit: uxth w0, w0 add x1, x1, x2, sxtw 2 str x1, [x3,8] - b .L2189 -.L2192: + b .L2265 +.L2268: ret .size FtlGcBufInit, .-FtlGcBufInit .align 2 @@ -14789,35 +15084,35 @@ FtlVariablesInit: adrp x19, .LANCHOR2 add x19, x19, :lo12:.LANCHOR2 add x20, x20, :lo12:.LANCHOR4 - ldrh w2, [x19,840] - strh w0, [x20,4000] + ldrh w2, [x19,844] + strh w0, [x20,4016] mov w0, -1 - str w0, [x20,4012] + str w0, [x20,4028] lsl w2, w2, 1 - ldr x0, [x19,1208] - str xzr, [x20,3992] - str wzr, [x20,4004] - str wzr, [x20,4008] - str wzr, [x19,652] - strh wzr, [x19,1392] + ldr x0, [x19,1216] + str xzr, [x20,4008] + str wzr, [x20,4020] + str wzr, [x20,4024] + str wzr, [x19,660] + strh wzr, [x19,1400] bl ftl_memset - ldrh w2, [x19,758] + ldrh w2, [x19,766] mov w1, 0 - ldr x0, [x19,1168] + ldr x0, [x19,1176] lsl w2, w2, 1 bl ftl_memset - ldrh w2, [x19,758] + ldrh w2, [x19,766] mov w1, 0 - ldr x0, [x19,1152] + ldr x0, [x19,1160] lsl w2, w2, 1 bl ftl_memset - add x0, x19, 3520 + add x0, x19, 3528 mov w1, 0 mov w2, 48 bl ftl_memset mov w1, 0 mov w2, 512 - add x0, x20, 3456 + add x0, x20, 3472 bl ftl_memset bl FtlGcBufInit bl FtlL2PDataInit @@ -14835,34 +15130,34 @@ FtlGcBufFree: add x2, x2, :lo12:.LANCHOR2 mov w7, 56 mov w9, 24 - ldr w8, [x2,1040] - ldr x5, [x2,1104] -.L2195: + ldr w8, [x2,1048] + ldr x5, [x2,1112] +.L2271: cmp w3, w1 - bcs .L2194 + bcs .L2270 umull x4, w3, w7 mov w2, 0 add x4, x0, x4 -.L2200: +.L2276: cmp w2, w8 - bcs .L2197 + bcs .L2273 umull x6, w2, w9 add x10, x5, x6 ldr x11, [x5,x6] ldr x6, [x4,8] cmp x11, x6 - bne .L2196 + bne .L2272 str wzr, [x10,16] - b .L2197 -.L2196: + b .L2273 +.L2272: add w2, w2, 1 uxth w2, w2 - b .L2200 -.L2197: + b .L2276 +.L2273: add w3, w3, 1 uxth w3, w3 - b .L2195 -.L2194: + b .L2271 +.L2270: ret .size FtlGcBufFree, .-FtlGcBufFree .align 2 @@ -14874,20 +15169,20 @@ FtlGcBufAlloc: add x2, x2, :lo12:.LANCHOR2 mov w8, 1 mov w9, 56 - ldr w5, [x2,1040] - ldr x6, [x2,1104] + ldr w5, [x2,1048] + ldr x6, [x2,1112] mov w2, 0 -.L2202: +.L2278: cmp w2, w1 - bcs .L2208 + bcs .L2284 mov w3, 0 -.L2206: +.L2282: cmp w3, w5 - bcs .L2204 + bcs .L2280 umull x4, w3, w7 add x4, x6, x4 ldr w10, [x4,16] - cbnz w10, .L2203 + cbnz w10, .L2279 umull x3, w2, w9 str w8, [x4,16] add x3, x0, x3 @@ -14895,41 +15190,41 @@ FtlGcBufAlloc: str x10, [x3,8] ldr x4, [x4,8] str x4, [x3,16] - b .L2204 -.L2203: + b .L2280 +.L2279: add w3, w3, 1 uxth w3, w3 - b .L2206 -.L2204: + b .L2282 +.L2280: add w2, w2, 1 uxth w2, w2 - b .L2202 -.L2208: + b .L2278 +.L2284: ret .size FtlGcBufAlloc, .-FtlGcBufAlloc .align 2 .global IsBlkInGcList .type IsBlkInGcList, %function IsBlkInGcList: - adrp x1, .LANCHOR4+4016 + adrp x1, .LANCHOR4+4032 uxth w0, w0 - ldrh w2, [x1,#:lo12:.LANCHOR4+4016] - adrp x1, .LANCHOR2+976 - ldr x3, [x1,#:lo12:.LANCHOR2+976] + ldrh w2, [x1,#:lo12:.LANCHOR4+4032] + adrp x1, .LANCHOR2+984 + ldr x3, [x1,#:lo12:.LANCHOR2+984] mov x1, 0 -.L2210: +.L2286: cmp w2, w1, uxth - bls .L2214 + bls .L2290 add x1, x1, 1 add x4, x3, x1, lsl 1 ldrh w4, [x4,-2] cmp w4, w0 - bne .L2210 + bne .L2286 mov w0, 1 - b .L2211 -.L2214: + b .L2287 +.L2290: mov w0, 0 -.L2211: +.L2287: ret .size IsBlkInGcList, .-IsBlkInGcList .align 2 @@ -14950,44 +15245,44 @@ FtlGcUpdatePage: ldr x1, [x29,32] uxth w9, w0 mov x6, 0 - ldrh w8, [x4,4016] + ldrh w8, [x4,4032] adrp x4, .LANCHOR2 add x5, x4, :lo12:.LANCHOR2 - ldr x7, [x5,976] -.L2216: + ldr x7, [x5,984] +.L2292: uxth w5, w6 cmp w5, w8 - bcs .L2220 + bcs .L2296 add x6, x6, 1 add x10, x7, x6, lsl 1 ldrh w10, [x10,-2] cmp w10, w9 - bne .L2216 -.L2220: + bne .L2292 +.L2296: cmp w5, w8 - bne .L2218 + bne .L2294 ubfiz x5, x5, 1, 16 strh w0, [x7,x5] add x0, x3, :lo12:.LANCHOR4 - ldrh w5, [x0,4016] + ldrh w5, [x0,4032] add w5, w5, 1 - strh w5, [x0,4016] -.L2218: + strh w5, [x0,4032] +.L2294: add x3, x3, :lo12:.LANCHOR4 add x4, x4, :lo12:.LANCHOR2 mov w0, 12 - ldrh w5, [x3,4018] - ldr x6, [x4,984] + ldrh w5, [x3,4034] + ldr x6, [x4,992] umull x5, w5, w0 add x6, x6, x5 str w1, [x6,4] - ldr x1, [x4,984] + ldr x1, [x4,992] add x0, x1, x5 str w2, [x0,8] str w19, [x1,x5] - ldrh w0, [x3,4018] + ldrh w0, [x3,4034] add w0, w0, 1 - strh w0, [x3,4018] + strh w0, [x3,4034] ldr x19, [sp,16] ldp x29, x30, [sp], 48 ret @@ -15004,15 +15299,15 @@ FtlGcPageVarInit: adrp x19, .LANCHOR2 add x19, x19, :lo12:.LANCHOR2 add x0, x0, :lo12:.LANCHOR4 - ldrh w2, [x19,822] - strh wzr, [x0,4016] - strh wzr, [x0,4018] + ldrh w2, [x19,828] + strh wzr, [x0,4032] + strh wzr, [x0,4034] lsl w2, w2, 1 - ldr x0, [x19,976] + ldr x0, [x19,984] bl ftl_memset - ldrh w3, [x19,822] + ldrh w3, [x19,828] mov w2, 12 - ldr x0, [x19,984] + ldr x0, [x19,992] mov w1, 255 mul w2, w3, w2 bl ftl_memset @@ -15025,216 +15320,263 @@ FtlGcPageVarInit: .global FtlGcScanTempBlk .type FtlGcScanTempBlk, %function FtlGcScanTempBlk: - stp x29, x30, [sp, -160]! + stp x29, x30, [sp, -208]! add x29, sp, 0 stp x19, x20, [sp,16] - adrp x20, .LANCHOR1 mov x19, x0 - add x0, x20, :lo12:.LANCHOR1 - str w1, [x29,152] + adrp x0, .LANCHOR1 + str w1, [x29,128] + add x1, x0, :lo12:.LANCHOR1 stp x21, x22, [sp,32] stp x23, x24, [sp,48] stp x25, x26, [sp,64] stp x27, x28, [sp,80] - str x20, [x29,136] - ldrh w26, [x0,3164] - mov w0, 65535 - cmp w26, w0 - beq .L2245 - cbnz w26, .L2224 - b .L2225 -.L2245: + str x0, [x29,120] + ldrh w26, [x1,3292] + mov w1, 65535 + cmp w26, w1 + beq .L2329 + cbnz w26, .L2300 + b .L2301 +.L2329: mov w26, 0 -.L2224: - adrp x0, .LANCHOR2+818 - ldr w1, [x29,152] - ldrh w0, [x0,#:lo12:.LANCHOR2+818] +.L2300: + adrp x0, .LANCHOR2+824 + ldr w1, [x29,128] + ldrh w0, [x0,#:lo12:.LANCHOR2+824] cmp w1, w0 - bne .L2226 -.L2225: + bne .L2302 +.L2301: bl FtlGcPageVarInit -.L2226: +.L2302: mov w0, -1 adrp x25, .LANCHOR2 - str w0, [x29,156] - adrp x0, .LC140 - add x0, x0, :lo12:.LC140 - mov w22, 0 - mov w23, 65535 + str w0, [x29,132] + adrp x0, .LC141 + add x0, x0, :lo12:.LC141 + mov w23, 0 + mov x22, x25 mov x21, x25 - mov x24, x25 - str x0, [x29,128] -.L2239: + str x0, [x29,112] +.L2303: ldrh w0, [x19] + mov w20, 65535 strb wzr, [x19,8] - cmp w0, w23 - beq .L2246 -.L2228: -.L2242: + cmp w0, w20 + beq .L2304 +.L2305: + str w20, [x29,140] +.L2326: add x0, x25, :lo12:.LANCHOR2 mov x2, x19 - mov w20, 0 - ldrh w5, [x0,748] - ldrh w8, [x0,830] - add x5, x19, x5, lsl 1 -.L2229: - cmp x2, x5 - beq .L2254 + mov w27, 0 + mov w11, 56 + mov w8, 4 + ldrh w6, [x0,756] + ldrh w9, [x0,834] + ldrh w10, [x0,836] + add x6, x19, x6, lsl 1 +.L2306: + cmp x2, x6 + beq .L2344 ldrh w1, [x2,16] - cmp w1, w23 - beq .L2230 - add x6, x21, :lo12:.LANCHOR2 - mov w0, 56 + ldr w0, [x29,140] + cmp w1, w0 + beq .L2307 + add x5, x22, :lo12:.LANCHOR2 orr w1, w26, w1, lsl 10 - mov w3, 4 - umull x0, w20, w0 - ldr x7, [x6,992] - add w4, w20, 1 + umull x0, w27, w11 + add w4, w27, 1 + ldr x7, [x5,1000] add x7, x7, x0 str w1, [x7,4] - ldr x1, [x6,992] - ldr x6, [x6,1128] + ldr x1, [x5,1000] + ldr x7, [x5,1080] add x0, x1, x0 - mul w1, w20, w8 - uxth w20, w4 - str xzr, [x0,8] - sdiv w1, w1, w3 - add x1, x6, x1, sxtw 2 + ldr x5, [x5,1136] + mul w1, w27, w9 + sdiv w1, w1, w8 + add x1, x7, x1, sxtw 2 + str x1, [x0,8] + mul w1, w27, w10 + uxth w27, w4 + sdiv w1, w1, w8 + add x1, x5, x1, sxtw 2 str x1, [x0,16] -.L2230: +.L2307: add x2, x2, 2 - b .L2229 -.L2254: - add x0, x21, :lo12:.LANCHOR2 - mov w1, w20 + b .L2306 +.L2344: + add x0, x22, :lo12:.LANCHOR2 + mov w1, w27 mov w2, 0 - mov x27, 0 - ldr x0, [x0,992] + mov x24, 0 + ldr x0, [x0,1000] bl FlashReadPages -.L2232: - cmp w20, w27, uxth - bls .L2255 +.L2309: + cmp w27, w24, uxth + bls .L2345 + add x20, x22, :lo12:.LANCHOR2 mov x0, 56 - mul x28, x27, x0 - add x0, x21, :lo12:.LANCHOR2 - str x0, [x29,144] - ldr x8, [x0,992] - str x8, [x29,104] - add x1, x8, x28 - str x1, [x29,112] - ldr w2, [x1,4] - str x2, [x29,120] - lsr x0, x2, 10 - bl P2V_plane - uxth w6, w0 - ldr x8, [x29,104] - ldr x2, [x29,120] - ldr w0, [x8,x28] - cbnz w0, .L2233 - ldr x1, [x29,112] - add x27, x27, 1 - ldr x5, [x1,16] - ldrh w0, [x5] - cmp w0, w23 - bne .L2234 - adrp x0, .LANCHOR4+4008 + mul x28, x24, x0 + ldr x1, [x20,1000] + add x0, x1, x28 + ldr w8, [x1,x28] + ldr w2, [x0,4] + str w2, [x29,136] + cbnz w8, .L2310 + ldr x7, [x0,16] + ldr w1, [x29,140] + ldrh w0, [x7] + cmp w0, w1 + beq .L2323 + ldr w0, [x7,8] + ldr w1, [x20,1404] + cmp w0, w1 + bhi .L2323 + adrp x1, .LANCHOR0 + add x1, x1, :lo12:.LANCHOR0 + ldrb w1, [x1,24] + cbz w1, .L2315 + add x1, x29, 148 + mov w2, w8 + str x7, [x29,104] + str x8, [x29,96] + bl log2phys + ldr x7, [x29,104] + ldr w1, [x29,148] + ldr w0, [x7,12] + cmp w1, w0 + bne .L2315 + cmn w1, #1 + beq .L2315 + str w0, [x29,156] mov w1, 1 - str w1, [x0,#:lo12:.LANCHOR4+4008] - b .L2227 -.L2234: - mov w1, w2 - ldr w0, [x5,12] - ldr w2, [x5,8] + ldr x0, [x20,1104] + ldr x8, [x29,96] + str x0, [x29,160] + ldr x0, [x20,1128] + mov w2, w8 + str x0, [x29,168] + add x0, x29, 152 + bl FlashReadPages + ldr x0, [x20,1000] + ldrh w2, [x20,830] + ldr x6, [x29,160] + add x5, x0, x28 + ldr x7, [x29,104] + lsl w2, w2, 7 + mov x0, 0 +.L2317: + cmp w2, w0 + bls .L2315 + lsl x1, x0, 2 + ldr x8, [x5,8] + add x0, x0, 1 + ldr w8, [x8,x1] + ldr w1, [x6,x1] + cmp w8, w1 + beq .L2317 + adrp x0, .LC140 + ldrh w1, [x19] + ldr w2, [x29,156] + add x0, x0, :lo12:.LC140 + bl printk + b .L2323 +.L2315: + ldr w0, [x7,12] + add x24, x24, 1 + ldr w1, [x29,136] + ldr w2, [x7,8] bl FtlGcUpdatePage - b .L2232 -.L2233: - ldr x0, [x29,128] + b .L2309 +.L2310: + ldr x0, [x29,112] ldrh w1, [x19] + ldr w2, [x29,136] bl printk - ldr x0, [x29,144] - ldr w0, [x0,652] - cbnz w0, .L2235 - adrp x0, .LANCHOR0+136 - ldrb w0, [x0,#:lo12:.LANCHOR0+136] - cbz w0, .L2236 -.L2235: - add x0, x24, :lo12:.LANCHOR2 + ldr w0, [x20,660] + cbnz w0, .L2320 + adrp x0, .LANCHOR0+4044 + ldrb w0, [x0,#:lo12:.LANCHOR0+4044] + cbz w0, .L2321 +.L2320: + add x0, x21, :lo12:.LANCHOR2 ldrh w1, [x19] - ldr x0, [x0,1168] + ldr x0, [x0,1176] ldrh w0, [x0,x1,lsl 1] cmp w0, 159 - bls .L2237 -.L2236: - add x0, x24, :lo12:.LANCHOR2 - ldr x0, [x0,992] + bls .L2322 +.L2321: + add x0, x21, :lo12:.LANCHOR2 + ldr x0, [x0,1000] ldr w0, [x0,x28] cmn w0, #1 - bne .L2238 -.L2237: - add x0, x24, :lo12:.LANCHOR2 - ldr x0, [x0,992] + bne .L2323 +.L2322: + add x0, x21, :lo12:.LANCHOR2 + ldr x0, [x0,1000] add x5, x0, x28 ldr w0, [x5,4] - str w0, [x29,156] -.L2238: - add x0, x24, :lo12:.LANCHOR2 + str w0, [x29,132] +.L2323: + add x0, x21, :lo12:.LANCHOR2 ldrh w1, [x19] mov w26, 0 - ldr x0, [x0,1184] + ldr x0, [x0,1192] strh wzr, [x0,x1,lsl 1] ldrh w0, [x19] bl INSERT_FREE_LIST mov w0, -1 strh w0, [x19] bl FtlGcPageVarInit - b .L2239 -.L2255: - ldr w0, [x29,152] - add w22, w22, 1 + b .L2303 +.L2345: + ldr w0, [x29,128] + add w23, w23, 1 add w3, w26, 1 - cmp w22, w0 + cmp w23, w0 uxth w26, w3 - bcs .L2241 -.L2243: - add x0, x21, :lo12:.LANCHOR2 - ldrh w0, [x0,818] + bcs .L2325 +.L2327: + add x0, x22, :lo12:.LANCHOR2 + ldrh w0, [x0,824] cmp w0, w26 - bhi .L2242 - b .L2246 -.L2241: - ldr x0, [x29,136] + bhi .L2326 + b .L2304 +.L2325: + ldr x0, [x29,120] + ldr w2, [x29,140] add x1, x0, :lo12:.LANCHOR1 - ldrh w0, [x1,3164] - cmp w0, w23 - beq .L2243 - add w0, w0, w22 - strh w0, [x1,3164] - add x0, x21, :lo12:.LANCHOR2 - ldrh w0, [x0,818] + ldrh w0, [x1,3292] + cmp w0, w2 + beq .L2327 + add w0, w0, w23 + strh w0, [x1,3292] + add x0, x22, :lo12:.LANCHOR2 + ldrh w0, [x0,824] cmp w0, w26 - bls .L2243 - b .L2244 -.L2246: - mov w6, 0 -.L2227: - ldr x0, [x29,136] - mov w1, w26 + bls .L2327 + b .L2328 +.L2304: + ldr x0, [x29,120] + mov w1, -1 strh w26, [x19,2] - mov w2, w6 - add x20, x0, :lo12:.LANCHOR1 - mov w0, -1 - strb w6, [x19,6] - strh w0, [x20,3164] + mov w2, 0 + add x0, x0, :lo12:.LANCHOR1 + strb wzr, [x19,6] + strh w1, [x0,3292] mov x0, x19 + mov w1, w26 bl ftl_sb_update_avl_pages -.L2244: - ldr w0, [x29,156] +.L2328: + ldr w0, [x29,132] ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] ldp x25, x26, [sp,64] ldp x27, x28, [sp,80] - ldp x29, x30, [sp], 160 + ldp x29, x30, [sp], 208 ret .size FtlGcScanTempBlk, .-FtlGcScanTempBlk .align 2 @@ -15245,44 +15587,44 @@ FtlGcRefreshOpenBlock: add x29, sp, 0 str x19, [sp,16] uxth w19, w0 - adrp x0, .LC141 + adrp x0, .LC142 mov w1, w19 - add x0, x0, :lo12:.LC141 + add x0, x0, :lo12:.LC142 bl printk adrp x2, .LANCHOR2 add x2, x2, :lo12:.LANCHOR2 - ldrh w5, [x2,948] + ldrh w5, [x2,952] cmp w5, w19 - beq .L2257 - ldrh w4, [x2,950] + beq .L2347 + ldrh w4, [x2,954] cmp w4, w19 - beq .L2257 - ldrh w3, [x2,952] + beq .L2347 + ldrh w3, [x2,956] cmp w3, w19 - beq .L2257 - ldrh w1, [x2,954] + beq .L2347 + ldrh w1, [x2,958] cmp w1, w19 - beq .L2257 + beq .L2347 mov w0, 65535 cmp w5, w0 - bne .L2258 - strh w19, [x2,948] - b .L2257 -.L2258: + bne .L2348 + strh w19, [x2,952] + b .L2347 +.L2348: cmp w4, w0 - bne .L2259 - strh w19, [x2,950] - b .L2257 -.L2259: + bne .L2349 + strh w19, [x2,954] + b .L2347 +.L2349: cmp w3, w0 - bne .L2260 - strh w19, [x2,952] - b .L2257 -.L2260: + bne .L2350 + strh w19, [x2,956] + b .L2347 +.L2350: cmp w1, w0 - bne .L2257 - strh w19, [x2,954] -.L2257: + bne .L2347 + strh w19, [x2,958] +.L2347: mov w0, 0 ldr x19, [sp,16] ldp x29, x30, [sp], 32 @@ -15296,48 +15638,48 @@ FtlGcRefreshBlock: add x29, sp, 0 str x19, [sp,16] uxth w19, w0 - adrp x0, .LC141 + adrp x0, .LC142 mov w1, w19 - add x0, x0, :lo12:.LC141 + add x0, x0, :lo12:.LC142 bl printk adrp x2, .LANCHOR2 mov w0, 0 add x2, x2, :lo12:.LANCHOR2 - ldrh w6, [x2,948] + ldrh w6, [x2,952] cmp w6, w19 - beq .L2262 - ldrh w5, [x2,950] + beq .L2352 + ldrh w5, [x2,954] cmp w5, w19 - beq .L2262 - ldrh w4, [x2,952] + beq .L2352 + ldrh w4, [x2,956] cmp w4, w19 - beq .L2262 - ldrh w3, [x2,954] + beq .L2352 + ldrh w3, [x2,958] cmp w3, w19 - beq .L2262 + beq .L2352 mov w1, 65535 cmp w6, w1 - bne .L2263 - strh w19, [x2,948] - b .L2262 -.L2263: + bne .L2353 + strh w19, [x2,952] + b .L2352 +.L2353: cmp w5, w1 - bne .L2264 - strh w19, [x2,950] - b .L2271 -.L2264: + bne .L2354 + strh w19, [x2,954] + b .L2361 +.L2354: cmp w4, w1 - bne .L2265 - strh w19, [x2,952] - b .L2271 -.L2265: + bne .L2355 + strh w19, [x2,956] + b .L2361 +.L2355: cmp w3, w1 mov w0, -1 - bne .L2262 - strh w19, [x2,954] -.L2271: + bne .L2352 + strh w19, [x2,958] +.L2361: mov w0, 0 -.L2262: +.L2352: ldr x19, [sp,16] ldp x29, x30, [sp], 32 ret @@ -15357,49 +15699,49 @@ FtlGcMarkBadPhyBlk: str x23, [sp,48] bl P2V_block_in_plane uxth w21, w0 - ldrh w1, [x22,962] - adrp x0, .LC142 + ldrh w1, [x22,966] + adrp x0, .LC143 mov w2, w20 - add x0, x0, :lo12:.LC142 + add x0, x0, :lo12:.LC143 bl printk mov w0, w21 bl FtlGcRefreshBlock - ldr w0, [x22,652] - cbz w0, .L2273 + ldr w0, [x22,660] + cbz w0, .L2363 ubfiz x0, x21, 1, 16 - ldr x2, [x22,1168] + ldr x2, [x22,1176] ldrh w1, [x2,x0] cmp w1, 39 - bls .L2273 + bls .L2363 sub w1, w1, #40 strh w1, [x2,x0] -.L2273: +.L2363: add x0, x19, :lo12:.LANCHOR2 adrp x1, .LANCHOR4 add x1, x1, :lo12:.LANCHOR4 - add x1, x1, 4024 - ldrh w3, [x0,962] + add x1, x1, 4040 + ldrh w3, [x0,966] mov x0, 0 -.L2274: +.L2364: cmp w3, w0, uxth - bls .L2280 + bls .L2370 add x0, x0, 1 add x2, x1, x0, lsl 1 ldrh w2, [x2,-2] cmp w2, w20 - bne .L2274 - b .L2275 -.L2280: + bne .L2364 + b .L2365 +.L2370: cmp w3, 15 - bhi .L2275 + bhi .L2365 adrp x1, .LANCHOR4 add x19, x19, :lo12:.LANCHOR2 add x1, x1, :lo12:.LANCHOR4 add w0, w3, 1 - add x1, x1, 4024 - strh w0, [x19,962] + add x1, x1, 4040 + strh w0, [x19,966] strh w20, [x1,w3,sxtw 1] -.L2275: +.L2365: mov w0, 0 ldr x23, [sp,48] ldp x19, x20, [sp,16] @@ -15416,29 +15758,29 @@ FtlGcReFreshBadBlk: str x19, [sp,16] adrp x19, .LANCHOR2 add x0, x19, :lo12:.LANCHOR2 - ldrh w1, [x0,962] - cbz w1, .L2282 - ldrh w3, [x0,948] + ldrh w1, [x0,966] + cbz w1, .L2372 + ldrh w3, [x0,952] mov w2, 65535 cmp w3, w2 - bne .L2282 - ldrh w2, [x0,966] + bne .L2372 + ldrh w2, [x0,970] cmp w2, w1 - bcc .L2283 - strh wzr, [x0,966] -.L2283: + bcc .L2373 + strh wzr, [x0,970] +.L2373: add x19, x19, :lo12:.LANCHOR2 adrp x0, .LANCHOR4 add x0, x0, :lo12:.LANCHOR4 - add x0, x0, 4024 - ldrh w1, [x19,966] + add x0, x0, 4040 + ldrh w1, [x19,970] ldrh w0, [x0,w1,sxtw 1] bl P2V_block_in_plane bl FtlGcRefreshBlock - ldrh w0, [x19,966] + ldrh w0, [x19,970] add w0, w0, 1 - strh w0, [x19,966] -.L2282: + strh w0, [x19,970] +.L2372: mov w0, 0 ldr x19, [sp,16] ldp x29, x30, [sp], 32 @@ -15456,65 +15798,65 @@ FtlGcFreeBadSuperBlk: add x19, x19, :lo12:.LANCHOR2 stp x23, x24, [sp,48] uxth w23, w0 - ldrh w0, [x19,962] + ldrh w0, [x19,966] stp x21, x22, [sp,32] stp x25, x26, [sp,64] mov w21, 0 - cbz w0, .L2289 + cbz w0, .L2379 adrp x24, .LANCHOR4 - adrp x22, .LC143 - add x22, x22, :lo12:.LC143 + adrp x22, .LC144 + add x22, x22, :lo12:.LC144 add x25, x24, :lo12:.LANCHOR4 -.L2297: - ldrh w0, [x19,748] +.L2387: + ldrh w0, [x19,756] cmp w0, w21 - bls .L2298 - add x0, x19, 776 + bls .L2388 + add x0, x19, 784 mov w1, w23 mov w20, 0 add x27, x24, :lo12:.LANCHOR4 ldrb w0, [x0,w21,sxtw] bl V2P_block uxth w26, w0 -.L2290: - ldrh w0, [x19,962] +.L2380: + ldrh w0, [x19,966] cmp w0, w20 - bls .L2299 - add x0, x27, 4024 + bls .L2389 + add x0, x27, 4040 ldrh w0, [x0,w20,sxtw 1] cmp w0, w26 - bne .L2291 + bne .L2381 mov w1, w26 mov x0, x22 bl printk mov w0, w26 bl FtlBbmMapBadBlock bl FtlBbmTblFlush - ldrh w2, [x19,962] + ldrh w2, [x19,966] mov w3, w20 -.L2292: +.L2382: cmp w3, w2 - bcs .L2300 - add x4, x25, 4024 + bcs .L2390 + add x4, x25, 4040 add w0, w3, 1 ldrh w1, [x4,w0,sxtw 1] strh w1, [x4,w3,sxtw 1] uxth w3, w0 - b .L2292 -.L2300: + b .L2382 +.L2390: sub w2, w2, #1 - strh w2, [x19,962] -.L2291: + strh w2, [x19,966] +.L2381: add w20, w20, 1 uxth w20, w20 - b .L2290 -.L2299: + b .L2380 +.L2389: add w21, w21, 1 uxth w21, w21 - b .L2297 -.L2298: + b .L2387 +.L2388: bl FtlGcReFreshBadBlk -.L2289: +.L2379: mov w0, 0 ldr x27, [sp,80] ldp x19, x20, [sp,16] @@ -15535,47 +15877,47 @@ update_vpc_list: uxth w19, w0 add x2, x20, :lo12:.LANCHOR2 ubfiz x0, x19, 1, 16 - ldr x1, [x2,1184] + ldr x1, [x2,1192] ldrh w1, [x1,x0] - cbnz w1, .L2302 + cbnz w1, .L2392 adrp x0, .LANCHOR4 add x0, x0, :lo12:.LANCHOR4 - ldrh w3, [x0,3408] + ldrh w3, [x0,3424] cmp w3, w19 - bne .L2303 + bne .L2393 mov w1, -1 - strh w1, [x0,3408] - b .L2304 -.L2303: - ldrh w3, [x2,3608] + strh w1, [x0,3424] + b .L2394 +.L2393: + ldrh w3, [x2,3616] mov w0, w1 cmp w3, w19 - beq .L2305 - ldrh w3, [x2,3656] + beq .L2395 + ldrh w3, [x2,3664] cmp w3, w19 - beq .L2305 - ldrh w2, [x2,3704] + beq .L2395 + ldrh w2, [x2,3712] cmp w2, w19 - beq .L2305 -.L2304: + beq .L2395 +.L2394: add x20, x20, :lo12:.LANCHOR2 mov w1, w19 - add x0, x20, 3568 + add x0, x20, 3576 bl List_remove_node - ldrh w0, [x20,3584] + ldrh w0, [x20,3592] sub w0, w0, #1 - strh w0, [x20,3584] + strh w0, [x20,3592] mov w0, w19 bl free_data_superblock mov w0, w19 bl FtlGcFreeBadSuperBlk mov w0, 1 - b .L2305 -.L2302: + b .L2395 +.L2392: mov w0, w19 bl List_update_data_list mov w0, 0 -.L2305: +.L2395: ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 ret @@ -15591,67 +15933,67 @@ decrement_vpc_count: mov w0, 65535 stp x21, x22, [sp,32] cmp w19, w0 - beq .L2310 + beq .L2400 adrp x20, .LANCHOR2 ubfiz x21, x19, 1, 16 add x20, x20, :lo12:.LANCHOR2 - ldr x0, [x20,1184] + ldr x0, [x20,1192] ldrh w2, [x0,x21] - cbnz w2, .L2311 - adrp x0, .LC144 + cbnz w2, .L2401 + adrp x0, .LC145 mov w1, w19 - add x0, x0, :lo12:.LC144 - add x22, x20, 3592 + add x0, x0, :lo12:.LC145 + add x22, x20, 3600 bl printk - ldr x0, [x20,1184] + ldr x0, [x20,1192] mov w1, 32 strh w1, [x0,x21] mov x0, x22 mov w1, w19 bl test_node_in_list - cbz w0, .L2312 + cbz w0, .L2402 mov w1, w19 mov x0, x22 bl List_remove_node - ldrh w0, [x20,3600] + ldrh w0, [x20,3608] sub w0, w0, #1 - strh w0, [x20,3600] + strh w0, [x20,3608] mov w0, w19 bl INSERT_DATA_LIST - ldr x2, [x20,1184] - adrp x0, .LC145 - add x0, x0, :lo12:.LC145 + ldr x2, [x20,1192] + adrp x0, .LC146 + add x0, x0, :lo12:.LC146 mov w1, w19 ldrh w2, [x2,x21] bl printk -.L2312: +.L2402: mov w0, w19 bl FtlGcRefreshBlock - b .L2319 -.L2311: + b .L2409 +.L2401: sub w2, w2, #1 strh w2, [x0,x21] -.L2310: +.L2400: adrp x20, .LANCHOR4 mov w0, 65535 add x20, x20, :lo12:.LANCHOR4 - ldrh w1, [x20,4000] + ldrh w1, [x20,4016] cmp w1, w0 - bne .L2314 - strh w19, [x20,4000] -.L2319: + bne .L2404 + strh w19, [x20,4016] +.L2409: mov w0, 0 - b .L2313 -.L2314: + b .L2403 +.L2404: cmp w1, w19 mov w0, 0 - beq .L2313 + beq .L2403 mov w0, w1 bl update_vpc_list cmp w0, wzr cset w0, ne - strh w19, [x20,4000] -.L2313: + strh w19, [x20,4016] +.L2403: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x29, x30, [sp], 48 @@ -15672,81 +16014,81 @@ FtlRecoverySuperblock: mov x19, x0 ldrh w0, [x0] cmp w0, w2 - beq .L2477 + beq .L2572 ldrh w0, [x19,2] adrp x20, .LANCHOR2 str w0, [x29,188] add x0, x20, :lo12:.LANCHOR2 ldrb w28, [x19,6] ldr w1, [x29,188] - ldrh w0, [x0,818] + ldrh w0, [x0,824] cmp w0, w1 - bne .L2323 + bne .L2413 strh wzr, [x19,4] - b .L2483 -.L2323: + b .L2578 +.L2413: ldrh w0, [x19,16] mov w1, 0 -.L2324: +.L2414: cmp w0, w2 - bne .L2486 + bne .L2581 add w1, w1, 1 uxth w1, w1 add x0, x19, x1, sxtw 1 ldrh w0, [x0,16] - b .L2324 -.L2486: + b .L2414 +.L2581: ldrb w1, [x19,8] cmp w1, 1 - bne .L2326 + bne .L2416 bl FtlGetLastWrittenPage cmn w0, #1 mov w21, w0 - beq .L2327 + beq .L2417 adrp x0, .LANCHOR0 mov w23, w21 add x0, x0, :lo12:.LANCHOR0 - ldrb w1, [x0,136] - cbnz w1, .L2400 - add x0, x0, 140 + ldrb w1, [x0,4044] + cbnz w1, .L2491 + add x0, x0, 136 ldrh w23, [x0,w21,sxtw 1] - b .L2400 -.L2326: + b .L2491 +.L2416: mov w1, 0 bl FtlGetLastWrittenPage cmn w0, #1 mov w21, w0 - beq .L2327 + beq .L2417 mov w23, w0 -.L2400: +.L2491: add x0, x20, :lo12:.LANCHOR2 mov x2, x19 mov w25, 0 mov w8, 65535 mov w9, 56 mov w10, 4 - ldrh w4, [x0,748] - ldrh w7, [x0,830] + ldrh w4, [x0,756] + ldrh w7, [x0,836] add x4, x19, x4, lsl 1 - b .L2329 -.L2327: + b .L2419 +.L2417: strh wzr, [x19,2] -.L2483: +.L2578: strb wzr, [x19,6] - b .L2477 -.L2331: + b .L2572 +.L2421: ldrh w1, [x2,16] cmp w1, w8 - beq .L2330 + beq .L2420 add x5, x20, :lo12:.LANCHOR2 orr w1, w23, w1, lsl 10 umull x0, w25, w9 add w3, w25, 1 - ldr x6, [x5,992] + ldr x6, [x5,1000] add x6, x6, x0 str w1, [x6,4] - ldr x1, [x5,992] - ldr x5, [x5,1128] + ldr x1, [x5,1000] + ldr x5, [x5,1136] add x0, x1, x0 mul w1, w25, w7 uxth w25, w3 @@ -15754,51 +16096,51 @@ FtlRecoverySuperblock: sdiv w1, w1, w10 add x1, x5, x1, sxtw 2 str x1, [x0,16] -.L2330: +.L2420: add x2, x2, 2 -.L2329: +.L2419: cmp x2, x4 - bne .L2331 + bne .L2421 ldrb w0, [x19,8] str wzr, [x29,184] cmp w0, 1 - bne .L2332 - adrp x0, .LANCHOR0+136 - ldrb w0, [x0,#:lo12:.LANCHOR0+136] + bne .L2422 + adrp x0, .LANCHOR0+4044 + ldrb w0, [x0,#:lo12:.LANCHOR0+4044] cmp w0, wzr cset w0, ne str w0, [x29,184] -.L2332: +.L2422: add x22, x20, :lo12:.LANCHOR2 ldr w2, [x29,184] mov w1, w25 mov x26, 0 mov w24, 65535 adrp x27, .LANCHOR4 - ldr x0, [x22,992] + ldr x0, [x22,1000] bl FlashReadPages - ldr w0, [x22,876] - adrp x22, .LC146 + ldr w0, [x22,880] + adrp x22, .LC147 str w0, [x29,176] - add x22, x22, :lo12:.LC146 + add x22, x22, :lo12:.LC147 uxth w0, w23 str w0, [x29,168] -.L2333: +.L2423: uxth w2, w26 cmp w2, w25 - bcs .L2340 + bcs .L2430 add x6, x20, :lo12:.LANCHOR2 mov x0, 56 mul x0, x26, x0 - ldr x4, [x6,992] + ldr x4, [x6,1000] add x1, x4, x0 ldr w0, [x4,x0] - cbnz w0, .L2334 + cbnz w0, .L2424 ldr x7, [x1,16] ldr w4, [x7,4] cmn w4, #1 - beq .L2335 - ldr w1, [x6,876] + beq .L2425 + ldr w1, [x6,880] mov w0, w4 str x7, [x29,136] str x2, [x29,144] @@ -15809,300 +16151,302 @@ FtlRecoverySuperblock: ldr x4, [x29,152] ldr x2, [x29,144] ldr x7, [x29,136] - cbz w0, .L2335 + cbz w0, .L2425 add w4, w4, 1 - str w4, [x6,876] -.L2335: + str w4, [x6,880] +.L2425: ldr w0, [x7] cmn w0, #1 - bne .L2336 -.L2340: + bne .L2426 +.L2430: cmp w2, w25 - bne .L2478 + bne .L2573 add x0, x20, :lo12:.LANCHOR2 add w21, w21, 1 uxth w21, w21 - ldr x0, [x0,992] + ldr x0, [x0,1000] ldr w0, [x0,4] - b .L2479 -.L2334: + b .L2574 +.L2424: ldr w1, [x1,4] mov x0, x22 bl printk ldr w24, [x29,168] add x0, x27, :lo12:.LANCHOR4 ldrh w1, [x19] - strh w1, [x0,4058] -.L2336: + strh w1, [x0,4074] +.L2426: add x26, x26, 1 - b .L2333 -.L2478: + b .L2423 +.L2573: add x0, x20, :lo12:.LANCHOR2 mov w1, 56 uxth w21, w21 umull x2, w2, w1 - ldr x0, [x0,992] + ldr x0, [x0,1000] add x2, x0, x2 ldr w0, [x2,4] -.L2479: +.L2574: lsr x0, x0, 10 bl P2V_plane uxth w26, w0 ldrb w1, [x19,8] cmp w1, 1 - bne .L2342 + bne .L2432 adrp x0, .LANCHOR0 add x0, x0, :lo12:.LANCHOR0 - ldrb w2, [x0,136] - cbnz w2, .L2342 - add x0, x0, 140 + ldrb w2, [x0,4044] + cbnz w2, .L2432 + add x0, x0, 136 ldrh w21, [x0,w21,sxtw 1] -.L2342: +.L2432: add x0, x20, :lo12:.LANCHOR2 - ldrh w0, [x0,818] + ldrh w0, [x0,824] cmp w0, w21 - bne .L2343 + bne .L2433 strh w21, [x19,2] strb wzr, [x19,6] strh wzr, [x19,4] -.L2343: +.L2433: uxth w0, w28 str w0, [x29,152] ldr w0, [x29,188] cmp w21, w0 - bne .L2344 + bne .L2434 ldr w0, [x29,152] cmp w26, w0 - beq .L2484 -.L2344: + beq .L2579 +.L2434: ldr w0, [x29,176] adrp x25, .LANCHOR4 sub w22, w0, #1 mov w0, 65535 cmp w24, w0 - bne .L2345 - cbnz w1, .L2346 -.L2345: + bne .L2435 + cbnz w1, .L2436 +.L2435: add x0, x25, :lo12:.LANCHOR4 - uxth w6, w23 - ldr w1, [x0,4012] + uxth w5, w23 + ldr w1, [x0,4028] cmn w1, #1 - bne .L2347 - str w22, [x0,4012] -.L2347: + bne .L2437 + str w22, [x0,4028] +.L2437: add x0, x25, :lo12:.LANCHOR4 ldr w24, [x29,188] - ldr w3, [x0,4012] + ldr w3, [x0,4028] ldr w0, [x29,188] add w0, w0, 7 cmp w0, w23, uxth - bge .L2348 - sub w24, w6, #7 + bge .L2438 + sub w24, w5, #7 uxth w24, w24 -.L2348: - adrp x7, .LANCHOR0 +.L2438: mov w28, -1 - add x5, x7, :lo12:.LANCHOR0 + adrp x6, .LANCHOR0 mov w27, w28 mov w4, 65535 - add x5, x5, 652 -.L2349: - cmp w24, w6 - bhi .L2362 + mov w7, 56 + add x8, x6, :lo12:.LANCHOR0 +.L2439: + cmp w24, w5 + bhi .L2452 add x0, x20, :lo12:.LANCHOR2 mov w23, 0 - mov w10, 56 - ldrh w2, [x0,748] + ldrh w2, [x0,756] mov x0, x19 add x2, x19, x2, lsl 1 -.L2363: +.L2453: cmp x0, x2 - beq .L2487 + beq .L2582 ldrh w1, [x0,16] cmp w1, w4 - beq .L2350 - add x9, x20, :lo12:.LANCHOR2 + beq .L2440 + add x10, x20, :lo12:.LANCHOR2 orr w1, w24, w1, lsl 10 - umull x8, w23, w10 + umull x9, w23, w7 add w23, w23, 1 - ldr x9, [x9,992] + ldr x10, [x10,1000] uxth w23, w23 - add x8, x9, x8 - str w1, [x8,4] -.L2350: + add x9, x10, x9 + str w1, [x9,4] +.L2440: add x0, x0, 2 - b .L2363 -.L2487: - add x8, x20, :lo12:.LANCHOR2 + b .L2453 +.L2582: + add x9, x20, :lo12:.LANCHOR2 ldr w2, [x29,184] mov w1, w23 - str x5, [x29,128] + str x8, [x29,120] + str x6, [x29,128] + ldr x0, [x9,1000] str x7, [x29,136] - ldr x0, [x8,992] str x4, [x29,144] str x3, [x29,160] - str x6, [x29,168] - str x8, [x29,176] + str x5, [x29,168] + str x9, [x29,176] bl FlashReadPages - ldr x7, [x29,136] + ldr x6, [x29,128] mov w1, 0 - ldr x8, [x29,176] - sxtw x10, w24 - add x0, x7, :lo12:.LANCHOR0 - ldr x6, [x29,168] + ldr x9, [x29,176] + sxtw x11, w24 + add x0, x6, :lo12:.LANCHOR0 + ldr x5, [x29,168] ldr x3, [x29,160] ldr x4, [x29,144] - ldrb w9, [x0,136] - ldr x0, [x8,992] - ldr x5, [x29,128] + ldrb w10, [x0,4044] + ldr x0, [x9,1000] + ldr x7, [x29,136] + ldr x8, [x29,120] add x0, x0, 16 -.L2352: +.L2442: cmp w1, w23 - beq .L2488 + beq .L2583 ldr w2, [x0,-16] - cbnz w2, .L2353 + cbnz w2, .L2443 ldr x2, [x0] - ldrh w8, [x2] - cmp w8, w4 - beq .L2354 - ldr w8, [x2,4] - cmn w8, #1 - beq .L2354 + ldrh w9, [x2] + cmp w9, w4 + beq .L2444 + ldr w9, [x2,4] + cmn w9, #1 + beq .L2444 add x2, x25, :lo12:.LANCHOR4 cmn w28, #1 - ldr w27, [x2,4012] - str w8, [x2,4012] - bne .L2354 - ldrh w2, [x5,x10,lsl 1] + ldr w27, [x2,4028] + str w9, [x2,4028] + bne .L2444 + add x2, x8, 648 + ldrh w2, [x2,x11,lsl 1] cmp w2, w4 - bne .L2355 - cbz w9, .L2354 -.L2355: + bne .L2445 + cbz w10, .L2444 +.L2445: cmp w27, w22 csinv w28, w27, wzr, ne - b .L2354 -.L2353: + b .L2444 +.L2443: add x0, x25, :lo12:.LANCHOR4 ldrh w1, [x19] - strh w1, [x0,4058] + strh w1, [x0,4074] ldrb w1, [x19,8] - cbnz w1, .L2346 + cbnz w1, .L2436 adrp x1, .LANCHOR0 add x1, x1, :lo12:.LANCHOR0 - add x1, x1, 652 + add x1, x1, 648 ldrh w2, [x1,w24,sxtw 1] mov w1, 65535 cmp w2, w1 - bne .L2357 + bne .L2447 cmn w28, #1 - beq .L2358 - str w28, [x0,4012] - b .L2346 -.L2358: + beq .L2448 + str w28, [x0,4028] + b .L2436 +.L2448: cmp w3, w22 - beq .L2359 - str w3, [x0,4012] - b .L2346 -.L2359: - ldr w1, [x0,4012] - b .L2485 -.L2357: + beq .L2449 + str w3, [x0,4028] + b .L2436 +.L2449: + ldr w1, [x0,4028] + b .L2580 +.L2447: cmp w27, w22 - beq .L2360 + beq .L2450 cmn w27, #1 - beq .L2346 - str w27, [x0,4012] - b .L2346 -.L2360: - ldr w1, [x0,4012] + beq .L2436 + str w27, [x0,4028] + b .L2436 +.L2450: + ldr w1, [x0,4028] cmp w1, w22 - beq .L2346 -.L2485: + beq .L2436 +.L2580: sub w1, w1, #1 - b .L2480 -.L2354: + b .L2575 +.L2444: add w1, w1, 1 add x0, x0, 56 uxth w1, w1 - b .L2352 -.L2488: + b .L2442 +.L2583: add w24, w24, 1 uxth w24, w24 - b .L2349 -.L2362: + b .L2439 +.L2452: add x0, x25, :lo12:.LANCHOR4 mov w1, -1 -.L2480: - str w1, [x0,4012] -.L2346: +.L2575: + str w1, [x0,4028] +.L2436: add x0, x25, :lo12:.LANCHOR4 mov w1, 1 ldr w23, [x29,188] - strh w1, [x0,4060] + strh w1, [x0,4076] + adrp x0, .LC149 + add x0, x0, :lo12:.LC149 + str x0, [x29,128] adrp x0, .LC148 add x0, x0, :lo12:.LC148 - str x0, [x29,128] - adrp x0, .LC147 - add x0, x0, :lo12:.LC147 str x0, [x29,120] -.L2364: +.L2454: add x0, x20, :lo12:.LANCHOR2 adrp x1, .LANCHOR0 add x1, x1, :lo12:.LANCHOR0 str wzr, [x29,176] mov w7, 65535 mov w8, 56 - ldrh w3, [x0,748] - ldrb w6, [x1,136] + ldrh w3, [x0,756] + ldrb w6, [x1,4044] mov x1, x19 add x3, x19, x3, lsl 1 -.L2365: +.L2455: cmp x1, x3 - beq .L2489 + beq .L2584 ldrh w2, [x1,16] cmp w2, w7 - beq .L2366 + beq .L2456 ldr w0, [x29,176] add x5, x20, :lo12:.LANCHOR2 orr w2, w23, w2, lsl 10 - ldr x4, [x5,992] + ldr x4, [x5,1000] umull x0, w0, w8 add x4, x4, x0 str w2, [x4,4] ldrb w2, [x19,8] cmp w2, 1 - bne .L2367 - cbz w6, .L2367 - ldr x2, [x5,992] + bne .L2457 + cbz w6, .L2457 + ldr x2, [x5,1000] add x0, x2, x0 ldr w2, [x0,4] orr w2, w2, -2147483648 str w2, [x0,4] -.L2367: +.L2457: ldr w0, [x29,176] add w0, w0, 1 uxth w0, w0 str w0, [x29,176] -.L2366: +.L2456: add x1, x1, 2 - b .L2365 -.L2489: + b .L2455 +.L2584: add x0, x20, :lo12:.LANCHOR2 ldr w1, [x29,176] ldr w2, [x29,184] - ldr x0, [x0,992] + ldr x0, [x0,1000] bl FlashReadPages str xzr, [x29,160] -.L2369: +.L2459: ldrh w0, [x29,160] ldr w1, [x29,176] cmp w1, w0, uxth - bls .L2490 + bls .L2585 ldr x0, [x29,160] mov x24, 56 mul x24, x0, x24 add x0, x20, :lo12:.LANCHOR2 - ldr x28, [x0,992] + ldr x28, [x0,1000] add x27, x28, x24 ldr w1, [x27,4] str w1, [x29,204] @@ -16113,41 +16457,41 @@ FtlRecoverySuperblock: ldr w1, [x29,188] cmp w23, w1 ldr x1, [x29,168] - bcc .L2370 + bcc .L2460 ldr w2, [x29,152] cmp w0, w2 - bcs .L2404 + bcs .L2495 ldr w2, [x29,188] cmp w23, w2 - beq .L2370 -.L2404: + beq .L2460 +.L2495: cmp w0, w26 - bne .L2405 + bne .L2496 cmp w23, w21 - beq .L2372 -.L2405: + beq .L2462 +.L2496: ldr w0, [x28,x24] cmn w0, #1 - beq .L2374 + beq .L2464 ldr x28, [x27,16] mov w0, 61589 ldrh w1, [x28] cmp w1, w0 - beq .L2375 + beq .L2465 ldrh w0, [x19] - b .L2481 -.L2375: + b .L2576 +.L2465: ldr w22, [x28,4] cmn w22, #1 - beq .L2376 + beq .L2466 add x27, x20, :lo12:.LANCHOR2 mov w0, w22 - ldr w1, [x27,876] + ldr w1, [x27,880] bl ftl_cmp_data_ver - cbz w0, .L2376 + cbz w0, .L2466 add w0, w22, 1 - str w0, [x27,876] -.L2376: + str w0, [x27,880] +.L2466: ldr w27, [x28,8] add x1, x29, 200 ldr w0, [x28,12] @@ -16155,257 +16499,266 @@ FtlRecoverySuperblock: str w0, [x29,196] mov w0, w27 bl log2phys + ldr w28, [x29,196] add x0, x25, :lo12:.LANCHOR4 str x0, [x29,136] - ldr w1, [x0,4012] + ldr w1, [x0,4028] cmn w1, #1 - beq .L2377 + beq .L2467 mov w0, w22 bl ftl_cmp_data_ver - cbz w0, .L2377 - ldr w1, [x29,196] - cmn w1, #1 - beq .L2378 + cbz w0, .L2467 + cmn w28, #1 + beq .L2468 add x3, x20, :lo12:.LANCHOR2 + mov w2, 0 str x3, [x29,112] - ldr x0, [x3,992] + ldr x0, [x3,1000] add x0, x0, x24 - str w1, [x0,4] + str w28, [x0,4] + ldr x1, [x0,16] + ldr x0, [x3,1000] + str x1, [x29,168] mov w1, 1 - ldr x2, [x0,16] - ldr x0, [x3,992] - str x2, [x29,168] - mov w2, 0 add x0, x0, x24 bl FlashReadPages ldr x3, [x29,112] ldr x0, [x29,168] - ldr x2, [x3,992] + ldr x2, [x3,1000] ldr w0, [x0,4] str w0, [x29,144] add x4, x2, x24 ldr w0, [x2,x24] cmn w0, #1 - bne .L2379 - b .L2380 -.L2378: + bne .L2469 + b .L2470 +.L2468: ldr w0, [x29,204] ldr w1, [x29,200] cmp w1, w0 - bne .L2370 + bne .L2460 mov w0, w27 add x1, x29, 196 mov w2, 1 bl log2phys - b .L2370 -.L2379: + b .L2460 +.L2469: ldr x0, [x29,168] ldr w28, [x0,8] cmp w28, w27 - bne .L2380 + bne .L2470 ldr x0, [x29,136] ldr w1, [x29,144] str x2, [x29,96] - ldr w0, [x0,4012] + ldr w0, [x0,4028] str x3, [x29,104] str x4, [x29,112] bl ftl_cmp_data_ver ldr x4, [x29,112] ldr x3, [x29,104] ldr x2, [x29,96] - cbz w0, .L2380 + cbz w0, .L2470 ldr w0, [x29,200] ldr w1, [x29,204] cmp w0, w1 - beq .L2385 + beq .L2475 ldr w1, [x29,196] cmp w0, w1 - beq .L2380 + beq .L2470 cmn w0, #1 - beq .L2383 + beq .L2473 str w0, [x4,4] mov w2, 0 ldr x1, [x4,16] - ldr x0, [x3,992] + ldr x0, [x3,1000] str x1, [x29,168] mov w1, 1 add x0, x0, x24 bl FlashReadPages - b .L2384 -.L2383: + b .L2474 +.L2473: str w0, [x2,x24] -.L2384: - adrp x0, .LANCHOR2+992 - ldr x0, [x0,#:lo12:.LANCHOR2+992] +.L2474: + adrp x0, .LANCHOR2 + add x0, x0, :lo12:.LANCHOR2 + ldr x0, [x0,1000] ldr w0, [x0,x24] cmn w0, #1 - beq .L2385 + beq .L2475 ldr x0, [x29,168] ldr w24, [x0,4] add x0, x25, :lo12:.LANCHOR4 mov w1, w24 - ldr w0, [x0,4012] + ldr w0, [x0,4028] bl ftl_cmp_data_ver - cbz w0, .L2385 + cbz w0, .L2475 ldr w0, [x29,144] mov w1, w24 bl ftl_cmp_data_ver - cbz w0, .L2380 -.L2385: + cbz w0, .L2470 +.L2475: ldr w1, [x29,196] mov w0, w28 bl FtlReUsePrevPpa -.L2380: +.L2470: mov w0, -1 str w0, [x29,196] - b .L2387 -.L2377: + b .L2477 +.L2467: ldr w0, [x29,204] ldr w1, [x29,200] cmp w1, w0 - beq .L2387 + beq .L2477 + add x0, x20, :lo12:.LANCHOR2 + ldr w0, [x0,772] + cmp w0, w28, lsr 10 + bhi .L2497 + cmn w28, #1 + bne .L2460 +.L2497: mov w0, w27 add x1, x29, 204 mov w2, 1 bl log2phys - ldr w24, [x29,200] - cmn w24, #1 - beq .L2387 + ldr w28, [x29,200] + cmn w28, #1 + beq .L2477 ldr w0, [x29,196] - cmp w24, w0 - beq .L2387 - lsr x0, x24, 10 + cmp w28, w0 + beq .L2477 + lsr x0, x28, 10 bl P2V_block_in_plane uxth w0, w0 add x1, x20, :lo12:.LANCHOR2 - ldrh w2, [x1,3608] + ldrh w2, [x1,3616] cmp w2, w0 - beq .L2390 - ldrh w2, [x1,3656] + beq .L2481 + ldrh w2, [x1,3664] cmp w2, w0 - beq .L2390 - ldrh w1, [x1,3704] + beq .L2481 + ldrh w1, [x1,3712] cmp w1, w0 - bne .L2387 -.L2390: - add x28, x20, :lo12:.LANCHOR2 + bne .L2477 +.L2481: + adrp x0, .LANCHOR2 mov w1, 1 + add x24, x0, :lo12:.LANCHOR2 mov w2, 0 - ldr x0, [x28,992] - str w24, [x0,4] + ldr x0, [x24,1000] + str w28, [x0,4] ldr x3, [x0,16] - ldr x0, [x28,992] + ldr x0, [x24,1000] str x3, [x29,168] bl FlashReadPages - ldr x0, [x28,992] + ldr x0, [x24,1000] ldr x3, [x29,168] ldr w0, [x0] ldr w1, [x3,4] cmn w0, #1 - beq .L2387 + beq .L2477 mov w0, w22 bl ftl_cmp_data_ver - cbnz w0, .L2387 + cbnz w0, .L2477 mov w0, w27 add x1, x29, 200 mov w2, 1 bl log2phys -.L2387: +.L2477: ldr w0, [x29,196] cmn w0, #1 - beq .L2370 + beq .L2460 lsr x0, x0, 10 bl P2V_block_in_plane uxth w1, w0 add x2, x20, :lo12:.LANCHOR2 ubfiz x3, x1, 1, 16 - ldr x2, [x2,1184] + ldr x2, [x2,1192] ldrh w2, [x2,x3] - cbz w2, .L2391 -.L2481: + cbz w2, .L2482 +.L2576: bl decrement_vpc_count - b .L2370 -.L2391: + b .L2460 +.L2482: ldr x0, [x29,120] bl printk - b .L2370 -.L2374: + b .L2460 +.L2464: add x24, x25, :lo12:.LANCHOR4 ldrh w0, [x19] mov w2, w22 - strh w0, [x24,4058] + strh w0, [x24,4074] ldr x0, [x29,128] bl printk - ldr w0, [x24,4064] + ldr w0, [x24,4080] cmp w0, 31 - bhi .L2392 - add x1, x24, 4072 + bhi .L2483 + add x1, x24, 4088 ldr w2, [x29,204] str w2, [x1,w0,uxtw 2] add w0, w0, 1 - str w0, [x24,4064] -.L2392: + str w0, [x24,4080] +.L2483: ldrh w0, [x19] bl decrement_vpc_count add x0, x25, :lo12:.LANCHOR4 - ldr w1, [x0,4012] + ldr w1, [x0,4028] cmn w1, #1 - beq .L2482 + beq .L2577 cmp w1, w22 - bls .L2370 -.L2482: - str w22, [x0,4012] -.L2370: + bls .L2460 +.L2577: + str w22, [x0,4028] +.L2460: ldr x0, [x29,160] add x0, x0, 1 str x0, [x29,160] - b .L2369 -.L2490: + b .L2459 +.L2585: ldrb w0, [x19,8] add w23, w23, 1 cmp w0, 1 uxth w23, w23 - bne .L2395 + bne .L2486 adrp x0, .LANCHOR0 add x0, x0, :lo12:.LANCHOR0 - ldrb w0, [x0,136] - cbz w0, .L2395 + ldrb w0, [x0,4044] + cbz w0, .L2486 cmp w21, w23 - bne .L2395 + bne .L2486 add x0, x20, :lo12:.LANCHOR2 - ldrh w0, [x0,820] + ldrh w0, [x0,826] cmp w0, w23 - beq .L2372 -.L2395: + beq .L2462 +.L2486: add x0, x20, :lo12:.LANCHOR2 - ldrh w1, [x0,818] + ldrh w1, [x0,824] cmp w23, w1 - bne .L2364 - ldrh w2, [x0,748] + bne .L2454 + ldrh w2, [x0,756] mov w3, 65535 strh w23, [x19,2] mov x0, 0 strh wzr, [x19,4] -.L2397: +.L2488: uxth w1, w0 cmp w1, w2 - bcs .L2477 + bcs .L2572 add x0, x0, 1 add x4, x19, x0, lsl 1 ldrh w4, [x4,14] cmp w4, w3 - beq .L2397 + beq .L2488 strb w1, [x19,6] - b .L2477 -.L2372: + b .L2572 +.L2462: strb w26, [x19,6] strh w21, [x19,2] -.L2484: +.L2579: mov x0, x19 mov w1, w21 mov w2, w26 bl ftl_sb_update_avl_pages -.L2477: +.L2572: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -16419,231 +16772,227 @@ FtlRecoverySuperblock: .global FtlSlcSuperblockCheck .type FtlSlcSuperblockCheck, %function FtlSlcSuperblockCheck: - stp x29, x30, [sp, -64]! + stp x29, x30, [sp, -48]! add x29, sp, 0 stp x19, x20, [sp,16] stp x21, x22, [sp,32] - str x23, [sp,48] ldrh w1, [x0,4] - cbz w1, .L2491 + cbz w1, .L2586 ldrh w1, [x0] mov w20, 65535 cmp w1, w20 - beq .L2491 + beq .L2586 mov x19, x0 ldrb w0, [x0,6] adrp x21, .LANCHOR0 - adrp x23, .LANCHOR2 + adrp x22, .LANCHOR2 add x0, x0, 8 add x21, x21, :lo12:.LANCHOR0 - add x22, x21, 652 ldrh w0, [x19,x0,lsl 1] -.L2495: +.L2590: cmp w0, w20 - bne .L2502 -.L2497: + bne .L2597 +.L2592: ldrb w0, [x19,6] - add x1, x23, :lo12:.LANCHOR2 + add x1, x22, :lo12:.LANCHOR2 add w0, w0, 1 - ldrh w1, [x1,748] + ldrh w1, [x1,756] uxtb w0, w0 strb w0, [x19,6] cmp w1, w0 - bne .L2496 + bne .L2591 ldrh w0, [x19,2] strb wzr, [x19,6] add w0, w0, 1 strh w0, [x19,2] -.L2496: +.L2591: ldrb w0, [x19,6] add x0, x0, 8 ldrh w0, [x19,x0,lsl 1] - b .L2495 -.L2502: + b .L2590 +.L2597: ldrb w1, [x19,8] cmp w1, 1 - bne .L2498 - ldrb w0, [x21,136] - cbnz w0, .L2498 - ldrh w0, [x19,2] - ldrh w0, [x22,w0,sxtw 1] + bne .L2593 + ldrb w0, [x21,4044] + cbnz w0, .L2593 + add x0, x21, 648 + ldrh w2, [x19,2] + ldrh w0, [x0,w2,sxtw 1] cmp w0, w20 - bne .L2498 + bne .L2593 ldrh w0, [x19,4] sub w0, w0, #1 strh w0, [x19,4] ldrh w0, [x19] bl decrement_vpc_count ldrh w1, [x19,4] - cbnz w1, .L2497 + cbnz w1, .L2592 ldrh w0, [x19,2] strb w1, [x19,6] add w0, w0, 1 strh w0, [x19,2] - b .L2491 -.L2498: + b .L2586 +.L2593: adrp x0, .LANCHOR0 add x0, x0, :lo12:.LANCHOR0 - ldrb w0, [x0,136] - cbz w0, .L2491 + ldrb w0, [x0,4044] + cbz w0, .L2586 cmp w1, 1 - bne .L2491 + bne .L2586 adrp x0, .LANCHOR2 ldrh w2, [x19,2] add x0, x0, :lo12:.LANCHOR2 - ldrh w1, [x0,820] + ldrh w1, [x0,826] cmp w2, w1 - bcc .L2491 + bcc .L2586 ldrh w1, [x19] - ldr x3, [x0,1184] + ldr x3, [x0,1192] lsl x1, x1, 1 ldrh w4, [x19,4] ldrh w2, [x3,x1] sub w2, w2, w4 strh w2, [x3,x1] strh wzr, [x19,4] - ldrh w0, [x0,818] + ldrh w0, [x0,824] strh w0, [x19,2] strb wzr, [x19,6] -.L2491: +.L2586: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] - ldr x23, [sp,48] - ldp x29, x30, [sp], 64 + ldp x29, x30, [sp], 48 ret .size FtlSlcSuperblockCheck, .-FtlSlcSuperblockCheck .align 2 .global get_new_active_ppa .type get_new_active_ppa, %function get_new_active_ppa: - stp x29, x30, [sp, -80]! + stp x29, x30, [sp, -64]! add x29, sp, 0 stp x19, x20, [sp,16] - stp x23, x24, [sp,48] stp x21, x22, [sp,32] - str x25, [sp,64] + stp x23, x24, [sp,48] mov x19, x0 strb wzr, [x0,10] - adrp x20, .LANCHOR0 ldrb w0, [x0,6] - add x20, x20, :lo12:.LANCHOR0 + adrp x20, .LANCHOR0 mov w22, 65535 adrp x23, .LANCHOR2 add x0, x0, 8 - add x24, x20, 652 + add x20, x20, :lo12:.LANCHOR0 ldrh w0, [x19,x0,lsl 1] -.L2504: +.L2599: cmp w0, w22 adrp x21, .LANCHOR2 - bne .L2519 -.L2505: + bne .L2614 +.L2600: ldrb w0, [x19,6] add x1, x23, :lo12:.LANCHOR2 add w0, w0, 1 - ldrh w1, [x1,748] + ldrh w1, [x1,756] uxtb w0, w0 strb w0, [x19,6] cmp w1, w0 - bne .L2506 + bne .L2601 ldrh w0, [x19,2] strb wzr, [x19,6] add w0, w0, 1 strh w0, [x19,2] -.L2506: +.L2601: ldrb w0, [x19,6] add x0, x0, 8 ldrh w0, [x19,x0,lsl 1] - b .L2504 -.L2519: + b .L2599 +.L2614: ldrb w1, [x19,8] cmp w1, 1 - bne .L2507 - ldrb w1, [x20,136] - cbnz w1, .L2507 - ldrh w1, [x19,2] - ldrh w1, [x24,w1,sxtw 1] + bne .L2602 + ldrb w1, [x20,4044] + cbnz w1, .L2602 + add x1, x20, 648 + ldrh w2, [x19,2] + ldrh w1, [x1,w2,sxtw 1] cmp w1, w22 - bne .L2507 + bne .L2602 ldrh w0, [x19,4] sub w0, w0, #1 strh w0, [x19,4] ldrh w0, [x19] bl decrement_vpc_count - b .L2505 -.L2507: + b .L2600 +.L2602: ldrh w1, [x19,4] - adrp x20, .LANCHOR0 - ldrh w22, [x19,2] mov w23, 65535 - add x20, x20, :lo12:.LANCHOR0 + ldrh w22, [x19,2] + adrp x20, .LANCHOR0 sub w1, w1, #1 + mov w24, w23 orr w22, w22, w0, lsl 10 strh w1, [x19,4] - mov w24, w23 - add x25, x20, 652 -.L2508: + add x20, x20, :lo12:.LANCHOR0 +.L2603: add x0, x21, :lo12:.LANCHOR2 ldrb w1, [x19,6] - ldrh w2, [x0,748] -.L2510: + ldrh w2, [x0,756] +.L2605: add w1, w1, 1 uxtb w1, w1 cmp w1, w2 - bne .L2509 + bne .L2604 ldrh w1, [x19,2] add w1, w1, 1 strh w1, [x19,2] mov w1, 0 -.L2509: +.L2604: add x0, x19, x1, sxtw 1 ldrh w0, [x0,16] cmp w0, w23 - beq .L2510 + beq .L2605 ldrb w0, [x19,8] strb w1, [x19,6] cmp w0, 1 - bne .L2515 - ldrb w0, [x20,136] - cbnz w0, .L2512 + bne .L2610 + ldrb w0, [x20,4044] + cbnz w0, .L2607 + add x1, x20, 648 ldrh w0, [x19,2] - ldrh w0, [x25,w0,sxtw 1] + ldrh w0, [x1,w0,sxtw 1] cmp w0, w24 - bne .L2512 + bne .L2607 ldrh w1, [x19,4] - cbz w1, .L2512 + cbz w1, .L2607 ldrh w0, [x19] sub w1, w1, #1 strh w1, [x19,4] bl decrement_vpc_count - b .L2508 -.L2512: + b .L2603 +.L2607: adrp x1, .LANCHOR0 add x1, x1, :lo12:.LANCHOR0 - ldrb w0, [x1,136] - cbz w0, .L2515 + ldrb w0, [x1,4044] + cbz w0, .L2610 add x2, x21, :lo12:.LANCHOR2 ldrh w1, [x19,2] - ldrh w0, [x2,820] + ldrh w0, [x2,826] cmp w1, w0 - bcc .L2515 + bcc .L2610 ldrh w1, [x19] - ldr x0, [x2,1184] + ldr x0, [x2,1192] lsl x1, x1, 1 ldrh w4, [x19,4] ldrh w3, [x0,x1] sub w3, w3, w4 strh w3, [x0,x1] strh wzr, [x19,4] - ldrh w0, [x2,818] + ldrh w0, [x2,824] strh w0, [x19,2] strb wzr, [x19,6] -.L2515: +.L2610: mov w0, w22 - ldr x25, [sp,64] ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] - ldp x29, x30, [sp], 80 + ldp x29, x30, [sp], 64 ret .size get_new_active_ppa, .-get_new_active_ppa .align 2 @@ -16658,58 +17007,58 @@ FtlWriteDumpData: add x20, x19, :lo12:.LANCHOR2 stp x21, x22, [sp,32] stp x23, x24, [sp,48] - ldr w0, [x20,1400] - cbnz w0, .L2520 - ldrh w2, [x20,3612] - cbz w2, .L2522 - ldrb w1, [x20,3616] - cbnz w1, .L2522 - ldrb w1, [x20,3615] - ldrh w3, [x20,818] + ldr w0, [x20,1408] + cbnz w0, .L2615 + ldrh w2, [x20,3620] + cbz w2, .L2617 + ldrb w1, [x20,3624] + cbnz w1, .L2617 + ldrb w1, [x20,3623] + ldrh w3, [x20,824] mul w1, w1, w3 cmp w2, w1 - beq .L2522 - ldrb w23, [x20,3618] - ldr w22, [x20,1396] - ldrh w24, [x20,748] - cbnz w23, .L2520 + beq .L2617 + ldrb w23, [x20,3626] + ldr w22, [x20,1404] + ldrh w24, [x20,756] + cbnz w23, .L2615 sub w22, w22, #1 add x1, x29, 84 mov w0, w22 mov w2, w23 bl log2phys - ldr x21, [x20,1112] + ldr x21, [x20,1120] ldr w0, [x29,84] - ldr x1, [x20,1048] + ldr x1, [x20,1056] str w0, [x29,92] cmn w0, #1 str w22, [x29,112] str x1, [x29,96] str x21, [x29,104] str w23, [x21,4] - beq .L2524 + beq .L2619 add x0, x29, 88 mov w1, 1 mov w2, w23 bl FlashReadPages - b .L2525 -.L2524: - ldr x0, [x20,1048] + b .L2620 +.L2619: + ldr x0, [x20,1056] mov w1, 255 - ldrh w2, [x20,828] + ldrh w2, [x20,834] bl ftl_memset -.L2525: +.L2620: add x25, x19, :lo12:.LANCHOR2 mov w0, -3947 lsl w24, w24, 2 strh w0, [x21] mov w23, 0 - add x20, x25, 3608 -.L2526: + add x20, x25, 3616 +.L2621: cmp w23, w24 - beq .L2527 + beq .L2622 ldrh w0, [x20,4] - cbz w0, .L2527 + cbz w0, .L2622 ldr w0, [x29,92] add w23, w23, 1 str w0, [x21,12] @@ -16719,7 +17068,7 @@ FtlWriteDumpData: str w22, [x21,8] bl get_new_active_ppa str w0, [x29,92] - ldr w1, [x25,876] + ldr w1, [x25,880] mov w2, 0 str w1, [x21,4] mov w3, w2 @@ -16727,21 +17076,21 @@ FtlWriteDumpData: add x0, x29, 88 cmn w1, #1 csel w1, w1, wzr, ne - str w1, [x25,876] + str w1, [x25,880] mov w1, 1 bl FlashProgPages ldrh w0, [x20] bl decrement_vpc_count - b .L2526 -.L2527: + b .L2621 +.L2622: add x19, x19, :lo12:.LANCHOR2 mov w0, 1 - strb w0, [x19,3618] - b .L2520 -.L2522: + strb w0, [x19,3626] + b .L2615 +.L2617: add x19, x19, :lo12:.LANCHOR2 - strb wzr, [x19,3618] -.L2520: + strb wzr, [x19,3626] +.L2615: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -16759,23 +17108,23 @@ l2p_flush: mov w19, 0 adrp x20, .LANCHOR2 bl FtlWriteDumpData -.L2538: +.L2633: add x1, x20, :lo12:.LANCHOR2 - ldrh w0, [x1,858] + ldrh w0, [x1,862] cmp w0, w19 - bls .L2541 - ldr x1, [x1,1264] + bls .L2636 + ldr x1, [x1,1272] ubfiz x0, x19, 4, 16 add x0, x1, x0 ldr w0, [x0,4] - tbz w0, #31, .L2539 + tbz w0, #31, .L2634 mov w0, w19 bl flush_l2p_region -.L2539: +.L2634: add w19, w19, 1 uxth w19, w19 - b .L2538 -.L2541: + b .L2633 +.L2636: mov w0, 0 ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 @@ -16792,28 +17141,28 @@ FtlSuperblockPowerLostFix: str x23, [sp,48] add x1, x20, :lo12:.LANCHOR2 stp x21, x22, [sp,32] - ldr w1, [x1,1400] - cbnz w1, .L2542 - adrp x2, .LANCHOR0+136 - ldrb w21, [x2,#:lo12:.LANCHOR0+136] - cbz w21, .L2557 + ldr w1, [x1,1408] + cbnz w1, .L2637 + adrp x2, .LANCHOR0+4044 + ldrb w21, [x2,#:lo12:.LANCHOR0+4044] + cbz w21, .L2652 ldrb w21, [x0,8] cmp w21, 1 - bne .L2553 + bne .L2648 ldrh w23, [x0,4] - b .L2544 -.L2553: + b .L2639 +.L2648: mov w21, w1 -.L2557: +.L2652: mov w23, 12 -.L2544: +.L2639: mov x19, x0 mov w0, -1 str w0, [x29,96] add x0, x20, :lo12:.LANCHOR2 mov w2, 61589 - ldr x22, [x0,1112] - ldr x1, [x0,1048] + ldr x22, [x0,1120] + ldr x1, [x0,1056] str x1, [x29,80] mov w1, -3 str x22, [x29,88] @@ -16823,54 +17172,54 @@ FtlSuperblockPowerLostFix: ldrh w1, [x19] strh w1, [x22,2] strh wzr, [x22] - ldr x1, [x0,1048] + ldr x1, [x0,1056] str w2, [x1] - ldr x1, [x0,1048] + ldr x1, [x0,1056] mov w0, 22136 movk w0, 0x1234, lsl 16 str w0, [x1,4] -.L2545: +.L2640: sub w23, w23, #1 cmn w23, #1 - beq .L2548 + beq .L2643 ldrh w0, [x19,4] - cbnz w0, .L2546 -.L2548: + cbnz w0, .L2641 +.L2643: add x20, x20, :lo12:.LANCHOR2 ldrh w0, [x19] ldrh w3, [x19,4] lsl x0, x0, 1 - ldr x2, [x20,1184] + ldr x2, [x20,1192] ldrh w1, [x2,x0] sub w1, w1, w3 strh w1, [x2,x0] strb wzr, [x19,6] - ldrh w0, [x20,818] + ldrh w0, [x20,824] strh w0, [x19,2] strh wzr, [x19,4] - b .L2542 -.L2546: + b .L2637 +.L2641: mov x0, x19 bl get_new_active_ppa str w0, [x29,76] cmn w0, #1 - beq .L2548 + beq .L2643 add x1, x20, :lo12:.LANCHOR2 mov w2, w21 mov w3, 0 - ldr w0, [x1,876] + ldr w0, [x1,880] str w0, [x22,4] add w0, w0, 1 cmn w0, #1 csel w0, w0, wzr, ne - str w0, [x1,876] + str w0, [x1,880] add x0, x29, 72 mov w1, 1 bl FlashProgPages ldrh w0, [x19] bl decrement_vpc_count - b .L2545 -.L2542: + b .L2640 +.L2637: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldr x23, [sp,48] @@ -16897,80 +17246,80 @@ FtlVpcCheckAndModify: add x0, x19, :lo12:.LANCHOR2 mov w1, 0 mov x21, x19 - ldrh w2, [x0,758] - ldr x0, [x0,1176] + ldrh w2, [x0,766] + ldr x0, [x0,1184] lsl w2, w2, 1 bl ftl_memset -.L2559: +.L2654: add x19, x21, :lo12:.LANCHOR2 - ldr w0, [x19,1396] + ldr w0, [x19,1404] cmp w20, w0 - bcs .L2575 + bcs .L2670 mov w0, w20 add x1, x29, 76 mov w2, 0 bl log2phys ldr w0, [x29,76] cmn w0, #1 - beq .L2560 + beq .L2655 lsr x0, x0, 10 bl P2V_block_in_plane ubfiz x0, x0, 1, 16 - ldr x2, [x19,1176] + ldr x2, [x19,1184] ldrh w1, [x2,x0] add w1, w1, 1 strh w1, [x2,x0] -.L2560: +.L2655: add w20, w20, 1 - b .L2559 -.L2575: - adrp x22, .LC149 + b .L2654 +.L2670: + adrp x22, .LC150 mov w20, 0 mov w23, 65535 - add x22, x22, :lo12:.LC149 -.L2562: - ldrh w0, [x19,756] + add x22, x22, :lo12:.LC150 +.L2657: + ldrh w0, [x19,764] cmp w0, w20 - bls .L2576 + bls .L2671 ubfiz x21, x20, 1, 16 - ldr x0, [x19,1184] + ldr x0, [x19,1192] ldrh w2, [x0,x21] - ldr x0, [x19,1176] + ldr x0, [x19,1184] ldrh w3, [x0,x21] cmp w2, w3 - beq .L2565 + beq .L2660 cmp w2, w23 - beq .L2565 + beq .L2660 mov x0, x22 mov w1, w20 bl printk - ldrh w0, [x19,3608] + ldrh w0, [x19,3616] cmp w0, w20 - beq .L2565 - ldrh w0, [x19,3704] + beq .L2660 + ldrh w0, [x19,3712] cmp w0, w20 - beq .L2565 - ldrh w0, [x19,3656] + beq .L2660 + ldrh w0, [x19,3664] cmp w0, w20 - beq .L2565 - ldr x0, [x19,1184] + beq .L2660 + ldr x0, [x19,1192] ldrh w1, [x0,x21] - cbnz w1, .L2567 - ldr x1, [x19,1176] + cbnz w1, .L2662 + ldr x1, [x19,1184] ldrh w1, [x1,x21] strh w1, [x0,x21] - b .L2565 -.L2567: - ldr x1, [x19,1176] + b .L2660 +.L2662: + ldr x1, [x19,1184] ldrh w1, [x1,x21] strh w1, [x0,x21] mov w0, w20 bl update_vpc_list -.L2565: +.L2660: add w20, w20, 1 uxth w20, w20 - b .L2562 -.L2576: + b .L2657 +.L2671: bl l2p_flush bl FtlVpcTblFlush ldr x23, [sp,48] @@ -16989,91 +17338,91 @@ allocate_new_data_superblock: adrp x19, .LANCHOR2 add x2, x19, :lo12:.LANCHOR2 stp x21, x22, [sp,32] - ldr w1, [x2,1400] + ldr w1, [x2,1408] ldrh w22, [x0] - cbnz w1, .L2578 + cbnz w1, .L2673 mov x21, x0 mov w0, 65535 cmp w22, w0 - beq .L2579 + beq .L2674 ubfiz x1, x22, 1, 16 - ldr x0, [x2,1184] + ldr x0, [x2,1192] ldrh w0, [x0,x1] - cbz w0, .L2580 + cbz w0, .L2675 mov w0, w22 bl INSERT_DATA_LIST - b .L2579 -.L2580: + b .L2674 +.L2675: mov w0, w22 bl INSERT_FREE_LIST -.L2579: +.L2674: add x1, x19, :lo12:.LANCHOR2 strb wzr, [x21,8] - add x0, x1, 3656 + add x0, x1, 3664 cmp x21, x0 - beq .L2581 - ldrh w2, [x1,768] + beq .L2676 + ldrh w2, [x1,776] cmp w2, 1 - beq .L2581 - adrp x0, .LANCHOR0+136 - ldrb w0, [x0,#:lo12:.LANCHOR0+136] - cbz w0, .L2582 -.L2581: + beq .L2676 + adrp x0, .LANCHOR0+4044 + ldrb w0, [x0,#:lo12:.LANCHOR0+4044] + cbz w0, .L2677 +.L2676: mov w0, 1 strb w0, [x21,8] - b .L2583 -.L2582: - add x0, x1, 3608 + b .L2678 +.L2677: + add x0, x1, 3616 cmp x21, x0 - bne .L2583 + bne .L2678 cmp w2, 3 - beq .L2585 - ldr w0, [x1,868] + beq .L2680 + ldr w0, [x1,872] cmp w0, 1 - bne .L2586 -.L2585: + bne .L2681 +.L2680: add x1, x19, :lo12:.LANCHOR2 mov w0, 1 - strb w0, [x1,3616] -.L2586: + strb w0, [x1,3624] +.L2681: add x1, x19, :lo12:.LANCHOR2 - ldr w0, [x1,652] - cbz w0, .L2583 - ldr w0, [x1,920] + ldr w0, [x1,660] + cbz w0, .L2678 + ldr w0, [x1,924] cmp w0, 39 - bhi .L2583 + bhi .L2678 mov w0, 1 - strb w0, [x1,3616] -.L2583: + strb w0, [x1,3624] +.L2678: adrp x1, .LANCHOR4 add x0, x1, :lo12:.LANCHOR4 mov x20, x1 - ldrh w2, [x0,4000] + ldrh w2, [x0,4016] mov w0, 65535 cmp w2, w0 - beq .L2588 + beq .L2683 cmp w22, w2 - bne .L2589 + bne .L2684 add x19, x19, :lo12:.LANCHOR2 ubfiz x1, x2, 1, 16 - ldr x0, [x19,1184] + ldr x0, [x19,1192] ldrh w0, [x0,x1] - cbz w0, .L2590 -.L2589: + cbz w0, .L2685 +.L2684: mov w0, w2 bl update_vpc_list -.L2590: +.L2685: add x1, x20, :lo12:.LANCHOR4 mov w0, -1 - strh w0, [x1,4000] -.L2588: + strh w0, [x1,4016] +.L2683: mov x0, x21 bl allocate_data_superblock bl l2p_flush mov w0, 0 bl FtlEctTblFlush bl FtlVpcTblFlush -.L2578: +.L2673: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -17088,34 +17437,34 @@ FtlReadRefresh: adrp x1, .LANCHOR4 add x2, x1, :lo12:.LANCHOR4 add x29, sp, 0 - add x0, x2, 3456 + add x0, x2, 3472 stp x19, x20, [sp,16] stp x21, x22, [sp,32] adrp x19, .LANCHOR2 ldr w3, [x0,80] - cbz w3, .L2604 + cbz w3, .L2699 add x1, x19, :lo12:.LANCHOR2 ldr w4, [x0,84] - ldr w3, [x1,1396] + ldr w3, [x1,1404] cmp w4, w3 - bcs .L2605 + bcs .L2700 mov w21, 2048 mov x20, x2 -.L2610: +.L2705: add x1, x19, :lo12:.LANCHOR2 - ldr w0, [x20,3540] - ldr w1, [x1,1396] + ldr w0, [x20,3556] + ldr w1, [x1,1404] cmp w0, w1 - bcs .L2607 + bcs .L2702 add x1, x29, 52 mov w2, 0 bl log2phys - ldr w0, [x20,3540] + ldr w0, [x20,3556] ldr w1, [x29,52] add w0, w0, 1 - str w0, [x20,3540] + str w0, [x20,3556] cmn w1, #1 - beq .L2608 + beq .L2703 str w1, [x29,60] mov w2, 0 str w0, [x29,80] @@ -17127,58 +17476,58 @@ FtlReadRefresh: bl FlashReadPages ldr w0, [x29,56] cmp w0, 256 - bne .L2607 + bne .L2702 ldr w0, [x29,52] lsr x0, x0, 10 bl P2V_block_in_plane bl FtlGcRefreshBlock - b .L2607 -.L2608: + b .L2702 +.L2703: subs w21, w21, #1 - bne .L2610 -.L2607: + bne .L2705 +.L2702: mov w0, -1 - b .L2612 -.L2605: - ldr w1, [x1,900] + b .L2707 +.L2700: + ldr w1, [x1,904] str wzr, [x0,80] str wzr, [x0,84] str w1, [x0,76] - b .L2618 -.L2604: + b .L2713 +.L2699: add x2, x19, :lo12:.LANCHOR2 - ldr w0, [x2,916] - ldr w3, [x2,652] - adrp x2, .LANCHOR0+136 - ldrb w4, [x2,#:lo12:.LANCHOR0+136] + ldr w0, [x2,920] + ldr w3, [x2,660] + adrp x2, .LANCHOR0+4044 + ldrb w4, [x2,#:lo12:.LANCHOR0+4044] mov w2, 4194304 - cbnz w4, .L2613 + cbnz w4, .L2708 add w0, w3, w0, lsr 10 mov w3, 33554432 asr w2, w3, w0 -.L2613: +.L2708: add x19, x19, :lo12:.LANCHOR2 add x0, x1, :lo12:.LANCHOR4 - ldr w3, [x19,900] - ldr w0, [x0,3532] + ldr w3, [x19,904] + ldr w0, [x0,3548] add w4, w3, 1048576 cmp w0, w4 - bhi .L2614 + bhi .L2709 add w0, w2, w0 cmp w0, w3 - bcc .L2614 - ldrb w2, [x19,3548] + bcc .L2709 + ldrb w2, [x19,3556] mov w0, 0 - cbnz w2, .L2612 -.L2614: + cbnz w2, .L2707 +.L2709: add x0, x1, :lo12:.LANCHOR4 mov w1, 1 - str wzr, [x0,3540] - str w1, [x0,3536] - str w3, [x0,3532] -.L2618: + str wzr, [x0,3556] + str w1, [x0,3552] + str w3, [x0,3548] +.L2713: mov w0, 0 -.L2612: +.L2707: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x29, x30, [sp], 112 @@ -17198,641 +17547,644 @@ ftl_do_gc: stp x23, x24, [sp,48] stp x25, x26, [sp,64] stp x27, x28, [sp,80] - ldr w4, [x3,1400] - cbnz w4, .L2764 - ldr w4, [x3,924] - cbnz w4, .L2764 - ldrh w4, [x3,3584] + ldr w4, [x3,1408] + cbnz w4, .L2859 + ldr w4, [x3,928] + cbnz w4, .L2859 + ldrh w4, [x3,3592] cmp w4, 47 - bls .L2764 + bls .L2859 str w0, [x29,140] - adrp x0, .LANCHOR1+3164 + adrp x0, .LANCHOR1+3292 mov w24, w1 - ldrh w1, [x0,#:lo12:.LANCHOR1+3164] + ldrh w1, [x0,#:lo12:.LANCHOR1+3292] mov w0, 65535 cmp w1, w0 - bne .L2621 -.L2624: + bne .L2716 +.L2719: add x0, x19, :lo12:.LANCHOR2 mov w2, 65535 - ldrh w4, [x0,950] + ldrh w4, [x0,954] cmp w4, w2 - bne .L2622 - b .L2623 -.L2621: - ldrh w1, [x3,3704] + bne .L2717 + b .L2718 +.L2716: + ldrh w1, [x3,3712] cmp w1, w0 - beq .L2624 + beq .L2719 mov w0, 1 bl FtlGcFreeTempBlock mov w2, 1 - cbz w0, .L2624 - b .L2764 -.L2622: - ldrh w1, [x0,948] + cbz w0, .L2719 + b .L2859 +.L2717: + ldrh w1, [x0,952] cmp w1, w2 - bne .L2623 - ldrh w3, [x0,952] + bne .L2718 + ldrh w3, [x0,956] cmp w3, w1 - beq .L2623 - ldrh w2, [x0,954] + beq .L2718 + ldrh w2, [x0,958] cmp w2, w1 - beq .L2623 + beq .L2718 mov w1, -1 - strh w4, [x0,948] - strh w3, [x0,950] - strh w2, [x0,952] - strh w1, [x0,954] -.L2623: + strh w4, [x0,952] + strh w3, [x0,954] + strh w2, [x0,956] + strh w1, [x0,958] +.L2718: add x1, x19, :lo12:.LANCHOR2 ldr w2, [x29,140] adrp x23, .LANCHOR4 cmp w2, 1 - ldr w0, [x1,940] + ldr w0, [x1,944] add w0, w0, 1 add w0, w0, w2, lsl 7 - str w0, [x1,940] - bne .L2635 - ldr w1, [x1,652] - cbnz w1, .L2626 - adrp x1, .LANCHOR0+136 - ldrb w1, [x1,#:lo12:.LANCHOR0+136] - cbz w1, .L2635 -.L2626: + str w0, [x1,944] + bne .L2730 + ldr w1, [x1,660] + cbnz w1, .L2721 + adrp x1, .LANCHOR0+4044 + ldrb w1, [x1,#:lo12:.LANCHOR0+4044] + cbz w1, .L2730 +.L2721: add x20, x19, :lo12:.LANCHOR2 - ldr w1, [x20,920] + ldr w1, [x20,924] cmp w1, 39 - bhi .L2635 + bhi .L2730 adrp x21, .LANCHOR5 add x1, x21, :lo12:.LANCHOR5 - ldrh w1, [x1,-152] + ldrh w1, [x1,-136] add w0, w0, w1 - str w0, [x20,940] + str w0, [x20,944] bl FtlGcReFreshBadBlk add x0, x23, :lo12:.LANCHOR4 mov w1, 65535 - ldrh w0, [x0,3408] + ldrh w0, [x0,3424] cmp w0, w1 - bne .L2635 - ldrh w1, [x20,948] + bne .L2730 + ldrh w1, [x20,952] cmp w1, w0 - bne .L2635 - ldr w0, [x20,940] + bne .L2730 + ldr w0, [x20,944] cmp w0, 1024 - bhi .L2627 - ldrh w0, [x20,3600] + bhi .L2722 + ldrh w0, [x20,3608] cmp w0, 63 - bhi .L2635 -.L2627: + bhi .L2730 +.L2722: add x0, x19, :lo12:.LANCHOR2 add x1, x21, :lo12:.LANCHOR5 - ldrh w2, [x0,958] - ldrh w3, [x0,3600] + ldrh w2, [x0,962] + ldrh w3, [x0,3608] add w2, w2, 64 - strh wzr, [x1,-152] + strh wzr, [x1,-136] cmp w3, w2 - bgt .L2635 - str wzr, [x0,940] - ldr w0, [x0,920] - cbnz w0, .L2628 + bgt .L2730 + str wzr, [x0,944] + ldr w0, [x0,924] + cbnz w0, .L2723 mov w0, 6 - b .L2786 -.L2628: + b .L2881 +.L2723: cmp w0, 5 - bhi .L2629 + bhi .L2724 mov w0, 18 -.L2786: - strh w0, [x1,-152] -.L2629: +.L2881: + strh w0, [x1,-136] +.L2724: mov w0, 32 mov w28, 65535 bl List_get_gc_head_node uxth w26, w0 cmp w26, w28 - beq .L2634 + beq .L2729 add x22, x19, :lo12:.LANCHOR2 - ldrh w0, [x22,960] - cbz w0, .L2631 - ldrh w1, [x22,820] + ldrh w0, [x22,964] + cbz w0, .L2726 + ldrh w1, [x22,826] ubfiz x26, x26, 1, 16 - ldrh w3, [x22,748] - ldr x27, [x22,1184] + ldrh w3, [x22,756] + ldr x27, [x22,1192] mul w1, w1, w3 ldrh w2, [x27,x26] add w1, w1, 1 cmp w2, w1 - bgt .L2634 + bgt .L2729 add w1, w0, 1 - str wzr, [x22,928] + str wzr, [x22,932] uxth w1, w1 - strh w1, [x22,960] + strh w1, [x22,964] str x1, [x29,128] bl List_get_gc_head_node uxth w20, w0 cmp w20, w28 ldr x1, [x29,128] - beq .L2634 + beq .L2729 ubfiz x28, x20, 1, 16 - adrp x0, .LC150 + adrp x0, .LC151 ldrh w4, [x27,x26] - add x0, x0, :lo12:.LC150 + add x0, x0, :lo12:.LC151 mov w2, w20 ldrh w3, [x27,x28] bl printk - ldrh w0, [x22,960] + ldrh w0, [x22,964] cmp w0, 40 - bls .L2632 - ldr x0, [x22,1184] + bls .L2727 + ldr x0, [x22,1192] ldrh w0, [x0,x28] cmp w0, 32 - bls .L2632 - strh wzr, [x22,960] -.L2632: + bls .L2727 + strh wzr, [x22,964] +.L2727: add x21, x21, :lo12:.LANCHOR5 mov w0, 6 - strh w0, [x21,-152] - b .L2636 -.L2631: + strh w0, [x21,-136] + b .L2731 +.L2726: mov w0, 1 - strh w0, [x22,960] -.L2634: + strh w0, [x22,964] +.L2729: bl GetSwlReplaceBlock uxth w20, w0 mov w0, 65535 cmp w20, w0 - bne .L2636 + bne .L2731 add x21, x21, :lo12:.LANCHOR5 - strh wzr, [x21,-152] -.L2635: + strh wzr, [x21,-136] +.L2730: add x0, x23, :lo12:.LANCHOR4 - ldrh w20, [x0,3408] + ldrh w20, [x0,3424] mov w0, 65535 cmp w20, w0 - bne .L2791 + bne .L2886 add x22, x19, :lo12:.LANCHOR2 - ldrh w0, [x22,3704] + ldrh w0, [x22,3712] cmp w0, w20 - beq .L2792 -.L2636: + beq .L2887 +.L2731: mov w0, 65535 cmp w20, w0 cset w2, eq - cbz w2, .L2649 + cbz w2, .L2744 ldr w0, [x29,140] - cbnz w0, .L2649 + cbnz w0, .L2744 add x0, x19, :lo12:.LANCHOR2 mov w22, 1 - ldrh w1, [x0,3600] + ldrh w1, [x0,3608] cmp w1, 24 - bhi .L2650 + bhi .L2745 cmp w1, 16 - ldrh w22, [x0,818] - bls .L2651 + ldrh w22, [x0,824] + bls .L2746 lsr w22, w22, 5 - b .L2650 -.L2651: + b .L2745 +.L2746: cmp w1, 12 - bls .L2652 + bls .L2747 lsr w22, w22, 4 - b .L2650 -.L2652: + b .L2745 +.L2747: lsr w0, w22, 2 cmp w1, 9 csel w22, w0, w22, cs -.L2650: +.L2745: add x0, x19, :lo12:.LANCHOR2 - ldrh w2, [x0,956] + ldrh w2, [x0,960] cmp w2, w1 - bcs .L2654 - ldrh w1, [x0,3704] + bcs .L2749 + ldrh w1, [x0,3712] mov w2, 65535 cmp w1, w2 - bne .L2655 - ldrh w2, [x0,948] + bne .L2750 + ldrh w2, [x0,952] cmp w2, w1 - bne .L2655 - adrp x1, .LANCHOR5-152 - ldrh w2, [x1,#:lo12:.LANCHOR5-152] - cbnz w2, .L2656 - ldr w1, [x0,1396] - ldr w3, [x0,3892] + bne .L2750 + adrp x1, .LANCHOR5-136 + ldrh w2, [x1,#:lo12:.LANCHOR5-136] + cbnz w2, .L2751 + ldr w1, [x0,1404] + ldr w3, [x0,3900] add w1, w1, w1, lsl 1 cmp w3, w1, lsr 2 - bcs .L2657 -.L2656: + bcs .L2752 +.L2751: add x23, x23, :lo12:.LANCHOR4 add x1, x19, :lo12:.LANCHOR2 - ldrh w0, [x23,3404] + ldrh w0, [x23,3420] add w0, w0, w0, lsl 1 asr w0, w0, 2 - strh w0, [x1,956] - b .L2658 -.L2657: + strh w0, [x1,960] + b .L2753 +.L2752: mov w1, 18 - strh w1, [x0,956] -.L2658: + strh w1, [x0,960] +.L2753: add x19, x19, :lo12:.LANCHOR2 - str wzr, [x19,928] - b .L2764 -.L2655: + str wzr, [x19,932] + b .L2859 +.L2750: add x0, x23, :lo12:.LANCHOR4 add x1, x19, :lo12:.LANCHOR2 - ldrh w0, [x0,3404] + ldrh w0, [x0,3420] add w0, w0, w0, lsl 1 asr w0, w0, 2 - strh w0, [x1,956] -.L2654: + strh w0, [x1,960] +.L2749: cmp w24, 2 - bhi .L2719 + bhi .L2814 add x0, x19, :lo12:.LANCHOR2 - ldr w0, [x0,652] - cbz w0, .L2719 + ldr w0, [x0,660] + cbz w0, .L2814 add w22, w22, 1 uxth w22, w22 - b .L2719 -.L2649: + b .L2814 +.L2744: add x0, x19, :lo12:.LANCHOR2 mov w3, 65535 - ldrh w1, [x0,3704] + ldrh w1, [x0,3712] cmp w1, w3 - bne .L2661 - cbz w2, .L2661 - ldrh w2, [x0,948] + bne .L2756 + cbz w2, .L2756 + ldrh w2, [x0,952] cmp w2, w1 - bne .L2661 + bne .L2756 add x2, x23, :lo12:.LANCHOR4 - ldrh w2, [x2,3408] + ldrh w2, [x2,3424] cmp w2, w1 - beq .L2662 -.L2667: + beq .L2757 +.L2762: mov w20, 65535 - b .L2661 -.L2662: - ldrh w2, [x0,3600] + b .L2756 +.L2757: + ldrh w2, [x0,3608] adrp x20, .LANCHOR5 - ldrh w1, [x0,956] - str wzr, [x0,928] + ldrh w1, [x0,960] + str wzr, [x0,932] cmp w2, w1 - bls .L2663 + bls .L2758 add x1, x20, :lo12:.LANCHOR5 - ldrh w1, [x1,-152] - cbnz w1, .L2664 - ldr w1, [x0,1396] - ldr w2, [x0,3892] + ldrh w1, [x1,-136] + cbnz w1, .L2759 + ldr w1, [x0,1404] + ldr w2, [x0,3900] add w1, w1, w1, lsl 1 cmp w2, w1, lsr 2 - bcs .L2665 -.L2664: + bcs .L2760 +.L2759: add x0, x23, :lo12:.LANCHOR4 add x1, x19, :lo12:.LANCHOR2 - ldrh w0, [x0,3404] + ldrh w0, [x0,3420] add w0, w0, w0, lsl 1 asr w0, w0, 2 - strh w0, [x1,956] - b .L2666 -.L2665: + strh w0, [x1,960] + b .L2761 +.L2760: mov w1, 18 - strh w1, [x0,956] -.L2666: + strh w1, [x0,960] +.L2761: bl FtlReadRefresh mov w0, 0 bl List_get_gc_head_node ubfiz x0, x0, 1, 16 add x1, x19, :lo12:.LANCHOR2 - ldr x1, [x1,1184] + ldr x1, [x1,1192] ldrh w0, [x1,x0] cmp w0, 4 - bls .L2663 + bls .L2758 add x20, x20, :lo12:.LANCHOR5 - ldrh w2, [x20,-152] - b .L2764 -.L2663: + ldrh w2, [x20,-136] + b .L2859 +.L2758: add x22, x20, :lo12:.LANCHOR5 - ldrh w0, [x22,-152] - cbnz w0, .L2667 + ldrh w0, [x22,-136] + cbnz w0, .L2762 add x1, x23, :lo12:.LANCHOR4 add x21, x19, :lo12:.LANCHOR2 - ldrh w20, [x1,3404] + ldrh w20, [x1,3420] add w1, w20, w20, lsl 1 asr w1, w1, 2 - strh w1, [x21,956] + strh w1, [x21,960] bl List_get_gc_head_node ubfiz x0, x0, 1, 16 - ldr x1, [x21,1184] - ldrh w2, [x21,748] + ldr x1, [x21,1192] + ldrh w2, [x21,756] ldrh w1, [x1,x0] - ldrh w0, [x21,820] + ldrh w0, [x21,826] mul w0, w0, w2 mov w2, 2 sdiv w0, w0, w2 cmp w1, w0 - ble .L2668 - ldrh w0, [x21,3600] + ble .L2763 + ldrh w0, [x21,3608] sub w20, w20, #1 cmp w0, w20 - blt .L2668 + blt .L2763 bl FtlReadRefresh - ldrh w2, [x22,-152] - b .L2764 -.L2668: - cbnz w1, .L2667 + ldrh w2, [x22,-136] + b .L2859 +.L2763: + cbnz w1, .L2762 mov w0, -1 add x19, x19, :lo12:.LANCHOR2 bl decrement_vpc_count - ldrh w2, [x19,3600] + ldrh w2, [x19,3608] add w2, w2, 1 - b .L2764 -.L2661: + b .L2859 +.L2756: add x0, x19, :lo12:.LANCHOR2 mov w22, 2 - ldr w0, [x0,652] + ldr w0, [x0,660] cmp w0, wzr csinc w22, w22, wzr, ne - b .L2660 -.L2719: + b .L2755 +.L2814: mov w20, 65535 -.L2660: +.L2755: add x0, x23, :lo12:.LANCHOR4 mov w2, 65535 - ldrh w1, [x0,3408] + ldrh w1, [x0,3424] cmp w1, w2 - bne .L2670 + bne .L2765 cmp w20, w1 - beq .L2671 - strh w20, [x0,3408] - b .L2672 -.L2671: + beq .L2766 + strh w20, [x0,3424] + b .L2767 +.L2766: add x1, x19, :lo12:.LANCHOR2 - ldrh w0, [x1,948] + ldrh w0, [x1,952] cmp w0, w20 - beq .L2672 + beq .L2767 ubfiz x0, x0, 1, 16 - ldr x2, [x1,1184] + ldr x2, [x1,1192] ldrh w0, [x2,x0] - cbnz w0, .L2673 + cbnz w0, .L2768 mov w0, -1 - strh w0, [x1,948] -.L2673: + strh w0, [x1,952] +.L2768: add x1, x19, :lo12:.LANCHOR2 add x0, x23, :lo12:.LANCHOR4 - ldrh w2, [x1,948] - strh w2, [x0,3408] + ldrh w2, [x1,952] + strh w2, [x0,3424] mov w0, -1 - strh w0, [x1,948] -.L2672: + strh w0, [x1,952] +.L2767: add x21, x23, :lo12:.LANCHOR4 mov w1, 65535 - ldrh w0, [x21,3408] - strb wzr, [x21,3416] + ldrh w0, [x21,3424] + strb wzr, [x21,3432] cmp w0, w1 - beq .L2670 + beq .L2765 bl IsBlkInGcList - cbz w0, .L2675 + cbz w0, .L2770 mov w0, -1 - strh w0, [x21,3408] -.L2675: - adrp x0, .LANCHOR0+136 - ldrb w0, [x0,#:lo12:.LANCHOR0+136] - cbz w0, .L2676 + strh w0, [x21,3424] +.L2770: + adrp x0, .LANCHOR0+4044 + ldrb w0, [x0,#:lo12:.LANCHOR0+4044] + cbz w0, .L2771 add x0, x23, :lo12:.LANCHOR4 - add x21, x0, 3408 - ldrh w0, [x0,3408] + add x21, x0, 3424 + ldrh w0, [x0,3424] bl ftl_get_blk_mode strb w0, [x21,8] -.L2676: +.L2771: add x21, x23, :lo12:.LANCHOR4 mov w0, 65535 - add x24, x21, 3408 - ldrh w1, [x21,3408] + add x24, x21, 3424 + ldrh w1, [x21,3424] cmp w1, w0 - beq .L2670 + beq .L2765 mov x0, x24 bl make_superblock - strh wzr, [x21,3410] + strh wzr, [x21,3426] adrp x0, .LANCHOR5 add x1, x19, :lo12:.LANCHOR2 add x0, x0, :lo12:.LANCHOR5 - ldrh w2, [x21,3408] - strb wzr, [x21,3414] - ldr x1, [x1,1184] - strh wzr, [x0,-150] + ldrh w2, [x21,3424] + strb wzr, [x21,3430] + ldr x1, [x1,1192] + strh wzr, [x0,-134] ldrh w1, [x1,x2,lsl 1] - strh w1, [x0,-148] -.L2670: + strh w1, [x0,-132] +.L2765: add x21, x23, :lo12:.LANCHOR4 add x1, x19, :lo12:.LANCHOR2 - ldrh w0, [x21,3408] - ldrh w2, [x1,3608] + ldrh w0, [x21,3424] + ldrh w2, [x1,3616] cmp w2, w0 - beq .L2677 - ldrh w1, [x1,3656] + beq .L2772 + ldrh w1, [x1,3664] cmp w1, w0 - beq .L2677 -.L2678: - adrp x0, .LC152 - add x0, x0, :lo12:.LC152 + beq .L2772 +.L2773: + adrp x0, .LC153 + add x0, x0, :lo12:.LC153 str x0, [x29,128] - b .L2679 -.L2677: + b .L2774 +.L2772: add x23, x23, :lo12:.LANCHOR4 mov w0, -1 - strh w0, [x23,3408] - b .L2790 -.L2700: - ldrh w0, [x21,3410] + strh w0, [x23,3424] + b .L2885 +.L2795: + ldrh w0, [x21,3426] add w22, w22, w0 uxth w22, w22 - strh w22, [x21,3410] + strh w22, [x21,3426] cmp w22, w26 - bcs .L2793 -.L2702: + bcs .L2888 +.L2797: add x1, x19, :lo12:.LANCHOR2 - ldrh w0, [x1,3600] + ldrh w0, [x1,3608] cmp w0, 2 - bhi .L2705 - ldrh w22, [x1,818] -.L2679: - ldrh w26, [x21,3408] + bhi .L2800 + ldrh w22, [x1,824] +.L2774: + ldrh w26, [x21,3424] mov w0, 65535 cmp w26, w0 - bne .L2680 + bne .L2775 add x0, x19, :lo12:.LANCHOR2 mov w27, 2 - str wzr, [x0,928] -.L2681: + str wzr, [x0,932] +.L2776: add x28, x19, :lo12:.LANCHOR2 - ldrh w24, [x28,960] + ldrh w24, [x28,964] mov w0, w24 bl List_get_gc_head_node uxth w25, w0 cmp w25, w26 - strh w25, [x21,3408] - bne .L2682 - strh wzr, [x28,960] + strh w25, [x21,3424] + bne .L2777 + strh wzr, [x28,964] mov w2, 8 - b .L2764 -.L2682: + b .L2859 +.L2777: mov w0, w25 add w24, w24, 1 bl IsBlkInGcList - cbz w0, .L2683 - strh w24, [x28,960] - b .L2681 -.L2683: - ldrh w5, [x28,748] + cbz w0, .L2778 + strh w24, [x28,964] + b .L2776 +.L2778: + ldrh w5, [x28,756] ubfiz x2, x25, 1, 16 - ldrh w0, [x28,818] + ldrh w0, [x28,824] uxth w24, w24 - ldr x3, [x28,1184] - strh w24, [x28,960] + ldr x3, [x28,1192] + strh w24, [x28,964] mul w0, w0, w5 ldrh w4, [x3,x2] sdiv w5, w0, w27 cmp w4, w5 - bgt .L2685 + bgt .L2780 cmp w4, 8 - bls .L2686 + bls .L2781 cmp w24, 48 - bls .L2686 - ldrh w4, [x21,4016] + bls .L2781 + ldrh w4, [x21,4032] cmp w4, 35 - bhi .L2686 -.L2685: + bhi .L2781 +.L2780: add x4, x19, :lo12:.LANCHOR2 - strh wzr, [x4,960] -.L2686: + strh wzr, [x4,964] +.L2781: + cmp w20, w26 ldrh w2, [x3,x2] + bne .L2782 cmp w2, w0 - blt .L2687 - cmp w20, w26 - bne .L2687 + blt .L2782 + add x0, x19, :lo12:.LANCHOR2 + ldrh w3, [x0,964] + cmp w3, 3 + bhi .L2782 add x23, x23, :lo12:.LANCHOR4 - add x19, x19, :lo12:.LANCHOR2 - mov w0, -1 - strh wzr, [x19,960] - strh w0, [x23,3408] -.L2790: - adrp x0, .LANCHOR5-152 - ldrh w2, [x0,#:lo12:.LANCHOR5-152] - b .L2764 -.L2687: - cbnz w2, .L2688 + mov w1, -1 + strh wzr, [x0,964] + strh w1, [x23,3424] +.L2885: + adrp x0, .LANCHOR5-136 + ldrh w2, [x0,#:lo12:.LANCHOR5-136] + b .L2859 +.L2782: + cbnz w2, .L2783 mov w0, -1 bl decrement_vpc_count add x1, x19, :lo12:.LANCHOR2 - ldrh w0, [x1,960] + ldrh w0, [x1,964] add w0, w0, 1 - strh w0, [x1,960] - b .L2681 -.L2688: + strh w0, [x1,964] + b .L2776 +.L2783: adrp x0, .LANCHOR0 - strb wzr, [x21,3416] + strb wzr, [x21,3432] add x0, x0, :lo12:.LANCHOR0 - ldrb w0, [x0,136] - cbz w0, .L2689 + ldrb w0, [x0,4044] + cbz w0, .L2784 mov w0, w25 bl ftl_get_blk_mode - strb w0, [x21,3416] -.L2689: - add x24, x21, 3408 + strb w0, [x21,3432] +.L2784: + add x24, x21, 3424 mov x0, x24 bl make_superblock adrp x1, .LANCHOR5 add x0, x19, :lo12:.LANCHOR2 add x1, x1, :lo12:.LANCHOR5 - ldrh w2, [x21,3408] - ldr x0, [x0,1184] - strh wzr, [x1,-150] + ldrh w2, [x21,3424] + ldr x0, [x0,1192] + strh wzr, [x1,-134] ldrh w0, [x0,x2,lsl 1] - strh w0, [x1,-148] - strh wzr, [x21,3410] - strb wzr, [x21,3414] -.L2680: + strh w0, [x1,-132] + strh wzr, [x21,3426] + strb wzr, [x21,3430] +.L2775: ldr w0, [x29,140] cmp w0, 1 - bne .L2690 + bne .L2785 bl FtlReadRefresh -.L2690: +.L2785: add x0, x19, :lo12:.LANCHOR2 mov w1, 1 - str w1, [x0,924] + str w1, [x0,928] adrp x1, .LANCHOR0 add x1, x1, :lo12:.LANCHOR0 - ldrh w26, [x0,818] - ldrb w1, [x1,136] - cbz w1, .L2691 - ldrb w1, [x21,3416] + ldrh w26, [x0,824] + ldrb w1, [x1,4044] + cbz w1, .L2786 + ldrb w1, [x21,3432] cmp w1, 1 - bne .L2691 - ldrh w26, [x0,820] -.L2691: - ldrh w0, [x21,3410] + bne .L2786 + ldrh w26, [x0,826] +.L2786: + ldrh w0, [x21,3426] add w1, w0, w22 cmp w1, w26 - ble .L2692 + ble .L2787 sub w22, w26, w0 uxth w22, w22 -.L2692: +.L2787: mov w27, 0 -.L2693: +.L2788: cmp w22, w27, uxth - bls .L2700 - add x1, x21, 3408 + bls .L2795 + add x1, x21, 3424 add x0, x19, :lo12:.LANCHOR2 ldrh w3, [x1,2] - ldrh w6, [x0,748] + ldrh w6, [x0,756] mov x0, 0 add w3, w3, w27 mov w24, w0 -.L2701: +.L2796: cmp w6, w0, uxth - bls .L2794 + bls .L2889 add x2, x1, x0, lsl 1 mov w4, 65535 ldrh w2, [x2,16] cmp w2, w4 - beq .L2694 + beq .L2789 add x5, x19, :lo12:.LANCHOR2 mov w4, 56 orr w2, w3, w2, lsl 10 umull x4, w24, w4 - ldr x5, [x5,1024] + ldr x5, [x5,1032] add w24, w24, 1 add x4, x5, x4 uxth w24, w24 str w2, [x4,4] -.L2694: +.L2789: add x0, x0, 1 - b .L2701 -.L2794: + b .L2796 +.L2889: add x25, x19, :lo12:.LANCHOR2 - ldrb w2, [x21,3416] + ldrb w2, [x21,3432] mov w1, w24 mov x28, 0 - ldr x0, [x25,1024] + ldr x0, [x25,1032] bl FlashReadPages -.L2696: +.L2791: cmp w24, w28, uxth - bls .L2795 + bls .L2890 mov x0, 56 mul x5, x28, x0 - ldr x0, [x25,1024] + ldr x0, [x25,1032] add x1, x0, x5 ldr w0, [x0,x5] cmn w0, #1 ldr x4, [x1,16] - beq .L2721 + beq .L2816 ldrh w0, [x4] mov w1, 61589 cmp w0, w1 - bne .L2721 + bne .L2816 ldr w0, [x4,8] add x1, x29, 156 mov w2, 0 str x5, [x29,112] str x4, [x29,120] bl log2phys - ldr x2, [x25,1024] + ldr x2, [x25,1032] ldr x5, [x29,112] ldr w0, [x29,156] add x2, x2, x5 @@ -17840,17 +18192,17 @@ ftl_do_gc: and w0, w0, 2147483647 ldr w1, [x2,4] cmp w0, w1 - bne .L2721 + bne .L2816 adrp x0, .LANCHOR5 mov x3, 56 add x1, x0, :lo12:.LANCHOR5 str x5, [x29,104] str x4, [x29,112] - ldrh w0, [x1,-150] + ldrh w0, [x1,-134] add w0, w0, 1 - strh w0, [x1,-150] - ldr w0, [x21,3984] - ldr x1, [x25,1000] + strh w0, [x1,-134] + ldr w0, [x21,4000] + ldr x1, [x25,1008] madd x1, x0, x3, x1 ldr w0, [x2,24] str x1, [x29,120] @@ -17861,149 +18213,149 @@ ftl_do_gc: ldr x5, [x29,104] ldr x4, [x29,112] str w0, [x1,4] - ldr w0, [x21,3984] - ldr x1, [x25,1000] + ldr w0, [x21,4000] + ldr x1, [x25,1008] madd x0, x0, x2, x1 - ldr x1, [x25,1024] + ldr x1, [x25,1032] add x1, x1, x5 ldr x2, [x1,8] str x2, [x0,8] - add x2, x25, 3704 + add x2, x25, 3712 str x2, [x29,120] ldr x1, [x1,16] str x1, [x0,16] mov w1, 1 ldr w0, [x29,156] str w0, [x4,12] - ldrh w0, [x25,3704] + ldrh w0, [x25,3712] strh w0, [x4,2] - ldr w0, [x25,876] + ldr w0, [x25,880] str w0, [x4,4] - ldr w0, [x21,3984] + ldr w0, [x21,4000] add w0, w0, 1 - str w0, [x21,3984] - ldr x0, [x25,1024] + str w0, [x21,4000] + ldr x0, [x25,1032] add x0, x0, x5 bl FtlGcBufAlloc adrp x0, .LANCHOR0 add x0, x0, :lo12:.LANCHOR0 - ldrb w0, [x0,136] - cbnz w0, .L2698 + ldrb w0, [x0,4044] + cbnz w0, .L2793 ldr x2, [x29,120] - ldr w1, [x21,3984] + ldr w1, [x21,4000] ldrb w0, [x2,7] cmp w1, w0 - beq .L2698 + beq .L2793 ldrh w0, [x2,4] - cbnz w0, .L2721 -.L2698: + cbnz w0, .L2816 +.L2793: bl Ftl_gc_temp_data_write_back - cbz w0, .L2721 + cbz w0, .L2816 adrp x0, .LANCHOR5 add x19, x19, :lo12:.LANCHOR2 add x0, x0, :lo12:.LANCHOR5 - str wzr, [x19,924] - ldrh w2, [x0,-152] - b .L2764 -.L2721: + str wzr, [x19,928] + ldrh w2, [x0,-136] + b .L2859 +.L2816: add x28, x28, 1 - b .L2696 -.L2795: + b .L2791 +.L2890: add w27, w27, 1 - b .L2693 -.L2793: - ldr w0, [x21,3984] + b .L2788 +.L2888: + ldr w0, [x21,4000] adrp x22, .LANCHOR5 - cbz w0, .L2703 + cbz w0, .L2798 bl Ftl_gc_temp_data_write_back - cbz w0, .L2703 + cbz w0, .L2798 add x19, x19, :lo12:.LANCHOR2 add x5, x22, :lo12:.LANCHOR5 - str wzr, [x19,924] - ldrh w2, [x5,-152] - b .L2764 -.L2703: + str wzr, [x19,928] + ldrh w2, [x5,-136] + b .L2859 +.L2798: add x5, x22, :lo12:.LANCHOR5 - ldrh w22, [x5,-150] - cbnz w22, .L2704 + ldrh w22, [x5,-134] + cbnz w22, .L2799 add x24, x19, :lo12:.LANCHOR2 - ldrh w1, [x21,3408] + ldrh w1, [x21,3424] ubfiz x0, x1, 1, 16 - ldr x3, [x24,1184] + ldr x3, [x24,1192] ldrh w4, [x3,x0] - cbz w4, .L2704 - ldrh w2, [x21,3410] + cbz w4, .L2799 + ldrh w2, [x21,3426] mov w3, w22 - ldrh w5, [x5,-148] + ldrh w5, [x5,-132] ldr x0, [x29,128] bl printk - ldrh w1, [x21,3408] - ldr x0, [x24,1184] + ldrh w1, [x21,3424] + ldr x0, [x24,1192] strh w22, [x0,x1,lsl 1] - ldrh w0, [x21,3408] + ldrh w0, [x21,3424] bl update_vpc_list bl FtlCacheWriteBack bl l2p_flush bl FtlVpcTblFlush -.L2704: +.L2799: mov w0, -1 - strh w0, [x21,3408] - b .L2702 -.L2705: - str wzr, [x1,924] - adrp x1, .LANCHOR5-152 - ldrh w2, [x1,#:lo12:.LANCHOR5-152] + strh w0, [x21,3424] + b .L2797 +.L2800: + str wzr, [x1,928] + adrp x1, .LANCHOR5-136 + ldrh w2, [x1,#:lo12:.LANCHOR5-136] cmp w2, wzr csinc w2, w2, w0, ne - b .L2764 -.L2792: - ldrh w26, [x22,948] + b .L2859 +.L2887: + ldrh w26, [x22,952] cmp w26, w20 - bne .L2636 - ldrh w0, [x22,3600] + bne .L2731 + ldrh w0, [x22,3608] mov w2, 1024 - ldr w1, [x22,940] + ldr w1, [x22,944] cmp w0, 24 mov w0, 5120 csel w0, w0, w2, cc cmp w1, w0 - bls .L2636 - adrp x0, .LANCHOR5-152 - str wzr, [x22,940] - strh wzr, [x0,#:lo12:.LANCHOR5-152] + bls .L2731 + adrp x0, .LANCHOR5-136 + str wzr, [x22,944] + strh wzr, [x0,#:lo12:.LANCHOR5-136] bl GetSwlReplaceBlock uxth w20, w0 cmp w20, w26 - bne .L2638 - ldrh w1, [x22,3600] - ldrh w0, [x22,958] + bne .L2733 + ldrh w1, [x22,3608] + ldrh w0, [x22,962] cmp w1, w0 - bcs .L2639 + bcs .L2734 mov w0, 64 bl List_get_gc_head_node uxth w0, w0 cmp w0, w20 - beq .L2648 - ldr w2, [x22,864] + beq .L2743 + ldr w2, [x22,868] uxtw x1, w0 - cbnz w2, .L2641 - ldrh w0, [x22,768] + cbnz w2, .L2736 + ldrh w0, [x22,776] cmp w0, 3 - beq .L2641 - ldr w0, [x22,868] - cbnz w0, .L2641 - ldr w0, [x22,652] - cbnz w0, .L2641 - adrp x0, .LANCHOR0+136 - ldrb w0, [x0,#:lo12:.LANCHOR0+136] - cbz w0, .L2642 -.L2641: + beq .L2736 + ldr w0, [x22,872] + cbnz w0, .L2736 + ldr w0, [x22,660] + cbnz w0, .L2736 + adrp x0, .LANCHOR0+4044 + ldrb w0, [x0,#:lo12:.LANCHOR0+4044] + cbz w0, .L2737 +.L2736: add x2, x19, :lo12:.LANCHOR2 - ldr x0, [x2,1184] + ldr x0, [x2,1192] ldrh w4, [x0,x1,lsl 1] - ldrh w1, [x2,820] - ldrh w0, [x2,748] - ldrh w2, [x2,768] + ldrh w1, [x2,826] + ldrh w0, [x2,756] + ldrh w2, [x2,776] mul w3, w1, w0 cmp w2, 3 mov w0, 0 @@ -18011,68 +18363,68 @@ ftl_do_gc: csel w0, w1, w0, eq add w0, w3, w0 cmp w4, w0 - bgt .L2644 + bgt .L2739 mov w0, 0 bl List_get_gc_head_node uxth w20, w0 add x0, x19, :lo12:.LANCHOR2 - ldr w1, [x0,1396] - ldr w2, [x0,3892] + ldr w1, [x0,1404] + ldr w2, [x0,3900] add w1, w1, w1, lsl 1 cmp w2, w1, lsr 2 - bhi .L2788 + bhi .L2883 mov w1, 160 - b .L2787 -.L2644: + b .L2882 +.L2739: add x0, x19, :lo12:.LANCHOR2 mov w1, 128 - b .L2789 -.L2642: - ldr x2, [x22,1184] + b .L2884 +.L2737: + ldr x2, [x22,1192] ldrh w1, [x2,x1,lsl 1] cmp w1, 7 - bhi .L2647 + bhi .L2742 bl List_get_gc_head_node uxth w20, w0 add x0, x19, :lo12:.LANCHOR2 -.L2788: +.L2883: mov w1, 128 -.L2787: - strh w1, [x0,958] +.L2882: + strh w1, [x0,962] mov w0, 65535 cmp w20, w0 - beq .L2648 - b .L2638 -.L2647: + beq .L2743 + b .L2733 +.L2742: add x0, x19, :lo12:.LANCHOR2 mov w1, 64 -.L2789: - strh w1, [x0,958] - b .L2648 -.L2639: +.L2884: + strh w1, [x0,962] + b .L2743 +.L2734: mov w0, 80 - strh w0, [x22,958] - b .L2648 -.L2638: + strh w0, [x22,962] + b .L2743 +.L2733: add x5, x19, :lo12:.LANCHOR2 ubfiz x4, x20, 1, 32 - adrp x0, .LC151 + adrp x0, .LC152 mov w1, w20 - add x0, x0, :lo12:.LC151 - ldr x3, [x5,1184] - ldr x6, [x5,1168] - ldrh w2, [x5,3600] + add x0, x0, :lo12:.LC152 + ldr x3, [x5,1192] + ldr x6, [x5,1176] + ldrh w2, [x5,3608] ldrh w3, [x3,x4] - ldrh w5, [x5,956] + ldrh w5, [x5,960] ldrh w4, [x6,x4] bl printk -.L2648: +.L2743: bl FtlGcReFreshBadBlk - b .L2636 -.L2791: + b .L2731 +.L2886: mov w20, w0 - b .L2636 -.L2764: + b .L2731 +.L2859: mov w0, w2 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -18087,145 +18439,145 @@ ftl_do_gc: .type FtlCacheWriteBack, %function FtlCacheWriteBack: stp x29, x30, [sp, -112]! - adrp x0, .LANCHOR5-144 + adrp x0, .LANCHOR5-128 add x29, sp, 0 stp x19, x20, [sp,16] adrp x19, .LANCHOR2 - ldr x20, [x0,#:lo12:.LANCHOR5-144] + ldr x20, [x0,#:lo12:.LANCHOR5-128] add x0, x19, :lo12:.LANCHOR2 stp x21, x22, [sp,32] stp x23, x24, [sp,48] stp x25, x26, [sp,64] stp x27, x28, [sp,80] - ldr w22, [x0,1400] - cbnz w22, .L2798 - ldr w1, [x0,972] - cbz w1, .L2798 - adrp x0, .LANCHOR0+136 - ldrb w0, [x0,#:lo12:.LANCHOR0+136] - cbz w0, .L2800 + ldr w22, [x0,1408] + cbnz w22, .L2893 + ldr w1, [x0,976] + cbz w1, .L2893 + adrp x0, .LANCHOR0+4044 + ldrb w0, [x0,#:lo12:.LANCHOR0+4044] + cbz w0, .L2895 ldrb w0, [x20,8] cmp w0, 1 cset w22, eq -.L2800: +.L2895: add x0, x19, :lo12:.LANCHOR2 ldrb w3, [x20,9] - adrp x24, .LC153 + adrp x24, .LC154 mov w2, w22 mov w23, 0 mov w25, 56 - ldr x0, [x0,1032] - add x24, x24, :lo12:.LC153 + ldr x0, [x0,1040] + add x24, x24, :lo12:.LC154 bl FlashProgPages -.L2801: +.L2896: add x0, x19, :lo12:.LANCHOR2 - ldr w1, [x0,972] + ldr w1, [x0,976] cmp w23, w1 - bcs .L2819 + bcs .L2914 umull x21, w23, w25 - ldr x1, [x0,1032] + ldr x1, [x0,1040] add x0, x1, x21 ldr w1, [x1,x21] cmn w1, #1 - beq .L2822 + beq .L2917 ldr w1, [x0,4] - cbz w22, .L2836 + cbz w22, .L2931 orr w1, w1, -2147483648 -.L2836: +.L2931: ldr w0, [x0,24] mov w2, 1 str w1, [x29,108] add x26, x19, :lo12:.LANCHOR2 add x1, x29, 108 bl log2phys - ldr x0, [x26,1032] + ldr x0, [x26,1040] add x21, x0, x21 ldr x0, [x21,16] ldr w0, [x0,12] cmn w0, #1 - beq .L2805 + beq .L2900 lsr x0, x0, 10 bl P2V_block_in_plane uxth w1, w0 ubfiz x0, x1, 1, 16 - ldr x2, [x26,1184] + ldr x2, [x26,1192] mov w21, w1 ldrh w2, [x2,x0] - cbnz w2, .L2806 + cbnz w2, .L2901 mov x0, x24 bl printk -.L2806: +.L2901: mov w0, w21 bl decrement_vpc_count -.L2805: +.L2900: add w23, w23, 1 - b .L2801 -.L2838: + b .L2896 +.L2933: mov w20, 16386 -.L2818: +.L2913: add x0, x19, :lo12:.LANCHOR2 - ldrh w0, [x0,962] - cbz w0, .L2819 + ldrh w0, [x0,966] + cbz w0, .L2914 mov w0, 1 mov w1, w0 bl ftl_do_gc subs w20, w20, #1 - bne .L2818 -.L2819: + bne .L2913 +.L2914: add x19, x19, :lo12:.LANCHOR2 - str wzr, [x19,972] - b .L2798 -.L2822: + str wzr, [x19,976] + b .L2893 +.L2917: adrp x25, .LANCHOR4 - adrp x26, .LC153 + adrp x26, .LC154 mov w24, 0 mov w27, 56 add x25, x25, :lo12:.LANCHOR4 - add x26, x26, :lo12:.LC153 -.L2802: + add x26, x26, :lo12:.LC154 +.L2897: add x0, x19, :lo12:.LANCHOR2 - ldr w1, [x0,972] + ldr w1, [x0,976] cmp w24, w1 - bcs .L2838 + bcs .L2933 umull x21, w24, w27 - ldr x0, [x0,1032] + ldr x0, [x0,1040] mov w1, -1 mov w28, 1 str w1, [x0,x21] -.L2808: +.L2903: add x23, x19, :lo12:.LANCHOR2 - ldr x0, [x23,1032] + ldr x0, [x23,1040] add x1, x0, x21 ldr w0, [x0,x21] cmn w0, #1 ldr w0, [x1,4] - bne .L2839 + bne .L2934 lsr x0, x0, 10 bl P2V_block_in_plane ldrh w1, [x20] cmp w1, w0, uxth - bne .L2809 - ldr x2, [x23,1184] + bne .L2904 + ldr x2, [x23,1192] ubfiz x1, x1, 1, 16 ldrh w3, [x20,4] ldrh w0, [x2,x1] sub w0, w0, w3 strh w0, [x2,x1] strb wzr, [x20,6] - ldrh w0, [x23,818] + ldrh w0, [x23,824] strh w0, [x20,2] strh wzr, [x20,4] -.L2809: +.L2904: ldrh w0, [x20,4] - cbnz w0, .L2810 + cbnz w0, .L2905 mov x0, x20 bl allocate_new_data_superblock -.L2810: +.L2905: add x23, x19, :lo12:.LANCHOR2 - ldr w0, [x25,3552] + ldr w0, [x25,3568] add w0, w0, 1 - str w0, [x25,3552] - ldr x0, [x23,1032] + str w0, [x25,3568] + ldr x0, [x23,1040] add x0, x0, x21 ldr w0, [x0,4] lsr x0, x0, 10 @@ -18233,58 +18585,58 @@ FtlCacheWriteBack: mov x0, x20 bl get_new_active_ppa str w0, [x29,108] - ldr x1, [x23,1032] + ldr x1, [x23,1040] mov w2, w22 add x1, x1, x21 str w0, [x1,4] mov w1, 1 - ldr x0, [x23,1032] + ldr x0, [x23,1040] ldrb w3, [x20,9] add x0, x0, x21 bl FlashProgPages - ldr x0, [x23,1032] + ldr x0, [x23,1040] ldr w0, [x0,x21] cmn w0, #1 - bne .L2811 - str w28, [x23,1400] -.L2811: + bne .L2906 + str w28, [x23,1408] +.L2906: add x0, x19, :lo12:.LANCHOR2 - ldr w0, [x0,1400] - cbz w0, .L2808 - b .L2798 -.L2839: - cbz w22, .L2837 + ldr w0, [x0,1408] + cbz w0, .L2903 + b .L2893 +.L2934: + cbz w22, .L2932 orr w0, w0, -2147483648 -.L2837: +.L2932: str w0, [x29,108] mov w2, 1 ldr w0, [x1,24] add x23, x19, :lo12:.LANCHOR2 add x1, x29, 108 bl log2phys - ldr x0, [x23,1032] + ldr x0, [x23,1040] add x21, x0, x21 ldr x0, [x21,16] ldr w0, [x0,12] cmn w0, #1 - beq .L2815 + beq .L2910 lsr x0, x0, 10 bl P2V_block_in_plane uxth w1, w0 ubfiz x0, x1, 1, 16 - ldr x2, [x23,1184] + ldr x2, [x23,1192] mov w21, w1 ldrh w2, [x2,x0] - cbnz w2, .L2816 + cbnz w2, .L2911 mov x0, x26 bl printk -.L2816: +.L2911: mov w0, w21 bl decrement_vpc_count -.L2815: +.L2910: add w24, w24, 1 - b .L2802 -.L2798: + b .L2897 +.L2893: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -18298,17 +18650,17 @@ FtlCacheWriteBack: .global FtlSysFlush .type FtlSysFlush, %function FtlSysFlush: - adrp x0, .LANCHOR2+1400 + adrp x0, .LANCHOR2+1408 stp x29, x30, [sp, -16]! add x29, sp, 0 - ldr w0, [x0,#:lo12:.LANCHOR2+1400] - cbnz w0, .L2841 + ldr w0, [x0,#:lo12:.LANCHOR2+1408] + cbnz w0, .L2936 bl FtlCacheWriteBack bl l2p_flush mov w0, 1 bl FtlEctTblFlush bl FtlVpcTblFlush -.L2841: +.L2936: mov w0, 0 ldp x29, x30, [sp], 16 ret @@ -18317,14 +18669,14 @@ FtlSysFlush: .global FtlDeInit .type FtlDeInit, %function FtlDeInit: - adrp x0, .LANCHOR1+3160 + adrp x0, .LANCHOR1+3288 stp x29, x30, [sp, -16]! add x29, sp, 0 - ldr w0, [x0,#:lo12:.LANCHOR1+3160] + ldr w0, [x0,#:lo12:.LANCHOR1+3288] cmp w0, 1 - bne .L2843 + bne .L2938 bl FtlSysFlush -.L2843: +.L2938: mov w0, 0 ldp x29, x30, [sp], 16 ret @@ -18367,73 +18719,73 @@ ftl_discard: ldr w1, [x0,#:lo12:.LANCHOR0+4048] mov w0, -1 cmp w2, w1 - bhi .L2847 + bhi .L2942 cmp w19, 31 - bls .L2861 + bls .L2956 adrp x22, .LANCHOR2 add x21, x22, :lo12:.LANCHOR2 - ldr w0, [x21,1400] - cbnz w0, .L2861 + ldr w0, [x21,1408] + cbnz w0, .L2956 bl FtlCacheWriteBack - ldrh w1, [x21,824] + ldrh w1, [x21,830] udiv w21, w20, w1 msub w20, w1, w21, w20 uxth w20, w20 - cbz w20, .L2850 + cbz w20, .L2945 sub w1, w1, w20 add w21, w21, 1 cmp w1, w19 csel w1, w1, w19, ls sub w19, w19, w1, uxth -.L2850: +.L2945: mov w0, -1 adrp x23, .LANCHOR5 str w0, [x29,76] -.L2851: +.L2946: add x20, x22, :lo12:.LANCHOR2 - ldrh w0, [x20,824] + ldrh w0, [x20,830] cmp w19, w0 - bcc .L2862 + bcc .L2957 mov w0, w21 add x1, x29, 72 mov w2, 0 bl log2phys ldr w0, [x29,72] cmn w0, #1 - beq .L2852 + beq .L2947 add x1, x23, :lo12:.LANCHOR5 mov w2, 1 - ldr w0, [x1,-136] + ldr w0, [x1,-120] add w0, w0, 1 - str w0, [x1,-136] - ldr w0, [x20,888] + str w0, [x1,-120] + ldr w0, [x20,892] add x1, x29, 76 add w0, w0, 1 - str w0, [x20,888] + str w0, [x20,892] mov w0, w21 bl log2phys ldr w0, [x29,72] lsr x0, x0, 10 bl P2V_block_in_plane bl decrement_vpc_count -.L2852: +.L2947: add x0, x22, :lo12:.LANCHOR2 add w21, w21, 1 - ldrh w0, [x0,824] + ldrh w0, [x0,830] sub w19, w19, w0 - b .L2851 -.L2862: + b .L2946 +.L2957: adrp x0, .LANCHOR5 add x0, x0, :lo12:.LANCHOR5 - ldr w1, [x0,-136] + ldr w1, [x0,-120] cmp w1, 32 - bls .L2861 - str wzr, [x0,-136] + bls .L2956 + str wzr, [x0,-120] bl l2p_flush bl FtlVpcTblFlush -.L2861: +.L2956: mov w0, 0 -.L2847: +.L2942: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldr x23, [sp,48] @@ -18452,96 +18804,96 @@ FtlGcFreeTempBlock: stp x21, x22, [sp,32] stp x23, x24, [sp,48] stp x25, x26, [sp,64] - ldr w3, [x2,1400] - ldrh w1, [x2,818] - cbnz w3, .L2897 - ldrh w20, [x2,3704] + ldr w3, [x2,1408] + ldrh w1, [x2,824] + cbnz w3, .L2992 + ldrh w20, [x2,3712] mov w4, 65535 cmp w20, w4 - bne .L2866 -.L2875: + bne .L2961 +.L2970: add x20, x19, :lo12:.LANCHOR2 adrp x21, .LANCHOR4 add x22, x21, :lo12:.LANCHOR4 mov w0, 65535 - add x23, x20, 3704 - ldrh w1, [x20,3704] - str wzr, [x22,4008] + add x23, x20, 3712 + ldrh w1, [x20,3712] + str wzr, [x22,4024] cmp w1, w0 - beq .L2897 + beq .L2992 bl FtlCacheWriteBack mov w26, 12 ldrb w0, [x23,7] - ldrh w3, [x20,818] - ldr x1, [x20,1184] - ldrh w2, [x20,3704] + ldrh w3, [x20,824] + ldr x1, [x20,1192] + ldrh w2, [x20,3712] mul w0, w0, w3 strh w0, [x1,x2,lsl 1] - ldrh w1, [x22,4018] + ldrh w1, [x22,4034] mov w22, 0 - ldr w0, [x20,880] + ldr w0, [x20,884] add w0, w1, w0 - str w0, [x20,880] - b .L2876 -.L2866: - cbz w0, .L2869 + str w0, [x20,884] + b .L2971 +.L2961: + cbz w0, .L2964 adrp x0, .LANCHOR1 add x0, x0, :lo12:.LANCHOR1 - ldrh w5, [x0,3164] + ldrh w5, [x0,3292] cmp w5, w4 - beq .L2870 -.L2871: + beq .L2965 +.L2966: mov w1, 2 - b .L2869 -.L2870: - strh w3, [x0,3164] - ldrh w0, [x2,3600] + b .L2964 +.L2965: + strh w3, [x0,3292] + ldrh w0, [x2,3608] cmp w0, 17 - bhi .L2871 -.L2869: + bhi .L2966 +.L2964: add x21, x19, :lo12:.LANCHOR2 - add x0, x21, 3704 + add x0, x21, 3712 bl FtlGcScanTempBlk str w0, [x29,92] cmn w0, #1 - beq .L2872 + beq .L2967 ubfiz x20, x20, 1, 16 - ldr x1, [x21,1168] + ldr x1, [x21,1176] ldrh w0, [x1,x20] cmp w0, 4 - bls .L2873 + bls .L2968 sub w0, w0, #5 strh w0, [x1,x20] mov w0, 1 bl FtlEctTblFlush -.L2873: +.L2968: adrp x0, .LANCHOR4 add x1, x0, :lo12:.LANCHOR4 mov x19, x0 - ldr w2, [x1,4008] - cbnz w2, .L2874 - ldr w0, [x1,3552] + ldr w2, [x1,4024] + cbnz w2, .L2969 + ldr w0, [x1,3568] add w0, w0, 1 - str w0, [x1,3552] + str w0, [x1,3568] ldr w0, [x29,92] lsr w0, w0, 10 bl FtlBbmMapBadBlock bl FtlBbmTblFlush -.L2874: +.L2969: add x0, x19, :lo12:.LANCHOR4 - str wzr, [x0,4008] + str wzr, [x0,4024] mov w0, 1 - b .L2865 -.L2872: - adrp x0, .LANCHOR1+3164 + b .L2960 +.L2967: + adrp x0, .LANCHOR1+3292 mov w1, 65535 - ldrh w2, [x0,#:lo12:.LANCHOR1+3164] + ldrh w2, [x0,#:lo12:.LANCHOR1+3292] mov w0, 1 cmp w2, w1 - bne .L2865 - b .L2875 -.L2879: - ldr x25, [x20,984] + bne .L2960 + b .L2970 +.L2974: + ldr x25, [x20,992] add x1, x29, 92 umull x24, w22, w26 mov w2, 0 @@ -18551,7 +18903,7 @@ FtlGcFreeTempBlock: ldr w0, [x29,92] ldr w1, [x25,x24] cmp w0, w1 - bne .L2877 + bne .L2972 lsr x0, x0, 10 bl P2V_block_in_plane mov w24, w0 @@ -18560,88 +18912,88 @@ FtlGcFreeTempBlock: mov w2, 1 bl log2phys mov w0, w24 -.L2896: +.L2991: bl decrement_vpc_count -.L2878: +.L2973: add w22, w22, 1 uxth w22, w22 -.L2876: +.L2971: add x0, x21, :lo12:.LANCHOR4 - ldrh w0, [x0,4018] + ldrh w0, [x0,4034] cmp w0, w22 - bhi .L2879 - b .L2898 -.L2877: + bhi .L2974 + b .L2993 +.L2972: ldr w1, [x23,4] cmp w0, w1 - beq .L2878 - ldrh w0, [x20,3704] - b .L2896 -.L2898: + beq .L2973 + ldrh w0, [x20,3712] + b .L2991 +.L2993: mov w0, -1 adrp x20, .LANCHOR0 bl decrement_vpc_count add x0, x20, :lo12:.LANCHOR0 - ldrb w0, [x0,136] - cbz w0, .L2880 + ldrb w0, [x0,4044] + cbz w0, .L2975 add x1, x19, :lo12:.LANCHOR2 - adrp x0, .LC154 - add x0, x0, :lo12:.LC154 - ldrh w1, [x1,3704] + adrp x0, .LC155 + add x0, x0, :lo12:.LC155 + ldrh w1, [x1,3712] bl printk -.L2880: +.L2975: add x1, x19, :lo12:.LANCHOR2 - ldrh w0, [x1,3704] - ldr x1, [x1,1184] + ldrh w0, [x1,3712] + ldr x1, [x1,1192] ubfiz x2, x0, 1, 16 ldrh w1, [x1,x2] - cbz w1, .L2881 + cbz w1, .L2976 bl INSERT_DATA_LIST - b .L2882 -.L2881: + b .L2977 +.L2976: bl INSERT_FREE_LIST -.L2882: +.L2977: add x23, x21, :lo12:.LANCHOR4 add x22, x19, :lo12:.LANCHOR2 mov w24, -1 - strh wzr, [x23,4018] - strh w24, [x22,3704] - strh wzr, [x23,4016] + strh wzr, [x23,4034] + strh w24, [x22,3712] + strh wzr, [x23,4032] bl l2p_flush bl FtlVpcTblFlush - strh w24, [x23,3408] - ldr w0, [x22,652] - cbz w0, .L2883 - ldr w0, [x22,920] + strh w24, [x23,3424] + ldr w0, [x22,660] + cbz w0, .L2978 + ldr w0, [x22,924] cmp w0, 39 - bhi .L2883 - ldrh w0, [x23,3404] - ldrh w1, [x22,3600] + bhi .L2978 + ldrh w0, [x23,3420] + ldrh w1, [x22,3608] cmp w1, w0 - bcs .L2897 + bcs .L2992 lsl w0, w0, 1 - strh w0, [x22,956] -.L2897: + strh w0, [x22,960] +.L2992: mov w0, 0 - b .L2865 -.L2883: + b .L2960 +.L2978: add x21, x21, :lo12:.LANCHOR4 add x19, x19, :lo12:.LANCHOR2 - ldrh w1, [x21,3404] - ldrh w0, [x19,3600] + ldrh w1, [x21,3420] + ldrh w0, [x19,3608] add w2, w1, w1, lsl 1 cmp w0, w2, lsr 2 - ble .L2897 + ble .L2992 add x20, x20, :lo12:.LANCHOR0 - ldrb w0, [x20,136] - cbz w0, .L2884 + ldrb w0, [x20,4044] + cbz w0, .L2979 sub w1, w1, #2 - strh w1, [x19,956] - b .L2897 -.L2884: + strh w1, [x19,960] + b .L2992 +.L2979: mov w1, 20 - strh w1, [x19,956] -.L2865: + strh w1, [x19,960] +.L2960: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -18658,21 +19010,21 @@ FtlGcPageRecovery: stp x19, x20, [sp,16] adrp x19, .LANCHOR2 add x19, x19, :lo12:.LANCHOR2 - add x20, x19, 3704 + add x20, x19, 3712 mov x0, x20 - ldrh w1, [x19,818] + ldrh w1, [x19,824] bl FtlGcScanTempBlk - ldrh w1, [x19,3706] - ldrh w0, [x19,818] + ldrh w1, [x19,3714] + ldrh w0, [x19,824] cmp w1, w0 - bcc .L2899 - add x0, x19, 3752 + bcc .L2994 + add x0, x19, 3760 bl FtlMapBlkWriteDumpData mov w0, 0 bl FtlGcFreeTempBlock - adrp x0, .LANCHOR4+4008 - str wzr, [x0,#:lo12:.LANCHOR4+4008] -.L2899: + adrp x0, .LANCHOR4+4024 + str wzr, [x0,#:lo12:.LANCHOR4+4024] +.L2994: ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 ret @@ -18682,14 +19034,14 @@ FtlGcPageRecovery: .type FtlPowerLostRecovery, %function FtlPowerLostRecovery: stp x29, x30, [sp, -32]! - adrp x0, .LANCHOR4+4064 + adrp x0, .LANCHOR4+4080 add x29, sp, 0 stp x19, x20, [sp,16] adrp x19, .LANCHOR2 - str wzr, [x0,#:lo12:.LANCHOR4+4064] + str wzr, [x0,#:lo12:.LANCHOR4+4080] add x19, x19, :lo12:.LANCHOR2 - add x20, x19, 3608 - add x19, x19, 3656 + add x20, x19, 3616 + add x19, x19, 3664 mov x0, x20 bl FtlRecoverySuperblock mov x0, x20 @@ -18719,22 +19071,22 @@ FtlSysBlkInit: stp x21, x22, [sp,32] add x0, x20, :lo12:.LANCHOR4 add x22, x19, :lo12:.LANCHOR2 - strh w1, [x0,4058] - strh wzr, [x0,4060] - ldrh w0, [x22,752] + strh w1, [x0,4074] + strh wzr, [x0,4076] + ldrh w0, [x22,760] bl FtlFreeSysBlkQueueInit bl FtlScanSysBlk - ldrh w1, [x22,3896] + ldrh w1, [x22,3904] mov w0, 65535 cmp w1, w0 - bne .L2903 -.L2905: + bne .L2998 +.L3000: mov w21, -1 - b .L2904 -.L2903: + b .L2999 +.L2998: bl FtlLoadSysInfo mov w21, w0 - cbnz w0, .L2905 + cbnz w0, .L3000 bl FtlLoadMapInfo bl FtlLoadVonderInfo bl Ftl_load_ext_data @@ -18744,84 +19096,84 @@ FtlSysBlkInit: bl FtlPowerLostRecovery mov w0, 1 bl FtlUpdateVaildLpn - ldrh w2, [x22,858] + ldrh w2, [x22,862] mov x1, 0 - ldr x0, [x22,1264] -.L2906: + ldr x0, [x22,1272] +.L3001: cmp w1, w2 mov w3, w1 - bge .L2910 + bge .L3005 add x4, x0, x1, lsl 4 add x1, x1, 1 ldr w4, [x4,4] - tbz w4, #31, .L2906 -.L2910: + tbz w4, #31, .L3001 +.L3005: add x0, x19, :lo12:.LANCHOR2 cmp w3, w2 - ldrh w1, [x0,3548] + ldrh w1, [x0,3556] add w1, w1, 1 - strh w1, [x0,3548] - blt .L2907 + strh w1, [x0,3556] + blt .L3002 add x20, x20, :lo12:.LANCHOR4 - ldrh w0, [x20,4060] - cbz w0, .L2911 -.L2907: + ldrh w0, [x20,4076] + cbz w0, .L3006 +.L3002: add x1, x19, :lo12:.LANCHOR2 - ldrh w2, [x1,3608] - ldr x4, [x1,1184] + ldrh w2, [x1,3616] + ldr x4, [x1,1192] lsl x2, x2, 1 - ldrh w5, [x1,3612] + ldrh w5, [x1,3620] ldrh w3, [x4,x2] sub w3, w3, w5 strh w3, [x4,x2] - strb wzr, [x1,3614] - ldrh w3, [x1,3656] - ldrh w2, [x1,818] + strb wzr, [x1,3622] + ldrh w3, [x1,3664] + ldrh w2, [x1,824] lsl x3, x3, 1 - ldr x4, [x1,1184] - strh w2, [x1,3610] - strh wzr, [x1,3612] - ldrh w5, [x1,3660] + ldr x4, [x1,1192] + strh w2, [x1,3618] + strh wzr, [x1,3620] + ldrh w5, [x1,3668] ldrh w0, [x4,x3] sub w0, w0, w5 strh w0, [x4,x3] - strb wzr, [x1,3662] - ldrh w0, [x1,818] - strh w0, [x1,3658] - ldrh w0, [x1,3550] - strh wzr, [x1,3660] + strb wzr, [x1,3670] + ldrh w0, [x1,824] + strh w0, [x1,3666] + ldrh w0, [x1,3558] + strh wzr, [x1,3668] add w0, w0, 1 - strh w0, [x1,3550] + strh w0, [x1,3558] bl l2p_flush bl FtlVpcTblFlush bl FtlVpcTblFlush -.L2911: +.L3006: add x0, x19, :lo12:.LANCHOR2 - ldrh w0, [x0,3548] + ldrh w0, [x0,3556] and w0, w0, 31 - cbnz w0, .L2912 + cbnz w0, .L3007 bl FtlVpcCheckAndModify -.L2912: +.L3007: add x19, x19, :lo12:.LANCHOR2 mov w1, 65535 - add x22, x19, 3608 - ldrh w0, [x19,3608] + add x22, x19, 3616 + ldrh w0, [x19,3616] cmp w0, w1 - beq .L2904 - ldrh w1, [x19,3612] - cbnz w1, .L2904 - ldrh w1, [x19,3660] - add x20, x19, 3656 - cbnz w1, .L2904 + beq .L2999 + ldrh w1, [x19,3620] + cbnz w1, .L2999 + ldrh w1, [x19,3668] + add x20, x19, 3664 + cbnz w1, .L2999 bl FtlGcRefreshOpenBlock - ldrh w0, [x19,3656] + ldrh w0, [x19,3664] bl FtlGcRefreshOpenBlock bl FtlVpcTblFlush mov x0, x22 bl allocate_new_data_superblock mov x0, x20 bl allocate_new_data_superblock -.L2904: +.L2999: mov w0, w21 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -18839,52 +19191,52 @@ FtlLowFormat: str x23, [sp,48] add x20, x19, :lo12:.LANCHOR2 stp x21, x22, [sp,32] - ldr w21, [x20,1400] - cbnz w21, .L2920 - ldrh w2, [x20,856] + ldr w21, [x20,1408] + cbnz w21, .L3015 + ldrh w2, [x20,860] mov w1, w21 - ldr x0, [x20,1248] + ldr x0, [x20,1256] lsl w2, w2, 2 bl ftl_memset - ldrh w2, [x20,856] + ldrh w2, [x20,860] mov w1, w21 - ldr x0, [x20,1240] + ldr x0, [x20,1248] lsl w2, w2, 2 bl ftl_memset - str w21, [x20,872] - ldrh w0, [x20,752] str w21, [x20,876] + ldrh w0, [x20,760] + str w21, [x20,880] bl FtlFreeSysBlkQueueInit bl FtlLoadBbt - cbz w0, .L2921 + cbz w0, .L3016 bl FtlMakeBbt -.L2921: +.L3016: mov w0, 0 -.L2922: +.L3017: add x1, x19, :lo12:.LANCHOR2 - ldrh w2, [x1,824] + ldrh w2, [x1,830] cmp w0, w2, lsl 7 - bge .L2949 + bge .L3044 ubfiz x3, x0, 2, 16 - ldr x4, [x1,1088] + ldr x4, [x1,1096] mvn w2, w0 orr w2, w0, w2, lsl 16 str w2, [x4,x3] add w0, w0, 1 - ldr x2, [x1,1096] + ldr x2, [x1,1104] mov w1, 23752 movk w1, 0xa0f, lsl 16 uxth w0, w0 str w1, [x2,x3] - b .L2922 -.L2949: - ldrh w21, [x1,756] + b .L3017 +.L3044: + ldrh w21, [x1,764] mov w20, 0 -.L2924: +.L3019: add x22, x19, :lo12:.LANCHOR2 - ldrh w0, [x22,758] + ldrh w0, [x22,766] cmp w0, w21 - bls .L2950 + bls .L3045 mov w0, w21 mov w1, 1 add w21, w21, 1 @@ -18892,40 +19244,40 @@ FtlLowFormat: add w0, w20, w0 uxth w21, w21 uxth w20, w0 - b .L2924 -.L2950: - ldrh w0, [x22,748] + b .L3019 +.L3045: + ldrh w0, [x22,756] sub w1, w20, #3 cmp w1, w0, lsl 1 - bge .L2926 -.L2930: + bge .L3021 +.L3025: mov w20, 0 mov w21, w20 - b .L2927 -.L2926: + b .L3022 +.L3021: udiv w20, w20, w0 - ldr w0, [x22,852] + ldr w0, [x22,856] add w0, w20, w0 bl FtlSysBlkNumInit - ldrh w0, [x22,752] + ldrh w0, [x22,760] bl FtlFreeSysBlkQueueInit - ldrh w20, [x22,756] -.L2928: + ldrh w20, [x22,764] +.L3023: add x0, x19, :lo12:.LANCHOR2 - ldrh w0, [x0,758] + ldrh w0, [x0,766] cmp w0, w20 - bls .L2930 + bls .L3025 mov w0, w20 mov w1, 1 add w20, w20, 1 bl FtlLowFormatEraseBlock uxth w20, w20 - b .L2928 -.L2927: + b .L3023 +.L3022: add x0, x19, :lo12:.LANCHOR2 - ldrh w1, [x0,756] + ldrh w1, [x0,764] cmp w1, w21 - bls .L2951 + bls .L3046 mov w0, w21 mov w1, 0 add w21, w21, 1 @@ -18933,176 +19285,176 @@ FtlLowFormat: add w0, w20, w0 uxth w21, w21 uxth w20, w0 - b .L2927 -.L2951: - ldrh w1, [x0,758] + b .L3022 +.L3046: + ldrh w1, [x0,766] adrp x21, .LANCHOR4 - ldrh w2, [x0,748] + ldrh w2, [x0,756] add x6, x21, :lo12:.LANCHOR4 - str w1, [x0,944] - ldr w1, [x0,760] + str w1, [x0,948] + ldr w1, [x0,768] udiv w3, w1, w2 - str w3, [x0,1396] + str w3, [x0,1404] ubfx x5, x3, 5, 16 add w4, w5, 36 - strh w4, [x6,3404] + strh w4, [x6,3420] mov w4, 24 mul w4, w2, w4 cmp w20, w4 - ble .L2932 + ble .L3027 sub w1, w1, w20 udiv w1, w1, w2 - str w1, [x0,1396] + str w1, [x0,1404] lsr w1, w1, 5 add w1, w1, 24 - strh w1, [x6,3404] -.L2932: + strh w1, [x6,3420] +.L3027: add x0, x19, :lo12:.LANCHOR2 - ldr w0, [x0,652] + ldr w0, [x0,660] cmp w0, 1 - bne .L2933 + bne .L3028 add x1, x21, :lo12:.LANCHOR4 udiv w0, w20, w2 - ldrh w4, [x1,3404] + ldrh w4, [x1,3420] add w0, w4, w0 add w0, w4, w0, asr 2 - strh w0, [x1,3404] -.L2933: + strh w0, [x1,3420] +.L3028: adrp x22, .LANCHOR0 add x0, x22, :lo12:.LANCHOR0 - ldrb w0, [x0,136] - cbz w0, .L2934 + ldrb w0, [x0,4044] + cbz w0, .L3029 add x1, x21, :lo12:.LANCHOR4 udiv w0, w20, w2 - ldrh w4, [x1,3404] + ldrh w4, [x1,3420] add w0, w4, w0 add w0, w4, w0, asr 2 - strh w0, [x1,3404] -.L2934: + strh w0, [x1,3420] +.L3029: add x6, x19, :lo12:.LANCHOR2 - ldrh w1, [x6,810] - cbz w1, .L2936 + ldrh w1, [x6,818] + cbz w1, .L3031 add x0, x21, :lo12:.LANCHOR4 - ldrh w4, [x0,3404] + ldrh w4, [x0,3420] add w4, w4, w1, lsr 1 - strh w4, [x0,3404] + strh w4, [x0,3420] mul w4, w1, w2 cmp w4, w20 - ble .L2936 + ble .L3031 add w1, w1, 32 - str w3, [x6,1396] + str w3, [x6,1404] add w1, w5, w1 - strh w1, [x0,3404] -.L2936: + strh w1, [x0,3420] +.L3031: add x19, x19, :lo12:.LANCHOR2 add x20, x21, :lo12:.LANCHOR4 add x22, x22, :lo12:.LANCHOR0 mov w23, -1 - ldrh w0, [x20,3404] - ldr w1, [x19,1396] + ldrh w0, [x20,3420] + ldr w1, [x19,1404] sub w0, w1, w0 - ldrh w1, [x19,818] + ldrh w1, [x19,824] mul w0, w0, w2 - str w0, [x20,3400] + str w0, [x20,3416] mul w0, w0, w1 - ldrh w1, [x19,824] - str w0, [x19,1396] + ldrh w1, [x19,830] + str w0, [x19,1404] mul w0, w0, w1 str w0, [x22,4048] bl FtlBbmTblFlush - ldrh w2, [x19,758] + ldrh w2, [x19,766] mov w1, 0 - ldr x0, [x19,1184] + ldr x0, [x19,1192] lsl w2, w2, 1 bl ftl_memset - strh w23, [x20,3408] - strh wzr, [x20,3410] + strh w23, [x20,3424] + strh wzr, [x20,3426] mov w0, 1 - strb wzr, [x20,3414] + strb wzr, [x20,3430] mov w1, 255 - strb wzr, [x20,3416] - add x20, x19, 3608 - ldrh w2, [x19,756] + strb wzr, [x20,3432] + add x20, x19, 3616 + ldrh w2, [x19,764] strb w0, [x20,8] ldr x0, [x22,16] lsr w2, w2, 3 - str wzr, [x19,3892] + str wzr, [x19,3900] strh wzr, [x20,2] strb wzr, [x20,6] - strh wzr, [x19,3608] + strh wzr, [x19,3616] bl ftl_memset -.L2938: +.L3033: mov x0, x20 bl make_superblock ldrb w0, [x20,7] - cbnz w0, .L2939 + cbnz w0, .L3034 ldrh w1, [x20] - ldr x0, [x19,1184] + ldr x0, [x19,1192] strh w23, [x0,x1,lsl 1] ldrh w0, [x20] add w0, w0, 1 strh w0, [x20] - b .L2938 -.L2939: - ldr w0, [x19,872] + b .L3033 +.L3034: + ldr w0, [x19,876] mov w22, -1 str w0, [x20,12] add w0, w0, 1 ldrh w1, [x20] - str w0, [x19,872] - ldr x0, [x19,1184] + str w0, [x19,876] + ldr x0, [x19,1192] ldrh w2, [x20,4] strh w2, [x0,x1,lsl 1] - add x0, x19, 3656 - strh wzr, [x19,3658] + add x0, x19, 3664 + strh wzr, [x19,3666] ldrh w1, [x20] mov x20, x0 - strb wzr, [x19,3662] + strb wzr, [x19,3670] add w1, w1, 1 - strh w1, [x19,3656] + strh w1, [x19,3664] mov w1, 1 - strb w1, [x19,3664] -.L2940: + strb w1, [x19,3672] +.L3035: mov x0, x20 bl make_superblock ldrb w0, [x20,7] - cbnz w0, .L2941 + cbnz w0, .L3036 ldrh w1, [x20] - ldr x0, [x19,1184] + ldr x0, [x19,1192] strh w22, [x0,x1,lsl 1] ldrh w0, [x20] add w0, w0, 1 strh w0, [x20] - b .L2940 -.L2941: - ldr w0, [x19,872] + b .L3035 +.L3036: + ldr w0, [x19,876] add x21, x21, :lo12:.LANCHOR4 str w0, [x20,12] add w0, w0, 1 ldrh w1, [x20] - str w0, [x19,872] - ldr x0, [x19,1184] + str w0, [x19,876] + ldr x0, [x19,1192] ldrh w2, [x20,4] mov w20, -1 strh w2, [x0,x1,lsl 1] - strh w20, [x19,3704] + strh w20, [x19,3712] bl FtlFreeSysBlkQueueOut - strh w0, [x19,3896] - ldr w0, [x21,3400] - strh w0, [x19,3902] - ldr w0, [x19,872] - str w0, [x19,3904] + strh w0, [x19,3904] + ldr w0, [x21,3416] + strh w0, [x19,3910] + ldr w0, [x19,876] + str w0, [x19,3912] add w0, w0, 1 - strh wzr, [x19,3898] - strh w20, [x19,3900] - str w0, [x19,872] + strh wzr, [x19,3906] + strh w20, [x19,3908] + str w0, [x19,876] bl FtlVpcTblFlush bl FtlSysBlkInit - cbnz w0, .L2920 - adrp x0, .LANCHOR1+3160 + cbnz w0, .L3015 + adrp x0, .LANCHOR1+3288 mov w1, 1 - str w1, [x0,#:lo12:.LANCHOR1+3160] -.L2920: + str w1, [x0,#:lo12:.LANCHOR1+3288] +.L3015: mov w0, 0 ldr x23, [sp,48] ldp x19, x20, [sp,16] @@ -19119,25 +19471,25 @@ FtlReInitForSDUpdata: stp x19, x20, [sp,16] adrp x19, .LANCHOR0 add x0, x19, :lo12:.LANCHOR0 - ldrb w0, [x0,136] - cbz w0, .L2953 -.L2955: + ldrb w0, [x0,4044] + cbz w0, .L3048 +.L3050: mov w0, 0 - b .L2954 -.L2953: + b .L3049 +.L3048: adrp x0, RK29_NANDC_REG_BASE ldr x0, [x0,#:lo12:RK29_NANDC_REG_BASE] bl FlashInit - cbnz w0, .L2955 + cbnz w0, .L3050 bl FlashLoadFactorBbt - cbz w0, .L2956 + cbz w0, .L3051 bl FlashMakeFactorBbt -.L2956: +.L3051: adrp x20, .LANCHOR2 add x0, x20, :lo12:.LANCHOR2 - ldr x0, [x0,688] + ldr x0, [x0,696] bl FlashReadIdbDataRaw - cbz w0, .L2957 + cbz w0, .L3052 mov w1, 0 mov w2, 16 add x0, x29, 32 @@ -19146,39 +19498,39 @@ FtlReInitForSDUpdata: ldr w2, [x29,32] mov w1, w0 mov w4, 1 -.L2959: +.L3054: lsl w3, w4, w1 add w1, w1, 1 tst w3, w2 cset w3, ne cmp w1, 16 add w0, w0, w3 - bne .L2959 + bne .L3054 cmp w0, 6 - bhi .L2960 + bhi .L3055 add x0, x19, :lo12:.LANCHOR0 - b .L2982 -.L2960: + b .L3077 +.L3055: mov w1, 0 mov w4, 1 -.L2963: +.L3058: lsl w3, w4, w1 add w1, w1, 1 tst w3, w2 cset w3, ne cmp w1, 24 add w0, w0, w3 - bne .L2963 + bne .L3058 cmp w0, 17 add x0, x19, :lo12:.LANCHOR0 - bls .L2982 + bls .L3077 mov w1, 36 -.L2982: +.L3077: strb w1, [x0,25] add x0, x19, :lo12:.LANCHOR0 ldrb w1, [x0,25] strh w1, [x0,4042] -.L2957: +.L3052: adrp x0, .LC45 adrp x1, .LC138 add x1, x1, :lo12:.LC138 @@ -19190,27 +19542,27 @@ FtlReInitForSDUpdata: add x0, x0, 4016 bl FtlConstantsInit bl FtlVariablesInit - ldrh w0, [x20,752] + ldrh w0, [x20,760] bl FtlFreeSysBlkQueueInit -.L2965: +.L3060: bl FtlLoadBbt - cbz w0, .L2966 -.L2984: + cbz w0, .L3061 +.L3079: bl FtlLowFormat cmp w19, 3 - bhi .L2985 + bhi .L3080 add w19, w19, 1 - b .L2965 -.L2985: + b .L3060 +.L3080: mov w0, -1 - b .L2954 -.L2966: + b .L3049 +.L3061: bl FtlSysBlkInit - cbnz w0, .L2984 - adrp x1, .LANCHOR1+3160 + cbnz w0, .L3079 + adrp x1, .LANCHOR1+3288 mov w2, 1 - str w2, [x1,#:lo12:.LANCHOR1+3160] -.L2954: + str w2, [x1,#:lo12:.LANCHOR1+3288] +.L3049: ldp x19, x20, [sp,16] ldp x29, x30, [sp], 48 ret @@ -19226,59 +19578,59 @@ Ftl_gc_temp_data_write_back: str x23, [sp,48] add x0, x19, :lo12:.LANCHOR2 stp x21, x22, [sp,32] - ldr w1, [x0,1400] - cbz w1, .L2987 -.L2990: + ldr w1, [x0,1408] + cbz w1, .L3082 +.L3085: mov w0, 0 - b .L2988 -.L2987: - adrp x1, .LANCHOR0+136 + b .L3083 +.L3082: + adrp x1, .LANCHOR0+4044 adrp x22, .LANCHOR4 - ldrb w1, [x1,#:lo12:.LANCHOR0+136] - cbz w1, .L2989 + ldrb w1, [x1,#:lo12:.LANCHOR0+4044] + cbz w1, .L3084 add x1, x22, :lo12:.LANCHOR4 - ldr w1, [x1,3984] - tbz x1, 0, .L2989 - ldrh w0, [x0,3708] - cbnz w0, .L2990 -.L2989: + ldr w1, [x1,4000] + tbz x1, 0, .L3084 + ldrh w0, [x0,3716] + cbnz w0, .L3085 +.L3084: add x0, x19, :lo12:.LANCHOR2 add x1, x22, :lo12:.LANCHOR4 mov w2, 0 mov w21, 0 mov w3, w2 mov w23, 56 - ldr x0, [x0,1000] - ldr w1, [x1,3984] + ldr x0, [x0,1008] + ldr w1, [x1,4000] bl FlashProgPages -.L2991: +.L3086: add x20, x22, :lo12:.LANCHOR4 - ldr w1, [x20,3984] + ldr w1, [x20,4000] cmp w21, w1 - bcs .L3001 + bcs .L3096 add x1, x19, :lo12:.LANCHOR2 umull x0, w21, w23 - ldr x2, [x1,1000] + ldr x2, [x1,1008] add x3, x2, x0 ldr w2, [x2,x0] cmn w2, #1 - bne .L2992 - ldrh w4, [x1,3704] - ldr x3, [x1,1184] + bne .L3087 + ldrh w4, [x1,3712] + ldr x3, [x1,1192] strh wzr, [x3,x4,lsl 1] - strh w2, [x1,3704] - ldr x1, [x1,1000] - ldr w2, [x20,3552] + strh w2, [x1,3712] + ldr x1, [x1,1008] + ldr w2, [x20,3568] add x0, x1, x0 add w2, w2, 1 - str w2, [x20,3552] + str w2, [x20,3568] ldr w0, [x0,4] lsr w0, w0, 10 bl FtlBbmMapBadBlock bl FtlBbmTblFlush bl FtlGcPageVarInit - b .L3000 -.L2992: + b .L3095 +.L3087: ldr x2, [x3,16] add w21, w21, 1 ldr w1, [x3,4] @@ -19286,19 +19638,19 @@ Ftl_gc_temp_data_write_back: ldr w0, [x2,12] ldr w2, [x2,8] bl FtlGcUpdatePage - b .L2991 -.L3001: + b .L3086 +.L3096: add x19, x19, :lo12:.LANCHOR2 - ldr x0, [x19,1000] + ldr x0, [x19,1008] bl FtlGcBufFree - str wzr, [x20,3984] - ldrh w0, [x19,3708] - cbnz w0, .L2990 + str wzr, [x20,4000] + ldrh w0, [x19,3716] + cbnz w0, .L3085 mov w0, 1 bl FtlGcFreeTempBlock -.L3000: +.L3095: mov w0, 1 -.L2988: +.L3083: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldr x23, [sp,48] @@ -19314,32 +19666,32 @@ Ftl_get_new_temp_ppa: str x19, [sp,16] adrp x19, .LANCHOR2 add x0, x19, :lo12:.LANCHOR2 - add x1, x0, 3704 - ldrh w2, [x0,3704] + add x1, x0, 3712 + ldrh w2, [x0,3712] mov w0, 65535 cmp w2, w0 - beq .L3003 + beq .L3098 ldrh w0, [x1,4] - cbnz w0, .L3004 -.L3003: + cbnz w0, .L3099 +.L3098: bl FtlCacheWriteBack mov w0, 0 bl FtlGcFreeTempBlock add x0, x19, :lo12:.LANCHOR2 - add x0, x0, 3704 + add x0, x0, 3712 strb wzr, [x0,8] bl allocate_data_superblock adrp x0, .LANCHOR4 add x0, x0, :lo12:.LANCHOR4 - strh wzr, [x0,4016] - strh wzr, [x0,4018] + strh wzr, [x0,4032] + strh wzr, [x0,4034] bl l2p_flush mov w0, 0 bl FtlEctTblFlush bl FtlVpcTblFlush -.L3004: +.L3099: add x0, x19, :lo12:.LANCHOR2 - add x0, x0, 3704 + add x0, x0, 3712 bl get_new_active_ppa ldr x19, [sp,16] ldp x29, x30, [sp], 32 @@ -19361,13 +19713,13 @@ ftl_read: mov w20, w1 mov w28, w2 mov x25, x3 - bne .L3006 + bne .L3101 add w0, w1, 256 mov w1, w2 mov x2, x3 bl FtlVendorPartRead - b .L3007 -.L3006: + b .L3102 +.L3101: add w0, w1, w2 str w0, [x29,188] adrp x0, .LANCHOR0+4048 @@ -19375,30 +19727,30 @@ ftl_read: ldr w1, [x0,#:lo12:.LANCHOR0+4048] mov w0, -1 cmp w2, w1 - bhi .L3007 + bhi .L3102 adrp x19, .LANCHOR2 adrp x21, .LANCHOR4 add x0, x19, :lo12:.LANCHOR2 sub w24, w2, #1 add x2, x21, :lo12:.LANCHOR4 - ldrh w1, [x0,824] + ldrh w1, [x0,830] udiv w27, w20, w1 udiv w24, w24, w1 - ldr w1, [x2,3972] + ldr w1, [x2,3988] add w1, w28, w1 sub w23, w24, w27 - str w1, [x2,3972] + str w1, [x2,3988] add w23, w23, 1 - ldr w1, [x0,900] + ldr w1, [x0,904] add w1, w23, w1 - str w1, [x0,900] + str w1, [x0,904] mov w0, w27 mov w1, w24 bl FtlCacheMetchLpa str x21, [x29,120] - cbz w0, .L3008 + cbz w0, .L3103 bl FtlCacheWriteBack -.L3008: +.L3103: mov w26, 0 adrp x0, .LC56 add x0, x0, :lo12:.LC56 @@ -19407,27 +19759,27 @@ ftl_read: mov w22, w26 str w26, [x29,172] str x0, [x29,112] -.L3009: - cbz w23, .L3051 +.L3104: + cbz w23, .L3146 mov w0, w21 add x1, x29, 204 mov w2, 0 bl log2phys ldr w3, [x29,204] cmn w3, #1 - bne .L3049 + bne .L3144 mov w3, 0 -.L3010: +.L3105: add x0, x19, :lo12:.LANCHOR2 - ldrh w0, [x0,824] + ldrh w0, [x0,830] cmp w3, w0 - bcs .L3014 + bcs .L3109 madd w0, w21, w0, w3 cmp w0, w20 - bcc .L3012 + bcc .L3107 ldr w1, [x29,188] cmp w0, w1 - bcs .L3012 + bcs .L3107 sub w0, w0, w20 mov w1, 0 ubfiz x0, x0, 9, 23 @@ -19436,21 +19788,21 @@ ftl_read: str x3, [x29,176] bl ftl_memset ldr x3, [x29,176] -.L3012: +.L3107: add w3, w3, 1 - b .L3010 -.L3049: + b .L3105 +.L3144: add x2, x19, :lo12:.LANCHOR2 mov w0, 56 cmp w21, w27 umull x1, w22, w0 - ldr x0, [x2,992] + ldr x0, [x2,1000] add x0, x0, x1 str w3, [x0,4] - ldrh w0, [x2,824] - bne .L3015 - ldr x3, [x2,992] - ldr x2, [x2,1088] + ldrh w0, [x2,830] + bne .L3110 + ldr x3, [x2,1000] + ldr x2, [x2,1096] add x3, x3, x1 str x2, [x3,8] udiv w2, w20, w0 @@ -19461,60 +19813,60 @@ ftl_read: csel w2, w2, w28, ls str w2, [x29,184] cmp w2, w0 - bne .L3016 + bne .L3111 str x25, [x3,8] - b .L3016 -.L3015: + b .L3111 +.L3110: cmp w21, w24 - bne .L3017 - ldr x3, [x2,992] - ldr x2, [x2,1096] + bne .L3112 + ldr x3, [x2,1000] + ldr x2, [x2,1104] add x3, x3, x1 ldr w4, [x29,188] str x2, [x3,8] mul w2, w21, w0 sub w26, w4, w2 cmp w26, w0 - bne .L3016 + bne .L3111 sub w2, w2, w20 ubfiz x2, x2, 9, 23 add x2, x25, x2 str x2, [x3,8] - b .L3016 -.L3017: - ldr x2, [x2,992] + b .L3111 +.L3112: + ldr x2, [x2,1000] mul w0, w21, w0 add x2, x2, x1 sub w0, w0, w20 ubfiz x0, x0, 9, 23 add x0, x25, x0 str x0, [x2,8] -.L3016: +.L3111: add x2, x19, :lo12:.LANCHOR2 - ldr x0, [x2,992] + ldr x0, [x2,1000] add x1, x0, x1 - ldrh w0, [x2,830] - ldr x2, [x2,1120] + ldrh w0, [x2,836] + ldr x2, [x2,1128] mul w0, w22, w0 str w21, [x1,24] add w22, w22, 1 and x0, x0, 4294967292 add x0, x2, x0 str x0, [x1,16] -.L3014: +.L3109: subs w23, w23, #1 add w21, w21, 1 - beq .L3018 + beq .L3113 add x0, x19, :lo12:.LANCHOR2 - ldrh w0, [x0,748] + ldrh w0, [x0,756] cmp w22, w0, lsl 3 - bne .L3009 -.L3018: - cbz w22, .L3009 + bne .L3104 +.L3113: + cbz w22, .L3104 add x0, x19, :lo12:.LANCHOR2 mov w1, w22 mov w2, 0 - ldr x0, [x0,992] + ldr x0, [x0,1000] bl FlashReadPages str xzr, [x29,176] ldr x0, [x29,144] @@ -19528,69 +19880,69 @@ ftl_read: ldr x0, [x29,120] add x0, x0, :lo12:.LANCHOR4 str x0, [x29,160] -.L3020: +.L3115: ldr w0, [x29,176] cmp w22, w0 - bls .L3052 + bls .L3147 ldr x0, [x29,176] add x2, x19, :lo12:.LANCHOR2 mov x1, 56 mul x8, x0, x1 - ldr x0, [x2,992] + ldr x0, [x2,1000] add x0, x0, x8 ldr w1, [x0,24] cmp w1, w27 - bne .L3021 + bne .L3116 ldr x1, [x0,8] - ldr x0, [x2,1088] + ldr x0, [x2,1096] cmp x1, x0 - bne .L3022 + bne .L3117 ldr x2, [x29,136] mov x0, x25 str x8, [x29,104] add x1, x1, x2 ldr w2, [x29,168] - b .L3050 -.L3021: + b .L3145 +.L3116: cmp w1, w24 - bne .L3022 + bne .L3117 ldr x1, [x0,8] - ldr x0, [x2,1096] + ldr x0, [x2,1104] cmp x1, x0 - bne .L3022 - ldrh w0, [x2,824] + bne .L3117 + ldrh w0, [x2,830] ldr w2, [x29,132] str x8, [x29,104] mul w0, w24, w0 sub w0, w0, w20 ubfiz x0, x0, 9, 23 add x0, x25, x0 -.L3050: +.L3145: bl ftl_memcpy ldr x8, [x29,104] -.L3022: +.L3117: add x0, x19, :lo12:.LANCHOR2 - ldr x0, [x0,992] + ldr x0, [x0,1000] add x2, x0, x8 ldr w1, [x0,x8] cmn w1, #1 - bne .L3023 + bne .L3118 ldr x0, [x29,160] str w1, [x29,172] - add x3, x0, 3456 - ldr w0, [x0,3528] + add x3, x0, 3472 + ldr w0, [x0,3544] add w0, w0, 1 str w0, [x3,72] -.L3023: +.L3118: ldr x0, [x2,16] ldr w1, [x2,24] ldr w0, [x0,8] cmp w1, w0 - beq .L3024 + beq .L3119 ldr x0, [x29,160] str x8, [x29,104] - add x1, x0, 3456 - ldr w0, [x0,3528] + add x1, x0, 3472 + ldr w0, [x0,3544] add w0, w0, 1 str w0, [x1,72] ldr x7, [x2,8] @@ -19607,35 +19959,35 @@ ftl_read: ldr w7, [x7] bl printk ldr x8, [x29,104] -.L3024: +.L3119: add x0, x19, :lo12:.LANCHOR2 - ldr x0, [x0,992] + ldr x0, [x0,1000] add x1, x0, x8 ldr w0, [x0,x8] cmp w0, 256 - bne .L3025 + bne .L3120 ldr w0, [x1,4] lsr x0, x0, 10 bl P2V_block_in_plane bl FtlGcRefreshBlock -.L3025: +.L3120: ldr x0, [x29,176] add x0, x0, 1 str x0, [x29,176] - b .L3020 -.L3052: + b .L3115 +.L3147: mov w22, 0 - b .L3009 -.L3051: + b .L3104 +.L3146: add x19, x19, :lo12:.LANCHOR2 - ldrh w0, [x19,962] - cbz w0, .L3028 + ldrh w0, [x19,966] + cbz w0, .L3123 mov w0, w23 mov w1, 1 bl ftl_do_gc -.L3028: +.L3123: ldr w0, [x29,172] -.L3007: +.L3102: sub sp, x29, #16 ldp x19, x20, [sp,32] ldp x21, x22, [sp,48] @@ -19661,63 +20013,63 @@ FtlInit: stp x19, x20, [sp,16] adrp x19, .LANCHOR2 adrp x20, .LANCHOR0 - str w0, [x21,3160] - adrp x0, .LANCHOR5-132 + str w0, [x21,3288] + adrp x0, .LANCHOR5-116 add x19, x19, :lo12:.LANCHOR2 add x20, x20, :lo12:.LANCHOR0 - str wzr, [x0,#:lo12:.LANCHOR5-132] + str wzr, [x0,#:lo12:.LANCHOR5-116] adrp x0, .LC45 add x0, x0, :lo12:.LC45 - str wzr, [x19,1400] + str wzr, [x19,1408] bl printk add x0, x20, 4016 bl FtlConstantsInit bl FtlMemInit bl FtlVariablesInit - ldrh w0, [x19,752] + ldrh w0, [x19,760] bl FtlFreeSysBlkQueueInit bl FtlLoadBbt - cbz w0, .L3054 - adrp x0, .LC155 - add x0, x0, :lo12:.LC155 - b .L3066 -.L3054: - bl FtlSysBlkInit - cbz w0, .L3056 + cbz w0, .L3149 adrp x0, .LC156 add x0, x0, :lo12:.LC156 -.L3066: + b .L3161 +.L3149: + bl FtlSysBlkInit + cbz w0, .L3151 + adrp x0, .LC157 + add x0, x0, :lo12:.LC157 +.L3161: adrp x1, .LANCHOR3 add x1, x1, :lo12:.LANCHOR3 add x1, x1, 96 bl printk - b .L3055 -.L3056: + b .L3150 +.L3151: mov w1, 1 - str w1, [x21,3160] + str w1, [x21,3288] bl ftl_do_gc - ldrh w0, [x19,3600] + ldrh w0, [x19,3608] cmp w0, 15 - bhi .L3057 + bhi .L3152 mov w19, 1024 -.L3058: +.L3153: mov w0, 1 mov w1, w0 bl ftl_do_gc subs w19, w19, #1 - bne .L3058 - b .L3055 -.L3057: - ldrb w0, [x20,136] - cbz w0, .L3055 + bne .L3153 + b .L3150 +.L3152: + ldrb w0, [x20,4044] + cbz w0, .L3150 mov w19, 128 -.L3060: +.L3155: mov w0, 1 mov w1, w0 bl ftl_do_gc subs w19, w19, #1 - bne .L3060 -.L3055: + bne .L3155 +.L3150: mov w0, 0 ldr x21, [sp,32] ldp x19, x20, [sp,16] @@ -19743,31 +20095,31 @@ ftl_write: stp x27, x28, [sp,80] mov x22, x3 str x1, [x29,152] - ldr w3, [x2,1400] - cbnz w3, .L3068 + ldr w3, [x2,1408] + cbnz w3, .L3163 cmp w4, 16 - bne .L3069 + bne .L3164 add w0, w20, 256 mov w1, w21 mov x2, x22 bl FtlVendorPartWrite - b .L3068 -.L3069: + b .L3163 +.L3164: adrp x0, .LANCHOR0+4048 add w24, w20, w21 ldr w1, [x0,#:lo12:.LANCHOR0+4048] mov w0, -1 cmp w24, w1 - bhi .L3068 + bhi .L3163 adrp x5, .LANCHOR5 - ldrh w1, [x2,824] + ldrh w1, [x2,830] add x26, x5, :lo12:.LANCHOR5 sub w24, w24, #1 mov w0, 2048 adrp x4, .LANCHOR4 udiv w23, w20, w1 add x3, x4, :lo12:.LANCHOR4 - str w0, [x26,-128] + str w0, [x26,-112] cmp w21, w1, lsl 1 str x5, [x29,144] str x4, [x29,112] @@ -19775,30 +20127,30 @@ ftl_write: str w0, [x29,200] sub w28, w0, w23 add w25, w28, 1 - ldr w0, [x2,884] + ldr w0, [x2,888] add w0, w25, w0 - str w0, [x2,884] - ldr w0, [x3,3968] + str w0, [x2,888] + ldr w0, [x3,3984] add w0, w21, w0 - str w0, [x3,3968] - ldr w3, [x2,972] + str w0, [x3,3984] + ldr w3, [x2,976] cset w0, cs str w0, [x29,204] - cbz w3, .L3071 + cbz w3, .L3166 mov w0, 56 sub w3, w3, #1 umull x3, w3, w0 - ldr x0, [x2,1032] + ldr x0, [x2,1040] add x3, x0, x3 ldr w0, [x3,24] cmp w23, w0 - bne .L3072 - ldr w0, [x2,892] + bne .L3167 + ldr w0, [x2,896] add w0, w0, 1 - str w0, [x2,892] - ldr w0, [x26,-124] + str w0, [x2,896] + ldr w0, [x26,-108] add w0, w0, 1 - str w0, [x26,-124] + str w0, [x26,-108] msub w0, w23, w1, w20 sub w1, w1, w0 ubfiz x0, x0, 9, 23 @@ -19810,87 +20162,87 @@ ftl_write: mov w2, w25 mov x1, x22 bl ftl_memcpy - cbnz w28, .L3073 - ldr w0, [x26,-124] + cbnz w28, .L3168 + ldr w0, [x26,-108] cmp w0, 2 - bgt .L3073 -.L3106: + bgt .L3168 +.L3201: mov w0, 0 - b .L3068 -.L3073: + b .L3163 +.L3168: add x22, x22, x25 sub w21, w21, w19 add w20, w20, w19 add w23, w23, 1 mov w25, w28 -.L3072: +.L3167: ldr x0, [x29,144] add x0, x0, :lo12:.LANCHOR5 - str wzr, [x0,-124] -.L3071: + str wzr, [x0,-108] +.L3166: ldr w1, [x29,200] mov w0, w23 bl FtlCacheMetchLpa - cbz w0, .L3074 + cbz w0, .L3169 bl FtlCacheWriteBack -.L3074: +.L3169: ldr x0, [x29,144] ldr x1, [x29,152] add x0, x0, :lo12:.LANCHOR5 str w23, [x29,192] add x3, x1, :lo12:.LANCHOR2 - add x19, x3, 3608 + add x19, x3, 3616 mov x24, x3 - str x19, [x0,-144] - adrp x0, .LC157 - add x0, x0, :lo12:.LC157 + str x19, [x0,-128] + adrp x0, .LC158 + add x0, x0, :lo12:.LC158 str x19, [x29,176] str x0, [x29,96] -.L3075: - cbz w25, .L3135 +.L3170: + cbz w25, .L3230 ldrh w0, [x19,4] - cbnz w0, .L3076 + cbnz w0, .L3171 ldr x1, [x29,176] adrp x26, .LANCHOR1 cmp x19, x1 - bne .L3077 - add x0, x24, 3656 + bne .L3172 + add x0, x24, 3664 ldrh w19, [x0,4] - cbnz w19, .L3078 + cbnz w19, .L3173 bl allocate_new_data_superblock add x0, x26, :lo12:.LANCHOR1 - str w19, [x0,3168] -.L3078: + str w19, [x0,3296] +.L3173: ldr x0, [x29,176] add x26, x26, :lo12:.LANCHOR1 - add x19, x24, 3656 + add x19, x24, 3664 bl allocate_new_data_superblock - ldr w0, [x26,3168] - cbnz w0, .L3079 -.L3080: + ldr w0, [x26,3296] + cbnz w0, .L3174 +.L3175: ldr x19, [x29,176] - b .L3079 -.L3077: + b .L3174 +.L3172: add x26, x26, :lo12:.LANCHOR1 - str w0, [x26,3168] + str w0, [x26,3296] ldr x0, [x29,176] ldrh w0, [x0,4] - cbnz w0, .L3080 + cbnz w0, .L3175 mov x0, x19 bl allocate_new_data_superblock -.L3079: +.L3174: ldrh w0, [x19,4] - cbnz w0, .L3081 + cbnz w0, .L3176 mov x0, x19 bl allocate_new_data_superblock -.L3081: +.L3176: ldr x0, [x29,144] add x0, x0, :lo12:.LANCHOR5 - str x19, [x0,-144] -.L3076: - ldr w0, [x24,968] + str x19, [x0,-128] +.L3171: + ldr w0, [x24,972] mov x28, 0 - ldr w2, [x24,972] + ldr w2, [x24,976] ldrh w1, [x19,4] sub w0, w0, w2 cmp w1, w0 @@ -19903,28 +20255,28 @@ ftl_write: str w0, [x29,108] add w0, w21, w20 str w0, [x29,136] -.L3082: +.L3177: ldr w1, [x29,192] mov w0, w28 add w27, w1, w28 ldr w1, [x29,140] cmp w28, w1 - bcs .L3136 + bcs .L3231 ldrh w1, [x19,4] - cbz w1, .L3112 + cbz w1, .L3207 ldr w1, [x29,200] cmp w27, w1 cset w7, eq - cbz w0, .L3084 + cbz w0, .L3179 ldr w1, [x29,108] tst w7, w1 - beq .L3084 - ldrh w1, [x24,824] + beq .L3179 + ldrh w1, [x24,830] ldr w2, [x29,136] msub w2, w27, w1, w2 cmp w2, w1 - bne .L3112 -.L3084: + bne .L3207 +.L3179: add x1, x29, 212 mov w2, 0 mov w0, w27 @@ -19932,28 +20284,28 @@ ftl_write: bl log2phys mov x0, x19 bl get_new_active_ppa - ldr w6, [x24,972] + ldr w6, [x24,976] mov w5, 56 - ldr x2, [x24,1032] + ldr x2, [x24,1040] str x5, [x29,184] umull x1, w6, w5 add x2, x2, x1 str w0, [x2,4] - ldrh w2, [x24,830] - ldr x0, [x24,1032] + ldrh w2, [x24,836] + ldr x0, [x24,1040] add x1, x0, x1 mul w0, w2, w6 and x0, x0, 4294967292 str x0, [x29,128] - ldr x0, [x24,1136] + ldr x0, [x24,1144] ldr x3, [x29,128] str x0, [x29,120] add x26, x0, x3 - ldrh w0, [x24,828] + ldrh w0, [x24,834] str x26, [x1,16] str w27, [x1,24] mul w0, w0, w6 - ldr x6, [x24,1080] + ldr x6, [x24,1088] and x0, x0, 4294967292 add x0, x6, x0 str x0, [x1,8] @@ -19963,20 +20315,20 @@ ftl_write: cmp w27, w23 cset w0, eq str w0, [x29,196] - cbnz w0, .L3115 + cbnz w0, .L3210 ldr x7, [x29,160] ldr x5, [x29,184] - cbz w7, .L3085 + cbz w7, .L3180 ldr w0, [x29,136] - ldrh w2, [x24,824] + ldrh w2, [x24,830] msub w2, w27, w2, w0 uxth w0, w2 str w0, [x29,184] ldr w0, [x29,196] str w0, [x29,160] - b .L3088 -.L3115: - ldrh w2, [x24,824] + b .L3183 +.L3210: + ldrh w2, [x24,830] udiv w0, w20, w2 msub w0, w0, w2, w20 str w0, [x29,160] @@ -19984,46 +20336,46 @@ ftl_write: cmp w2, w21 csel w0, w2, w21, ls str w0, [x29,184] -.L3088: - ldrh w0, [x24,824] +.L3183: + ldrh w0, [x24,830] ldr w1, [x29,184] cmp w1, w0 - bne .L3089 + bne .L3184 ldr w0, [x29,196] mov x1, x22 - cbnz w0, .L3090 + cbnz w0, .L3185 ldr w0, [x29,184] mul w1, w0, w27 sub w1, w1, w20 ubfiz x1, x1, 9, 23 add x1, x22, x1 -.L3090: +.L3185: ldr w2, [x29,204] mov w0, 56 - cbz w2, .L3091 - ldr w2, [x24,972] + cbz w2, .L3186 + ldr w2, [x24,976] umull x0, w2, w0 - ldr x2, [x24,1032] + ldr x2, [x24,1040] add x0, x2, x0 - b .L3132 -.L3091: - ldr w2, [x24,972] + b .L3227 +.L3186: + ldr w2, [x24,976] umull x0, w2, w0 - ldr x2, [x24,1032] + ldr x2, [x24,1040] add x0, x2, x0 ldr x0, [x0,8] - b .L3133 -.L3089: + b .L3228 +.L3184: ldr w0, [x29,212] cmn w0, #1 - beq .L3093 + beq .L3188 str w0, [x29,220] mov w1, 56 - ldr w0, [x24,972] + ldr w0, [x24,976] mov w2, 0 str w27, [x29,240] umull x0, w0, w1 - ldr x1, [x24,1032] + ldr x1, [x24,1040] add x0, x1, x0 ldr x1, [x0,8] ldr x0, [x0,16] @@ -20034,165 +20386,165 @@ ftl_write: bl FlashReadPages ldr w0, [x29,216] cmn w0, #1 - bne .L3094 + bne .L3189 ldr x0, [x29,112] add x0, x0, :lo12:.LANCHOR4 - ldr w1, [x0,3528] + ldr w1, [x0,3544] add w1, w1, 1 - str w1, [x0,3528] - b .L3096 -.L3094: + str w1, [x0,3544] + b .L3191 +.L3189: ldr w0, [x26,8] cmp w0, w27 - beq .L3096 + beq .L3191 ldr x0, [x29,112] mov w2, w27 add x0, x0, :lo12:.LANCHOR4 - ldr w1, [x0,3528] + ldr w1, [x0,3544] add w1, w1, 1 - str w1, [x0,3528] + str w1, [x0,3544] ldr x0, [x29,96] ldr w1, [x26,8] bl printk - b .L3096 -.L3093: - ldr w0, [x24,972] + b .L3191 +.L3188: + ldr w0, [x24,976] mov w1, 56 - ldrh w2, [x24,828] + ldrh w2, [x24,834] umull x0, w0, w1 - ldr x1, [x24,1032] + ldr x1, [x24,1040] add x0, x1, x0 mov w1, 0 ldr x0, [x0,8] bl ftl_memset -.L3096: +.L3191: ldr w1, [x29,184] mov w0, 56 lsl w2, w1, 9 ldr w1, [x29,196] - cbz w1, .L3097 - ldr w1, [x24,972] + cbz w1, .L3192 + ldr w1, [x24,976] umull x0, w1, w0 - ldr x1, [x24,1032] + ldr x1, [x24,1040] add x1, x1, x0 ldr x0, [x29,160] ubfiz x0, x0, 9, 23 ldr x1, [x1,8] add x0, x1, x0 mov x1, x22 - b .L3134 -.L3097: - ldr w1, [x24,972] + b .L3229 +.L3192: + ldr w1, [x24,976] umull x0, w1, w0 - ldr x1, [x24,1032] + ldr x1, [x24,1040] add x0, x1, x0 - ldrh w1, [x24,824] + ldrh w1, [x24,830] mul w1, w27, w1 ldr x0, [x0,8] sub w1, w1, w20 ubfiz x1, x1, 9, 23 add x1, x22, x1 - b .L3134 -.L3085: + b .L3229 +.L3180: ldr w0, [x29,204] - ldrh w1, [x24,824] - ldr w2, [x24,972] - cbz w0, .L3098 + ldrh w1, [x24,830] + ldr w2, [x24,976] + cbz w0, .L3193 mul w1, w27, w1 umull x0, w2, w5 sub w1, w1, w20 - ldr x2, [x24,1032] + ldr x2, [x24,1040] ubfiz x1, x1, 9, 23 add x0, x2, x0 add x1, x22, x1 -.L3132: +.L3227: str x1, [x0,8] - b .L3092 -.L3098: + b .L3187 +.L3193: umull x0, w2, w5 - ldr x2, [x24,1032] + ldr x2, [x24,1040] mul w1, w27, w1 add x0, x2, x0 sub w1, w1, w20 ubfiz x1, x1, 9, 23 ldr x0, [x0,8] add x1, x22, x1 -.L3133: - ldrh w2, [x24,828] -.L3134: +.L3228: + ldrh w2, [x24,834] +.L3229: bl ftl_memcpy -.L3092: +.L3187: ldr x1, [x29,120] mov w0, -3947 ldr x2, [x29,128] add x28, x28, 1 strh w0, [x1,x2] str w27, [x26,8] - ldr w0, [x24,876] + ldr w0, [x24,880] str w0, [x26,4] add w0, w0, 1 cmn w0, #1 csel w0, w0, wzr, ne - str w0, [x24,876] + str w0, [x24,880] ldr w0, [x29,212] str w0, [x26,12] ldrh w0, [x19] strh w0, [x26,2] - ldr w0, [x24,972] + ldr w0, [x24,976] add w0, w0, 1 - str w0, [x24,972] - b .L3082 -.L3136: + str w0, [x24,976] + b .L3177 +.L3231: str w27, [x29,192] mov x0, x1 - b .L3083 -.L3112: + b .L3178 +.L3207: str w27, [x29,192] -.L3083: +.L3178: sub w25, w25, w0 ldr w0, [x29,204] - cbnz w0, .L3102 - ldr w1, [x24,972] - ldr w0, [x24,968] + cbnz w0, .L3197 + ldr w1, [x24,976] + ldr w0, [x24,972] cmp w1, w0 - bcs .L3102 + bcs .L3197 ldrh w0, [x19,4] - cbz w0, .L3102 -.L3104: + cbz w0, .L3197 +.L3199: str wzr, [x29,204] - b .L3075 -.L3102: + b .L3170 +.L3197: bl FtlCacheWriteBack - str wzr, [x24,972] + str wzr, [x24,976] cmp w25, 1 - bhi .L3075 - b .L3104 -.L3135: + bhi .L3170 + b .L3199 +.L3230: ldr w1, [x29,200] mov w0, w25 sub w1, w1, w23 bl ftl_do_gc ldr x0, [x29,152] add x0, x0, :lo12:.LANCHOR2 - ldrh w1, [x0,3600] + ldrh w1, [x0,3608] cmp w1, 31 - bhi .L3106 + bhi .L3201 mov w1, 128 mov w19, 16 - strh w1, [x0,958] - strh w1, [x0,956] -.L3107: + strh w1, [x0,962] + strh w1, [x0,960] +.L3202: mov w0, 0 mov w1, 1 bl ftl_do_gc ldr x0, [x29,152] add x0, x0, :lo12:.LANCHOR2 - ldr w0, [x0,1400] - cbnz w0, .L3106 + ldr w0, [x0,1408] + cbnz w0, .L3201 subs w19, w19, #1 - bne .L3107 - b .L3106 -.L3068: + bne .L3202 + b .L3201 +.L3163: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -20236,110 +20588,110 @@ ftl_sys_write: .global ftl_fix_nand_power_lost_error .type ftl_fix_nand_power_lost_error, %function ftl_fix_nand_power_lost_error: - adrp x0, .LANCHOR0+136 + adrp x0, .LANCHOR0+4044 stp x29, x30, [sp, -128]! add x29, sp, 0 - ldrb w0, [x0,#:lo12:.LANCHOR0+136] + ldrb w0, [x0,#:lo12:.LANCHOR0+4044] stp x19, x20, [sp,16] stp x21, x22, [sp,32] stp x23, x24, [sp,48] stp x25, x26, [sp,64] - cbz w0, .L3139 + cbz w0, .L3234 adrp x21, .LANCHOR4 adrp x19, .LANCHOR2 add x0, x21, :lo12:.LANCHOR4 add x20, x19, :lo12:.LANCHOR2 - adrp x24, .LC158 - add x26, x20, 3608 - add x25, x20, 3656 - ldrh w23, [x0,4058] - add x0, x24, :lo12:.LC158 - ldr x2, [x20,1184] + adrp x24, .LC159 + add x26, x20, 3616 + add x25, x20, 3664 + ldrh w23, [x0,4074] + add x0, x24, :lo12:.LC159 + ldr x2, [x20,1192] ubfiz x22, x23, 1, 16 mov w1, w23 ldrh w2, [x2,x22] bl printk - ldrh w0, [x20,3608] + ldrh w0, [x20,3616] bl FtlGcRefreshOpenBlock - ldrh w0, [x20,3656] + ldrh w0, [x20,3664] mov w20, 4097 bl FtlGcRefreshOpenBlock mov x0, x26 bl allocate_new_data_superblock mov x0, x25 bl allocate_new_data_superblock -.L3141: +.L3236: subs w20, w20, #1 - beq .L3145 + beq .L3240 mov w0, 1 mov w1, w0 bl ftl_do_gc add x0, x19, :lo12:.LANCHOR2 - ldr x0, [x0,1184] + ldr x0, [x0,1192] ldrh w0, [x0,x22] - cbnz w0, .L3141 -.L3145: + cbnz w0, .L3236 +.L3240: add x20, x19, :lo12:.LANCHOR2 - add x0, x24, :lo12:.LC158 + add x0, x24, :lo12:.LC159 mov w1, w23 - ldr x2, [x20,1184] + ldr x2, [x20,1192] ldrh w2, [x2,x22] bl printk - ldr x0, [x20,1184] + ldr x0, [x20,1192] ldrh w0, [x0,x22] - cbnz w0, .L3143 + cbnz w0, .L3238 add x0, x29, 80 strh w23, [x29,80] bl make_superblock mov x0, 0 - ldrh w5, [x20,748] + ldrh w5, [x20,756] mov w6, 65535 mov w20, w0 mov w7, 56 -.L3146: +.L3241: cmp w5, w0, uxth - bls .L3153 + bls .L3248 add x1, x29, 80 add x1, x1, x0, lsl 1 ldrh w2, [x1,16] cmp w2, w6 - beq .L3147 + beq .L3242 add x4, x19, :lo12:.LANCHOR2 lsl w2, w2, 10 umull x1, w20, w7 add w20, w20, 1 - ldr x3, [x4,1016] + ldr x3, [x4,1024] uxth w20, w20 add x3, x3, x1 str w2, [x3,4] - ldr x2, [x4,1016] + ldr x2, [x4,1024] add x1, x2, x1 str xzr, [x1,8] str xzr, [x1,16] -.L3147: +.L3242: add x0, x0, 1 - b .L3146 -.L3153: + b .L3241 +.L3248: add x19, x19, :lo12:.LANCHOR2 - adrp x0, .LC159 + adrp x0, .LC160 mov w1, w23 - add x0, x0, :lo12:.LC159 - ldr x2, [x19,1184] + add x0, x0, :lo12:.LC160 + ldr x2, [x19,1192] ldrh w2, [x2,x22] bl printk - ldr x0, [x19,1016] + ldr x0, [x19,1024] mov w1, 0 mov w2, w20 bl FlashEraseBlocks - ldr x0, [x19,1016] + ldr x0, [x19,1024] mov w1, 1 mov w2, w20 bl FlashEraseBlocks -.L3143: +.L3238: add x21, x21, :lo12:.LANCHOR4 mov w0, -1 - strh w0, [x21,4058] -.L3139: + strh w0, [x21,4074] +.L3234: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -20515,7 +20867,6 @@ ftl_fix_nand_power_lost_error: .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 @@ -20532,6 +20883,7 @@ ftl_fix_nand_power_lost_error: .global gNandcVer .global gNandChipMap .global gNandIDataBuf + .global idb_flash_slc_mode .global FlashDdrTunningReadCount .global FlashWaitBusyScheduleEn .global gNandPhyInfo @@ -20575,33 +20927,33 @@ ftl_fix_nand_power_lost_error: .section .rodata .align 3 .LANCHOR3 = . + 0 - .type __func__.19520, %object - .size __func__.19520, 11 -__func__.19520: + .type __func__.19578, %object + .size __func__.19578, 11 +__func__.19578: .string "FtlMemInit" .zero 5 - .type __func__.20261, %object - .size __func__.20261, 12 -__func__.20261: + .type __func__.20320, %object + .size __func__.20320, 12 +__func__.20320: .string "FtlCheckVpc" .zero 4 - .type __func__.20293, %object - .size __func__.20293, 17 -__func__.20293: + .type __func__.20352, %object + .size __func__.20352, 17 +__func__.20352: .string "FtlDumpBlockInfo" .zero 7 - .type __func__.20312, %object - .size __func__.20312, 16 -__func__.20312: + .type __func__.20371, %object + .size __func__.20371, 16 +__func__.20371: .string "FtlScanAllBlock" - .type __func__.20560, %object - .size __func__.20560, 21 -__func__.20560: + .type __func__.20619, %object + .size __func__.20619, 21 +__func__.20619: .string "FtlVpcCheckAndModify" .zero 3 - .type __func__.19593, %object - .size __func__.19593, 8 -__func__.19593: + .type __func__.19651, %object + .size __func__.19651, 8 +__func__.19651: .string "FtlInit" .section .rodata.str1.1,"aMS",%progbits,1 .LC0: @@ -20881,48 +21233,50 @@ __func__.19593: .LC137: .string "free %d. [0x%x] 0x%x 0x%x\n" .LC138: - .string "FTL version: 5.0.50 20180905" + .string "FTL version: 5.0.53 20190107" .LC139: .string "swblk %x ,avg = %x max= %x vpc= %x,ec=%x ,max ec=%x\n" .LC140: - .string "FtlGcScanTempBlkError ID %x %x!!!!!!!\n" + .string "FtlGcScanTempBlk Error ID %x %x!!!!!!! \n" .LC141: - .string "FtlGcRefreshBlock 0x%x\n" + .string "FtlGcScanTempBlkError ID %x %x!!!!!!!\n" .LC142: - .string "FtlGcMarkBadPhyBlk %d 0x%x\n" + .string "FtlGcRefreshBlock 0x%x\n" .LC143: - .string "FtlGcFreeBadSuperBlk 0x%x\n" + .string "FtlGcMarkBadPhyBlk %d 0x%x\n" .LC144: - .string "decrement_vpc_count %x = %d\n" + .string "FtlGcFreeBadSuperBlk 0x%x\n" .LC145: - .string "decrement_vpc_count %x = %d in free list\n" + .string "decrement_vpc_count %x = %d\n" .LC146: - .string "RSB refresh addr %x\n" + .string "decrement_vpc_count %x = %d in free list\n" .LC147: - .string "spuer block %x vpn is 0\n " + .string "RSB refresh addr %x\n" .LC148: - .string "g_recovery_ppa %x ver %x\n " + .string "spuer block %x vpn is 0\n " .LC149: - .string "FtlCheckVpc %x = %x %x\n" + .string "g_recovery_ppa %x ver %x\n " .LC150: - .string "%d GC datablk = %x vpc %x %x\n" + .string "FtlCheckVpc %x = %x %x\n" .LC151: - .string "SWL %x, FSB = %x vpc= %x,ec=%x th=%x\n" + .string "%d GC datablk = %x vpc %x %x\n" .LC152: - .string "g_gc_superblock_free %x %x %x %x %x\n" + .string "SWL %x, FSB = %x vpc= %x,ec=%x th=%x\n" .LC153: - .string "Ftlwrite decrement_vpc_count %x = %d\n" + .string "g_gc_superblock_free %x %x %x %x %x\n" .LC154: - .string "GC des block %x done\n" + .string "Ftlwrite decrement_vpc_count %x = %d\n" .LC155: - .string "...%s: no bad block mapping table, format device\n" + .string "GC des block %x done\n" .LC156: - .string "...%s FtlSysBlkInit error ,format device!\n" + .string "...%s: no bad block mapping table, format device\n" .LC157: - .string "FtlWrite: lpa error:%x %x\n" + .string "...%s FtlSysBlkInit error ,format device!\n" .LC158: - .string "fix power lost blk = %x vpc=%x\n" + .string "FtlWrite: lpa error:%x %x\n" .LC159: + .string "fix power lost blk = %x vpc=%x\n" +.LC160: .string "erase power lost blk = %x vpc=%x\n" .data .align 3 @@ -21058,6 +21412,232 @@ random_seed: .hword 28406 .hword 17598 .hword 28087 + .type ToshibaA19RefValue, %object + .size ToshibaA19RefValue, 45 +ToshibaA19RefValue: + .byte 4 + .byte 5 + .byte 6 + .byte 7 + .byte 13 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 4 + .byte 4 + .byte 124 + .byte 126 + .byte 0 + .byte 0 + .byte 124 + .byte 120 + .byte 120 + .byte 0 + .byte 124 + .byte 118 + .byte 116 + .byte 114 + .byte 0 + .byte 8 + .byte 8 + .byte 0 + .byte 0 + .byte 0 + .byte 11 + .byte 126 + .byte 118 + .byte 116 + .byte 0 + .byte 16 + .byte 118 + .byte 114 + .byte 112 + .byte 0 + .byte 2 + .byte 0 + .byte 126 + .byte 124 + .byte 0 + .zero 3 + .type Toshiba15RefValue, %object + .size Toshiba15RefValue, 95 +Toshiba15RefValue: + .byte 4 + .byte 5 + .byte 6 + .byte 7 + .byte 13 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 2 + .byte 4 + .byte 2 + .byte 0 + .byte 0 + .byte 8 + .byte 8 + .byte 0 + .byte 0 + .byte 0 + .byte 124 + .byte 0 + .byte 124 + .byte 124 + .byte 0 + .byte 122 + .byte 0 + .byte 122 + .byte 122 + .byte 0 + .byte 11 + .byte 126 + .byte 118 + .byte 116 + .byte 0 + .byte 120 + .byte 2 + .byte 120 + .byte 122 + .byte 0 + .byte 126 + .byte 4 + .byte 126 + .byte 122 + .byte 0 + .byte 16 + .byte 118 + .byte 114 + .byte 112 + .byte 0 + .byte 118 + .byte 4 + .byte 118 + .byte 120 + .byte 0 + .byte 4 + .byte 4 + .byte 4 + .byte 118 + .byte 0 + .byte 2 + .byte 0 + .byte 126 + .byte 124 + .byte 0 + .byte 6 + .byte 10 + .byte 6 + .byte 2 + .byte 0 + .byte 116 + .byte 124 + .byte 116 + .byte 118 + .byte 0 + .byte 4 + .byte 4 + .byte 124 + .byte 126 + .byte 0 + .byte 0 + .byte 124 + .byte 120 + .byte 120 + .byte 0 + .byte 124 + .byte 118 + .byte 116 + .byte 114 + .byte 0 + .zero 1 + .type ToshibaRefValue, %object + .size ToshibaRefValue, 8 +ToshibaRefValue: + .byte 0 + .byte 4 + .byte 124 + .byte 120 + .byte 116 + .byte 8 + .byte 12 + .byte 112 + .type SamsungRefValue, %object + .size SamsungRefValue, 64 +SamsungRefValue: + .byte -89 + .byte -92 + .byte -91 + .byte -90 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 5 + .byte 10 + .byte 0 + .byte 0 + .byte 40 + .byte 0 + .byte -20 + .byte -40 + .byte -19 + .byte -11 + .byte -19 + .byte -26 + .byte 10 + .byte 15 + .byte 5 + .byte 0 + .byte 15 + .byte 10 + .byte -5 + .byte -20 + .byte -24 + .byte -17 + .byte -24 + .byte -36 + .byte -15 + .byte -5 + .byte -2 + .byte -16 + .byte 10 + .byte 0 + .byte -5 + .byte -20 + .byte -48 + .byte -30 + .byte -48 + .byte -62 + .byte 20 + .byte 15 + .byte -5 + .byte -20 + .byte -24 + .byte -5 + .byte -24 + .byte -36 + .byte 30 + .byte 20 + .byte -5 + .byte -20 + .byte -5 + .byte -1 + .byte -5 + .byte -8 + .byte 7 + .byte 12 + .byte 2 + .byte 0 .type gNandParaInfo, %object .size gNandParaInfo, 32 gNandParaInfo: @@ -21084,7 +21664,7 @@ gNandParaInfo: .byte 0 .zero 4 .type NandFlashParaTbl, %object - .size NandFlashParaTbl, 2464 + .size NandFlashParaTbl, 2592 NandFlashParaTbl: .byte 6 .byte 44 @@ -21661,6 +22241,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 @@ -21710,6 +22342,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 @@ -22049,6 +22707,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 @@ -22245,7 +22929,7 @@ NandFlashParaTbl: .byte 1 .hword 1024 .hword 455 - .byte 3 + .byte 4 .byte 17 .byte 40 .byte 32 @@ -23167,232 +23851,6 @@ NandOptPara: .byte 0 .byte 0 .zero 14 - .type ToshibaA19RefValue, %object - .size ToshibaA19RefValue, 45 -ToshibaA19RefValue: - .byte 4 - .byte 5 - .byte 6 - .byte 7 - .byte 13 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 4 - .byte 4 - .byte 124 - .byte 126 - .byte 0 - .byte 0 - .byte 124 - .byte 120 - .byte 120 - .byte 0 - .byte 124 - .byte 118 - .byte 116 - .byte 114 - .byte 0 - .byte 8 - .byte 8 - .byte 0 - .byte 0 - .byte 0 - .byte 11 - .byte 126 - .byte 118 - .byte 116 - .byte 0 - .byte 16 - .byte 118 - .byte 114 - .byte 112 - .byte 0 - .byte 2 - .byte 0 - .byte 126 - .byte 124 - .byte 0 - .zero 3 - .type Toshiba15RefValue, %object - .size Toshiba15RefValue, 95 -Toshiba15RefValue: - .byte 4 - .byte 5 - .byte 6 - .byte 7 - .byte 13 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 2 - .byte 4 - .byte 2 - .byte 0 - .byte 0 - .byte 8 - .byte 8 - .byte 0 - .byte 0 - .byte 0 - .byte 124 - .byte 0 - .byte 124 - .byte 124 - .byte 0 - .byte 122 - .byte 0 - .byte 122 - .byte 122 - .byte 0 - .byte 11 - .byte 126 - .byte 118 - .byte 116 - .byte 0 - .byte 120 - .byte 2 - .byte 120 - .byte 122 - .byte 0 - .byte 126 - .byte 4 - .byte 126 - .byte 122 - .byte 0 - .byte 16 - .byte 118 - .byte 114 - .byte 112 - .byte 0 - .byte 118 - .byte 4 - .byte 118 - .byte 120 - .byte 0 - .byte 4 - .byte 4 - .byte 4 - .byte 118 - .byte 0 - .byte 2 - .byte 0 - .byte 126 - .byte 124 - .byte 0 - .byte 6 - .byte 10 - .byte 6 - .byte 2 - .byte 0 - .byte 116 - .byte 124 - .byte 116 - .byte 118 - .byte 0 - .byte 4 - .byte 4 - .byte 124 - .byte 126 - .byte 0 - .byte 0 - .byte 124 - .byte 120 - .byte 120 - .byte 0 - .byte 124 - .byte 118 - .byte 116 - .byte 114 - .byte 0 - .zero 1 - .type ToshibaRefValue, %object - .size ToshibaRefValue, 8 -ToshibaRefValue: - .byte 0 - .byte 4 - .byte 124 - .byte 120 - .byte 116 - .byte 8 - .byte 12 - .byte 112 - .type SamsungRefValue, %object - .size SamsungRefValue, 64 -SamsungRefValue: - .byte -89 - .byte -92 - .byte -91 - .byte -90 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 5 - .byte 10 - .byte 0 - .byte 0 - .byte 40 - .byte 0 - .byte -20 - .byte -40 - .byte -19 - .byte -11 - .byte -19 - .byte -26 - .byte 10 - .byte 15 - .byte 5 - .byte 0 - .byte 15 - .byte 10 - .byte -5 - .byte -20 - .byte -24 - .byte -17 - .byte -24 - .byte -36 - .byte -15 - .byte -5 - .byte -2 - .byte -16 - .byte 10 - .byte 0 - .byte -5 - .byte -20 - .byte -48 - .byte -30 - .byte -48 - .byte -62 - .byte 20 - .byte 15 - .byte -5 - .byte -20 - .byte -24 - .byte -5 - .byte -24 - .byte -36 - .byte 30 - .byte 20 - .byte -5 - .byte -20 - .byte -5 - .byte -1 - .byte -5 - .byte -8 - .byte 7 - .byte 12 - .byte 2 - .byte 0 .type refValueDefault, %object .size refValueDefault, 28 refValueDefault: @@ -23512,11 +23970,6 @@ gNandChipMap: .size gNandOptPara, 32 gNandOptPara: .zero 32 - .type gFlashSlcMode, %object - .size gFlashSlcMode, 1 -gFlashSlcMode: - .zero 1 - .zero 3 .type slcPageToMlcPageTbl, %object .size slcPageToMlcPageTbl, 512 slcPageToMlcPageTbl: @@ -23546,6 +23999,7 @@ DieAddrs: .size gDieOp, 192 gDieOp: .zero 192 + .zero 4 .type gpNandParaInfo, %object .size gpNandParaInfo, 8 gpNandParaInfo: @@ -23599,11 +24053,15 @@ NANDC_FMWAIT_SYN: .size gNandPhyInfo, 28 gNandPhyInfo: .zero 28 + .type gFlashSlcMode, %object + .size gFlashSlcMode, 1 +gFlashSlcMode: + .zero 1 .type gNandFlashEccBits, %object .size gNandFlashEccBits, 1 gNandFlashEccBits: .zero 1 - .zero 3 + .zero 2 .type g_MaxLbaSector, %object .size g_MaxLbaSector, 4 g_MaxLbaSector: @@ -23626,9 +24084,9 @@ read_retry_cur_offset: gFlashInterfaceMode: .zero 1 .zero 3 - .type g_nandc_version_data, %object - .size g_nandc_version_data, 4 -g_nandc_version_data: + .type idb_flash_slc_mode, %object + .size idb_flash_slc_mode, 4 +idb_flash_slc_mode: .zero 4 .type gFlashToggleModeEn, %object .size gFlashToggleModeEn, 1 @@ -23643,6 +24101,11 @@ gBootDdrMode: .size gNandcVer, 4 gNandcVer: .zero 4 + .type g_nandc_version_data, %object + .size g_nandc_version_data, 4 +g_nandc_version_data: + .zero 4 + .zero 4 .type gMasterTempBuf, %object .size gMasterTempBuf, 8 gMasterTempBuf: @@ -23781,10 +24244,6 @@ c_ftl_vendor_part_size: .size c_ftl_nand_blks_per_die, 2 c_ftl_nand_blks_per_die: .zero 2 - .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 .type c_ftl_nand_page_pre_blk, %object .size c_ftl_nand_page_pre_blk, 2 c_ftl_nand_page_pre_blk: @@ -23817,7 +24276,6 @@ c_ftl_nand_byte_pre_oob: .size c_ftl_nand_reserved_blks, 2 c_ftl_nand_reserved_blks: .zero 2 - .zero 2 .type DeviceCapacity, %object .size DeviceCapacity, 4 DeviceCapacity: @@ -23991,6 +24449,7 @@ c_wr_page_buf_num: .size g_wr_page_num, 4 g_wr_page_num: .zero 4 + .zero 4 .type p_gc_blk_tbl, %object .size p_gc_blk_tbl, 8 p_gc_blk_tbl: @@ -24241,14 +24700,14 @@ FtlUpdateVaildLpnCount: g_VaildLpn: .zero 4 .type gSysInfo, %object - .size gSysInfo, 12 + .size gSysInfo, 16 gSysInfo: - .zero 12 + .zero 16 .type g_totle_map_block, %object .size g_totle_map_block, 2 g_totle_map_block: .zero 2 - .zero 2 + .zero 6 .type check_valid_page_count_table, %object .size check_valid_page_count_table, 8192 check_valid_page_count_table: diff --git a/drivers/rk_nand/rk_zftl_arm64.S b/drivers/rk_nand/rk_zftl_arm64.S index 54c4a5c99d38..cca796acde11 100644 --- a/drivers/rk_nand/rk_zftl_arm64.S +++ b/drivers/rk_nand/rk_zftl_arm64.S @@ -5,7 +5,7 @@ * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. - * date: 2018-11-08 + * date: 2018-11-28 * function: rk ftl v5 for rockchip soc base on arm v8 to support 3D/2D * TLC and MLC. */ @@ -713,8 +713,8 @@ zftl_get_gc_node.part.12: .size zftl_get_gc_node.part.12, .-zftl_get_gc_node.part.12 .section .text.unlikely .align 2 - .type rk_simple_strtoull.constprop.29, %function -rk_simple_strtoull.constprop.29: + .type rk_simple_strtoull.constprop.30, %function +rk_simple_strtoull.constprop.30: stp x29, x30, [sp, -64]! add x29, sp, 0 stp x19, x20, [sp,16] @@ -773,7 +773,7 @@ rk_simple_strtoull.constprop.29: ldp x21, x22, [sp,32] ldp x29, x30, [sp], 64 ret - .size rk_simple_strtoull.constprop.29, .-rk_simple_strtoull.constprop.29 + .size rk_simple_strtoull.constprop.30, .-rk_simple_strtoull.constprop.30 .text .align 2 .global nand_flash_print_info @@ -1321,41 +1321,50 @@ toshiba_set_rr_para: hynix_set_rr_para: stp x29, x30, [sp, -64]! adrp x3, .LANCHOR0 - uxtb w0, w0 + uxtb w1, w1 add x3, x3, :lo12:.LANCHOR0 add x29, sp, 0 - uxtb w1, w1 - stp x19, x20, [sp,16] + uxtb w0, w0 stp x21, x22, [sp,32] str x23, [sp,48] - mov x20, 160 - mov x21, 0 - ldr x4, [x3,728] + stp x19, x20, [sp,16] + ldr x2, [x3,728] ldr x19, [x3,536] - add x23, x4, 128 - ldrb w22, [x4,113] - mul w2, w1, w22 - sxtw x1, w0 + add x23, x2, 128 + add x21, x2, 112 + ldrb w22, [x2,113] + ldrb w2, [x2,112] + mul w1, w1, w22 + cmp w2, 8 + sxtw x1, w1 + beq .L274 + sxtw x2, w0 + mov x3, 160 + madd x2, x2, x3, x1 + add x2, x2, 32 + add x21, x21, x2 + b .L275 +.L274: + add x1, x1, 32 + add x21, x21, x1 +.L275: ubfiz x0, x0, 8, 8 + mov x20, 0 add x19, x19, x0 mov w0, 54 - mul x20, x1, x20 - add x1, x20, x2, sxtw - add x20, x4, x1 - add x20, x20, 144 str w0, [x19,2056] -.L274: - cmp w22, w21, uxtb - bls .L276 - ldrb w0, [x23,x21] +.L276: + cmp w22, w20, uxtb + bls .L278 + ldrb w0, [x23,x20] str w0, [x19,2052] mov w0, 120 bl timer_delay_ns - ldrsb w0, [x20,x21] - add x21, x21, 1 + ldrsb w0, [x21,x20] + add x20, x20, 1 str w0, [x19,2048] - b .L274 -.L276: + b .L276 +.L278: mov w0, 22 str w0, [x19,2056] ldp x19, x20, [sp,16] @@ -1377,19 +1386,19 @@ hynix_reconfig_rr_para: ldrb w1, [x19,725] sub w1, w1, #1 uxtb w1, w1 - cmp w1, 6 - bhi .L277 + cmp w1, 7 + bhi .L279 ldr x1, [x19,728] sxtw x20, w0 add x1, x1, x20 ldrb w1, [x1,120] - cbz w1, .L277 + cbz w1, .L279 mov w1, 0 bl hynix_set_rr_para ldr x0, [x19,728] add x20, x0, x20 strb wzr, [x20,120] -.L277: +.L279: ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 ret @@ -1408,12 +1417,12 @@ nandc_set_ddr_para: lsl w0, w0, 8 orr w0, w2, w0 orr w0, w0, 3 - bne .L283 + bne .L285 str w0, [x1,80] - b .L282 -.L283: + b .L284 +.L285: str w0, [x1,304] -.L282: +.L284: ret .size nandc_set_ddr_para, .-nandc_set_ddr_para .align 2 @@ -1425,12 +1434,12 @@ nandc_get_ddr_para: ldrb w1, [x0,516] ldr x0, [x0,536] cmp w1, 9 - bne .L286 + bne .L288 ldr w0, [x0,80] - b .L288 -.L286: - ldr w0, [x0,304] + b .L290 .L288: + ldr w0, [x0,304] +.L290: ubfx x0, x0, 8, 8 ret .size nandc_get_ddr_para, .-nandc_get_ddr_para @@ -1444,7 +1453,7 @@ nandc_set_if_mode: tst w0, 6 ldr x2, [x3,536] ldr w1, [x2] - beq .L290 + beq .L292 orr w1, w1, 24576 and w0, w0, 4 and w1, w1, -32769 @@ -1455,7 +1464,7 @@ nandc_set_if_mode: csel w1, w4, w1, ne cmp w0, 9 mov w0, 8321 - bne .L292 + bne .L294 str w0, [x2,8] mov w0, 4099 movk w0, 0x10, lsl 16 @@ -1464,8 +1473,8 @@ nandc_set_if_mode: str w0, [x2,84] mov w0, 39 str w0, [x2,84] - b .L293 -.L292: + b .L295 +.L294: str w0, [x2,344] mov w0, 4099 movk w0, 0x10, lsl 16 @@ -1474,10 +1483,10 @@ nandc_set_if_mode: str w0, [x2,308] mov w0, 39 str w0, [x2,308] - b .L293 -.L290: + b .L295 +.L292: and w1, w1, -8193 -.L293: +.L295: str w1, [x2] ret .size nandc_set_if_mode, .-nandc_set_if_mode @@ -1524,16 +1533,16 @@ flash_wait_device_ready_raw: ldrb w0, [x0,633] mov x19, x3 cmp w0, w21 - bhi .L299 + bhi .L301 adrp x1, .LANCHOR1 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 - mov w2, 612 + mov w2, 677 add x1, x1, 240 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L299: +.L301: add x3, x19, :lo12:.LANCHOR0 add x21, x3, x21, sxtw ldrb w23, [x21,736] @@ -1546,7 +1555,7 @@ flash_wait_device_ready_raw: bl nandc_cs ubfiz x3, x23, 8, 8 add x19, x19, x3 -.L301: +.L303: str w26, [x19,2056] mov w0, 120 str w21, [x19,2052] @@ -1557,9 +1566,9 @@ flash_wait_device_ready_raw: and w20, w20, 255 and w0, w22, w20 cmp w0, w22 - bne .L301 + bne .L303 cmp w20, 255 - beq .L301 + beq .L303 mov w0, w23 bl nandc_de_cs mov w0, w20 @@ -1580,14 +1589,14 @@ flash_wait_device_ready: add x29, sp, 0 and w1, w0, 2097151 ubfx x6, x0, 21, 3 - cbnz w3, .L303 + cbnz w3, .L305 adrp x3, .LANCHOR0 add x0, x3, :lo12:.LANCHOR0 ldrb w4, [x3,#:lo12:.LANCHOR0] - cbz w4, .L304 + cbz w4, .L306 ldrb w0, [x0,1] - cbz w0, .L303 -.L304: + cbz w0, .L305 +.L306: add x3, x3, :lo12:.LANCHOR0 ldrh w5, [x3,2] ldrb w0, [x3,1] @@ -1595,11 +1604,11 @@ flash_wait_device_ready: mul w5, w4, w5 sub w4, w1, w5 add w1, w5, w4, lsl 1 - cbnz w0, .L303 + cbnz w0, .L305 add x3, x3, 4 ldrh w3, [x3,w4,uxtw 1] add w1, w3, w5 -.L303: +.L305: mov w0, w6 bl flash_wait_device_ready_raw ldp x29, x30, [sp], 16 @@ -1615,22 +1624,22 @@ nandc_wait_flash_ready_no_delay: mov w19, 34464 adrp x20, .LANCHOR0 movk w19, 0x1, lsl 16 -.L314: +.L316: add x0, x20, :lo12:.LANCHOR0 ldr x0, [x0,536] ldr w0, [x0] str w0, [x29,40] ldr w0, [x29,40] - tbnz x0, 9, .L315 + tbnz x0, 9, .L317 mov w0, 10 bl timer_delay_ns subs w19, w19, #1 - bne .L314 + bne .L316 mov w0, -1 - b .L313 -.L315: + b .L315 +.L317: mov w0, 0 -.L313: +.L315: ldp x19, x20, [sp,16] ldp x29, x30, [sp], 48 ret @@ -1646,38 +1655,38 @@ zftl_flash_enter_slc_mode: add x29, sp, 0 ldrb w2, [x2,#:lo12:.LANCHOR0] str x19, [sp,16] - cbz w2, .L317 + cbz w2, .L319 cmp w2, 1 ldr x19, [x1,536] - bne .L320 + bne .L322 adrp x1, .LANCHOR2+37 ldrb w2, [x1,#:lo12:.LANCHOR2+37] - cbz w2, .L317 + cbz w2, .L319 sxtw x1, w0 add x1, x1, 8 add x0, x19, x1, lsl 8 str w2, [x0,8] - b .L317 -.L320: + b .L319 +.L322: cmp w2, 2 - bne .L322 + bne .L324 add x1, x1, x0 ldrb w2, [x1,744] - cbz w2, .L317 + cbz w2, .L319 strb wzr, [x1,744] adrp x1, .LANCHOR2+37 ldrb w1, [x1,#:lo12:.LANCHOR2+37] - cbz w1, .L317 + cbz w1, .L319 add x0, x0, 8 add x0, x19, x0, lsl 8 str w1, [x0,8] - b .L317 -.L322: + b .L319 +.L324: cmp w2, 3 - bne .L317 + bne .L319 add x1, x1, x0, sxtw ldrb w2, [x1,744] - cbz w2, .L317 + cbz w2, .L319 strb wzr, [x1,744] ubfiz x1, x0, 8, 8 add x19, x19, x1 @@ -1691,12 +1700,16 @@ zftl_flash_enter_slc_mode: mov w0, 1 str w0, [x19,2048] str wzr, [x19,2048] + mov w0, 150 str wzr, [x19,2048] + bl timer_delay_ns bl nandc_wait_flash_ready_no_delay mov w0, 218 str w0, [x19,2056] + mov w0, 150 + bl timer_delay_ns bl nandc_wait_flash_ready_no_delay -.L317: +.L319: ldr x19, [sp,16] ldp x29, x30, [sp], 32 ret @@ -1713,24 +1726,24 @@ zftl_flash_exit_slc_mode: add x20, x1, :lo12:.LANCHOR0 ldrb w1, [x1,#:lo12:.LANCHOR0] str x21, [sp,32] - cbz w1, .L335 + cbz w1, .L337 cmp w1, 1 ldr x19, [x20,536] - bne .L338 + bne .L340 adrp x1, .LANCHOR2+38 ldrb w2, [x1,#:lo12:.LANCHOR2+38] - cbz w2, .L335 + cbz w2, .L337 sxtw x1, w0 add x1, x1, 8 add x0, x19, x1, lsl 8 str w2, [x0,8] - b .L335 -.L338: + b .L337 +.L340: cmp w1, 2 - bne .L340 + bne .L342 add x20, x20, x0 ldrb w1, [x20,744] - cbnz w1, .L335 + cbnz w1, .L337 adrp x1, .LANCHOR2 mov w3, 4 add x1, x1, :lo12:.LANCHOR2 @@ -1740,20 +1753,21 @@ zftl_flash_exit_slc_mode: cmp w2, 2 csel w2, w2, w3, eq strb w2, [x20,744] - cbz w1, .L335 + cbz w1, .L337 add x0, x0, 8 add x0, x19, x0, lsl 8 str w1, [x0,8] - b .L335 -.L340: + b .L337 +.L342: cmp w1, 3 - bne .L335 + bne .L337 add x20, x20, x0, sxtw - ldrb w21, [x20,744] - cbnz w21, .L335 - adrp x1, .LANCHOR2+20 + ldrb w1, [x20,744] + cbnz w1, .L337 + adrp x21, .LANCHOR2 mov w2, 4 - ldrb w1, [x1,#:lo12:.LANCHOR2+20] + add x21, x21, :lo12:.LANCHOR2 + ldrb w1, [x21,20] cmp w1, 2 csel w1, w1, w2, eq strb w1, [x20,744] @@ -1765,17 +1779,28 @@ zftl_flash_exit_slc_mode: str w0, [x19,2052] mov w0, 50 bl timer_delay_ns - ldrb w0, [x20,744] - str w0, [x19,2048] + ldrb w0, [x21,15] + cmp w0, 9 mov w0, 1 + bne .L345 + str w0, [x19,2048] + b .L346 +.L345: + ldrb w1, [x20,744] + str w1, [x19,2048] +.L346: str w0, [x19,2048] - str w21, [x19,2048] - str w21, [x19,2048] + mov w0, 150 + str wzr, [x19,2048] + str wzr, [x19,2048] + bl timer_delay_ns bl nandc_wait_flash_ready_no_delay mov w0, 223 str w0, [x19,2056] + mov w0, 150 + bl timer_delay_ns bl nandc_wait_flash_ready_no_delay -.L335: +.L337: ldp x19, x20, [sp,16] ldr x21, [sp,32] ldp x29, x30, [sp], 48 @@ -1798,46 +1823,46 @@ flash_start_page_read: ubfx x22, x1, 24, 2 ldrb w0, [x0,633] cmp w0, w19 - bhi .L354 + bhi .L358 adrp x1, .LANCHOR1 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 - mov w2, 754 + mov w2, 845 add x1, x1, 272 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L354: +.L358: add x20, x20, :lo12:.LANCHOR0 add x19, x20, x19, sxtw ldrb w19, [x19,736] mov w0, w19 ldr x24, [x20,536] bl nandc_cs - cbnz w22, .L355 + cbnz w22, .L359 mov w0, w21 bl slc_phy_page_address_calc mov w21, w0 adrp x0, .LANCHOR0 ldrb w0, [x0,#:lo12:.LANCHOR0] - cbz w0, .L356 + cbz w0, .L360 mov w0, w19 bl zftl_flash_enter_slc_mode - b .L356 -.L355: + b .L360 +.L359: ldr x0, [x20,624] ldrb w0, [x0,12] cmp w0, 3 - bne .L357 + bne .L361 sxtw x0, w19 add x0, x0, 8 add x0, x24, x0, lsl 8 str w22, [x0,8] - b .L356 -.L357: + b .L360 +.L361: mov w0, w19 bl zftl_flash_exit_slc_mode -.L356: +.L360: ubfiz x19, x19, 8, 8 and w0, w21, 255 add x1, x24, x19 @@ -1870,22 +1895,22 @@ nandc_wait_flash_ready: adrp x20, .LANCHOR0 movk w19, 0x1, lsl 16 bl timer_delay_ns -.L363: +.L367: add x0, x20, :lo12:.LANCHOR0 ldr x0, [x0,536] ldr w0, [x0] str w0, [x29,40] ldr w0, [x29,40] - tbnz x0, 9, .L364 + tbnz x0, 9, .L368 mov w0, 10 bl timer_delay_ns subs w19, w19, #1 - bne .L363 + bne .L367 mov w0, -1 - b .L362 -.L364: + b .L366 +.L368: mov w0, 0 -.L362: +.L366: ldp x19, x20, [sp,16] ldp x29, x30, [sp], 48 ret @@ -1916,23 +1941,23 @@ sandisk_set_rr_para: add x0, x0, x1 add x1, x2, x1 mov x2, 0 -.L367: +.L371: add x3, x5, :lo12:.LANCHOR0 ldrb w4, [x3,726] cmp w4, w2 - bls .L372 + bls .L376 ldrb w3, [x3,725] cmp w3, 67 - bne .L368 + bne .L372 ldrsb w3, [x0,x2] - b .L371 -.L368: + b .L375 +.L372: ldrsb w3, [x1,x2] -.L371: +.L375: str w3, [x20] add x2, x2, 1 - b .L367 -.L372: + b .L371 +.L376: bl nandc_wait_flash_ready ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 @@ -2021,7 +2046,7 @@ toshiba_tlc_set_rr_para: mov w21, 239 adrp x0, .LANCHOR2 str w21, [x19,8] - cbz w2, .L376 + cbz w2, .L380 mov w2, 18 str w2, [x19,4] mov x2, 7 @@ -2048,8 +2073,8 @@ toshiba_tlc_set_rr_para: ldrb w0, [x20,6] str w0, [x19] str wzr, [x19] - b .L377 -.L376: + b .L381 +.L380: add x0, x0, :lo12:.LANCHOR2 mov w3, 20 add x0, x0, 376 @@ -2059,7 +2084,7 @@ toshiba_tlc_set_rr_para: str w2, [x19] str w2, [x19] str w2, [x19] -.L377: +.L381: bl nandc_wait_flash_ready ldr x21, [sp,32] ldp x19, x20, [sp,16] @@ -2085,23 +2110,23 @@ flash_start_plane_read: stp x27, x28, [sp,80] ldrb w0, [x0,633] cmp w0, w19 - bhi .L379 + bhi .L383 adrp x1, .LANCHOR1 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 - mov w2, 849 + mov w2, 940 add x1, x1, 712 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L379: +.L383: add x26, x22, :lo12:.LANCHOR0 add x19, x26, x19, sxtw ldrb w24, [x19,736] mov w0, w24 ldr x25, [x26,536] bl nandc_cs - cbnz w20, .L380 + cbnz w20, .L384 mov w0, w23 bl slc_phy_page_address_calc mov w23, w0 @@ -2110,24 +2135,24 @@ flash_start_plane_read: mov w21, w0 adrp x0, .LANCHOR0 ldrb w0, [x0,#:lo12:.LANCHOR0] - cbz w0, .L381 + cbz w0, .L385 mov w0, w24 bl zftl_flash_enter_slc_mode - b .L381 -.L380: + b .L385 +.L384: ldr x0, [x26,624] ldrb w0, [x0,12] cmp w0, 3 - bne .L382 + bne .L386 sxtw x0, w24 add x0, x0, 8 add x0, x25, x0, lsl 8 str w20, [x0,8] - b .L381 -.L382: + b .L385 +.L386: mov w0, w24 bl zftl_flash_exit_slc_mode -.L381: +.L385: add x26, x22, :lo12:.LANCHOR0 and w2, w23, 255 add x0, x26, 640 @@ -2139,7 +2164,7 @@ flash_start_plane_read: cmp w1, 1 lsr w1, w23, 8 lsr w23, w23, 16 - bne .L383 + bne .L387 add x19, x25, x19, lsl 8 ldrb w3, [x0,8] ldrb w0, [x0,9] @@ -2151,35 +2176,35 @@ flash_start_plane_read: str w23, [x19,2052] str w0, [x19,2056] bl nandc_wait_flash_ready - cbz w20, .L384 + cbz w20, .L388 ldr x0, [x26,624] ldrb w0, [x0,12] cmp w0, 3 - bne .L384 + bne .L388 str w20, [x19,2056] -.L384: +.L388: str wzr, [x19,2056] str wzr, [x19,2052] str wzr, [x19,2052] - b .L402 -.L383: + b .L406 +.L387: add x19, x25, x19, lsl 8 ldrb w0, [x0,8] str w0, [x19,2056] str w2, [x19,2052] str w1, [x19,2052] str w23, [x19,2052] - cbz w20, .L386 + cbz w20, .L390 ldr x0, [x26,624] ldrb w0, [x0,12] cmp w0, 3 - bne .L386 + bne .L390 str w20, [x19,2056] -.L386: +.L390: add x22, x22, :lo12:.LANCHOR0 ldrb w0, [x22,649] str w0, [x19,2056] -.L402: +.L406: str w28, [x19,2052] mov w0, 48 str w27, [x19,2052] @@ -2213,80 +2238,93 @@ flash_set_interface_mode: add x26, x22, 748 adrp x24, .LANCHOR2 add x23, x23, :lo12:.LC38 -.L416: +.L422: lsl x0, x21, 3 ldr x20, [x22,536] ldrb w19, [x0,x26] adrp x0, .LANCHOR0 cmp w19, 152 - beq .L404 + beq .L408 cmp w19, 69 - beq .L404 + beq .L408 + cmp w19, 155 + beq .L408 cmp w19, 44 - beq .L404 + cset w2, eq cmp w19, 137 - bne .L405 -.L404: + cset w1, eq + orr w1, w2, w1 + cbz w1, .L409 +.L408: add x0, x0, :lo12:.LANCHOR0 cmp w25, 1 ldrb w1, [x0,780] - bne .L407 - tbz x1, 0, .L405 + bne .L411 + tbz x1, 0, .L409 ldr w0, [x24,#:lo12:.LANCHOR2] - tbz x0, 12, .L408 + tbz x0, 12, .L412 adrp x0, .LC37 add x0, x0, :lo12:.LC37 bl printk -.L408: +.L412: add x1, x20, x21, lsl 8 mov w0, 239 cmp w19, 137 str w0, [x1,2056] - beq .L417 + beq .L423 cmp w19, 44 - bne .L409 -.L417: + bne .L413 +.L423: mov w0, 1 str w0, [x1,2052] mov w0, 5 - b .L436 -.L409: - mov w0, 128 - str w0, [x1,2052] + b .L442 +.L413: + cmp w19, 155 mov w0, 1 - b .L436 -.L407: - tbz x1, 2, .L405 + bne .L421 + str w0, [x1,2052] + mov w0, 3 + b .L442 +.L411: + tbz x1, 2, .L409 ldr w0, [x24,#:lo12:.LANCHOR2] - tbz x0, 12, .L412 + tbz x0, 12, .L417 mov x0, x23 bl printk -.L412: +.L417: add x1, x20, x21, lsl 8 mov w0, 239 cmp w19, 137 str w0, [x1,2056] - beq .L418 + beq .L424 cmp w19, 44 cset w0, eq - cbz w0, .L413 -.L418: + cbz w0, .L418 +.L424: mov w0, 1 str w0, [x1,2052] mov w0, 35 - b .L436 -.L413: + b .L442 +.L418: + cmp w19, 155 + bne .L421 + mov w0, 1 + str w0, [x1,2052] + mov w0, 37 + b .L442 +.L421: mov w2, 128 str w2, [x1,2052] -.L436: +.L442: str w0, [x1,2048] str wzr, [x1,2048] str wzr, [x1,2048] str wzr, [x1,2048] -.L405: +.L409: add x21, x21, 1 cmp x21, 4 - bne .L416 + bne .L422 bl nandc_wait_flash_ready mov w0, 0 ldp x19, x20, [sp,16] @@ -2358,7 +2396,7 @@ flash_read_id: sub w0, w2, #1 uxtb w0, w0 cmp w0, 253 - bhi .L439 + bhi .L445 adrp x0, .LC39 ldrb w3, [x19,1] ldrb w4, [x19,2] @@ -2368,7 +2406,7 @@ flash_read_id: ldrb w6, [x19,4] ldrb w7, [x19,5] bl printk -.L439: +.L445: ldp x19, x20, [sp,16] ldr x21, [sp,32] ldp x29, x30, [sp], 48 @@ -2410,6 +2448,84 @@ flash_read_spare: ret .size flash_read_spare, .-flash_read_spare .align 2 + .global flash_read_otp_data + .type flash_read_otp_data, %function +flash_read_otp_data: + stp x29, x30, [sp, -64]! + add x29, sp, 0 + stp x21, x22, [sp,32] + uxtb w21, w0 + adrp x0, .LANCHOR0+536 + stp x19, x20, [sp,16] + str x23, [sp,48] + mov w20, w1 + ldr x19, [x0,#:lo12:.LANCHOR0+536] + mov w0, w21 + mov x23, x2 + mov w22, 144 + bl nandc_cs + ubfiz x3, x21, 8, 8 + mov w0, 239 + add x19, x19, x3 + str w0, [x19,2056] + mov w0, 50 + str w22, [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 w22, [x19,2052] + adrp x0, .LC40 + mov w1, w20 + add x0, x0, :lo12:.LC40 + ldr w2, [x19,2048] + ldr w3, [x19,2048] + ldr w4, [x19,2048] + bl printk + 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 x1, 0 +.L449: + ldr w0, [x19,2048] + strb w0, [x23,x1] + add x1, x1, 1 + cmp x1, 16384 + bne .L449 + mov w0, 239 + str w0, [x19,2056] + mov w0, 144 + str w0, [x19,2052] + mov w0, 50 + bl timer_delay_ns + str wzr, [x19,2048] + str wzr, [x19,2048] + mov w0, w21 + str wzr, [x19,2048] + str wzr, [x19,2048] + bl nandc_de_cs + ldr x23, [sp,48] + ldp x19, x20, [sp,16] + ldp x21, x22, [sp,32] + ldp x29, x30, [sp], 64 + ret + .size flash_read_otp_data, .-flash_read_otp_data + .align 2 .global sandisk_prog_test_bad_block .type sandisk_prog_test_bad_block, %function sandisk_prog_test_bad_block: @@ -2426,9 +2542,9 @@ sandisk_prog_test_bad_block: add x2, x2, 8 ldrb w3, [x3,37] add x2, x19, x2, lsl 8 - cbnz w3, .L452 + cbnz w3, .L461 mov w3, 162 -.L452: +.L461: ubfiz x0, x0, 8, 8 str w3, [x2,8] add x19, x19, x0 @@ -2453,14 +2569,14 @@ sandisk_prog_test_bad_block: ldr w2, [x19,2048] mov w0, 5 ands w19, w2, w0 - beq .L445 + beq .L454 ldr w0, [x20,#:lo12:.LANCHOR2] ldr x1, [x29,40] - tbz x0, 12, .L445 - adrp x0, .LC40 - add x0, x0, :lo12:.LC40 + tbz x0, 12, .L454 + adrp x0, .LC41 + add x0, x0, :lo12:.LC41 bl printk -.L445: +.L454: mov w0, w19 ldp x19, x20, [sp,16] ldp x29, x30, [sp], 48 @@ -2491,44 +2607,44 @@ nandc_bch_sel: strb w0, [x1,724] cmp w2, 9 ldr x2, [x1,536] - bne .L455 + bne .L464 str w3, [x2,16] cmp w0, 70 mov w1, 0 - beq .L456 + beq .L465 cmp w0, 60 mov w1, 3 - beq .L456 + beq .L465 cmp w0, 40 mov w1, 2 csel w1, w1, w3, eq -.L456: +.L465: lsl w1, w1, 25 orr w1, w1, 1 str w1, [x2,32] - b .L454 -.L455: + b .L463 +.L464: str w3, [x2,8] cmp w0, 16 mov w1, 4096 - bne .L458 -.L461: + bne .L467 +.L470: and w1, w1, -17 - b .L459 -.L458: + b .L468 +.L467: cmp w0, 24 - bne .L460 + bne .L469 orr w1, w1, 16 - b .L459 -.L460: + b .L468 +.L469: cmp w0, 40 orr w1, w1, 262144 orr w1, w1, 16 - beq .L461 -.L459: + beq .L470 +.L468: orr w1, w1, 1 str w1, [x2,12] -.L454: +.L463: ret .size nandc_bch_sel, .-nandc_bch_sel .align 2 @@ -2552,7 +2668,7 @@ zftl_flash_resume: str w2, [x1,4] ldr x1, [x0,536] ldr w2, [x0,552] - bne .L469 + bne .L478 str w2, [x1,16] ldr w2, [x0,556] str w2, [x1,32] @@ -2564,8 +2680,8 @@ zftl_flash_resume: str w2, [x1,520] ldr w0, [x0,572] str w0, [x1,8] - b .L470 -.L469: + b .L479 +.L478: str w2, [x1,8] ldr w2, [x0,556] str w2, [x1,12] @@ -2577,18 +2693,18 @@ zftl_flash_resume: str w2, [x1,336] ldr w0, [x0,572] str w0, [x1,344] -.L470: +.L479: add x22, x20, :lo12:.LANCHOR0 mov x19, 0 add x23, x22, 748 mov w24, 2 -.L472: +.L481: lsl x0, x19, 3 ldrb w0, [x0,x23] sub w0, w0, #1 uxtb w0, w0 cmp w0, 253 - bhi .L471 + bhi .L480 uxtb w21, w19 mov w0, w21 bl flash_reset @@ -2596,13 +2712,13 @@ zftl_flash_resume: strb w24, [x19,x0] mov w0, w21 bl zftl_flash_enter_slc_mode -.L471: +.L480: add x19, x19, 1 cmp x19, 4 - bne .L472 + bne .L481 add x20, x20, :lo12:.LANCHOR0 ldrb w0, [x20,672] - cbz w0, .L473 + cbz w0, .L482 mov w0, 1 bl nandc_set_if_mode mov w0, w19 @@ -2612,7 +2728,7 @@ zftl_flash_resume: ldr w0, [x20,560] lsr w0, w0, 8 bl nandc_set_ddr_para -.L473: +.L482: adrp x0, .LANCHOR2+28 ldrb w0, [x0,#:lo12:.LANCHOR2+28] bl nandc_bch_sel @@ -2647,30 +2763,30 @@ nandc_iqr_wait_flash_ready: ldrb w1, [x19,516] ldr x0, [x19,536] cmp w1, 9 - bne .L480 + bne .L489 ldr w1, [x0,292] orr w1, w1, 2 str w1, [x0,292] ldr w1, [x0,288] orr w1, w1, 2 str w1, [x0,288] - b .L481 -.L480: + b .L490 +.L489: ldr w1, [x0,368] orr w1, w1, 2 str w1, [x0,368] ldr w1, [x0,364] orr w1, w1, 2 str w1, [x0,364] -.L481: +.L490: ldr w1, [x0] - tbnz x1, 9, .L482 + tbnz x1, 9, .L491 bl wait_for_nand_flash_ready - b .L479 -.L482: + b .L488 +.L491: mov w1, 1 bl nandc_irq_disable -.L479: +.L488: ldr x19, [sp,16] ldp x29, x30, [sp], 32 ret @@ -2693,16 +2809,16 @@ flash_erase_duplane_block: ldrb w0, [x0,633] mov w24, w3 cmp w0, w19 - bhi .L485 + bhi .L494 adrp x1, .LANCHOR1 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 - mov w2, 523 + mov w2, 588 add x1, x1, 736 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L485: +.L494: add x0, x20, :lo12:.LANCHOR0 add x19, x0, x19, sxtw ldrb w23, [x19,736] @@ -2712,24 +2828,24 @@ flash_erase_duplane_block: add x23, x23, 8 ldr w0, [x0,#:lo12:.LANCHOR2] add x23, x19, x23, lsl 8 - tbz x0, 4, .L486 - adrp x0, .LC41 + tbz x0, 4, .L495 + adrp x0, .LC42 mov w1, w21 - add x0, x0, :lo12:.LC41 + add x0, x0, :lo12:.LC42 mov w2, w22 mov w3, w24 bl printk -.L486: +.L495: bl nandc_wait_flash_ready mov w0, w21 bl nandc_cs mov w0, w21 - cbnz w25, .L487 + cbnz w25, .L496 bl zftl_flash_enter_slc_mode - b .L488 -.L487: + b .L497 +.L496: bl zftl_flash_exit_slc_mode -.L488: +.L497: ubfiz x4, x21, 8, 8 mov w0, 96 add x19, x19, x4 @@ -2743,7 +2859,7 @@ flash_erase_duplane_block: str w0, [x19,2052] ldrb w0, [x20,781] mov w20, 0 - cbnz w0, .L489 + cbnz w0, .L498 mov w0, 208 str w0, [x19,2056] mov w20, 5 @@ -2751,7 +2867,7 @@ flash_erase_duplane_block: mov x0, x23 bl flash_read_status and w20, w0, w20 -.L489: +.L498: mov w0, 96 str w0, [x19,2056] and w0, w24, 255 @@ -2774,12 +2890,12 @@ flash_erase_duplane_block: ldr x2, [x29,88] and w19, w2, w19 orr w19, w19, w20 - cbz w19, .L490 - adrp x0, .LC42 + cbz w19, .L499 + adrp x0, .LC43 mov w1, w22 - add x0, x0, :lo12:.LC42 + add x0, x0, :lo12:.LC43 bl printk -.L490: +.L499: mov w0, w19 ldr x25, [sp,64] ldp x19, x20, [sp,16] @@ -2806,16 +2922,16 @@ flash_erase_block_en: ldrb w0, [x0,633] and w24, w2, 2097151 cmp w0, w23 - bhi .L499 + bhi .L508 adrp x1, .LANCHOR1 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 - mov w2, 568 + mov w2, 633 add x1, x1, 768 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L499: +.L508: add x0, x19, :lo12:.LANCHOR0 add x1, x0, x23, sxtw ldrb w21, [x1,736] @@ -2825,24 +2941,24 @@ flash_erase_block_en: add x21, x21, 8 ldr w0, [x0,#:lo12:.LANCHOR2] add x21, x25, x21, lsl 8 - tbz x0, 4, .L500 - adrp x0, .LC43 + tbz x0, 4, .L509 + adrp x0, .LC44 mov w1, w20 - add x0, x0, :lo12:.LC43 + add x0, x0, :lo12:.LC44 mov w2, w22 mov w3, w26 bl printk -.L500: +.L509: bl nandc_wait_flash_ready mov w0, w20 bl nandc_cs mov w0, w20 - cbnz w26, .L501 + cbnz w26, .L510 bl zftl_flash_enter_slc_mode - b .L502 -.L501: + b .L511 +.L510: bl zftl_flash_exit_slc_mode -.L502: +.L511: ubfiz x3, x20, 8, 8 mov w0, 96 add x3, x25, x3 @@ -2864,16 +2980,16 @@ flash_erase_block_en: bl nandc_de_cs mov w3, 5 ands w20, w21, w3 - beq .L503 + beq .L512 add x19, x19, :lo12:.LANCHOR0 - adrp x0, .LC44 - add x0, x0, :lo12:.LC44 + adrp x0, .LC45 + add x0, x0, :lo12:.LC45 mov w1, w23 mov w3, w20 ldrh w2, [x19,2] udiv w2, w22, w2 bl printk -.L503: +.L512: mov w0, w20 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -2913,31 +3029,31 @@ flash_erase_all: mov x21, x0 mul w20, w1, w20 uxth w20, w20 -.L512: +.L521: ldrb w0, [x23,633] cmp w0, w19 - bls .L516 + bls .L525 add x0, x23, x19, sxtw ldrb w24, [x0,736] mov w22, 0 -.L513: +.L522: cmp w20, w22, uxth - bls .L517 + bls .L526 add x0, x21, :lo12:.LANCHOR0 ldrh w1, [x0,2] mov w0, w24 mul w1, w22, w1 add w22, w22, 1 bl flash_erase_block - b .L513 -.L517: + b .L522 +.L526: add w19, w19, 1 uxth w19, w19 - b .L512 -.L516: - adrp x0, .LC45 + b .L521 +.L525: + adrp x0, .LC46 mov w1, 0 - add x0, x0, :lo12:.LC45 + add x0, x0, :lo12:.LC46 bl printk ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -2980,7 +3096,7 @@ nandc_xfer_start: cmp w0, 9 ldr x3, [x29,88] ldr x2, [x29,80] - bne .L520 + bne .L529 ldr w0, [x4,292] ubfiz w19, w23, 1, 1 orr w19, w19, 8 @@ -2998,13 +3114,13 @@ nandc_xfer_start: and w19, w19, -17 bfi w19, w20, 22, 6 orr w19, w19, 128 - cbz w0, .L522 + cbz w0, .L531 ldrb w1, [x21,720] orr w0, w19, 512 cmp w1, wzr csel w19, w0, w19, ne - b .L522 -.L520: + b .L531 +.L529: ldr w0, [x4,368] ubfiz w19, w23, 1, 1 orr w19, w19, 8 @@ -3025,7 +3141,7 @@ nandc_xfer_start: orr w19, w19, 1024 and w19, w19, -17 bfi w19, w20, 22, 6 - cbz w23, .L534 + cbz w23, .L543 ldrb w0, [x21,724] ubfx x24, x24, 1, 7 mov w1, 64 @@ -3034,8 +3150,8 @@ nandc_xfer_start: add x24, x3, x24, lsl 2 csel w4, w1, w4, cc mov w1, 0 - b .L527 -.L522: + b .L536 +.L531: add x22, x22, :lo12:.LANCHOR0 and w20, w20, 63 mov x0, x2 @@ -3073,11 +3189,11 @@ nandc_xfer_start: str w19, [x2,16] orr w19, w19, 4 str w19, [x2,16] - b .L519 -.L527: + b .L528 +.L536: cmp x3, x24 add w0, w1, w4 - beq .L529 + beq .L538 ldrh w5, [x3,2] and x1, x1, 4294967292 ldr x6, [x21,680] @@ -3085,11 +3201,11 @@ nandc_xfer_start: orr w5, w7, w5, lsl 16 str w5, [x6,x1] mov w1, w0 - b .L527 -.L534: + b .L536 +.L543: ldr x1, [x21,680] str w0, [x1] -.L529: +.L538: add x22, x22, :lo12:.LANCHOR0 and w20, w20, 63 lsl w1, w20, 10 @@ -3122,7 +3238,7 @@ nandc_xfer_start: str w19, [x3,8] orr w19, w19, 4 str w19, [x3,8] -.L519: +.L528: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -3148,12 +3264,12 @@ nandc_set_seed: ldrb w2, [x0,516] ldr x0, [x0,536] cmp w2, 9 - bne .L537 + bne .L546 str w1, [x0,520] - b .L535 -.L537: + b .L544 +.L546: str w1, [x0,336] -.L535: +.L544: ret .size nandc_set_seed, .-nandc_set_seed .align 2 @@ -3163,30 +3279,37 @@ zftl_flash_de_init: stp x29, x30, [sp, -32]! add x29, sp, 0 stp x19, x20, [sp,16] - bl nandc_wait_flash_ready adrp x19, .LANCHOR0 + bl nandc_wait_flash_ready + add x0, x19, :lo12:.LANCHOR0 + ldrb w1, [x19,#:lo12:.LANCHOR0] + cbz w1, .L551 + ldrb w0, [x0,782] + cbnz w0, .L551 + bl zftl_flash_exit_slc_mode +.L551: mov w0, 0 add x20, x19, :lo12:.LANCHOR0 bl hynix_reconfig_rr_para ldrb w0, [x20,672] - cbz w0, .L542 + cbz w0, .L552 ldrb w0, [x20,780] - tbz x0, 0, .L542 + tbz x0, 0, .L552 mov w0, 1 bl flash_set_interface_mode mov w0, 1 bl nandc_set_if_mode strb wzr, [x20,672] -.L542: +.L552: add x19, x19, :lo12:.LANCHOR0 ldrb w0, [x19,720] - cbz w0, .L543 + cbz w0, .L553 mov w0, 0 strb wzr, [x19,720] bl nandc_set_seed mov w0, 1 strb w0, [x19,720] -.L543: +.L553: mov w0, 0 ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 @@ -3224,7 +3347,7 @@ buf_init: add x19, x19, 784 mov w21, 0 mov x22, x0 -.L556: +.L569: add x20, x22, :lo12:.LANCHOR0 uxtb w0, w21 add w1, w0, 1 @@ -3243,7 +3366,7 @@ buf_init: bl ftl_malloc str x0, [x19,-40] cmp w21, 32 - bne .L556 + bne .L569 strb w21, [x20,2834] mov w0, -1 strb wzr, [x20,2833] @@ -3261,7 +3384,7 @@ buf_reinit: mov w2, 0 add x1, x0, :lo12:.LANCHOR0 add x1, x1, 784 -.L559: +.L572: uxtb w3, w2 add w2, w2, 1 add w4, w3, 1 @@ -3271,7 +3394,7 @@ buf_reinit: strb wzr, [x1,2] add x1, x1, 64 str xzr, [x1,-48] - bne .L559 + bne .L572 add x0, x0, :lo12:.LANCHOR0 mov w1, -1 strb wzr, [x0,2833] @@ -3292,10 +3415,10 @@ buf_add_tail: mov x19, x1 ldrb w1, [x20] cmp w1, 255 - bne .L567 + bne .L580 ldrb w0, [x19,1] cmp w0, 255 - bne .L563 + bne .L576 adrp x1, .LANCHOR1 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 @@ -3304,23 +3427,23 @@ buf_add_tail: add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L563: +.L576: ldrb w0, [x19,1] strb w0, [x20] - b .L561 -.L567: + b .L574 +.L580: adrp x0, .LANCHOR0 add x0, x0, :lo12:.LANCHOR0 add x0, x0, 784 -.L568: +.L581: mov w20, w1 sbfiz x1, x1, 6, 32 ldrb w1, [x0,x1] cmp w1, 255 - bne .L568 + bne .L581 ldrb w0, [x19,1] cmp w0, 255 - bne .L565 + bne .L578 adrp x1, .LANCHOR1 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 @@ -3329,14 +3452,14 @@ buf_add_tail: add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L565: +.L578: adrp x0, .LANCHOR0 sbfiz x20, x20, 6, 32 add x0, x0, :lo12:.LANCHOR0 ldrb w1, [x19,1] add x0, x0, 784 strb w1, [x0,x20] -.L561: +.L574: ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 ret @@ -3377,22 +3500,22 @@ buf_free: and w1, w1, 8 uxtb w1, w1 strb w1, [x0,2] - cbz w1, .L571 + cbz w1, .L584 ldr w1, [x0,36] cmn w1, #1 - beq .L571 + beq .L584 mov x1, x0 add x0, x19, :lo12:.LANCHOR0 add x0, x0, 2833 bl buf_add_tail - b .L572 -.L571: + b .L585 +.L584: add x1, x19, :lo12:.LANCHOR0 ldrb w2, [x1,2833] strb w2, [x0] ldrb w0, [x0,1] strb w0, [x1,2833] -.L572: +.L585: add x19, x19, :lo12:.LANCHOR0 ldrb w0, [x19,2834] add w0, w0, 1 @@ -3414,15 +3537,15 @@ buf_alloc: uxtb w21, w0 mov x19, x1 ldrb w0, [x20,2834] - cbz w0, .L580 -.L583: + cbz w0, .L593 +.L596: add x1, x19, :lo12:.LANCHOR0 add x0, x1, 784 ldrb w2, [x1,2833] add x0, x0, x2, lsl 6 - cbz w21, .L581 - b .L582 -.L580: + cbz w21, .L594 + b .L595 +.L593: adrp x1, .LANCHOR1 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 @@ -3432,15 +3555,15 @@ buf_alloc: bl printk bl dump_stack ldrb w1, [x20,2834] - cbnz w1, .L583 -.L585: + cbnz w1, .L596 +.L598: mov x0, 0 - b .L584 -.L581: + b .L597 +.L594: ldrb w1, [x1,2834] cmp w1, 1 - beq .L585 -.L582: + beq .L598 +.L595: add x1, x19, :lo12:.LANCHOR0 lsl x2, x2, 6 add x4, x1, 784 @@ -3460,7 +3583,7 @@ buf_alloc: strb wzr, [x3,56] str w1, [x3,36] strb wzr, [x3,57] -.L584: +.L597: ldp x19, x20, [sp,16] ldr x21, [sp,32] ldp x29, x30, [sp], 48 @@ -3473,33 +3596,33 @@ buf_remove_buf: ldrb w4, [x1,1] ldrb w2, [x0] cmp w4, w2 - bne .L592 + bne .L605 ldrb w1, [x1] strb w1, [x0] - b .L596 -.L592: + b .L609 +.L605: adrp x0, .LANCHOR0 add x0, x0, :lo12:.LANCHOR0 add x0, x0, 784 -.L594: +.L607: cmp w2, 255 - beq .L597 + beq .L610 mov w3, w2 sbfiz x2, x2, 6, 32 ldrb w2, [x0,x2] cmp w2, w4 - bne .L594 + bne .L607 sbfiz x3, x3, 6, 32 ldrb w2, [x1] strb w2, [x0,x3] mov w0, -1 strb w0, [x1] -.L596: +.L609: mov w0, 1 - b .L591 -.L597: + b .L604 +.L610: mov w0, 0 -.L591: +.L604: ret .size buf_remove_buf, .-buf_remove_buf .align 2 @@ -3513,7 +3636,7 @@ buf_remove_free: mov x20, x0 add x0, x19, :lo12:.LANCHOR0 ldrb w0, [x0,2834] - cbnz w0, .L599 + cbnz w0, .L612 adrp x1, .LANCHOR1 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 @@ -3522,22 +3645,22 @@ buf_remove_free: add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L599: +.L612: add x19, x19, :lo12:.LANCHOR0 ldrb w0, [x19,2834] - cbz w0, .L598 + cbz w0, .L611 add x0, x19, 2833 mov x1, x20 bl buf_remove_buf cmp w0, 1 - bne .L598 + bne .L611 ldrb w0, [x19,2834] sub w0, w0, #1 strb w0, [x19,2834] ldrb w0, [x20,2] orr w0, w0, 1 strb w0, [x20,2] -.L598: +.L611: ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 ret @@ -3586,8 +3709,8 @@ flash_mask_bad_block: mov w2, w21 ldrh w20, [x3,22] mul w20, w0, w20 - adrp x0, .LC46 - add x0, x0, :lo12:.LC46 + adrp x0, .LC47 + add x0, x0, :lo12:.LC47 uxth w20, w20 add w20, w20, 31 bl printk @@ -3617,49 +3740,49 @@ flash_mask_bad_block: str2hex: ldrb w1, [x0] cmp w1, 48 - bne .L606 + bne .L619 ldrb w1, [x0,1] add x2, x0, 2 and w1, w1, -33 uxtb w1, w1 cmp w1, 88 csel x0, x0, x2, ne -.L606: +.L619: ldrb w1, [x0] and w1, w1, -33 uxtb w1, w1 cmp w1, 88 mov w1, 0 csinc x0, x0, x0, ne -.L608: +.L621: ldrb w2, [x0] - cbz w2, .L615 + cbz w2, .L628 sub w3, w2, #48 uxtb w3, w3 cmp w3, 9 - bhi .L609 + bhi .L622 add w1, w2, w1, lsl 4 sub w1, w1, #48 - b .L610 -.L609: + b .L623 +.L622: sub w3, w2, #97 uxtb w3, w3 cmp w3, 5 - bhi .L611 + bhi .L624 add w1, w2, w1, lsl 4 sub w1, w1, #87 - b .L610 -.L611: + b .L623 +.L624: sub w3, w2, #65 uxtb w3, w3 cmp w3, 5 - bhi .L615 + bhi .L628 add w1, w2, w1, lsl 4 sub w1, w1, #55 -.L610: +.L623: add x0, x0, 1 - b .L608 -.L615: + b .L621 +.L628: mov w0, w1 ret .size str2hex, .-str2hex @@ -3670,13 +3793,13 @@ zftl_proc_debug_init: stp x29, x30, [sp, -16]! adrp x3, .LANCHOR1 mov x2, 0 - adrp x0, .LC47 + adrp x0, .LC48 add x3, x3, :lo12:.LANCHOR1 add x29, sp, 0 mov w1, 292 add x3, x3, 1096 mov x4, x2 - add x0, x0, :lo12:.LC47 + add x0, x0, :lo12:.LC48 bl proc_create_data ldp x29, x30, [sp], 16 ret @@ -3698,11 +3821,11 @@ ftl_print_info_to_buf: adrp x7, .LANCHOR2 adrp x22, .LANCHOR0 add x7, x7, :lo12:.LANCHOR2 - adrp x1, .LC48 + adrp x1, .LC49 add x7, x7, 8 add x21, x22, :lo12:.LANCHOR0 add x19, x20, x0, sxtw - add x1, x1, :lo12:.LC48 + add x1, x1, :lo12:.LC49 ldrb w5, [x7,4] mov x0, x19 ldrb w6, [x7,5] @@ -3713,105 +3836,105 @@ ftl_print_info_to_buf: bl sprintf add x19, x19, x0, sxtw ldr w2, [x21,520] - adrp x1, .LC49 + adrp x1, .LC50 mov x0, x19 - add x1, x1, :lo12:.LC49 + add x1, x1, :lo12:.LC50 lsr w2, w2, 11 bl sprintf add x19, x19, x0, sxtw ldr w2, [x21,2836] - adrp x1, .LC50 + adrp x1, .LC51 mov x0, x19 - add x1, x1, :lo12:.LC50 + add x1, x1, :lo12:.LC51 lsr w2, w2, 11 bl sprintf add x19, x19, x0, sxtw - adrp x1, .LC51 + adrp x1, .LC52 mov x0, x19 - add x1, x1, :lo12:.LC51 + add x1, x1, :lo12:.LC52 add x19, x19, 10 bl strcpy ldr w2, [x21,2840] - adrp x1, .LC52 - mov x0, x19 - add x1, x1, :lo12:.LC52 - bl sprintf - add x19, x19, x0, sxtw - ldr w2, [x21,520] adrp x1, .LC53 mov x0, x19 add x1, x1, :lo12:.LC53 bl sprintf add x19, x19, x0, sxtw - ldr x2, [x21,608] + ldr w2, [x21,520] adrp x1, .LC54 mov x0, x19 add x1, x1, :lo12:.LC54 - ldr w2, [x2,524] bl sprintf add x19, x19, x0, sxtw ldr x2, [x21,608] adrp x1, .LC55 mov x0, x19 add x1, x1, :lo12:.LC55 - ldr w2, [x2,528] + ldr w2, [x2,524] bl sprintf add x19, x19, x0, sxtw - ldrh w2, [x21,2844] + ldr x2, [x21,608] adrp x1, .LC56 mov x0, x19 add x1, x1, :lo12:.LC56 + ldr w2, [x2,528] bl sprintf add x19, x19, x0, sxtw - ldrh w2, [x21,2846] + ldrh w2, [x21,2844] adrp x1, .LC57 mov x0, x19 add x1, x1, :lo12:.LC57 bl sprintf add x19, x19, x0, sxtw - ldrh w2, [x21,2848] + ldrh w2, [x21,2846] adrp x1, .LC58 mov x0, x19 add x1, x1, :lo12:.LC58 bl sprintf add x19, x19, x0, sxtw - ldrh w2, [x21,2850] + ldrh w2, [x21,2848] adrp x1, .LC59 mov x0, x19 add x1, x1, :lo12:.LC59 bl sprintf add x19, x19, x0, sxtw - ldrh w2, [x21,2852] + ldrh w2, [x21,2850] adrp x1, .LC60 mov x0, x19 add x1, x1, :lo12:.LC60 bl sprintf add x19, x19, x0, sxtw - ldrh w2, [x21,2854] + ldrh w2, [x21,2852] adrp x1, .LC61 mov x0, x19 add x1, x1, :lo12:.LC61 bl sprintf add x19, x19, x0, sxtw - ldrb w4, [x21,2857] + ldrh w2, [x21,2854] adrp x1, .LC62 - ldrb w2, [x21,2834] mov x0, x19 - ldrb w3, [x21,2856] add x1, x1, :lo12:.LC62 bl sprintf add x19, x19, x0, sxtw - ldr x3, [x21,2864] + ldrb w4, [x21,2857] adrp x1, .LC63 + ldrb w2, [x21,2834] mov x0, x19 + ldrb w3, [x21,2856] add x1, x1, :lo12:.LC63 + bl sprintf + add x19, x19, x0, sxtw + ldr x3, [x21,2864] + adrp x1, .LC64 + mov x0, x19 + add x1, x1, :lo12:.LC64 ldrh w2, [x3,148] ldrh w3, [x3,146] bl sprintf add x19, x19, x0, sxtw ldr x0, [x21,2864] - adrp x1, .LC64 - add x1, x1, :lo12:.LC64 + adrp x1, .LC65 + add x1, x1, :lo12:.LC65 ldr w3, [x0,16] ldr w2, [x0,20] mov x0, x19 @@ -3819,8 +3942,8 @@ ftl_print_info_to_buf: bl sprintf add x19, x19, x0, sxtw ldr x0, [x21,2864] - adrp x1, .LC65 - add x1, x1, :lo12:.LC65 + adrp x1, .LC66 + add x1, x1, :lo12:.LC66 ldr w3, [x0,24] ldr w2, [x0,28] mov x0, x19 @@ -3828,107 +3951,107 @@ ftl_print_info_to_buf: bl sprintf add x19, x19, x0, sxtw ldr x2, [x21,2864] - adrp x1, .LC66 + adrp x1, .LC67 mov x0, x19 - add x1, x1, :lo12:.LC66 + add x1, x1, :lo12:.LC67 ldr w2, [x2,64] bl sprintf add x19, x19, x0, sxtw ldr x2, [x21,2864] - adrp x1, .LC67 + adrp x1, .LC68 mov x0, x19 - add x1, x1, :lo12:.LC67 + add x1, x1, :lo12:.LC68 ldr w2, [x2,68] bl sprintf add x19, x19, x0, sxtw ldr x0, [x21,608] mov w2, 10 - adrp x1, .LC68 - add x1, x1, :lo12:.LC68 + adrp x1, .LC69 + add x1, x1, :lo12:.LC69 ldr w3, [x0,12] mov x0, x19 udiv w2, w3, w2 bl sprintf add x19, x19, x0, sxtw ldrb w2, [x22,#:lo12:.LANCHOR0] - adrp x1, .LC69 - mov x0, x19 - add x1, x1, :lo12:.LC69 - bl sprintf - add x19, x19, x0, sxtw - ldr x2, [x21,608] adrp x1, .LC70 mov x0, x19 add x1, x1, :lo12:.LC70 - ldr w2, [x2,556] bl sprintf add x19, x19, x0, sxtw ldr x2, [x21,608] adrp x1, .LC71 mov x0, x19 add x1, x1, :lo12:.LC71 - ldr w2, [x2,552] + ldr w2, [x2,556] bl sprintf add x19, x19, x0, sxtw - ldr x2, [x21,2864] + ldr x2, [x21,608] adrp x1, .LC72 mov x0, x19 add x1, x1, :lo12:.LC72 - ldr w2, [x2,52] + ldr w2, [x2,552] bl sprintf add x19, x19, x0, sxtw ldr x2, [x21,2864] adrp x1, .LC73 mov x0, x19 add x1, x1, :lo12:.LC73 - ldr w2, [x2,60] + ldr w2, [x2,52] bl sprintf add x19, x19, x0, sxtw ldr x2, [x21,2864] adrp x1, .LC74 mov x0, x19 add x1, x1, :lo12:.LC74 - ldr w2, [x2,76] + ldr w2, [x2,60] bl sprintf add x19, x19, x0, sxtw ldr x2, [x21,2864] adrp x1, .LC75 mov x0, x19 add x1, x1, :lo12:.LC75 - ldr w2, [x2,8] + ldr w2, [x2,76] bl sprintf add x19, x19, x0, sxtw - ldr x4, [x21,608] + ldr x2, [x21,2864] adrp x1, .LC76 mov x0, x19 add x1, x1, :lo12:.LC76 + ldr w2, [x2,8] + bl sprintf + add x19, x19, x0, sxtw + ldr x4, [x21,608] + adrp x1, .LC77 + mov x0, x19 + add x1, x1, :lo12:.LC77 ldrh w2, [x4,16] ldrh w3, [x4,22] ldrb w4, [x4,25] bl sprintf add x19, x19, x0, sxtw ldr x4, [x21,608] - adrp x1, .LC77 + adrp x1, .LC78 mov x0, x19 - add x1, x1, :lo12:.LC77 + add x1, x1, :lo12:.LC78 ldrh w2, [x4,48] ldrh w3, [x4,54] ldrb w4, [x4,57] bl sprintf add x19, x19, x0, sxtw ldr x4, [x21,608] - adrp x1, .LC78 + adrp x1, .LC79 mov x0, x19 - add x1, x1, :lo12:.LC78 + add x1, x1, :lo12:.LC79 ldrh w2, [x4,80] ldrh w3, [x4,86] ldrb w4, [x4,89] bl sprintf add x19, x19, x0, sxtw ldr x6, [x21,2864] - adrp x1, .LC79 + adrp x1, .LC80 mov x0, x19 - add x1, x1, :lo12:.LC79 + add x1, x1, :lo12:.LC80 ldrh w2, [x6,74] ldr w3, [x6,84] ldrh w4, [x6,88] @@ -3937,9 +4060,9 @@ ftl_print_info_to_buf: bl sprintf add x19, x19, x0, sxtw ldr x6, [x21,2864] - adrp x1, .LC80 + adrp x1, .LC81 mov x0, x19 - add x1, x1, :lo12:.LC80 + add x1, x1, :lo12:.LC81 ldr w3, [x6,80] ldrh w4, [x6,90] ldrh w5, [x6,94] @@ -3948,30 +4071,42 @@ ftl_print_info_to_buf: bl sprintf add x19, x19, x0, sxtw ldrh w2, [x21,2872] - adrp x1, .LC81 + adrp x1, .LC82 mov x0, x19 - add x1, x1, :lo12:.LC81 + add x1, x1, :lo12:.LC82 bl sprintf add x19, x19, x0, sxtw ldr w6, [x21,2884] - adrp x1, .LC82 + adrp x1, .LC83 ldrh w2, [x21,2874] mov x0, x19 ldrh w3, [x21,2876] - add x1, x1, :lo12:.LC82 + add x1, x1, :lo12:.LC83 ldrh w4, [x21,2878] ldrh w5, [x21,2880] bl sprintf add x19, x19, x0, sxtw ldr x5, [x21,608] - adrp x1, .LC83 + adrp x1, .LC84 mov x0, x19 - add x1, x1, :lo12:.LC83 + add x1, x1, :lo12:.LC84 ldrh w2, [x5,584] ldrh w3, [x5,586] ldrh w4, [x5,588] ldrh w5, [x5,590] bl sprintf + add x19, x19, x0, sxtw + ldr x6, [x21,608] + adrp x1, .LC85 + ldr x5, [x21,2864] + mov x0, x19 + add x1, x1, :lo12:.LC85 + ldr w2, [x6,536] + ldr w3, [x6,540] + ldr w4, [x6,544] + ldr w5, [x5,44] + ldr w6, [x6,548] + bl sprintf add x0, x19, x0, sxtw ldp x21, x22, [sp,32] sub w0, w0, w20 @@ -4041,16 +4176,16 @@ gc_add_sblk: uxth w20, w2 ldrh w0, [x0,576] cmp w0, w21 - bhi .L623 + bhi .L636 adrp x1, .LANCHOR1 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 - mov w2, 259 + mov w2, 339 add x1, x1, 1312 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L623: +.L636: add x6, x22, :lo12:.LANCHOR0 uxtw x19, w21 lsl x25, x19, 1 @@ -4058,7 +4193,7 @@ gc_add_sblk: ldr x0, [x6,600] ldrh w26, [x0,x25] ldr w0, [x24,#:lo12:.LANCHOR2] - tbz x0, 8, .L624 + tbz x0, 8, .L637 ldr x0, [x6,584] mov w1, w21 ldrh w5, [x6,2952] @@ -4067,137 +4202,137 @@ gc_add_sblk: ldrh w6, [x6,2878] mov w4, w26 ldrb w3, [x0,2] - adrp x0, .LC84 - add x0, x0, :lo12:.LC84 + adrp x0, .LC86 + add x0, x0, :lo12:.LC86 ubfx x3, x3, 5, 3 bl printk -.L624: +.L637: add x3, x22, :lo12:.LANCHOR0 ldr x0, [x3,584] add x0, x0, x19, lsl 2 ldrb w19, [x0,2] ands w19, w19, 224 - bne .L625 - cbz w26, .L626 + bne .L638 + cbz w26, .L639 adrp x1, .LANCHOR1 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 - mov w2, 264 + mov w2, 344 add x1, x1, 1312 add x0, x0, :lo12:.LC0 bl printk bl dump_stack - b .L626 -.L625: + b .L639 +.L638: ldrh w1, [x3,2896] add x6, x3, 2896 mov w19, 0 cmp w1, w21 - beq .L626 + beq .L639 ldr x3, [x3,608] ldrh w1, [x3,48] cmp w1, w21 - beq .L626 + beq .L639 ldrh w1, [x3,16] cmp w1, w21 - beq .L626 + beq .L639 ldrh w1, [x3,80] cmp w1, w21 - beq .L626 + beq .L639 ldrh w5, [x6,56] mov x4, 0 -.L627: +.L640: cmp w5, w4 - bls .L658 + bls .L671 add x4, x4, 1 add x1, x6, x4, lsl 1 ldrh w1, [x1,56] cmp w1, w21 - bne .L627 + bne .L640 mov w19, 0 - b .L626 -.L658: - cbnz w23, .L629 + b .L639 +.L671: + cbnz w23, .L642 add x4, x22, :lo12:.LANCHOR0 mov w19, w23 ldrh w7, [x4,3224] cmp w7, w21 - beq .L626 + beq .L639 mov x6, 0 -.L631: +.L644: add x1, x4, 3232 ldrh w1, [x6,x1] cmp w21, w1 - bne .L630 + bne .L643 ldr w1, [x24,#:lo12:.LANCHOR2] mov w19, 0 - tbz x1, 8, .L626 + tbz x1, 8, .L639 ldr x3, [x4,600] mov w1, w21 ldrb w2, [x0,2] - adrp x0, .LC85 + adrp x0, .LC87 mov w4, w21 mov w5, w7 ldrh w3, [x3,x25] ubfx x2, x2, 5, 3 - add x0, x0, :lo12:.LC85 + add x0, x0, :lo12:.LC87 bl printk - b .L626 -.L630: + b .L639 +.L643: add x6, x6, 2 cmp x6, 16 - bne .L631 + bne .L644 sxtw x4, w20 add x3, x3, x4, lsl 7 add x19, x3, 136 - b .L633 -.L629: + b .L646 +.L642: add x19, x3, 392 -.L633: +.L646: ldr w1, [x24,#:lo12:.LANCHOR2] - tbz x1, 8, .L634 + tbz x1, 8, .L647 add x6, x22, :lo12:.LANCHOR0 ldrb w3, [x0,2] - adrp x0, .LC84 + adrp x0, .LC86 mov w1, w21 - add x0, x0, :lo12:.LC84 + add x0, x0, :lo12:.LC86 mov w2, w23 ldr x4, [x6,600] ubfx x3, x3, 5, 3 ldrh w6, [x6,2878] ldrh w4, [x4,x25] bl printk -.L634: +.L647: mov x3, x19 add x0, x19, 128 mov w1, 65535 -.L637: +.L650: ldrh w2, [x3] cmp w2, w1 - bne .L635 + bne .L648 strh w21, [x3] add x22, x22, :lo12:.LANCHOR0 - cbz w23, .L636 + cbz w23, .L649 ldr x1, [x22,608] ldrh w0, [x1,124] add w0, w0, 1 strh w0, [x1,124] - b .L657 -.L636: + b .L670 +.L649: ldr x0, [x22,608] add x2, x0, x20, uxth 1 ldrh w0, [x2,120] add w0, w0, 1 strh w0, [x2,120] -.L657: +.L670: mov w19, 1 - b .L626 -.L635: + b .L639 +.L648: add x3, x3, 2 cmp x3, x0 - bne .L637 - b .L657 -.L626: + bne .L650 + b .L670 +.L639: mov w0, w19 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -4231,97 +4366,113 @@ gc_write_completed: stp x19, x20, [sp,16] stp x25, x26, [sp,64] str x27, [sp,80] - add x23, x21, 784 + add x24, x21, 784 add x22, x22, 1328 -.L661: +.L674: ldrb w0, [x21,3256] adrp x19, .LANCHOR0 cmp w0, 255 - beq .L683 + beq .L704 sxtw x25, w0 lsl x0, x25, 6 - add x2, x23, x0 - ldrb w0, [x23,x0] + add x2, x24, x0 + ldrb w0, [x24,x0] ldr w1, [x2,52] strb w0, [x21,3256] - ldrh w24, [x2,48] - cbz w1, .L662 + ldrh w23, [x2,48] + cbz w1, .L675 ldr w2, [x2,40] - adrp x0, .LC86 + adrp x0, .LC88 mov w3, 1 - add x0, x0, :lo12:.LC86 + add x0, x0, :lo12:.LC88 strh w3, [x21,3216] str w2, [x21,3220] bl printk adrp x0, .LC0 mov x1, x22 - mov w2, 545 + mov w2, 625 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L662: - add x0, x19, :lo12:.LANCHOR0 - mov w20, 1 - ldrb w1, [x0,3257] - cmp w1, 3 - bne .L663 - ldr x0, [x0,608] +.L675: + add x1, x19, :lo12:.LANCHOR0 + ldrb w0, [x1,3257] + cmp w0, 3 + bne .L676 + ldr x0, [x1,608] ldrb w20, [x0,89] add w20, w20, w20, lsl 1 and w20, w20, 1023 -.L663: + b .L677 +.L676: + ldrb w0, [x1,3258] + mov w20, 1 + cbz w0, .L677 + ldrb w0, [x1,3259] + cbz w0, .L677 + ldr x0, [x1,608] + ldrb w20, [x0,89] + ubfiz w20, w20, 1, 8 +.L677: adrp x0, .LANCHOR2 - uxth x26, w24 + uxth x26, w23 ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 8, .L664 + tbz x0, 8, .L678 add x0, x19, :lo12:.LANCHOR0 - mov w1, w24 + mov w1, w23 add x2, x0, x25, lsl 6 - mov w3, w24 + mov w3, w23 ldr x4, [x0,3264] - adrp x0, .LC87 + adrp x0, .LC89 ldrb w2, [x2,785] - add x0, x0, :lo12:.LC87 + add x0, x0, :lo12:.LC89 ldrb w4, [x4,x26] bl printk -.L664: +.L678: add x0, x19, :lo12:.LANCHOR0 ldr x1, [x0,3264] add x0, x0, x25, lsl 6 ldrb w1, [x1,x26] ldrb w0, [x0,785] cmp w1, w0 - beq .L665 + beq .L679 adrp x0, .LC0 mov x1, x22 - mov w2, 552 + mov w2, 634 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L665: - add x2, x19, :lo12:.LANCHOR0 - add x1, x2, 784 +.L679: + add x1, x19, :lo12:.LANCHOR0 add x0, x1, x25, lsl 6 - ldrb w0, [x0,61] + ldrb w0, [x0,845] cmp w0, 3 - beq .L666 - ldrb w0, [x2,3257] + beq .L680 + ldrb w0, [x1,3257] cmp w0, 3 - bne .L666 - ldrb w0, [x2,3272] - cbnz w0, .L666 - ldr x3, [x2,3264] - b .L667 -.L666: + bne .L680 + ldrb w0, [x1,3272] + cbnz w0, .L680 + ldrb w0, [x1,3258] + cbz w0, .L681 + ldrb w0, [x1,3259] + cbnz w0, .L680 +.L681: + add x19, x19, :lo12:.LANCHOR0 + mov w0, 0 + add x19, x19, 784 + ldr x2, [x19,2480] + b .L682 +.L680: add x19, x19, :lo12:.LANCHOR0 mov w25, 0 mov w26, -1 add x27, x19, 784 - strh w24, [x19,3212] -.L668: + strh w23, [x19,3212] +.L683: cmp w20, w25, uxth - bls .L661 - add w1, w25, w24 + bls .L674 + add w1, w25, w23 ldr x2, [x19,3264] add w25, w25, 1 ldrb w0, [x2,x1] @@ -4333,17 +4484,17 @@ gc_write_completed: ldrb w0, [x19,2903] sub w0, w0, #1 strb w0, [x19,2903] - b .L668 -.L667: + b .L683 +.L682: cmp w20, w0, uxth - bls .L661 - add w2, w0, w24 + bls .L674 + add w1, w0, w23 add w0, w0, 1 - ldrb w2, [x3,x2] - add x2, x1, x2, lsl 6 - strb wzr, [x2,61] - b .L667 -.L683: + ldrb w1, [x2,x1] + add x1, x19, x1, lsl 6 + strb wzr, [x1,61] + b .L682 +.L704: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -4361,48 +4512,48 @@ gc_get_src_blk: ldr x1, [x0,608] ldrb w0, [x0,3273] ldrh w4, [x1,124] - cbz w4, .L685 + cbz w4, .L706 add x1, x1, 392 mov w2, 1 - b .L686 -.L685: + b .L707 +.L706: sxtw x2, w0 add x0, x1, x2, lsl 1 ldrh w5, [x0,120] mov w0, 65535 - cbz w5, .L687 + cbz w5, .L708 add x1, x1, x2, lsl 7 mov w2, w4 add x1, x1, 136 -.L686: +.L707: add x4, x1, 128 mov w5, 65535 -.L690: +.L711: ldrh w0, [x1] cmp w0, w5 - beq .L688 + beq .L709 mov w4, -1 strh w4, [x1] add x3, x3, :lo12:.LANCHOR0 - cbz w2, .L689 + cbz w2, .L710 ldr x2, [x3,608] ldrh w1, [x2,124] sub w1, w1, #1 strh w1, [x2,124] - b .L687 -.L689: + b .L708 +.L710: ldrb w1, [x3,3273] ldr x2, [x3,608] add x1, x2, x1, lsl 1 ldrh w2, [x1,120] sub w2, w2, #1 strh w2, [x1,120] - b .L687 -.L688: + b .L708 +.L709: add x1, x1, 2 cmp x1, x4 - bne .L690 -.L687: + bne .L711 +.L708: ret .size gc_get_src_blk, .-gc_get_src_blk .align 2 @@ -4417,10 +4568,10 @@ gc_free_temp_buf: str x21, [sp,32] add x2, x19, :lo12:.LANCHOR0 ldrb w3, [x2,2903] - cbz w3, .L695 + cbz w3, .L716 ldrb w3, [x2,2834] cmp w3, 1 - bhi .L695 + bhi .L716 ldrh w4, [x2,3274] mov x20, x2 ldrb w0, [x2,3276] @@ -4431,29 +4582,29 @@ gc_free_temp_buf: ldr x4, [x2,2480] cmp w0, w3 csel w3, w0, w3, ls -.L696: +.L717: cmp w1, w3 - bcs .L709 + bcs .L730 uxtw x21, w1 ldrb w0, [x4,x21] cmp w0, 255 - beq .L697 + beq .L718 sbfiz x0, x0, 6, 32 add x0, x2, x0 ldrb w5, [x0,61] - cbnz w5, .L697 + cbnz w5, .L718 str x1, [x29,56] bl buf_free adrp x0, .LANCHOR2 ldr x1, [x29,56] ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 8, .L698 + tbz x0, 8, .L719 ldr x2, [x20,3264] - adrp x0, .LC88 - add x0, x0, :lo12:.LC88 + adrp x0, .LC90 + add x0, x0, :lo12:.LC90 ldrb w2, [x2,x21] bl printk -.L698: +.L719: add x19, x19, :lo12:.LANCHOR0 mov w1, -1 ldr x0, [x19,3264] @@ -4462,13 +4613,13 @@ gc_free_temp_buf: sub w0, w0, #1 strb w0, [x19,2903] mov w0, 1 - b .L695 -.L697: + b .L716 +.L718: add w1, w1, 1 - b .L696 -.L709: + b .L717 +.L730: mov w0, 0 -.L695: +.L716: ldp x19, x20, [sp,16] ldr x21, [sp,32] ldp x29, x30, [sp], 64 @@ -4479,9 +4630,9 @@ gc_free_temp_buf: .type print_gc_debug_info, %function print_gc_debug_info: adrp x6, .LANCHOR0 - adrp x0, .LC89 + adrp x0, .LC91 add x6, x6, :lo12:.LANCHOR0 - add x0, x0, :lo12:.LC89 + add x0, x0, :lo12:.LC91 stp x29, x30, [sp, -16]! add x29, sp, 0 ldrh w1, [x6,2896] @@ -4503,23 +4654,23 @@ zftl_get_gc_node: uxth w2, w0 cmp w1, 5 add x29, sp, 0 - bne .L712 + bne .L733 adrp x0, .LANCHOR0+3280 ldr x0, [x0,#:lo12:.LANCHOR0+3280] - b .L715 -.L712: + b .L736 +.L733: cmp w1, 2 - bne .L714 + bne .L735 mov w0, w2 bl zftl_get_gc_node.part.12 - b .L716 -.L714: + b .L737 +.L735: adrp x0, .LANCHOR0+3288 ldr x0, [x0,#:lo12:.LANCHOR0+3288] -.L715: +.L736: mov w1, w2 bl _list_get_gc_head_node.isra.5 -.L716: +.L737: uxth w0, w0 ldp x29, x30, [sp], 16 ret @@ -4543,19 +4694,19 @@ gc_search_src_blk: ldr x1, [x0,608] add x1, x1, x21, sxtw 1 ldrh w19, [x1,120] - cbnz w19, .L764 - cbnz w21, .L720 - adrp x26, .LC90 + cbnz w19, .L785 + cbnz w21, .L741 + adrp x26, .LC92 strh w21, [x0,3296] mov w19, w21 mov w25, w21 uxth w23, w22 mov w27, 65535 adrp x28, .LANCHOR2 - add x26, x26, :lo12:.LC90 -.L721: + add x26, x26, :lo12:.LC92 +.L742: cmp w25, w23 - bcs .L726 + bcs .L747 add x3, x20, :lo12:.LANCHOR0 mov w1, 3 str x3, [x29,96] @@ -4571,10 +4722,10 @@ gc_search_src_blk: add w2, w2, 1 uxth w2, w2 strh w2, [x3,3296] - beq .L722 + beq .L743 ldr w0, [x28,#:lo12:.LANCHOR2] uxtw x5, w1 - tbz x0, 8, .L723 + tbz x0, 8, .L744 ldr x3, [x3,600] mov x0, x26 str x4, [x29,96] @@ -4583,40 +4734,40 @@ gc_search_src_blk: bl printk ldr x4, [x29,96] ldr x5, [x29,104] -.L723: +.L744: add x1, x20, :lo12:.LANCHOR0 ldr x0, [x1,600] ldrh w2, [x0,x5,lsl 1] ldrh w0, [x1,2878] cmp w2, w0 - bcs .L724 + bcs .L745 mov w1, 0 mov w0, w4 mov w2, w1 bl gc_add_sblk - cbz w0, .L725 + cbz w0, .L746 add w19, w19, 1 uxth w19, w19 cmp w19, w23 - bls .L725 - b .L726 -.L724: + bls .L746 + b .L747 +.L745: strh wzr, [x1,3296] - b .L726 -.L722: + b .L747 +.L743: strh wzr, [x3,3296] - b .L726 -.L725: + b .L747 +.L746: add w25, w25, 1 uxth w25, w25 - b .L721 -.L726: - tbz x24, 1, .L728 + b .L742 +.L747: + tbz x24, 1, .L749 mov w26, 0 mov w27, 65535 -.L729: +.L750: cmp w26, w23 - beq .L733 + beq .L754 add x25, x20, :lo12:.LANCHOR0 mov w1, 5 ldrh w28, [x25,3298] @@ -4626,32 +4777,32 @@ gc_search_src_blk: uxth w1, w0 strh w28, [x25,3298] cmp w1, w27 - beq .L730 + beq .L751 ubfiz x1, x1, 1, 16 ldr x2, [x25,600] ldrh w2, [x2,x1] ldrh w1, [x25,2880] cmp w2, w1 - bcs .L730 + bcs .L751 mov w1, 0 mov w2, w1 bl gc_add_sblk - cbz w0, .L732 + cbz w0, .L753 add w19, w19, 1 uxth w19, w19 cmp w19, w23 - bls .L732 - b .L735 -.L730: + bls .L753 + b .L756 +.L751: strh wzr, [x25,3298] - b .L733 -.L732: + b .L754 +.L753: add w26, w26, 1 uxth w26, w26 - b .L729 -.L733: + b .L750 +.L754: cmp w19, w23 - bcs .L735 + bcs .L756 add x0, x20, :lo12:.LANCHOR0 ldrh w1, [x0,3274] ldrb w4, [x0,3276] @@ -4660,27 +4811,27 @@ gc_search_src_blk: mul w1, w1, w4 sub w1, w1, w2, lsr 2 cmp w3, w1 - bge .L728 + bge .L749 add w2, w3, w2, lsr 3 strh w2, [x0,2880] - b .L728 -.L735: + b .L749 +.L756: add x1, x20, :lo12:.LANCHOR0 ldrh w2, [x1,2880] ldrh w0, [x1,3300] cmp w2, w0 - bls .L728 + bls .L749 sub w0, w2, w0, lsr 3 strh w0, [x1,2880] -.L728: - tbz x24, 0, .L736 +.L749: + tbz x24, 0, .L757 cmp w19, w23 - bcs .L736 + bcs .L757 mov w25, 0 mov w27, 65535 -.L737: +.L758: cmp w25, w23 - beq .L740 + beq .L761 add x28, x20, :lo12:.LANCHOR0 ldrh w26, [x28,3302] mov w0, w26 @@ -4688,57 +4839,57 @@ gc_search_src_blk: bl zftl_get_gc_node.part.12 strh w26, [x28,3302] cmp w27, w0, uxth - beq .L738 + beq .L759 mov w1, 0 mov w2, w1 bl gc_add_sblk - cbz w0, .L739 + cbz w0, .L760 add w19, w19, 1 uxth w19, w19 cmp w19, w23 - bcc .L739 - b .L742 -.L738: + bcc .L760 + b .L763 +.L759: strh wzr, [x28,3302] - b .L740 -.L739: + b .L761 +.L760: add w25, w25, 1 uxth w25, w25 - b .L737 -.L740: + b .L758 +.L761: cmp w19, w23 - bcs .L742 + bcs .L763 add x20, x20, :lo12:.LANCHOR0 ldrh w1, [x20,2878] ldrh w0, [x20,3300] cmp w1, w0 - bcs .L736 + bcs .L757 add w0, w1, w0, lsr 3 - b .L817 -.L742: + b .L838 +.L763: add x20, x20, :lo12:.LANCHOR0 ldrh w0, [x20,3300] ldrh w1, [x20,2878] cmp w1, w0, lsr 1 - bls .L736 + bls .L757 sub w0, w1, w0, lsr 3 -.L817: +.L838: strh w0, [x20,2878] - b .L736 -.L720: + b .L757 +.L741: and w1, w24, 1 strh w19, [x0,3214] strh w19, [x0,3304] str w1, [x29,104] - tbz x24, 0, .L743 + tbz x24, 0, .L764 ldrh w2, [x0,3306] ldrh w1, [x0,2852] cmp w1, w2, lsr 2 - bcc .L744 + bcc .L765 ldrh w0, [x0,2850] cmp w0, w1 - bls .L745 -.L744: + bls .L766 +.L765: add x23, x20, :lo12:.LANCHOR0 mov w19, 0 ldrh w0, [x23,2850] @@ -4749,24 +4900,24 @@ gc_search_src_blk: uxth w1, w0 mov w2, 65535 cmp w1, w2 - beq .L746 + beq .L767 ubfiz x1, x1, 1, 16 ldr x3, [x23,600] ldrh w2, [x23,3300] ldrh w1, [x3,x1] cmp w1, w2, lsr 2 - bcs .L746 + bcs .L767 mov w1, w19 mov w2, w21 strh w19, [x23,3302] bl gc_add_sblk cmp w0, w19 cset w19, ne -.L746: +.L767: mov w23, 64 mov w26, 65535 uxth w27, w22 -.L748: +.L769: add x25, x20, :lo12:.LANCHOR0 ldrh w28, [x25,3302] mov w0, w28 @@ -4774,38 +4925,38 @@ gc_search_src_blk: bl zftl_get_gc_node.part.12 strh w28, [x25,3302] cmp w26, w0, uxth - beq .L745 + beq .L766 mov w1, 0 mov w2, w21 bl gc_add_sblk - cbz w0, .L747 + cbz w0, .L768 add w19, w19, 1 uxth w19, w19 cmp w19, w27 - bcs .L745 -.L747: + bcs .L766 +.L768: sub w23, w23, #1 uxth w23, w23 - cbnz w23, .L748 -.L745: + cbnz w23, .L769 +.L766: add x0, x20, :lo12:.LANCHOR0 ldrh w2, [x0,3306] ldrh w1, [x0,2852] cmp w1, w2, lsr 3 - bhi .L765 + bhi .L786 ldrh w0, [x0,2850] add w0, w0, 8 cmp w1, w0 - bgt .L765 -.L743: - tbz x24, 1, .L751 + bgt .L786 +.L764: + tbz x24, 1, .L772 add x0, x20, :lo12:.LANCHOR0 mov w25, 64 mov w26, 0 mov w27, 65535 uxth w28, w22 strh wzr, [x0,3298] -.L756: +.L777: add x23, x20, :lo12:.LANCHOR0 mov w1, 5 ldrh w2, [x23,3298] @@ -4817,51 +4968,51 @@ gc_search_src_blk: cmp w1, w27 add w2, w2, 1 strh w2, [x23,3298] - beq .L752 + beq .L773 cmp w22, 1 - bne .L753 + bne .L774 ldrh w3, [x23,3274] ldrb w2, [x23,3276] mul w2, w2, w3 ldrh w3, [x23,3300] sub w2, w2, w3, lsr 3 strh w2, [x23,2874] -.L753: +.L774: add x2, x20, :lo12:.LANCHOR0 ubfiz x1, x1, 1, 16 ldr x3, [x2,600] ldrh w3, [x3,x1] ldrh w1, [x2,2874] cmp w3, w1 - bcs .L754 + bcs .L775 mov w1, 0 mov w2, w21 bl gc_add_sblk - cbz w0, .L755 + cbz w0, .L776 add w19, w19, 1 add w26, w26, 1 uxth w19, w19 uxth w26, w26 cmp w19, w28 - bcc .L755 - b .L752 -.L754: + bcc .L776 + b .L773 +.L775: strh wzr, [x2,3298] - b .L752 -.L755: + b .L773 +.L776: sub w0, w25, #1 uxth w25, w0 - cbnz w25, .L756 -.L752: + cbnz w25, .L777 +.L773: cmp w19, w22 - bcc .L757 - cbnz w26, .L758 + bcc .L778 + cbnz w26, .L779 add x0, x20, :lo12:.LANCHOR0 ldrh w1, [x0,2854] ldrh w0, [x0,3308] cmp w1, w0 - bls .L758 -.L757: + bls .L779 +.L778: add x0, x20, :lo12:.LANCHOR0 ldrh w1, [x0,3274] ldrb w4, [x0,3276] @@ -4871,29 +5022,29 @@ gc_search_src_blk: lsr w3, w3, 3 sub w1, w1, w3 cmp w2, w1 - bge .L751 + bge .L772 add w2, w3, w2 strh w2, [x0,2874] - b .L751 -.L758: + b .L772 +.L779: add x0, x20, :lo12:.LANCHOR0 ldrh w1, [x0,3300] ldrb w2, [x0,3276] ldrh w3, [x0,2874] mul w2, w1, w2 cmp w3, w2 - ble .L751 + ble .L772 sub w1, w3, w1, lsr 3 strh w1, [x0,2874] -.L751: +.L772: ldr w0, [x29,104] - cbz w0, .L736 + cbz w0, .L757 add x0, x20, :lo12:.LANCHOR0 mov w25, 64 mov w26, 65535 uxth w27, w22 strh wzr, [x0,3296] -.L762: +.L783: add x23, x20, :lo12:.LANCHOR0 mov w1, 3 ldrh w28, [x23,3296] @@ -4903,65 +5054,65 @@ gc_search_src_blk: uxth w1, w0 strh w28, [x23,3296] cmp w1, w26 - beq .L759 + beq .L780 ubfiz x1, x1, 1, 16 ldr x2, [x23,600] ldrh w1, [x2,x1] cmp w1, 2 - bls .L760 + bls .L781 ldrh w2, [x23,2876] cmp w2, w1 - bls .L760 + bls .L781 ldrh w2, [x23,3306] ldrh w1, [x23,2852] cmp w1, w2, lsr 1 - bls .L759 -.L760: + bls .L780 +.L781: mov w1, 0 mov w2, w21 bl gc_add_sblk - cbz w0, .L761 + cbz w0, .L782 add w19, w19, 1 uxth w19, w19 cmp w19, w27 - bcs .L759 -.L761: + bcs .L780 +.L782: sub w25, w25, #1 uxth w25, w25 - cbnz w25, .L762 -.L759: + cbnz w25, .L783 +.L780: cmp w19, w22 add x20, x20, :lo12:.LANCHOR0 - bcs .L763 + bcs .L784 ldrh w0, [x20,3300] ldrh w1, [x20,2876] cmp w1, w0, lsr 1 - bls .L736 + bls .L757 sub w0, w1, w0, lsr 3 strh w0, [x20,2876] - b .L736 -.L763: + b .L757 +.L784: ldrh w1, [x20,3300] ldrb w0, [x20,3276] ldrh w2, [x20,2876] mul w0, w1, w0 sub w0, w0, #32 cmp w2, w0 - bge .L736 + bge .L757 add w1, w2, w1, lsr 3 strh w1, [x20,2876] -.L736: +.L757: adrp x0, .LANCHOR2 ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 8, .L764 - adrp x0, .LC91 + tbz x0, 8, .L785 + adrp x0, .LC93 mov w1, w21 - add x0, x0, :lo12:.LC91 + add x0, x0, :lo12:.LC93 mov w2, w24 mov w3, w19 mov w4, w22 bl printk -.L764: +.L785: mov w0, w19 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -4970,13 +5121,13 @@ gc_search_src_blk: ldp x27, x28, [sp,80] ldp x29, x30, [sp], 112 ret -.L765: +.L786: add x0, x20, :lo12:.LANCHOR0 mov w23, 64 mov w26, 65535 uxth w27, w22 strh wzr, [x0,3296] -.L750: +.L771: add x25, x20, :lo12:.LANCHOR0 mov w1, 3 ldrh w28, [x25,3296] @@ -4985,20 +5136,20 @@ gc_search_src_blk: bl zftl_get_gc_node strh w28, [x25,3296] cmp w26, w0, uxth - beq .L743 + beq .L764 mov w1, 0 mov w2, w21 bl gc_add_sblk - cbz w0, .L749 + cbz w0, .L770 add w19, w19, 1 uxth w19, w19 cmp w19, w27 - bcs .L743 -.L749: + bcs .L764 +.L770: sub w23, w23, #1 uxth w23, w23 - cbnz w23, .L750 - b .L743 + cbnz w23, .L771 + b .L764 .size gc_search_src_blk, .-gc_search_src_blk .align 2 .global zftl_insert_free_list @@ -5013,20 +5164,20 @@ zftl_insert_free_list: add x0, x0, x1, uxth 2 ldrb w0, [x0,2] ands w0, w0, 24 - bne .L819 + bne .L840 add x0, x2, 3312 add x2, x2, 2844 - b .L822 -.L819: + b .L843 +.L840: cmp w0, 16 - bne .L821 + bne .L842 add x0, x2, 3320 add x2, x2, 2846 - b .L822 -.L821: + b .L843 +.L842: add x0, x2, 3328 add x2, x2, 2848 -.L822: +.L843: bl _insert_free_list ldp x29, x30, [sp], 16 ret @@ -5045,24 +5196,24 @@ zftl_insert_data_list: ldrb w3, [x0,2] and w3, w3, 224 cmp w3, 64 - bne .L824 + bne .L845 add x0, x2, 616 add x2, x2, 2850 - b .L827 -.L824: + b .L848 +.L845: cmp w3, 96 - bne .L826 + bne .L847 add x0, x2, 3288 add x2, x2, 2852 - b .L827 -.L826: + b .L848 +.L847: cmp w3, 160 - bne .L823 + bne .L844 add x0, x2, 3280 add x2, x2, 2854 -.L827: +.L848: bl _insert_data_list -.L823: +.L844: ldp x29, x30, [sp], 16 ret .size zftl_insert_data_list, .-zftl_insert_data_list @@ -5081,24 +5232,24 @@ zftl_gc_get_free_sblk: uxth w22, w1 ldr x0, [x23,608] ldrh w19, [x0,588] - cbnz w21, .L829 + cbnz w21, .L850 mov w0, 65535 cmp w19, w0 - beq .L829 - adrp x0, .LC92 + beq .L850 + adrp x0, .LC94 mov w1, w19 - add x0, x0, :lo12:.LC92 + add x0, x0, :lo12:.LC94 bl printk ldr x0, [x23,608] mov w1, -1 strh w1, [x0,588] - b .L830 -.L829: + b .L851 +.L850: add x0, x20, :lo12:.LANCHOR0 ldrh w3, [x0,2846] ldrh w1, [x0,2848] cmp w3, w1 - bls .L831 + bls .L852 mov w1, 0 mov x2, x0 lsr w3, w3, 3 @@ -5106,39 +5257,39 @@ zftl_gc_get_free_sblk: csel w1, w3, w1, ne add x0, x0, 3320 add x2, x2, 2846 - b .L849 -.L831: + b .L870 +.L852: lsr w1, w1, 2 - cbz w21, .L835 + cbz w21, .L856 mov w1, 7 mul w3, w3, w1 mov w1, 8 sdiv w3, w3, w1 uxth w1, w3 -.L835: +.L856: add x2, x20, :lo12:.LANCHOR0 add x0, x2, 3328 add x2, x2, 2848 -.L849: +.L870: bl _list_pop_index_node uxth w19, w0 mov w0, 65535 cmp w19, w0 - bne .L836 + bne .L857 add x5, x20, :lo12:.LANCHOR0 - adrp x0, .LC93 - add x0, x0, :lo12:.LC93 + adrp x0, .LC95 + add x0, x0, :lo12:.LC95 mov w1, w19 mov w2, w22 ldr x3, [x5,3312] ldrh w4, [x5,2844] ldrh w5, [x5,2848] bl printk -.L836: - cbz w21, .L830 +.L857: + cbz w21, .L851 adrp x0, .LANCHOR2 ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 8, .L830 + tbz x0, 8, .L851 add x20, x20, :lo12:.LANCHOR0 uxtw x6, w19 lsl x0, x6, 2 @@ -5147,9 +5298,9 @@ zftl_gc_get_free_sblk: add x2, x1, x0 ldr w4, [x1,x0] ldrh w5, [x1,x0] - adrp x0, .LC94 + adrp x0, .LC96 ldrb w3, [x2,2] - add x0, x0, :lo12:.LC94 + add x0, x0, :lo12:.LC96 ldrh w6, [x7,x6,lsl 1] mov w1, w19 ubfx x2, x3, 5, 3 @@ -5157,7 +5308,7 @@ zftl_gc_get_free_sblk: ubfx x3, x3, 3, 2 and w5, w5, 2047 bl printk -.L830: +.L851: mov w0, w19 ldr x23, [sp,48] ldp x19, x20, [sp,16] @@ -5177,65 +5328,65 @@ zftl_get_free_sblk: stp x19, x20, [sp,16] cmp w21, 5 adrp x19, .LANCHOR0 - bne .L851 + bne .L872 add x0, x19, :lo12:.LANCHOR0 ldrh w2, [x0,2846] ldrh w1, [x0,2848] cmp w2, w1 - bcc .L852 + bcc .L873 ldrh w0, [x0,2844] cmp w0, w2 - bls .L853 - cbz w1, .L853 -.L852: + bls .L874 + cbz w1, .L874 +.L873: add x2, x19, :lo12:.LANCHOR0 lsr w1, w1, 1 add x0, x2, 3328 - b .L881 -.L853: + b .L902 +.L874: add x2, x19, :lo12:.LANCHOR0 mov w1, 0 add x0, x2, 3320 add x2, x2, 2846 - b .L880 -.L851: + b .L901 +.L872: add x22, x19, :lo12:.LANCHOR0 cmp w21, 1 ldr x0, [x22,608] ldrh w20, [x0,590] - beq .L855 + beq .L876 mov w0, 65535 cmp w20, w0 - beq .L855 - adrp x0, .LC95 + beq .L876 + adrp x0, .LC97 mov w1, w20 - add x0, x0, :lo12:.LC95 + add x0, x0, :lo12:.LC97 bl printk ldr x0, [x22,608] mov w1, -1 strh w1, [x0,590] - b .L856 -.L855: + b .L877 +.L876: add x2, x19, :lo12:.LANCHOR0 ldrh w0, [x2,2844] ldrh w1, [x2,2848] cmp w0, w1 - bcc .L857 + bcc .L878 ldrh w2, [x2,2846] cmp w2, w0 - bls .L858 - cbz w1, .L858 -.L857: + bls .L879 + cbz w1, .L879 +.L878: lsr w1, w1, 1 cmp w21, 1 csel w3, w1, w3, eq add x2, x19, :lo12:.LANCHOR0 add x0, x2, 3328 mov w1, w3 -.L881: +.L902: add x2, x2, 2848 - b .L880 -.L858: + b .L901 +.L879: lsr w0, w0, 1 cmp w21, 1 csel w3, w0, w3, eq @@ -5243,23 +5394,23 @@ zftl_get_free_sblk: add x0, x2, 3312 mov w1, w3 add x2, x2, 2844 -.L880: +.L901: bl _list_pop_index_node uxth w0, w0 mov w20, w0 mov w0, 65535 cmp w20, w0 - bne .L856 + bne .L877 add x19, x19, :lo12:.LANCHOR0 - adrp x0, .LC93 - add x0, x0, :lo12:.LC93 + adrp x0, .LC95 + add x0, x0, :lo12:.LC95 mov w1, w20 mov w2, w21 ldr x3, [x19,3312] ldrh w4, [x19,2844] ldrh w5, [x19,2848] bl printk -.L856: +.L877: mov w0, w20 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -5280,24 +5431,24 @@ zftl_remove_data_node: ldrb w3, [x0,2] and w3, w3, 224 cmp w3, 64 - bne .L883 + bne .L904 add x0, x2, 616 add x2, x2, 2850 - b .L886 -.L883: + b .L907 +.L904: cmp w3, 96 - bne .L885 + bne .L906 add x0, x2, 3288 add x2, x2, 2852 - b .L886 -.L885: + b .L907 +.L906: cmp w3, 160 - bne .L882 + bne .L903 add x0, x2, 3280 add x2, x2, 2854 -.L886: +.L907: bl _list_remove_node -.L882: +.L903: ldp x29, x30, [sp], 16 ret .size zftl_remove_data_node, .-zftl_remove_data_node @@ -5314,20 +5465,20 @@ zftl_remove_free_node: add x0, x0, x1, uxth 2 ldrb w0, [x0,2] ands w0, w0, 24 - bne .L888 + bne .L909 add x0, x2, 3312 add x2, x2, 2844 - b .L891 -.L888: + b .L912 +.L909: cmp w0, 16 - bne .L890 + bne .L911 add x0, x2, 3320 add x2, x2, 2846 - b .L891 -.L890: + b .L912 +.L911: add x0, x2, 3328 add x2, x2, 2848 -.L891: +.L912: bl _list_remove_node ldp x29, x30, [sp], 16 ret @@ -5346,24 +5497,24 @@ zftl_list_update_data_list: ldrb w3, [x0,2] and w3, w3, 224 cmp w3, 64 - bne .L893 + bne .L914 add x0, x2, 616 add x2, x2, 2850 - b .L896 -.L893: + b .L917 +.L914: cmp w3, 96 - bne .L895 + bne .L916 add x0, x2, 3288 add x2, x2, 2852 - b .L896 -.L895: + b .L917 +.L916: cmp w3, 160 - bne .L892 + bne .L913 add x0, x2, 3280 add x2, x2, 2854 -.L896: +.L917: bl _list_update_data_list -.L892: +.L913: ldp x29, x30, [sp], 16 ret .size zftl_list_update_data_list, .-zftl_list_update_data_list @@ -5376,25 +5527,25 @@ print_list_info: add x29, sp, 32 stp x19, x20, [sp,48] mov x19, x0 - adrp x0, .LC96 + adrp x0, .LC98 stp x21, x22, [sp,64] stp x23, x24, [sp,80] stp x25, x26, [sp,96] - add x0, x0, :lo12:.LC96 + add x0, x0, :lo12:.LC98 ldrh w2, [x1] ldr x1, [x19] bl printk ldr x19, [x19] - cbz x19, .L897 + cbz x19, .L918 mov x22, -6148914691236517206 - adrp x23, .LC97 + adrp x23, .LC99 mov w20, 0 adrp x25, .LANCHOR0 add x22, x22, 1 - add x23, x23, :lo12:.LC97 + add x23, x23, :lo12:.LC99 mov w26, 65535 mov w24, 6 -.L900: +.L921: add x21, x25, :lo12:.LANCHOR0 ldrh w3, [x19] ldrh w4, [x19,2] @@ -5425,7 +5576,7 @@ print_list_info: bl printk ldrh w19, [x19] cmp w19, w26 - beq .L897 + beq .L918 ldr x0, [x21,528] add w20, w20, 1 umull x19, w19, w24 @@ -5433,8 +5584,8 @@ print_list_info: add x19, x0, x19 ldrh w0, [x21,3336] cmp w0, w20 - bcs .L900 -.L897: + bcs .L921 +.L918: sub sp, x29, #32 ldp x19, x20, [sp,48] ldp x21, x22, [sp,64] @@ -5483,44 +5634,44 @@ ftl_tmp_into_update: ldr x0, [x0,#:lo12:.LANCHOR0+2864] ldr w2, [x0,16] cmp w2, 2048 - bls .L903 + bls .L924 lsr w1, w2, 11 ldr w3, [x0,20] add w3, w3, w1 sub w1, w2, w1, lsl 11 str w3, [x0,20] str w1, [x0,16] -.L903: +.L924: ldr w2, [x0,24] cmp w2, 2048 - bls .L904 + bls .L925 lsr w1, w2, 11 ldr w3, [x0,28] add w3, w3, w1 sub w1, w2, w1, lsl 11 str w3, [x0,28] str w1, [x0,24] -.L904: +.L925: ldr w2, [x0,32] cmp w2, 1024 - bls .L905 + bls .L926 lsr w1, w2, 10 ldr w3, [x0,36] add w3, w3, w1 sub w1, w2, w1, lsl 10 str w3, [x0,36] str w1, [x0,32] -.L905: +.L926: ldr w2, [x0,40] cmp w2, 1024 - bls .L902 + bls .L923 lsr w1, w2, 10 ldr w3, [x0,44] add w3, w3, w1 sub w1, w2, w1, lsl 10 str w3, [x0,44] str w1, [x0,40] -.L902: +.L923: ret .size ftl_tmp_into_update, .-ftl_tmp_into_update .align 2 @@ -5536,13 +5687,13 @@ ftl_get_blk_list_in_sblk: ldrb w11, [x2,3] mov w2, 0 mov w6, w2 -.L908: +.L929: add x8, x7, :lo12:.LANCHOR0 ldrb w3, [x8,3276] cmp w6, w3 - bge .L914 + bge .L935 asr w3, w11, w6 - tbnz x3, 0, .L909 + tbnz x3, 0, .L930 ldrb w5, [x8,3338] sbfiz x10, x2, 1, 32 ldrh w3, [x8,3340] @@ -5554,28 +5705,28 @@ ftl_get_blk_list_in_sblk: strh w4, [x1,x10] ldrb w3, [x8,3338] cmp w3, 1 - bls .L910 + bls .L931 sub w3, w3, #1 and w3, w6, w3 add w3, w4, w3 strh w3, [x1,x10] -.L910: +.L931: add w2, w2, 1 -.L909: +.L930: add w6, w6, 1 - b .L908 -.L914: + b .L929 +.L935: mov w0, w2 mov w4, -1 -.L912: +.L933: add x3, x7, :lo12:.LANCHOR0 ldrb w3, [x3,3276] cmp w2, w3 - bge .L915 + bge .L936 strh w4, [x1,w2,sxtw 1] add w2, w2, 1 - b .L912 -.L915: + b .L933 +.L936: ret .size ftl_get_blk_list_in_sblk, .-ftl_get_blk_list_in_sblk .align 2 @@ -5595,7 +5746,7 @@ ftl_free_sblk: ldr x7, [x3,584] add x20, x7, x19 ldrb w2, [x20,2] - tbz x2, 3, .L918 + tbz x2, 3, .L939 ldr x6, [x3,2864] ldrh w4, [x7,x19] ldrh w10, [x3,3342] @@ -5612,14 +5763,14 @@ ftl_free_sblk: udiv w6, w8, w4 add w6, w0, w6 cmp w6, w10 - ble .L919 + ble .L940 ldrh w0, [x3,2846] ldrh w6, [x3,2854] add w6, w6, w0 ldrh w0, [x3,3308] add w0, w0, 8 cmp w6, w0 - blt .L935 + blt .L956 ldrh w0, [x3,2844] ldrh w6, [x3,2850] add w6, w6, w0 @@ -5628,13 +5779,13 @@ ftl_free_sblk: ldrh w0, [x3,3344] add w0, w0, 8 cmp w6, w0 - bge .L935 - b .L924 -.L919: + bge .L956 + b .L945 +.L940: madd w0, w0, w4, w8 ldrh w6, [x3,3346] cmp w0, w6 - ble .L921 + ble .L942 ldrh w0, [x3,2844] ldrh w6, [x3,2850] add w6, w6, w0 @@ -5643,26 +5794,26 @@ ftl_free_sblk: ldrh w0, [x3,3344] add w0, w0, 8 cmp w6, w0 - blt .L924 + blt .L945 ldrh w0, [x3,2846] ldrh w6, [x3,2854] add w6, w6, w0 ldrh w0, [x3,3308] add w0, w0, 8 cmp w6, w0 - bge .L924 -.L935: + bge .L945 +.L956: mov w0, 2 bfi w2, w0, 3, 2 - b .L933 -.L924: + b .L954 +.L945: and w2, w2, -25 -.L933: +.L954: strb w2, [x20,2] -.L921: +.L942: ldrb w0, [x20,2] ands w0, w0, 24 - bne .L925 + bne .L946 mul w4, w9, w4 ldrh w0, [x7,x19] add w4, w4, w4, lsl 1 @@ -5670,10 +5821,10 @@ ftl_free_sblk: ubfx x5, x4, 2, 9 bfi w0, w5, 0, 11 strh w0, [x7,x19] - b .L918 -.L925: + b .L939 +.L946: cmp w0, 16 - bne .L918 + bne .L939 sdiv w4, w5, w4 ldr w0, [x7,x19] add w4, w4, w4, lsl 1 @@ -5681,7 +5832,7 @@ ftl_free_sblk: ubfx x4, x4, 2, 6 bfi w0, w4, 11, 8 str w0, [x7,x19] -.L918: +.L939: mov w0, w1 str x1, [x29,56] bl zftl_remove_data_node @@ -5695,41 +5846,41 @@ ftl_free_sblk: ldr x2, [x0,600] strh wzr, [x2,x22,lsl 1] ldrb w2, [x20,2] - tbz x2, 3, .L927 + tbz x2, 3, .L948 ldr x2, [x0,608] ldrh w0, [x2,584] cmp w0, w1 - bne .L928 + bne .L949 mov w0, -1 ldrh w3, [x2,588] strh w0, [x2,584] mov w0, 65535 cmp w3, w0 - bne .L927 - adrp x0, .LC98 + bne .L948 + adrp x0, .LC100 strh w1, [x2,588] - add x0, x0, :lo12:.LC98 - b .L934 -.L928: + add x0, x0, :lo12:.LC100 + b .L955 +.L949: ldrh w0, [x2,586] cmp w0, w1 - bne .L927 + bne .L948 mov w0, -1 ldrh w3, [x2,590] strh w0, [x2,586] mov w0, 65535 cmp w3, w0 - bne .L927 - adrp x0, .LC99 + bne .L948 + adrp x0, .LC101 strh w1, [x2,590] - add x0, x0, :lo12:.LC99 -.L934: + add x0, x0, :lo12:.LC101 +.L955: bl printk - b .L916 -.L927: + b .L937 +.L948: mov w0, w1 bl zftl_insert_free_list -.L916: +.L937: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x29, x30, [sp], 64 @@ -5752,129 +5903,129 @@ gc_free_src_blk: mov w20, 0 add x24, x23, 2896 add x21, x21, 1352 -.L937: +.L958: ldrh w0, [x24,56] adrp x25, .LANCHOR0 cmp w0, w20 - bls .L975 + bls .L996 add x0, x24, x20, sxtw 1 ldrh w22, [x0,58] ldr x0, [x23,600] lsl x26, x22, 1 mov x19, x22 ldrh w2, [x0,x26] - cbz w2, .L938 - adrp x0, .LC100 + cbz w2, .L959 + adrp x0, .LC102 mov w1, w22 - add x0, x0, :lo12:.LC100 + add x0, x0, :lo12:.LC102 bl printk -.L938: +.L959: add x0, x25, :lo12:.LANCHOR0 ldr x1, [x0,600] strh wzr, [x1,x26] ldr x1, [x0,600] ldrh w1, [x1,x26] - cbnz w1, .L939 + cbnz w1, .L960 ldr x0, [x0,584] add x22, x0, x22, lsl 2 adrp x0, .LANCHOR2 ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 8, .L940 + tbz x0, 8, .L961 ldrb w2, [x22,2] - adrp x0, .LC101 - add x0, x0, :lo12:.LC101 + adrp x0, .LC103 + add x0, x0, :lo12:.LC103 mov w1, w19 ubfx x2, x2, 5, 3 bl printk -.L940: +.L961: ldrb w0, [x22,2] tst w0, 192 - beq .L953 + beq .L974 and w0, w0, 224 cmp w0, 224 - bne .L941 -.L953: + bne .L962 +.L974: adrp x0, .LC0 mov x1, x21 - mov w2, 799 + mov w2, 884 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L941: +.L962: mov w0, w19 add x25, x25, :lo12:.LANCHOR0 bl ftl_free_sblk ldr x2, [x25,608] ldrh w1, [x2,124] - cbz w1, .L943 + cbz w1, .L964 mov x0, 0 -.L945: +.L966: add x4, x2, x0, lsl 1 mov w3, w0 ldrh w4, [x4,392] cmp w4, w19 - bne .L944 + bne .L965 add x0, x2, x3, sxtw 1 mov w3, -1 strh w3, [x0,392] sub w1, w1, #1 strh w1, [x2,124] - b .L943 -.L944: + b .L964 +.L965: add x0, x0, 1 cmp x0, 64 - bne .L945 -.L943: + bne .L966 +.L964: ldrh w1, [x2,120] - cbz w1, .L946 + cbz w1, .L967 mov x0, 0 -.L948: +.L969: add x4, x2, x0, lsl 1 mov w3, w0 ldrh w4, [x4,136] cmp w4, w19 - bne .L947 + bne .L968 add x0, x2, x3, sxtw 1 mov w3, -1 strh w3, [x0,136] sub w1, w1, #1 strh w1, [x2,120] - b .L946 -.L947: + b .L967 +.L968: add x0, x0, 1 cmp x0, 64 - bne .L948 -.L946: + bne .L969 +.L967: ldrh w1, [x2,122] - cbz w1, .L949 + cbz w1, .L970 mov x0, 0 -.L951: +.L972: add x4, x2, x0, lsl 1 mov w3, w0 ldrh w4, [x4,264] cmp w4, w19 - bne .L950 + bne .L971 add x0, x2, x3, sxtw 1 mov w3, -1 strh w3, [x0,264] sub w1, w1, #1 strh w1, [x2,122] - b .L949 -.L950: + b .L970 +.L971: add x0, x0, 1 cmp x0, 64 - bne .L951 - b .L949 -.L939: + bne .L972 + b .L970 +.L960: mov w0, w19 mov w1, 1 mov w2, 0 bl gc_add_sblk -.L949: +.L970: add w20, w20, 1 uxth w20, w20 - b .L937 -.L975: + b .L958 +.L996: strh wzr, [x24,56] ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -5900,24 +6051,26 @@ ftl_erase_phy_blk: ldrh w19, [x5,3340] mov x20, x3 sub w19, w0, w19 - ldrb w0, [x5,3348] + ldrb w0, [x5,3258] asr w22, w2, w19 lsl w19, w4, w19 sub w19, w19, #1 and w19, w19, w2 sxth w19, w19 - cbz w0, .L977 - ldrh w2, [x5,3350] + cbz w0, .L998 + ldrb w0, [x5,3259] + cbnz w0, .L998 + ldrh w2, [x5,3348] cmp w1, wzr mov w0, w22 cset w1, eq mul w2, w19, w2 bl flash_erase_block_en -.L977: +.L998: add x3, x20, :lo12:.LANCHOR0 mov w1, w21 mov w0, w22 - ldrh w2, [x3,3350] + ldrh w2, [x3,3348] mul w2, w19, w2 bl flash_erase_block_en ldp x19, x20, [sp,16] @@ -5944,87 +6097,91 @@ ftl_erase_sblk: mov w19, 0 add x0, x0, x20 ldrb w25, [x0,3] -.L982: +.L1003: add x2, x23, :lo12:.LANCHOR0 - ldrb w0, [x2,3352] + ldrb w0, [x2,3350] cmp w19, w0 - bge .L993 + bge .L1014 ldrb w3, [x2,3338] mov w21, 0 - ldrh w2, [x2,3350] + ldrh w2, [x2,3348] mov w1, w21 sub w4, w3, #1 mul w6, w19, w3 mul w5, w24, w3 -.L994: +.L1015: cmp w1, w3 - bge .L1007 + bge .L1028 add w0, w1, w6 asr w0, w25, w0 - tbnz x0, 0, .L983 + tbnz x0, 0, .L1004 and w0, w1, w4 add x7, x29, 80 add w0, w5, w0 mul w0, w0, w2 str w0, [x7,w21,sxtw 2] add w21, w21, 1 -.L983: +.L1004: add w1, w1, 1 - b .L994 -.L1007: + b .L1015 +.L1028: cmp w3, 4 - bne .L1006 + bne .L1027 mov x26, 0 -.L985: +.L1006: cmp w21, w26 - ble .L988 + ble .L1009 add x2, x29, 80 mov w0, w19 mov w1, w22 ldr w2, [x2,x26,lsl 2] add x26, x26, 1 bl flash_erase_block_en - b .L985 -.L1006: + b .L1006 +.L1027: cmp w21, 2 - bne .L989 + bne .L1010 add x0, x23, :lo12:.LANCHOR0 - ldrb w0, [x0,3348] - cbz w0, .L990 + ldrb w1, [x0,3258] + cbz w1, .L1011 + ldrb w0, [x0,3259] + cbnz w0, .L1011 cmp w22, wzr ldr w2, [x29,80] ldr w3, [x29,84] mov w0, w19 cset w1, eq bl flash_erase_duplane_block -.L990: +.L1011: ldr w2, [x29,80] mov w0, w19 ldr w3, [x29,84] mov w1, w22 bl flash_erase_duplane_block - b .L988 -.L989: + b .L1009 +.L1010: cmp w21, 1 - bne .L988 + bne .L1009 add x0, x23, :lo12:.LANCHOR0 - ldrb w0, [x0,3348] - cbz w0, .L992 + ldrb w1, [x0,3258] + cbz w1, .L1013 + ldrb w0, [x0,3259] + cbnz w0, .L1013 cmp w22, wzr ldr w2, [x29,80] mov w0, w19 cset w1, eq bl flash_erase_block_en -.L992: +.L1013: ldr w2, [x29,80] mov w0, w19 mov w1, w22 bl flash_erase_block_en -.L988: +.L1009: add w19, w19, 1 - b .L982 -.L993: - cbnz w22, .L995 + b .L1003 +.L1014: + cbnz w22, .L1016 ldr x1, [x2,584] ldrh w0, [x1,x20] add w3, w0, 1 @@ -6040,10 +6197,10 @@ ftl_erase_sblk: ubfx x1, x1, 0, 11 uxth w2, w1 cmp w3, w2 - bge .L997 + bge .L1018 strh w1, [x0,96] - b .L997 -.L995: + b .L1018 +.L1016: ldr x3, [x2,584] ldr w0, [x3,x20] ubfx x1, x0, 11, 8 @@ -6059,9 +6216,9 @@ ftl_erase_sblk: ldr w1, [x1,x20] ubfx x1, x1, 11, 8 cmp w2, w1, uxtb - bcs .L997 + bcs .L1018 strh w1, [x0,98] -.L997: +.L1018: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -6083,11 +6240,11 @@ ftl_alloc_sys_blk: ldr x1, [x1,2864] ldrh w2, [x1,136] cmp w2, 63 - bls .L1009 + bls .L1030 strh wzr, [x1,136] -.L1009: +.L1030: ldrh w0, [x1,112] - cbnz w0, .L1010 + cbnz w0, .L1031 adrp x1, .LANCHOR1 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 @@ -6096,26 +6253,26 @@ ftl_alloc_sys_blk: add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L1010: +.L1031: add x0, x19, :lo12:.LANCHOR0 mov w4, 65535 ldr x1, [x0,2864] -.L1014: +.L1035: ldrh w2, [x1,136] -.L1011: +.L1032: cmp w2, 63 - bgt .L1017 + bgt .L1038 sxtw x3, w2 add x3, x3, 80 ldrh w0, [x1,x3,lsl 1] cmp w0, w4 - bne .L1016 + bne .L1037 add w2, w2, 1 - b .L1011 -.L1017: + b .L1032 +.L1038: strh wzr, [x1,136] - b .L1014 -.L1016: + b .L1035 +.L1037: mov w4, -1 strh w4, [x1,x3,lsl 1] strh w2, [x1,136] @@ -6140,12 +6297,12 @@ ftl_free_sys_blk: ldr x2, [x0,2864] ldrh w0, [x2,138] cmp w0, 63 - bls .L1019 + bls .L1040 strh wzr, [x2,138] -.L1019: +.L1040: ldrh w0, [x2,112] cmp w0, 63 - bls .L1020 + bls .L1041 adrp x1, .LANCHOR1 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 @@ -6154,20 +6311,20 @@ ftl_free_sys_blk: add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L1020: +.L1041: add x1, x19, :lo12:.LANCHOR0 mov w0, 65535 ldr x1, [x1,2864] -.L1024: +.L1045: ldrh w2, [x1,138] -.L1021: +.L1042: cmp w2, 63 - bgt .L1026 + bgt .L1047 sxtw x3, w2 add x3, x3, 80 ldrh w4, [x1,x3,lsl 1] cmp w4, w0 - bne .L1022 + bne .L1043 strh w20, [x1,x3,lsl 1] strh w2, [x1,138] ldrh w0, [x1,112] @@ -6176,12 +6333,12 @@ ftl_free_sys_blk: ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 ret -.L1022: +.L1043: add w2, w2, 1 - b .L1021 -.L1026: + b .L1042 +.L1047: strh wzr, [x1,138] - b .L1024 + b .L1045 .size ftl_free_sys_blk, .-ftl_free_sys_blk .align 2 .global ftl_info_data_recovery @@ -6195,7 +6352,7 @@ ftl_info_data_recovery: str x23, [sp,48] ldrh w2, [x0] cmp w2, w1 - beq .L1027 + beq .L1048 adrp x19, .LANCHOR0 ubfiz x20, x2, 2, 16 add x23, x19, :lo12:.LANCHOR0 @@ -6203,36 +6360,36 @@ ftl_info_data_recovery: add x22, x21, x20 ldrb w1, [x22,2] tst w1, 224 - bne .L1027 + bne .L1048 ldrb w0, [x0,4] bfi w1, w0, 5, 3 mov w0, w2 strb w1, [x22,2] bl zftl_remove_free_node ldrb w0, [x22,2] - tbz x0, 3, .L1031 + tbz x0, 3, .L1052 ldr x1, [x23,2864] ldrh w0, [x1,116] sub w0, w0, #1 strh w0, [x1,116] - b .L1032 -.L1031: + b .L1053 +.L1052: tst w0, 24 ldr x1, [x23,2864] - bne .L1033 + bne .L1054 ldrh w0, [x1,114] sub w0, w0, #1 strh w0, [x1,114] - b .L1032 -.L1033: + b .L1053 +.L1054: ldrh w0, [x1,118] sub w0, w0, #1 strh w0, [x1,118] -.L1032: +.L1053: ldrb w0, [x22,2] and w0, w0, 224 cmp w0, 160 - bne .L1034 + bne .L1055 ldr w0, [x21,x20] add x19, x19, :lo12:.LANCHOR0 ubfx x1, x0, 11, 8 @@ -6243,29 +6400,29 @@ ftl_info_data_recovery: ldrh w0, [x1,120] sub w0, w0, #1 strh w0, [x1,120] - b .L1027 -.L1034: + b .L1048 +.L1055: ldrh w1, [x21,x20] cmp w0, 64 add w2, w1, 1 bfi w1, w2, 0, 11 strh w1, [x21,x20] - bne .L1035 + bne .L1056 add x19, x19, :lo12:.LANCHOR0 ldr x1, [x19,2864] ldrh w0, [x1,122] sub w0, w0, #1 strh w0, [x1,122] - b .L1027 -.L1035: + b .L1048 +.L1056: cmp w0, 96 - bne .L1027 + bne .L1048 add x19, x19, :lo12:.LANCHOR0 ldr x1, [x19,2864] ldrh w0, [x1,124] sub w0, w0, #1 strh w0, [x1,124] -.L1027: +.L1048: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldr x23, [sp,48] @@ -6289,14 +6446,14 @@ ftl_get_ppa_from_index: ldrb w4, [x4,3276] mul w0, w0, w4 cmp w1, w0 - bge .L1037 + bge .L1058 add x3, x3, 16 - b .L1038 -.L1037: + b .L1059 +.L1058: sub w1, w1, w0 add x3, x3, 48 uxth w1, w1 -.L1038: +.L1059: ldrb w2, [x3,9] mov w0, 65535 sdiv w20, w1, w2 @@ -6304,18 +6461,18 @@ ftl_get_ppa_from_index: add x1, x3, x1, uxth 1 ldrh w21, [x1,16] cmp w21, w0 - bne .L1039 + bne .L1060 adrp x1, .LANCHOR1 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 - mov w2, 1528 + mov w2, 1580 add x1, x1, 1416 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L1039: +.L1060: add x2, x19, :lo12:.LANCHOR0 - ldrh w0, [x2,3350] + ldrh w0, [x2,3348] madd w0, w21, w0, w20 ldp x19, x20, [sp,16] ldr x21, [sp,32] @@ -6332,25 +6489,25 @@ lpa_hash_get_ppa: add x2, x1, x0, uxtb 1 stp x29, x30, [sp, -16]! add x29, sp, 0 - ldrh w2, [x2,3360] - ldr x4, [x1,3872] - ldr x5, [x1,3880] -.L1041: + ldrh w2, [x2,3352] + ldr x4, [x1,3864] + ldr x5, [x1,3872] +.L1062: cmp w2, w3 - beq .L1045 + beq .L1066 uxtw x1, w2 ldr w6, [x4,x1,lsl 2] cmp w6, w0 - bne .L1042 + bne .L1063 mov w0, w2 bl ftl_get_ppa_from_index - b .L1043 -.L1042: + b .L1064 +.L1063: ldrh w2, [x5,x1,lsl 1] - b .L1041 -.L1045: + b .L1062 +.L1066: mov w0, -1 -.L1043: +.L1064: ldp x29, x30, [sp], 16 ret .size lpa_hash_get_ppa, .-lpa_hash_get_ppa @@ -6365,70 +6522,70 @@ ftl_get_new_free_page: ldrh w1, [x0] mov w0, 65535 cmp w1, w0 - bne .L1047 + bne .L1068 adrp x1, .LANCHOR1 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 - mov w2, 1643 + mov w2, 1695 add x1, x1, 1440 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L1047: +.L1068: adrp x20, .LANCHOR0 ldrh w1, [x19,2] add x0, x20, :lo12:.LANCHOR0 ldrh w0, [x0,3300] cmp w1, w0 - bne .L1048 + bne .L1069 adrp x1, .LANCHOR1 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 - mov w2, 1644 + mov w2, 1696 add x1, x1, 1440 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L1048: +.L1069: ldrh w0, [x19,6] - cbnz w0, .L1049 + cbnz w0, .L1070 adrp x1, .LANCHOR1 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 - mov w2, 1645 + mov w2, 1697 add x1, x1, 1440 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L1049: +.L1070: ldrb w0, [x19,5] add x1, x20, :lo12:.LANCHOR0 add x0, x0, 8 ldrb w2, [x1,3276] mov w1, 65535 ldrh w0, [x19,x0,lsl 1] -.L1050: +.L1071: cmp w0, w1 - bne .L1054 + bne .L1075 ldrb w0, [x19,5] add w0, w0, 1 uxtb w0, w0 strb w0, [x19,5] cmp w0, w2 - bne .L1051 + bne .L1072 ldrh w0, [x19,2] strb wzr, [x19,5] add w0, w0, 1 strh w0, [x19,2] -.L1051: +.L1072: ldrb w0, [x19,5] add x0, x0, 8 ldrh w0, [x19,x0,lsl 1] - b .L1050 -.L1054: + b .L1071 +.L1075: add x20, x20, :lo12:.LANCHOR0 ldrh w2, [x19,2] - ldrh w1, [x20,3350] + ldrh w1, [x20,3348] ldrb w3, [x20,3276] mul w0, w0, w1 ldrh w1, [x19,6] @@ -6443,11 +6600,11 @@ ftl_get_new_free_page: uxtb w1, w1 strb w1, [x19,5] cmp w3, w1 - bne .L1053 + bne .L1074 add w2, w2, 1 strb wzr, [x19,5] strh w2, [x19,2] -.L1053: +.L1074: ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 ret @@ -6465,16 +6622,16 @@ ftl_ext_alloc_new_blk: mov w1, 65533 sub w0, w0, #1 cmp w1, w0, uxth - bcs .L1056 + bcs .L1077 adrp x1, .LANCHOR1 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 - mov w2, 1676 + mov w2, 1728 add x1, x1, 1464 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L1056: +.L1077: adrp x19, .LANCHOR0 mov w1, 0 add x19, x19, :lo12:.LANCHOR0 @@ -6497,52 +6654,52 @@ ftl_ext_alloc_new_blk: ftl_total_vpn_update: adrp x1, .LANCHOR0 add x3, x1, :lo12:.LANCHOR0 - ldrh w2, [x3,3888] - cbnz w0, .L1058 + ldrh w2, [x3,3880] + cbnz w0, .L1079 cmp w2, 4 - bhi .L1058 + bhi .L1079 add w2, w2, 1 - strh w2, [x3,3888] - b .L1057 -.L1058: + strh w2, [x3,3880] + b .L1078 +.L1079: add x0, x1, :lo12:.LANCHOR0 mov w9, 65535 - strh wzr, [x0,3888] + strh wzr, [x0,3880] ldrh w6, [x0,576] ldr x7, [x0,600] ldr x8, [x0,584] mov x0, 0 mov w2, w0 mov w3, w0 -.L1060: +.L1081: cmp w6, w0, uxth - bls .L1068 + bls .L1089 ldrh w4, [x7,x0,lsl 1] cmp w4, w9 - beq .L1061 + beq .L1082 add x5, x8, x0, lsl 2 ldrb w5, [x5,2] and w5, w5, 224 cmp w5, 160 - bne .L1062 + bne .L1083 add w2, w2, w4 - b .L1061 -.L1062: + b .L1082 +.L1083: add w3, w3, w4 -.L1061: +.L1082: add x0, x0, 1 - b .L1060 -.L1068: + b .L1081 +.L1089: add x1, x1, :lo12:.LANCHOR0 ldr x0, [x1,608] ldr x1, [x1,2864] str w3, [x0,524] str w2, [x0,528] ldrh w1, [x1,120] - cbz w1, .L1057 + cbz w1, .L1078 udiv w2, w2, w1 str w2, [x0,532] -.L1057: +.L1078: ret .size ftl_total_vpn_update, .-ftl_total_vpn_update .align 2 @@ -6568,10 +6725,10 @@ ftl_vpn_update: ldr x0, [x1,600] ldrh w2, [x0,x19] mov w0, 0 - cbnz w2, .L1071 + cbnz w2, .L1092 mov w0, 1 str w0, [x1,2884] -.L1071: +.L1092: ldr x19, [sp,16] ldp x29, x30, [sp], 32 ret @@ -6587,44 +6744,44 @@ ftl_vpn_decrement: str x19, [sp,16] cmp w1, w0 adrp x2, .LANCHOR0 - beq .L1074 + beq .L1095 add x5, x2, :lo12:.LANCHOR0 uxtw x0, w1 lsl x3, x0, 1 ldr x4, [x5,600] ldrh w19, [x4,x3] - cbnz w19, .L1075 + cbnz w19, .L1096 ldr x2, [x5,584] add x0, x2, x0, lsl 2 mov w2, w19 ldrb w3, [x0,2] - adrp x0, .LC102 - add x0, x0, :lo12:.LC102 + adrp x0, .LC104 + add x0, x0, :lo12:.LC104 ubfx x3, x3, 5, 3 bl printk - b .L1081 -.L1075: + b .L1102 +.L1096: sub w19, w19, #1 strh w19, [x4,x3] -.L1074: +.L1095: add x19, x2, :lo12:.LANCHOR0 mov w0, 0 ldrh w2, [x19,3224] cmp w2, w1 - beq .L1076 + beq .L1097 mov w0, 65535 cmp w2, w0 - bne .L1077 + bne .L1098 strh w1, [x19,3224] -.L1081: +.L1102: mov w0, 0 - b .L1076 -.L1077: + b .L1097 +.L1098: mov w0, w2 str x1, [x29,40] bl ftl_vpn_update cmp w0, wzr - ldrh w3, [x19,3890] + ldrh w3, [x19,3882] cset w0, ne ldrh w2, [x19,3224] add w3, w3, 1 @@ -6633,10 +6790,10 @@ ftl_vpn_decrement: uxth w3, w3 cmp w3, 7 csel w3, w3, wzr, ls - strh w3, [x19,3890] + strh w3, [x19,3882] add x3, x19, x3, uxth 1 strh w2, [x3,3232] -.L1076: +.L1097: ldr x19, [sp,16] ldp x29, x30, [sp], 48 ret @@ -6649,61 +6806,61 @@ lpa_hash_update_ppa: uxtb w5, w0 add x6, x3, :lo12:.LANCHOR0 uxth w2, w2 - add x4, x6, 3360 + add x4, x6, 3352 stp x29, x30, [sp, -16]! add x29, sp, 0 - ldr x8, [x6,3872] - ldr x12, [x6,3880] + ldr x8, [x6,3864] + ldr x12, [x6,3872] mov w6, 65535 ldrh w4, [x4,w5,sxtw 1] mov w11, w6 -.L1083: +.L1104: cmp w4, w11 - beq .L1087 + beq .L1108 uxtw x9, w4 uxth x7, w4 lsl x10, x9, 2 add x13, x8, x10 ldr w10, [x8,x10] cmp w10, w0 - bne .L1084 + bne .L1105 mov w4, -1 str w4, [x13] mov w4, 65535 cmp w6, w4 add x4, x3, :lo12:.LANCHOR0 - bne .L1085 - ldr x6, [x4,3880] - add x4, x4, 3360 + bne .L1106 + ldr x6, [x4,3872] + add x4, x4, 3352 ldrh w6, [x6,x7,lsl 1] strh w6, [x4,w5,sxtw 1] - b .L1086 -.L1085: - ldr x4, [x4,3880] + b .L1107 +.L1106: + ldr x4, [x4,3872] ldrh w8, [x4,x7,lsl 1] strh w8, [x4,w6,uxtw 1] -.L1086: +.L1107: add x4, x3, :lo12:.LANCHOR0 mov w6, -1 - ldr x4, [x4,3880] + ldr x4, [x4,3872] strh w6, [x4,x7,lsl 1] - b .L1087 -.L1084: + b .L1108 +.L1105: mov w6, w4 ldrh w4, [x12,x9,lsl 1] - b .L1083 -.L1087: + b .L1104 +.L1108: add x3, x3, :lo12:.LANCHOR0 uxtw x4, w2 cmn w1, #1 - ldr x6, [x3,3872] + ldr x6, [x3,3864] str w0, [x6,x4,lsl 2] - add x0, x3, 3360 + add x0, x3, 3352 ldrh w6, [x0,w5,sxtw 1] strh w2, [x0,w5,sxtw 1] - ldr x0, [x3,3880] + ldr x0, [x3,3872] strh w6, [x0,x4,lsl 1] - beq .L1089 + beq .L1110 ldrh w0, [x3,3340] mov w2, 21 mov w4, 1 @@ -6715,7 +6872,7 @@ lpa_hash_update_ppa: and w1, w2, w1 udiv w0, w1, w0 bl ftl_vpn_decrement -.L1089: +.L1110: mov w0, -1 ldp x29, x30, [sp], 16 ret @@ -6745,17 +6902,17 @@ ftl_mask_bad_block: adrp x0, .LANCHOR2 ldr w0, [x0,#:lo12:.LANCHOR2] uxth w20, w2 - tbz x0, 14, .L1094 - adrp x0, .LC103 + tbz x0, 14, .L1115 + adrp x0, .LC105 mov w1, w21 - add x0, x0, :lo12:.LC103 + add x0, x0, :lo12:.LC105 mov w2, w20 bl printk -.L1094: +.L1115: add x0, x19, :lo12:.LANCHOR0 ldrh w1, [x0,576] cmp w1, w20 - bls .L1093 + bls .L1114 ldr x0, [x0,584] add x20, x0, x20, uxth 2 mov w0, 1 @@ -6763,7 +6920,7 @@ ftl_mask_bad_block: ldrb w0, [x20,3] orr w1, w1, w0 strb w1, [x20,3] -.L1093: +.L1114: ldp x19, x20, [sp,16] ldr x21, [sp,32] ldp x29, x30, [sp], 48 @@ -6779,33 +6936,38 @@ print_ftl_debug_info: str x19, [sp,48] adrp x19, .LANCHOR0 add x19, x19, :lo12:.LANCHOR0 - ldr x7, [x19,608] - ldrh w6, [x19,2854] - ldrh w1, [x19,2844] - ldr w0, [x7,528] - str w0, [sp] + ldr x2, [x19,2864] + ldr x0, [x19,608] + ldrh w8, [x19,2854] + ldrh w1, [x2,148] + ldrh w2, [x2,146] + str w8, [sp] + ldrh w6, [x19,2850] + ldr w8, [x0,524] + str w8, [sp,8] + ldrh w7, [x19,2852] + ldr w0, [x0,528] + str w0, [sp,16] ldr w0, [x19,2840] - str w0, [sp,8] - adrp x0, .LC104 - ldrh w2, [x19,2846] - add x0, x0, :lo12:.LC104 - ldr w7, [x7,524] - ldrh w3, [x19,2848] - ldrh w4, [x19,2850] - ldrh w5, [x19,2852] + ldrh w3, [x19,2844] + ldrh w4, [x19,2846] + ldrh w5, [x19,2848] + str w0, [sp,24] + adrp x0, .LC106 + add x0, x0, :lo12:.LC106 bl printk ldr x5, [x19,2864] - adrp x0, .LC105 + adrp x0, .LC107 ldrb w3, [x19,2857] - add x0, x0, :lo12:.LC105 + add x0, x0, :lo12:.LC107 ldr w4, [x5,8] ldr w1, [x5,20] ldr w2, [x5,28] ldr w5, [x5,64] bl printk ldr x2, [x19,2864] - adrp x0, .LC106 - add x0, x0, :lo12:.LC106 + adrp x0, .LC108 + add x0, x0, :lo12:.LC108 ldr w3, [x2,16] ldr w1, [x2,52] ldr w2, [x2,60] @@ -6823,18 +6985,26 @@ print_ftl_debug_info: str w0, [sp,8] ldrh w0, [x7,98] str w0, [sp,16] - adrp x0, .LC107 - add x0, x0, :lo12:.LC107 + adrp x0, .LC109 + add x0, x0, :lo12:.LC109 ldr w2, [x7,84] ldr w7, [x7,80] bl printk + ldrh w5, [x19,2872] + adrp x0, .LC110 ldrh w1, [x19,2874] - adrp x0, .LC108 + add x0, x0, :lo12:.LC110 ldrh w2, [x19,2876] - add x0, x0, :lo12:.LC108 ldrh w3, [x19,2878] ldrh w4, [x19,2880] - ldrh w5, [x19,2872] + bl printk + ldr x4, [x19,608] + adrp x0, .LC111 + add x0, x0, :lo12:.LC111 + ldrh w1, [x4,584] + ldrh w2, [x4,586] + ldrh w3, [x4,588] + ldrh w4, [x4,590] bl printk sub sp, x29, #32 ldr x19, [sp,48] @@ -6851,47 +7021,47 @@ ftl_write_buf: stp x19, x20, [sp,16] str x21, [sp,32] mov x20, x0 - cbnz x0, .L1101 + cbnz x0, .L1122 adrp x1, .LANCHOR1 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 - mov w2, 662 + mov w2, 667 add x1, x1, 1488 add x0, x0, :lo12:.LC0 bl printk bl dump_stack bl print_ftl_debug_info mov w0, -1 - b .L1110 -.L1101: + b .L1131 +.L1122: adrp x19, .LANCHOR0 ldrb w1, [x20,56] add x0, x19, :lo12:.LANCHOR0 ldrb w0, [x0,2832] cmp w1, w0 - bls .L1106 + bls .L1127 adrp x1, .LANCHOR1 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 - mov w2, 667 + mov w2, 672 add x1, x1, 1488 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L1106: +.L1127: ldrb w0, [x20,56] - cbz w0, .L1103 + cbz w0, .L1124 add x21, x19, :lo12:.LANCHOR0 ldrb w1, [x21,2832] cmp w1, w0 - bcs .L1104 -.L1103: + bcs .L1125 +.L1124: mov x0, x20 add x19, x19, :lo12:.LANCHOR0 bl buf_free ldrb w0, [x19,2856] - b .L1110 -.L1104: + b .L1131 +.L1125: add x0, x21, 2888 mov x1, x20 bl buf_add_tail @@ -6908,7 +7078,7 @@ ftl_write_buf: add w1, w1, 1 str w1, [x0,32] mov w0, w2 -.L1110: +.L1131: ldp x19, x20, [sp,16] ldr x21, [sp,32] ldp x29, x30, [sp], 48 @@ -6925,24 +7095,24 @@ ftl_write_completed: str x25, [sp,64] stp x21, x22, [sp,32] add x19, x19, :lo12:.LANCHOR0 - adrp x21, .LC109 + adrp x21, .LC112 stp x23, x24, [sp,48] add x22, x19, 784 mov w23, 21 mov w24, 1 - add x21, x21, :lo12:.LC109 -.L1112: - ldrb w0, [x19,3892] + add x21, x21, :lo12:.LC112 +.L1133: + ldrb w0, [x19,3884] cmp w0, 255 - beq .L1119 + beq .L1140 sbfiz x0, x0, 6, 32 add x20, x22, x0 add x4, x20, 32 ldrb w0, [x22,x0] - strb w0, [x19,3892] + strb w0, [x19,3884] ldr w0, [x20,52] cmn w0, #1 - bne .L1113 + bne .L1134 ldrh w2, [x19,3340] mov x0, x21 ldr w3, [x4,8] @@ -6967,33 +7137,33 @@ ftl_write_completed: str w1, [x0,556] ldrh w1, [x0,16] cmp w1, w25 - bne .L1114 + bne .L1135 strh wzr, [x0,22] - b .L1115 -.L1114: + b .L1136 +.L1135: ldrh w1, [x0,48] cmp w1, w25 - bne .L1115 + bne .L1136 strh wzr, [x0,54] -.L1115: +.L1136: mov x0, x20 bl ftl_write_buf - b .L1112 -.L1113: + b .L1133 +.L1134: ldr w0, [x4,4] ldr w1, [x4,12] ldrh w2, [x20,48] bl lpa_hash_update_ppa ldrb w0, [x20,2] - tbz x0, 2, .L1117 + tbz x0, 2, .L1138 and w0, w0, -3 strb w0, [x20,2] - b .L1112 -.L1117: + b .L1133 +.L1138: mov x0, x20 bl buf_free - b .L1112 -.L1119: + b .L1133 +.L1140: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -7009,41 +7179,41 @@ zftl_add_read_buf: add x29, sp, 0 stp x19, x20, [sp,16] mov x20, x0 - cbnz x0, .L1121 + cbnz x0, .L1142 adrp x1, .LANCHOR1 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 - mov w2, 949 + mov w2, 954 add x1, x1, 1504 add x0, x0, :lo12:.LC0 bl printk bl dump_stack bl print_ftl_debug_info - b .L1120 -.L1121: + b .L1141 +.L1142: adrp x19, .LANCHOR0 ldrb w1, [x20,56] add x0, x19, :lo12:.LANCHOR0 ldrb w0, [x0,2832] cmp w1, w0 - bls .L1124 + bls .L1145 adrp x1, .LANCHOR1 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 - mov w2, 954 + mov w2, 959 add x1, x1, 1504 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L1124: +.L1145: add x19, x19, :lo12:.LANCHOR0 mov x1, x20 - add x0, x19, 3893 + add x0, x19, 3885 bl buf_add_tail - ldrb w0, [x19,3894] + ldrb w0, [x19,3886] add w0, w0, 1 - strb w0, [x19,3894] -.L1120: + strb w0, [x19,3886] +.L1141: ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 ret @@ -7068,13 +7238,13 @@ ftl_alloc_sblk: uxth w19, w0 mov w0, 65535 cmp w19, w0 - beq .L1127 + beq .L1148 adrp x0, .LANCHOR0+584 ldr x21, [x0,#:lo12:.LANCHOR0+584] add x21, x21, x19, uxth 2 ldrb w0, [x21,2] tst w0, 224 - beq .L1128 + beq .L1149 adrp x1, .LANCHOR1 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 @@ -7083,18 +7253,18 @@ ftl_alloc_sblk: add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L1128: +.L1149: ldrb w1, [x21,2] bfi w1, w20, 5, 3 ubfx x2, x1, 3, 2 orr w0, w22, w2 bfi w1, w0, 3, 2 strb w1, [x21,2] - b .L1134 -.L1127: - adrp x21, .LC110 + b .L1155 +.L1148: + adrp x21, .LC113 bl print_ftl_debug_info - add x21, x21, :lo12:.LC110 + add x21, x21, :lo12:.LC113 mov w1, w19 mov w2, w20 mov x0, x21 @@ -7116,7 +7286,7 @@ ftl_alloc_sblk: add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L1134: +.L1155: mov w0, w19 ldr x23, [sp,48] ldp x19, x20, [sp,16] @@ -7132,8 +7302,8 @@ sblk_init: mov w1, -1 add x0, x0, :lo12:.LANCHOR0 strb w1, [x0,2835] - strb w1, [x0,3892] - strb w1, [x0,3895] + strb w1, [x0,3884] + strb w1, [x0,3887] strb w1, [x0,3256] mov w0, 0 ret @@ -7143,24 +7313,24 @@ sblk_init: .type dump_sblk_queue, %function dump_sblk_queue: stp x29, x30, [sp, -48]! - adrp x0, .LC111 + adrp x0, .LC114 add x29, sp, 0 stp x19, x20, [sp,16] adrp x20, .LANCHOR0 str x21, [sp,32] add x20, x20, :lo12:.LANCHOR0 - add x0, x0, :lo12:.LC111 + add x0, x0, :lo12:.LC114 ldrb w1, [x20,2835] bl printk ldrb w19, [x20,2835] cmp w19, 255 - beq .L1136 + beq .L1157 add x20, x20, 784 sbfiz x19, x19, 6, 32 - adrp x21, .LC112 + adrp x21, .LC115 add x19, x20, x19 - add x21, x21, :lo12:.LC112 -.L1138: + add x21, x21, :lo12:.LC115 +.L1159: ldrb w1, [x19,1] mov x0, x21 ldrb w2, [x19,58] @@ -7168,11 +7338,11 @@ dump_sblk_queue: bl printk ldrb w19, [x19] cmp w19, 255 - beq .L1136 + beq .L1157 sbfiz x19, x19, 6, 32 add x19, x20, x19 - b .L1138 -.L1136: + b .L1159 +.L1157: ldp x19, x20, [sp,16] ldr x21, [sp,32] ldp x29, x30, [sp], 48 @@ -7188,7 +7358,7 @@ queue_lun_state: mov w0, 0 ldrb w2, [x3,2835] cmp w2, 255 - beq .L1146 + beq .L1167 ldrh w8, [x3,3340] mov w4, 21 ldrb w7, [x3,3338] @@ -7200,60 +7370,60 @@ queue_lun_state: sub w4, w4, #1 asr w5, w5, w8 uxth w7, w7 - adrp x10, .L1149 + adrp x10, .L1170 uxth w4, w4 and w5, w5, w7 and w5, w5, w4 add x3, x3, 784 - add x10, x10, :lo12:.L1149 -.L1152: + add x10, x10, :lo12:.L1170 +.L1173: add x0, x3, x2, lsl 6 ldr w6, [x0,40] ubfx x11, x6, 21, 3 cmp w11, w9 - bne .L1147 + bne .L1168 lsr w6, w6, w8 ldrb w0, [x0,58] and w6, w7, w6 and w6, w4, w6 cmp w6, w5 - bne .L1148 + bne .L1169 cmp w1, 1 - beq .L1150 - b .L1146 -.L1148: + beq .L1171 + b .L1167 +.L1169: cmp w1, 3 - bhi .L1147 + bhi .L1168 ldrb w6, [x10,w1,uxtw] - adr x11, .Lrtx1149 + adr x11, .Lrtx1170 add x6, x11, w6, sxtb #2 br x6 -.Lrtx1149: +.Lrtx1170: .section .rodata .align 0 .align 2 -.L1149: - .byte (.L1146 - .Lrtx1149) / 4 - .byte (.L1150 - .Lrtx1149) / 4 - .byte (.L1151 - .Lrtx1149) / 4 - .byte (.L1146 - .Lrtx1149) / 4 +.L1170: + .byte (.L1167 - .Lrtx1170) / 4 + .byte (.L1171 - .Lrtx1170) / 4 + .byte (.L1172 - .Lrtx1170) / 4 + .byte (.L1167 - .Lrtx1170) / 4 .text -.L1150: - sub w6, w0, #6 +.L1171: + sub w6, w0, #7 and w6, w6, -3 uxtb w6, w6 - cbz w6, .L1147 - b .L1146 -.L1151: - cmp w0, 10 - bne .L1146 -.L1147: + cbz w6, .L1168 + b .L1167 +.L1172: + cmp w0, 11 + bne .L1167 +.L1168: lsl x2, x2, 6 ldrb w2, [x3,x2] cmp w2, 255 - bne .L1152 + bne .L1173 mov w0, 0 -.L1146: +.L1167: ret .size queue_lun_state, .-queue_lun_state .align 2 @@ -7265,80 +7435,80 @@ queue_remove_completed_req: add x0, x3, :lo12:.LANCHOR0 mov w11, -1 add x4, x0, 784 - add x12, x0, 3895 - add x13, x0, 3892 + add x12, x0, 3887 + add x13, x0, 3884 ldrb w7, [x0,2835] - ldrb w9, [x0,3895] + ldrb w9, [x0,3887] ldrb w8, [x0,3256] - ldrb w10, [x0,3892] -.L1162: + ldrb w10, [x0,3884] +.L1183: cmp w7, 255 - beq .L1163 + beq .L1184 sbfiz x6, x7, 6, 32 sxtw x1, w7 add x2, x4, x6 ldrb w2, [x2,58] - sub w2, w2, #11 + sub w2, w2, #12 uxtb w2, w2 cmp w2, 1 - bls .L1164 - cbz w5, .L1161 + bls .L1185 + cbz w5, .L1182 strb w7, [x0,2835] - b .L1161 -.L1164: + b .L1182 +.L1185: lsl x5, x1, 6 ldrb w7, [x4,x6] add x2, x4, x5 strb w11, [x4,x5] ldrb w5, [x2,59] cmp w5, 1 - bne .L1167 + bne .L1188 ldrh w2, [x2,50] - cbnz w2, .L1175 + cbnz w2, .L1196 mov w2, w10 mov x5, x13 - b .L1168 -.L1167: - cbz w5, .L1185 -.L1169: + b .L1189 +.L1188: + cbz w5, .L1206 +.L1190: mov w5, 1 - b .L1162 -.L1185: + b .L1183 +.L1206: ldr w2, [x2,36] cmn w2, #1 - beq .L1169 + beq .L1190 mov w2, w9 mov x5, x12 - b .L1168 -.L1175: + b .L1189 +.L1196: mov w2, w8 add x5, x0, 3256 -.L1168: +.L1189: cmp w2, 255 - bne .L1173 + bne .L1194 add x3, x3, :lo12:.LANCHOR0 add x1, x3, x1, lsl 6 strb w7, [x3,2835] ldrb w0, [x1,785] strb w0, [x5] - b .L1161 -.L1173: + b .L1182 +.L1194: mov w5, w2 sbfiz x2, x2, 6, 32 ldrb w2, [x4,x2] cmp w2, 255 - bne .L1173 + bne .L1194 add x1, x4, x1, lsl 6 sbfiz x5, x5, 6, 32 ldrb w1, [x1,1] strb w1, [x4,x5] - b .L1169 -.L1163: - cbz w5, .L1161 + b .L1190 +.L1184: + cbz w5, .L1182 add x3, x3, :lo12:.LANCHOR0 mov w0, -1 strb w0, [x3,2835] -.L1161: +.L1182: ret .size queue_remove_completed_req, .-queue_remove_completed_req .align 2 @@ -7359,16 +7529,16 @@ pm_alloc_new_blk: ldrb w1, [x3,3276] strh w0, [x2,690] cmp w1, w0 - bls .L1187 + bls .L1208 add x0, x2, x0, sxtw 1 ldrh w1, [x0,672] mov w0, 65535 cmp w1, w0 - bne .L1188 -.L1187: - adrp x22, .LC113 - add x22, x22, :lo12:.LC113 -.L1200: + bne .L1209 +.L1208: + adrp x22, .LC116 + add x22, x22, :lo12:.LC116 +.L1221: mov w0, 1 add x20, x19, :lo12:.LANCHOR0 bl ftl_alloc_sblk @@ -7380,7 +7550,7 @@ pm_alloc_new_blk: add x1, x1, 672 bl ftl_get_blk_list_in_sblk uxth w0, w0 - cbnz w0, .L1189 + cbnz w0, .L1210 mov w1, w21 mov x0, x22 bl printk @@ -7389,23 +7559,23 @@ pm_alloc_new_blk: ldrb w2, [x1,2] orr w2, w2, -32 strb w2, [x1,2] - b .L1200 -.L1189: + b .L1221 +.L1210: ldr x1, [x20,2864] mov w0, 1 mov w2, 65535 - str w0, [x20,3896] + str w0, [x20,3888] mov x20, 0 strh wzr, [x1,690] -.L1191: +.L1212: add x3, x1, x20, lsl 1 uxth w0, w20 ldrh w3, [x3,416] cmp w3, w2 - beq .L1190 + beq .L1211 add x20, x20, 1 cmp x20, 128 - bne .L1191 + bne .L1212 adrp x0, .LC0 adrp x1, .LANCHOR3 add x1, x1, :lo12:.LANCHOR3 @@ -7414,7 +7584,7 @@ pm_alloc_new_blk: bl printk bl dump_stack mov w0, w20 -.L1190: +.L1211: add x1, x19, :lo12:.LANCHOR0 ldr x1, [x1,2864] add x0, x1, x0, sxtw 1 @@ -7422,7 +7592,7 @@ pm_alloc_new_blk: ldrh w0, [x1,688] add w0, w0, 1 strh w0, [x1,688] -.L1188: +.L1209: add x0, x19, :lo12:.LANCHOR0 ldr x1, [x0,2864] ldrh w0, [x1,690] @@ -7431,7 +7601,7 @@ pm_alloc_new_blk: mov w0, 65533 sub w1, w20, #1 cmp w0, w1, uxth - bcs .L1193 + bcs .L1214 adrp x0, .LC0 adrp x1, .LANCHOR3 add x1, x1, :lo12:.LANCHOR3 @@ -7439,7 +7609,7 @@ pm_alloc_new_blk: add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L1193: +.L1214: add x19, x19, :lo12:.LANCHOR0 mov w0, 21 ldr x1, [x19,2864] @@ -7451,17 +7621,17 @@ pm_alloc_new_blk: strh w4, [x1,694] adrp x1, .LANCHOR2 ldr w1, [x1,#:lo12:.LANCHOR2] - tbz x1, 12, .L1197 + tbz x1, 12, .L1218 mov w2, 1 mov w1, w20 lsl w2, w2, w0 - adrp x0, .LC114 - add x0, x0, :lo12:.LC114 + adrp x0, .LC117 + add x0, x0, :lo12:.LC117 sub w2, w2, #1 mov w3, w20 uxth w4, w4 bl printk -.L1197: +.L1218: mov w0, 0 ldr x23, [sp,48] ldp x19, x20, [sp,16] @@ -7480,58 +7650,58 @@ pm_select_ram_region: str x19, [sp,16] add x2, x2, :lo12:.LANCHOR0 mov x19, 0 -.L1204: - add x1, x2, 3904 +.L1225: + add x1, x2, 3896 lsl x4, x19, 4 uxth w0, w19 ldrh w4, [x4,x1] cmp w4, w3 - beq .L1203 + beq .L1224 add x19, x19, 1 cmp x19, 32 - bne .L1204 + bne .L1225 mov x0, 0 mov w3, 32768 -.L1206: +.L1227: add x2, x1, x0, lsl 4 uxth w4, w0 ldrh w2, [x2,2] - tbnz x2, 15, .L1205 + tbnz x2, 15, .L1226 cmp w2, w3 - bcs .L1205 + bcs .L1226 mov w3, w2 mov w19, w4 -.L1205: +.L1226: add x0, x0, 1 cmp x0, 32 - bne .L1206 + bne .L1227 cmp w19, 32 mov w0, w19 - bne .L1203 - adrp x0, .LANCHOR4+64 + bne .L1224 + adrp x0, .LANCHOR4+56 mov w2, -1 mov w1, 0 - ldrb w3, [x0,#:lo12:.LANCHOR4+64] + ldrb w3, [x0,#:lo12:.LANCHOR4+56] adrp x0, .LANCHOR0 add x0, x0, :lo12:.LANCHOR0 - add x0, x0, 3904 -.L1208: + add x0, x0, 3896 +.L1229: ldrh w5, [x0,2] cmp w5, w2 - bcs .L1207 + bcs .L1228 ldrh w4, [x0] cmp w4, w3 csel w2, w2, w5, eq cmp w4, w3 csel w19, w19, w1, eq -.L1207: +.L1228: add w1, w1, 1 add x0, x0, 16 uxth w1, w1 cmp w1, 32 - bne .L1208 + bne .L1229 cmp w19, 32 - bne .L1209 + bne .L1230 adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 @@ -7540,9 +7710,9 @@ pm_select_ram_region: add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L1209: +.L1230: mov w0, w19 -.L1203: +.L1224: ldr x19, [sp,16] ldp x29, x30, [sp], 32 ret @@ -7566,57 +7736,57 @@ flash_lsb_page_tbl_build: add x29, sp, 0 stp x19, x20, [sp,16] adrp x19, .LANCHOR0 - cbnz w0, .L1217 + cbnz w0, .L1238 mov x0, 0 add x2, x19, :lo12:.LANCHOR0 -.L1218: +.L1239: add x1, x2, 4 strh w0, [x1,x0,lsl 1] add x0, x0, 1 cmp x0, 256 - bne .L1218 -.L1224: + bne .L1239 +.L1245: adrp x20, .LANCHOR4 mov w1, 255 add x20, x20, :lo12:.LANCHOR4 mov w2, 1024 - add x0, x20, 68 + add x0, x20, 60 add x19, x19, :lo12:.LANCHOR0 bl ftl_memset mov x0, 0 - b .L1219 -.L1217: + b .L1240 +.L1238: cmp w0, 1 - bne .L1220 + bne .L1241 mov x0, 0 mov w4, 3 mov w5, 2 add x3, x19, :lo12:.LANCHOR0 -.L1223: +.L1244: cmp x0, 3 uxth w2, w0 mov w1, w2 - bls .L1221 + bls .L1242 ubfiz w1, w2, 1, 15 and w2, w2, 1 cmp w2, wzr csel w2, w4, w5, ne sub w1, w1, w2 uxth w1, w1 -.L1221: +.L1242: add x2, x3, 4 strh w1, [x2,x0,lsl 1] add x0, x0, 1 cmp x0, 256 - bne .L1223 - b .L1224 -.L1220: + bne .L1244 + b .L1245 +.L1241: cmp w0, 2 - bne .L1225 + bne .L1246 mov w1, 65535 mov x0, 0 add x4, x19, :lo12:.LANCHOR0 -.L1227: +.L1248: add x3, x4, 4 cmp x0, 1 uxth w2, w0 @@ -7626,36 +7796,36 @@ flash_lsb_page_tbl_build: add x0, x0, 1 cmp x0, 256 uxth w1, w1 - bne .L1227 - b .L1224 -.L1225: + bne .L1248 + b .L1245 +.L1246: cmp w0, 3 - bne .L1228 + bne .L1249 mov x0, 0 mov w4, 5 mov w5, 4 add x3, x19, :lo12:.LANCHOR0 -.L1231: +.L1252: cmp x0, 5 uxth w2, w0 mov w1, w2 - bls .L1229 + bls .L1250 ubfiz w1, w2, 1, 15 and w2, w2, 1 cmp w2, wzr csel w2, w4, w5, ne sub w1, w1, w2 uxth w1, w1 -.L1229: +.L1250: add x2, x3, 4 strh w1, [x2,x0,lsl 1] add x0, x0, 1 cmp x0, 256 - bne .L1231 - b .L1224 -.L1228: + bne .L1252 + b .L1245 +.L1249: cmp w0, 4 - bne .L1232 + bne .L1253 add x2, x19, :lo12:.LANCHOR0 mov w5, 7 add x1, x2, 4 @@ -7675,7 +7845,7 @@ flash_lsb_page_tbl_build: strh w0, [x1,14] mov w0, 8 strh w2, [x1,6] -.L1234: +.L1255: and w3, w0, 1 ubfiz w2, w0, 1, 15 add w0, w0, 1 @@ -7686,48 +7856,67 @@ flash_lsb_page_tbl_build: sub w2, w2, w3 cmp w0, 256 strh w2, [x1,14] - bne .L1234 - b .L1224 -.L1232: + bne .L1255 + b .L1245 +.L1253: cmp w0, 5 - bne .L1235 + bne .L1256 mov x0, 0 add x2, x19, :lo12:.LANCHOR0 -.L1236: +.L1257: add x1, x2, 4 strh w0, [x1,x0,lsl 1] add x0, x0, 1 cmp x0, 16 - bne .L1236 + bne .L1257 mov x0, 0 -.L1237: +.L1258: add x2, x1, x0 add w3, w0, 16 add x0, x0, 2 cmp x0, 480 strh w3, [x2,32] - bne .L1237 - b .L1224 -.L1235: + bne .L1258 + b .L1245 +.L1256: cmp w0, 8 - bne .L1224 + bne .L1259 mov x0, 0 add x2, x19, :lo12:.LANCHOR0 -.L1238: +.L1260: add x1, x2, 4 strh w0, [x0,x1] add x0, x0, 2 cmp x0, 512 - bne .L1238 - b .L1224 -.L1219: + bne .L1260 + b .L1245 +.L1259: + cmp w0, 9 + bne .L1245 + add x0, x19, :lo12:.LANCHOR0 + add x1, x0, 4 + strh wzr, [x0,4] + mov w0, 1 + strh w0, [x1,2] + mov w0, 2 + strh w0, [x1,4] + mov x0, 0 +.L1261: + add x2, x1, x0 + add w3, w0, 3 + add x0, x0, 2 + cmp x0, 506 + strh w3, [x2,6] + bne .L1261 + b .L1245 +.L1240: add x1, x19, 4 - add x2, x20, 68 + add x2, x20, 60 ldrh w1, [x0,x1] add x0, x0, 2 cmp x0, 512 strh w1, [x2,w1,sxtw 1] - bne .L1219 + bne .L1240 ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 ret @@ -7745,14 +7934,14 @@ flash_die_info_init: ldr w0, [x19,#:lo12:.LANCHOR2] stp x25, x26, [sp,64] stp x27, x28, [sp,80] - tbz x0, 12, .L1255 + tbz x0, 12, .L1279 adrp x1, .LANCHOR3 adrp x0, .LC4 add x1, x1, :lo12:.LANCHOR3 add x0, x0, :lo12:.LC4 add x1, x1, 48 bl printk -.L1255: +.L1279: add x24, x19, :lo12:.LANCHOR2 adrp x21, .LANCHOR0 add x20, x21, :lo12:.LANCHOR0 @@ -7770,23 +7959,23 @@ flash_die_info_init: strb wzr, [x20,633] sdiv w0, w0, w1 mov w1, 0 - strh w0, [x25,1092] + strh w0, [x25,1084] add x0, x20, 736 bl ftl_memset - add x0, x25, 1096 + add x0, x25, 1088 mov w1, 0 mov w2, 32 bl ftl_memset -.L1257: +.L1281: add x0, x20, 744 ldrb w2, [x24,8] add x1, x28, x23, lsl 3 strb w26, [x23,x0] mov x0, x27 bl flash_mem_cmp8 - cbnz w0, .L1256 + cbnz w0, .L1280 ldrb w1, [x20,633] - add x2, x25, 1096 + add x2, x25, 1088 str w0, [x2,w1,sxtw 2] add w0, w1, 1 strb w0, [x20,633] @@ -7794,16 +7983,16 @@ flash_die_info_init: add x1, x20, x1, sxtw strb w0, [x1,736] bl zftl_flash_enter_slc_mode -.L1256: +.L1280: add x23, x23, 1 cmp x23, 4 - bne .L1257 + bne .L1281 add x0, x19, :lo12:.LANCHOR2 add x1, x0, 8 ldrb w2, [x1,8] cmp w2, 2 - beq .L1258 -.L1262: + beq .L1282 +.L1286: add x19, x19, :lo12:.LANCHOR2 add x21, x21, :lo12:.LANCHOR0 add x22, x22, :lo12:.LANCHOR4 @@ -7816,11 +8005,11 @@ flash_die_info_init: ldrh w1, [x19,22] ldp x19, x20, [sp,16] mul w0, w0, w1 - strh w0, [x22,1128] + strh w0, [x22,1120] ldp x21, x22, [sp,32] ldp x29, x30, [sp], 112 ret -.L1258: +.L1282: add x23, x21, :lo12:.LANCHOR0 ldrh w20, [x1,14] ldrb w26, [x0,8] @@ -7835,7 +8024,7 @@ flash_die_info_init: ldrb w2, [x1,13] mul w20, w20, w2 lsl w28, w20, 1 -.L1261: +.L1285: add x1, x3, x24, lsl 3 mov x0, x25 mov w2, w26 @@ -7844,9 +8033,9 @@ flash_die_info_init: bl flash_mem_cmp8 ldr x3, [x29,104] ldr x4, [x29,96] - cbnz w0, .L1259 + cbnz w0, .L1283 ldrb w0, [x23,633] - add x1, x4, 1096 + add x1, x4, 1088 cmp w27, wzr csel w2, w20, w28, eq str w2, [x1,w0,sxtw 2] @@ -7854,11 +8043,11 @@ flash_die_info_init: add x0, x23, x0, sxtw strb w1, [x23,633] strb w24, [x0,736] -.L1259: +.L1283: add x24, x24, 1 cmp x24, 4 - bne .L1261 - b .L1262 + bne .L1285 + b .L1286 .size flash_die_info_init, .-flash_die_info_init .align 2 .global lpa_hash_init @@ -7871,13 +8060,13 @@ lpa_hash_init: str x19, [sp,16] adrp x19, .LANCHOR0 add x19, x19, :lo12:.LANCHOR0 - add x0, x19, 3360 + add x0, x19, 3352 bl ftl_memset ldrh w0, [x19,3300] mov w1, 255 ldrb w2, [x19,3276] mul w2, w0, w2 - ldr x0, [x19,3880] + ldr x0, [x19,3872] lsl w2, w2, 2 bl ftl_memset ldr x19, [sp,16] @@ -7893,52 +8082,52 @@ lpa_rebuild_hash: add x29, sp, 0 ldr w0, [x0,#:lo12:.LANCHOR2] str x19, [sp,16] - tbz x0, 12, .L1273 + tbz x0, 12, .L1297 adrp x1, .LANCHOR3 - adrp x0, .LC115 + adrp x0, .LC118 add x1, x1, :lo12:.LANCHOR3 - add x0, x0, :lo12:.LC115 + add x0, x0, :lo12:.LC118 add x1, x1, 72 - mov w2, 222 + mov w2, 224 mov w3, 0 bl printk -.L1273: +.L1297: adrp x19, .LANCHOR0 mov w1, 255 add x19, x19, :lo12:.LANCHOR0 mov w2, 512 - add x0, x19, 3360 + add x0, x19, 3352 bl ftl_memset ldrh w0, [x19,3300] mov w1, 255 ldrb w2, [x19,3276] mul w2, w0, w2 - ldr x0, [x19,3880] + ldr x0, [x19,3872] lsl w2, w2, 2 bl ftl_memset mov w0, 0 -.L1274: +.L1298: ldrh w1, [x19,3300] ldrb w2, [x19,3276] mul w1, w1, w2 cmp w0, w1, lsl 1 - bge .L1283 + bge .L1307 uxtw x2, w0 - ldr x1, [x19,3872] + ldr x1, [x19,3864] ldr w1, [x1,x2,lsl 2] cmn w1, #1 - beq .L1275 + beq .L1299 uxtb w1, w1 - add x3, x19, 3360 + add x3, x19, 3352 ldrh w4, [x3,w1,sxtw 1] strh w0, [x3,w1,sxtw 1] - ldr x1, [x19,3880] + ldr x1, [x19,3872] strh w4, [x1,x2,lsl 1] -.L1275: +.L1299: add w0, w0, 1 uxth w0, w0 - b .L1274 -.L1283: + b .L1298 +.L1307: ldr x19, [sp,16] ldp x29, x30, [sp], 32 ret @@ -7977,9 +8166,9 @@ zftl_read_flash_info: strb w1, [x19,9] mov x1, 0 strb w2, [x19,8] -.L1285: +.L1309: cmp w4, w1, uxtb - bls .L1287 + bls .L1311 add x2, x0, 736 ldrb w3, [x19,10] ldrb w2, [x1,x2] @@ -7987,8 +8176,8 @@ zftl_read_flash_info: lsl w2, w5, w2 orr w2, w2, w3 strb w2, [x19,10] - b .L1285 -.L1287: + b .L1309 +.L1311: ldr x19, [sp,16] ldp x29, x30, [sp], 32 ret @@ -8010,8 +8199,8 @@ gc_init: add x21, x19, 2896 mov x0, x21 strb wzr, [x19,3273] - strb wzr, [x20,1130] - str wzr, [x20,1132] + strb wzr, [x20,1122] + str wzr, [x20,1124] strh wzr, [x19,3304] bl ftl_memset ldrh w1, [x19,3300] @@ -8038,12 +8227,12 @@ gc_init: str xzr, [x19,2904] bl ftl_malloc ldrb w1, [x19,3276] - str x0, [x20,1136] + str x0, [x20,1128] ldrh w0, [x19,3274] mul w0, w0, w1 lsl w0, w0, 2 bl ftl_malloc - str x0, [x20,1144] + str x0, [x20,1136] ldrh w1, [x19,3274] ldrb w0, [x19,3276] mul w0, w1, w0 @@ -8060,7 +8249,7 @@ gc_init: mul w0, w0, w1 lsl w0, w0, 2 bl ftl_malloc - str x0, [x20,1152] + str x0, [x20,1144] ldrh w0, [x19,3306] ldr x21, [sp,32] lsr w0, w0, 2 @@ -8086,9 +8275,9 @@ gc_static_wearleveling: ldr w1, [x0,32] mov w0, 10240 cmp w1, w0 - bls .L1290 + bls .L1314 bl ftl_tmp_into_update -.L1290: +.L1314: add x3, x19, :lo12:.LANCHOR0 ldr x0, [x3,608] ldr w1, [x0,568] @@ -8096,18 +8285,18 @@ gc_static_wearleveling: add w1, w1, 860160 add w1, w1, 3840 cmp w2, w1 - bhi .L1291 + bhi .L1315 ldr x3, [x3,2864] ldr w1, [x0,572] ldr w3, [x3,36] add w1, w1, 32 cmp w3, w1 - bls .L1341 -.L1291: + bls .L1365 +.L1315: add x1, x19, :lo12:.LANCHOR0 mov w22, 0 mov w20, 65535 - adrp x8, .LC116 + adrp x8, .LC119 mov w28, w22 str w22, [x29,136] ldr x1, [x1,2864] @@ -8122,13 +8311,13 @@ gc_static_wearleveling: mov w9, w20 str w2, [x0,568] adrp x10, .LANCHOR2 - add x8, x8, :lo12:.LC116 + add x8, x8, :lo12:.LC119 ldrh w23, [x1,134] -.L1293: +.L1317: add x4, x19, :lo12:.LANCHOR0 ldrh w0, [x4,576] cmp w0, w23 - bls .L1402 + bls .L1426 uxtw x7, w23 ldr x0, [x4,584] lsl x1, x7, 2 @@ -8136,70 +8325,70 @@ gc_static_wearleveling: ldrb w2, [x6,2] and w3, w2, 224 cmp w3, 224 - beq .L1294 - tbz x2, 3, .L1295 + beq .L1318 + tbz x2, 3, .L1319 ldrh w3, [x0,x1] ldr w2, [x0,x1] and w3, w3, 2047 ubfx x2, x2, 11, 8 - b .L1296 -.L1295: + b .L1320 +.L1319: tst w2, 24 - bne .L1297 + bne .L1321 ldrh w3, [x0,x1] mov w2, 65535 and w3, w3, 2047 - b .L1296 -.L1297: + b .L1320 +.L1321: ldr w2, [x0,x1] mov w3, 65535 ubfx x2, x2, 11, 8 - b .L1298 -.L1296: + b .L1322 +.L1320: ldr w4, [x29,136] add w26, w26, 1 cmp w20, w3 add w4, w4, w3 str w4, [x29,136] uxth w26, w26 - bls .L1340 + bls .L1364 add x4, x19, :lo12:.LANCHOR0 mov w20, w3 ldr x4, [x4,608] strh w23, [x4,586] -.L1340: +.L1364: cmp w25, w3 - bcs .L1299 + bcs .L1323 mov w22, w23 mov w25, w3 -.L1299: +.L1323: cmp w2, w9 - beq .L1300 -.L1298: + beq .L1324 +.L1322: ldr w4, [x29,140] add w27, w27, 1 cmp w21, w2 add w4, w4, w2 str w4, [x29,140] uxth w27, w27 - bls .L1301 + bls .L1325 add x4, x19, :lo12:.LANCHOR0 mov w21, w2 ldr x4, [x4,608] strh w23, [x4,584] -.L1301: +.L1325: cmp w24, w2 - bcs .L1300 + bcs .L1324 mov w28, w23 mov w24, w2 -.L1300: +.L1324: cmp w3, 9 - bls .L1343 + bls .L1367 cmp w2, 9 - bhi .L1294 -.L1343: + bhi .L1318 +.L1367: ldr w2, [x10,#:lo12:.LANCHOR2] - tbz x2, 8, .L1294 + tbz x2, 8, .L1318 ldrh w2, [x0,x1] ldr w3, [x0,x1] add x0, x19, :lo12:.LANCHOR0 @@ -8220,11 +8409,11 @@ gc_static_wearleveling: ldr x10, [x29,112] ldr x9, [x29,120] ldr x8, [x29,128] -.L1294: +.L1318: add w23, w23, 1 uxth w23, w23 - b .L1293 -.L1402: + b .L1317 +.L1426: ldr x0, [x4,608] mov w1, 255 mov w2, 128 @@ -8241,29 +8430,29 @@ gc_static_wearleveling: lsl x0, x7, 2 mov x1, x7 add x8, x3, x0 - tbz x2, 10, .L1304 + tbz x2, 10, .L1328 ldr x9, [x4,600] ldrh w2, [x3,x0] ldrb w5, [x8,2] ldr w3, [x3,x0] - adrp x0, .LC117 + adrp x0, .LC120 ldrb w6, [x8,3] ubfx x4, x5, 3, 2 ldrh w7, [x9,x7,lsl 1] - add x0, x0, :lo12:.LC117 + add x0, x0, :lo12:.LC120 and w2, w2, 2047 ubfx x3, x3, 11, 8 ubfx x5, x5, 5, 3 str x8, [x29,128] bl printk ldr x8, [x29,128] -.L1304: +.L1328: ldrb w0, [x8,2] - tbz x0, 3, .L1305 + tbz x0, 3, .L1329 ldrb w0, [x8,2] and w1, w0, 192 cmp w1, 64 - bne .L1306 + bne .L1330 add x3, x19, :lo12:.LANCHOR0 mov w1, 0 mov w2, 1 @@ -8274,21 +8463,21 @@ gc_static_wearleveling: ldr x3, [x29,128] mov w0, 1 strh w0, [x3,3214] - b .L1305 -.L1306: + b .L1329 +.L1330: tst w0, 224 - bne .L1305 + bne .L1329 add x2, x19, :lo12:.LANCHOR0 mov w0, 65535 ldr x1, [x2,608] ldrh w3, [x1,590] cmp w3, w0 - bne .L1305 + bne .L1329 ldrh w0, [x1,586] ldrh w1, [x1,588] str x2, [x29,128] cmp w1, w0 - beq .L1305 + beq .L1329 bl zftl_remove_free_node ldr x2, [x29,128] ldr x0, [x2,608] @@ -8296,7 +8485,7 @@ gc_static_wearleveling: strh w1, [x0,590] mov w1, -1 strh w1, [x0,586] -.L1305: +.L1329: add x0, x19, :lo12:.LANCHOR0 ldr w2, [x23,#:lo12:.LANCHOR2] ldr x1, [x0,608] @@ -8305,11 +8494,11 @@ gc_static_wearleveling: lsl x3, x7, 2 mov x1, x7 add x8, x4, x3 - tbz x2, 10, .L1307 + tbz x2, 10, .L1331 ldr x9, [x0,600] - adrp x0, .LC118 + adrp x0, .LC121 ldrh w2, [x4,x3] - add x0, x0, :lo12:.LC118 + add x0, x0, :lo12:.LC121 ldrb w5, [x8,2] ldr w3, [x4,x3] and w2, w2, 2047 @@ -8321,13 +8510,13 @@ gc_static_wearleveling: str x8, [x29,128] bl printk ldr x8, [x29,128] -.L1307: +.L1331: ldrb w0, [x8,2] - tbz x0, 3, .L1308 + tbz x0, 3, .L1332 ldrb w0, [x8,2] and w1, w0, 192 cmp w1, 64 - bne .L1309 + bne .L1333 add x3, x19, :lo12:.LANCHOR0 mov w1, 0 mov w2, 1 @@ -8338,21 +8527,21 @@ gc_static_wearleveling: ldr x3, [x29,128] mov w0, 1 strh w0, [x3,3214] - b .L1308 -.L1309: + b .L1332 +.L1333: tst w0, 224 - bne .L1308 + bne .L1332 add x2, x19, :lo12:.LANCHOR0 mov w0, 65535 ldr x1, [x2,608] ldrh w3, [x1,588] cmp w3, w0 - bne .L1308 + bne .L1332 ldrh w0, [x1,584] ldrh w1, [x1,590] str x2, [x29,128] cmp w1, w0 - beq .L1308 + beq .L1332 bl zftl_remove_free_node ldr x2, [x29,128] ldr x0, [x2,608] @@ -8360,11 +8549,11 @@ gc_static_wearleveling: strh w1, [x0,588] mov w1, -1 strh w1, [x0,584] -.L1308: +.L1332: add x4, x19, :lo12:.LANCHOR0 ldr w0, [x23,#:lo12:.LANCHOR2] ldr x1, [x4,584] - tbz x0, 10, .L1310 + tbz x0, 10, .L1334 uxtw x7, w22 ldr x8, [x4,600] lsl x0, x7, 2 @@ -8372,9 +8561,9 @@ gc_static_wearleveling: ldrh w7, [x8,x7,lsl 1] ldrh w2, [x1,x0] ldr w3, [x1,x0] - adrp x0, .LC119 + adrp x0, .LC122 ldrb w5, [x6,2] - add x0, x0, :lo12:.LC119 + add x0, x0, :lo12:.LC122 ldrb w6, [x6,3] mov w1, w22 ubfx x4, x5, 3, 2 @@ -8382,11 +8571,11 @@ gc_static_wearleveling: ubfx x3, x3, 11, 8 ubfx x5, x5, 5, 3 bl printk -.L1310: +.L1334: add x4, x19, :lo12:.LANCHOR0 ldr w0, [x23,#:lo12:.LANCHOR2] ldr x1, [x4,584] - tbz x0, 10, .L1311 + tbz x0, 10, .L1335 uxtw x7, w28 ldr x8, [x4,600] lsl x0, x7, 2 @@ -8394,9 +8583,9 @@ gc_static_wearleveling: ldrh w7, [x8,x7,lsl 1] ldrh w2, [x1,x0] ldr w3, [x1,x0] - adrp x0, .LC120 + adrp x0, .LC123 ldrb w5, [x6,2] - add x0, x0, :lo12:.LC120 + add x0, x0, :lo12:.LC123 ldrb w6, [x6,3] mov w1, w28 ubfx x4, x5, 3, 2 @@ -8404,7 +8593,7 @@ gc_static_wearleveling: ubfx x3, x3, 11, 8 ubfx x5, x5, 5, 3 bl printk -.L1311: +.L1335: ldr w1, [x29,136] add x0, x19, :lo12:.LANCHOR0 udiv w3, w1, w26 @@ -8418,41 +8607,41 @@ gc_static_wearleveling: strh w3, [x0,88] strh w4, [x0,90] ldr w0, [x23,#:lo12:.LANCHOR2] - tbz x0, 10, .L1312 - adrp x0, .LC121 + tbz x0, 10, .L1336 + adrp x0, .LC124 mov w1, w26 - add x0, x0, :lo12:.LC121 + add x0, x0, :lo12:.LC124 mov w2, w27 uxth w3, w3 uxth w4, w4 bl printk -.L1312: +.L1336: ldr w0, [x23,#:lo12:.LANCHOR2] adrp x28, .LANCHOR4 - tbz x0, 10, .L1313 + tbz x0, 10, .L1337 add x6, x28, :lo12:.LANCHOR4 - adrp x0, .LC122 - add x0, x0, :lo12:.LC122 + adrp x0, .LC125 + add x0, x0, :lo12:.LC125 mov w1, w20 mov w2, w21 mov w3, w25 - ldrh w5, [x6,1160] + ldrh w5, [x6,1152] mov w4, w24 - ldrh w6, [x6,1162] + ldrh w6, [x6,1154] bl printk -.L1313: +.L1337: add x1, x28, :lo12:.LANCHOR4 sub w0, w24, w21 str w0, [x29,140] - ldrh w0, [x1,1162] + ldrh w0, [x1,1154] ldr w2, [x29,140] cmp w2, w0 - bgt .L1314 - ldrh w1, [x1,1160] + bgt .L1338 + ldrh w1, [x1,1152] sub w0, w25, w20 cmp w0, w1 - ble .L1342 -.L1314: + ble .L1366 +.L1338: add x0, x19, :lo12:.LANCHOR0 mov w26, 0 mov w22, w26 @@ -8462,17 +8651,17 @@ gc_static_wearleveling: ldrh w27, [x0,134] sub w0, w25, w20 str w0, [x29,136] - adrp x0, .LC124 - add x0, x0, :lo12:.LC124 - adrp x25, .LC123 + adrp x0, .LC127 + add x0, x0, :lo12:.LC127 + adrp x25, .LC126 str x0, [x29,128] - add x0, x25, :lo12:.LC123 + add x0, x25, :lo12:.LC126 str x0, [x29,120] -.L1316: +.L1340: add x1, x19, :lo12:.LANCHOR0 ldrh w0, [x1,576] cmp w27, w0 - bcs .L1325 + bcs .L1349 add w7, w24, 1 ldr x4, [x1,584] uxth w24, w7 @@ -8484,31 +8673,31 @@ gc_static_wearleveling: ldrb w0, [x0,2] and w2, w0, 224 cmp w2, 224 - beq .L1318 + beq .L1342 tst w0, 192 - beq .L1318 + beq .L1342 ubfx x0, x0, 3, 2 cmp w2, 160 and w1, w0, 1 - tbnz x0, 0, .L1400 + tbnz x0, 0, .L1424 cmp w0, 2 -.L1400: +.L1424: add x0, x28, :lo12:.LANCHOR4 - bne .L1321 - ldrh w0, [x0,1162] + bne .L1345 + ldrh w0, [x0,1154] ldr w2, [x29,140] cmp w2, w0 - ble .L1322 + ble .L1346 ldr w0, [x4,x3] ubfx x0, x0, 11, 8 cmp w0, w21 - bls .L1323 - cbz w1, .L1322 + bls .L1347 + cbz w1, .L1346 ldrh w0, [x4,x3] and w0, w0, 2047 cmp w0, w20 - bgt .L1322 -.L1323: + bgt .L1346 +.L1347: mov w1, 0 mov w0, w24 mov w2, 1 @@ -8523,7 +8712,7 @@ gc_static_wearleveling: ldr x4, [x29,104] strh w1, [x0,3214] ldr w1, [x23,#:lo12:.LANCHOR2] - tbz x1, 10, .L1322 + tbz x1, 10, .L1346 ldr x1, [x0,584] ldr x10, [x0,600] add x1, x1, x3 @@ -8531,24 +8720,24 @@ gc_static_wearleveling: ldr w6, [x4,x3] ldr x0, [x29,120] ldrb w2, [x1,2] - b .L1401 -.L1321: - ldrh w0, [x0,1160] + b .L1425 +.L1345: + ldrh w0, [x0,1152] ldr w2, [x29,136] cmp w2, w0 - ble .L1322 + ble .L1346 ldrh w0, [x4,x3] add w2, w20, 8 and w0, w0, 2047 cmp w0, w2 - ble .L1324 - cbz w1, .L1322 + ble .L1348 + cbz w1, .L1346 ldr w0, [x4,x3] add w1, w21, 4 ubfx x0, x0, 11, 8 cmp w0, w1 - bgt .L1322 -.L1324: + bgt .L1346 +.L1348: mov w1, 0 mov w0, w24 mov w2, 1 @@ -8563,7 +8752,7 @@ gc_static_wearleveling: ldr x4, [x29,104] strh w1, [x0,3214] ldr w1, [x23,#:lo12:.LANCHOR2] - tbz x1, 10, .L1322 + tbz x1, 10, .L1346 ldr x1, [x0,584] ldr x10, [x0,600] add x1, x1, x3 @@ -8571,7 +8760,7 @@ gc_static_wearleveling: ldr w6, [x4,x3] ldr x0, [x29,128] ldrb w2, [x1,2] -.L1401: +.L1425: ldrh w3, [x10,x25,lsl 1] mov w1, w24 ldrh w4, [x9,56] @@ -8579,122 +8768,122 @@ gc_static_wearleveling: and w5, w5, 2047 ubfx x6, x6, 11, 8 bl printk -.L1322: +.L1346: cmp w26, 4 - bhi .L1325 + bhi .L1349 cmp w22, 4 - bhi .L1325 -.L1318: + bhi .L1349 +.L1342: add w27, w27, 1 uxth w27, w27 - b .L1316 -.L1325: + b .L1340 +.L1349: add x0, x19, :lo12:.LANCHOR0 ldr x0, [x0,608] str w24, [x0,580] - b .L1315 -.L1342: + b .L1339 +.L1366: mov w26, 0 mov w22, w26 -.L1315: - cbz w21, .L1328 +.L1339: + cbz w21, .L1352 add x0, x19, :lo12:.LANCHOR0 ldr x0, [x0,2864] ldrh w0, [x0,134] -.L1329: +.L1353: add x1, x19, :lo12:.LANCHOR0 ldrh w2, [x1,576] cmp w2, w0 - bls .L1403 + bls .L1427 ubfiz x3, x0, 2, 16 ldr x4, [x1,584] add x5, x4, x3 ldr w1, [x4,x3] ubfx x2, x1, 11, 8 cmp w2, w21 - bcc .L1330 + bcc .L1354 ldrb w5, [x5,2] tst w5, 24 - beq .L1330 + beq .L1354 sub w2, w2, w21 bfi w1, w2, 11, 8 str w1, [x4,x3] -.L1330: +.L1354: add w0, w0, 1 uxth w0, w0 - b .L1329 -.L1403: + b .L1353 +.L1427: ldr x0, [x1,2864] ldrh w1, [x0,72] add w1, w21, w1 strh w1, [x0,72] ldrh w1, [x0,98] cmp w1, w21 - bls .L1328 + bls .L1352 sub w21, w1, w21 strh w21, [x0,98] -.L1328: - cbz w20, .L1334 +.L1352: + cbz w20, .L1358 add x0, x19, :lo12:.LANCHOR0 ldr x0, [x0,2864] ldrh w0, [x0,134] -.L1335: +.L1359: add x1, x19, :lo12:.LANCHOR0 ldrh w2, [x1,576] cmp w2, w0 - bls .L1404 + bls .L1428 ubfiz x3, x0, 2, 16 ldr x4, [x1,584] add x5, x4, x3 ldrh w1, [x4,x3] and w2, w1, 2047 cmp w2, w20 - blt .L1336 + blt .L1360 ldrb w5, [x5,2] and w5, w5, 24 cmp w5, 16 - beq .L1336 + beq .L1360 sub w2, w2, w20 bfi w1, w2, 0, 11 strh w1, [x4,x3] -.L1336: +.L1360: add w0, w0, 1 uxth w0, w0 - b .L1335 -.L1404: + b .L1359 +.L1428: ldr x0, [x1,2864] ldrh w1, [x0,74] add w1, w20, w1 strh w1, [x0,74] ldrh w1, [x0,96] cmp w1, w20 - bls .L1334 + bls .L1358 sub w20, w1, w20 strh w20, [x0,96] -.L1334: +.L1358: mov w1, 5 mov w0, 0 bl zftl_get_gc_node uxth w1, w0 mov w2, 65535 cmp w1, w2 - beq .L1292 + beq .L1316 add x19, x19, :lo12:.LANCHOR0 ubfiz x1, x1, 1, 16 ldr x2, [x19,600] ldrh w2, [x2,x1] ldrh w1, [x19,3300] cmp w2, w1 - bhi .L1292 + bhi .L1316 mov w1, 0 mov w2, 1 add w22, w22, 1 bl gc_add_sblk - b .L1292 -.L1341: + b .L1316 +.L1365: mov w26, 0 mov w22, w26 -.L1292: +.L1316: add w0, w26, w22 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -8721,10 +8910,10 @@ zftl_sblk_list_init: mov w24, 6 mov w23, 32768 ldrh w2, [x19,576] - adrp x26, .LC125 + adrp x26, .LC128 ldr x0, [x19,528] mov w25, -1 - add x26, x26, :lo12:.LC125 + add x26, x26, :lo12:.LC128 mul w2, w2, w24 bl ftl_memset ldrh w22, [x19,3274] @@ -8750,52 +8939,52 @@ zftl_sblk_list_init: ldr x0, [x19,2864] ldrsh w19, [x0,134] strh wzr, [x0,146] -.L1406: +.L1430: add x0, x21, :lo12:.LANCHOR0 ldrh w1, [x0,576] cmp w19, w1 - bge .L1436 + bge .L1460 sxtw x22, w19 ldr x27, [x0,584] ldr w1, [x29,108] add x27, x27, x22, lsl 2 ldrb w2, [x27,3] - cbz w2, .L1407 + cbz w2, .L1431 ldrb w5, [x0,3276] ldrh w6, [x0,3274] ldr x4, [x0,2864] mov w0, 0 mov w1, w0 -.L1408: +.L1432: cmp w0, w5 - bge .L1437 + bge .L1461 ldrb w2, [x27,3] asr w2, w2, w0 - tbnz x2, 0, .L1409 + tbnz x2, 0, .L1433 add w1, w6, w1 sxth w1, w1 - b .L1410 -.L1409: + b .L1434 +.L1433: ldrh w2, [x4,146] add w2, w2, 1 strh w2, [x4,146] -.L1410: +.L1434: add w0, w0, 1 - b .L1408 -.L1437: - cbz w1, .L1412 + b .L1432 +.L1461: + cbz w1, .L1436 sdiv w1, w23, w1 add w1, w1, 1 sxth w1, w1 - b .L1407 -.L1412: + b .L1431 +.L1436: ldrb w0, [x27,2] orr w0, w0, -32 strb w0, [x27,2] add x0, x21, :lo12:.LANCHOR0 ldr x0, [x0,600] strh w25, [x0,x22,lsl 1] -.L1407: +.L1431: add x20, x21, :lo12:.LANCHOR0 smull x0, w19, w24 ldr x2, [x20,528] @@ -8808,101 +8997,101 @@ zftl_sblk_list_init: ldrb w1, [x27,2] and w0, w1, 224 cmp w0, 224 - beq .L1415 + beq .L1439 cmp w0, 32 cset w28, eq - cbnz w28, .L1415 + cbnz w28, .L1439 ldr x2, [x20,608] ldrh w4, [x2,16] cmp w19, w4 - beq .L1415 + beq .L1439 ldrh w4, [x2,48] cmp w19, w4 - beq .L1415 + beq .L1439 ldrh w2, [x2,80] cmp w19, w2 - beq .L1415 + beq .L1439 cmp w0, 64 - bne .L1417 + bne .L1441 uxth w27, w19 add x0, x20, 616 mov w1, w27 add x2, x20, 2850 - b .L1434 -.L1417: + b .L1458 +.L1441: cmp w0, 96 - bne .L1418 + bne .L1442 uxth w27, w19 add x0, x20, 3288 mov w1, w27 add x2, x20, 2852 - b .L1434 -.L1418: + b .L1458 +.L1442: cmp w0, 160 - bne .L1419 + bne .L1443 uxth w27, w19 add x0, x20, 3280 mov w1, w27 add x2, x20, 2854 -.L1434: +.L1458: bl _insert_data_list ldr x0, [x20,600] ldrh w0, [x0,x22,lsl 1] cmp w0, 7 - bhi .L1415 + bhi .L1439 mov w0, w27 mov w1, 1 mov w2, w28 - b .L1432 -.L1419: - cbnz w0, .L1415 + b .L1456 +.L1443: + cbnz w0, .L1439 ldr x0, [x20,600] ldrh w2, [x0,x22,lsl 1] - cbz w2, .L1420 + cbz w2, .L1444 mov x0, x26 mov w1, w19 bl printk ldrb w0, [x27,2] - tbz x0, 4, .L1421 + tbz x0, 4, .L1445 mov w1, 5 - b .L1428 -.L1421: + b .L1452 +.L1445: mov w1, 2 -.L1428: +.L1452: bfi w0, w1, 5, 3 mov w2, 0 strb w0, [x27,2] mov w1, 1 mov w0, w19 -.L1432: +.L1456: bl gc_add_sblk - b .L1415 -.L1420: + b .L1439 +.L1444: ands w1, w1, 24 add x2, x21, :lo12:.LANCHOR0 - bne .L1423 + bne .L1447 add x0, x2, 3312 mov w1, w19 add x2, x2, 2844 - b .L1430 -.L1423: + b .L1454 +.L1447: cmp w1, 16 - bne .L1424 + bne .L1448 add x0, x2, 3320 mov w1, w19 add x2, x2, 2846 - b .L1430 -.L1424: + b .L1454 +.L1448: add x0, x2, 3328 mov w1, w19 add x2, x2, 2848 -.L1430: +.L1454: bl _insert_free_list -.L1415: +.L1439: add w19, w19, 1 sxth w19, w19 - b .L1406 -.L1436: + b .L1430 +.L1460: ldr x1, [x0,2864] ldrh w2, [x0,2844] strh w2, [x1,114] @@ -8932,7 +9121,7 @@ ftl_open_sblk_init: add x29, sp, 0 stp x19, x20, [sp,16] stp x23, x24, [sp,48] - adrp x20, .LC113 + adrp x20, .LC116 adrp x23, .LANCHOR0 stp x25, x26, [sp,64] stp x21, x22, [sp,32] @@ -8941,10 +9130,10 @@ ftl_open_sblk_init: mov w21, w1 add x25, x0, 16 mov x26, x23 - add x20, x20, :lo12:.LC113 + add x20, x20, :lo12:.LC116 mov w24, -1 -.L1439: -.L1442: +.L1463: +.L1466: mov w0, w21 bl ftl_alloc_sblk uxth w22, w0 @@ -8966,16 +9155,16 @@ ftl_open_sblk_init: mul w2, w1, w2 strh w2, [x19,6] strb w21, [x19,4] - beq .L1440 + beq .L1464 ldrb w3, [x0,3276] mul w3, w1, w3 uxth w3, w3 -.L1440: +.L1464: add x27, x26, :lo12:.LANCHOR0 strh w3, [x19,12] ubfiz x28, x22, 1, 16 ldrb w2, [x27,3276] - ldr x0, [x27,3872] + ldr x0, [x27,3864] add x0, x0, x3, uxth 2 mul w2, w1, w2 mov w1, 255 @@ -8985,7 +9174,7 @@ ftl_open_sblk_init: ldrh w1, [x19,6] strh w1, [x0,x28] ldrb w0, [x19,9] - cbnz w0, .L1438 + cbnz w0, .L1462 mov x0, x20 mov w1, w22 bl printk @@ -8993,8 +9182,8 @@ ftl_open_sblk_init: strh w24, [x0,x28] mov w0, 7 strb w0, [x19,4] - b .L1442 -.L1438: + b .L1466 +.L1462: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -9016,9 +9205,9 @@ pm_free_sblk: stp x21, x22, [sp,32] stp x25, x26, [sp,64] stp x27, x28, [sp,80] - ldrh w0, [x0,1164] + ldrh w0, [x0,1156] cmp w0, 128 - bls .L1445 + bls .L1469 adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 @@ -9027,7 +9216,7 @@ pm_free_sblk: add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L1445: +.L1469: add x28, x29, 112 mov w1, 0 mov w2, 256 @@ -9046,10 +9235,10 @@ pm_free_sblk: add x1, x23, :lo12:.LANCHOR4 ldrh w7, [x4,698] sub w0, w0, #1 - ldrh w9, [x1,1164] -.L1446: + ldrh w9, [x1,1156] +.L1470: cmp w7, w3, uxth - bls .L1471 + bls .L1495 add x1, x4, x3, lsl 2 mov x2, 0 ldr w1, [x1,704] @@ -9057,39 +9246,39 @@ pm_free_sblk: and w1, w1, w0 udiv w1, w1, w8 uxth w1, w1 -.L1447: +.L1471: cmp w9, w2, uxth - bls .L1472 + bls .L1496 add x5, x4, x2, lsl 1 ldrh w5, [x5,416] cmp w5, w1 - bne .L1448 + bne .L1472 ldrh w5, [x28,x2,lsl 1] add w5, w5, 1 strh w5, [x28,x2,lsl 1] -.L1448: - add x2, x2, 1 - b .L1447 .L1472: + add x2, x2, 1 + b .L1471 +.L1496: add x3, x3, 1 - b .L1446 -.L1471: + b .L1470 +.L1495: add x1, x21, :lo12:.LANCHOR0 mov w25, 0 - adrp x24, .LC126 + adrp x24, .LC129 mov w19, w25 adrp x26, .LANCHOR2 mov w27, -1 ldrb w0, [x1,3276] - add x24, x24, :lo12:.LC126 + add x24, x24, :lo12:.LC129 ldrh w20, [x1,3300] mul w20, w0, w20 uxth w20, w20 -.L1451: +.L1475: add x0, x23, :lo12:.LANCHOR4 - ldrh w0, [x0,1164] + ldrh w0, [x0,1156] cmp w0, w19 - bls .L1473 + bls .L1497 add x0, x21, :lo12:.LANCHOR0 sxtw x22, w19 add x1, x22, 208 @@ -9099,31 +9288,31 @@ pm_free_sblk: ldrh w1, [x4,692] sdiv w1, w1, w2 cmp w1, w3 - bne .L1452 + bne .L1476 ldrb w1, [x0,3276] ldrh w0, [x0,3300] mul w0, w1, w0 strh w0, [x28,w19,sxtw 1] -.L1452: +.L1476: ldrh w0, [x28,x22,lsl 1] cmp w20, w0 - bls .L1453 + bls .L1477 cmp w0, wzr csel w25, w25, w19, eq csel w20, w20, w0, eq -.L1453: - cbnz w0, .L1455 +.L1477: + cbnz w0, .L1479 mov w0, 65535 cmp w3, w0 - beq .L1455 + beq .L1479 ldr w0, [x26,#:lo12:.LANCHOR2] - tbz x0, 12, .L1456 + tbz x0, 12, .L1480 ldrh w4, [x4,688] mov x0, x24 mov w1, w19 mov w2, 0 bl printk -.L1456: +.L1480: add x1, x21, :lo12:.LANCHOR0 add x22, x22, 208 str x1, [x29,104] @@ -9136,11 +9325,11 @@ pm_free_sblk: ldrh w1, [x0,688] sub w1, w1, #1 strh w1, [x0,688] -.L1455: +.L1479: add w19, w19, 1 uxth w19, w19 - b .L1451 -.L1473: + b .L1475 +.L1497: mov w0, w25 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -9171,15 +9360,15 @@ flash_info_data_init: ldr w0, [x1,#:lo12:.LANCHOR2] stp x19, x20, [sp,16] mov x20, x1 - tbz x0, 12, .L1476 + tbz x0, 12, .L1500 adrp x2, .LANCHOR3 - adrp x0, .LC127 + adrp x0, .LC130 add x2, x2, :lo12:.LANCHOR3 - add x0, x0, :lo12:.LC127 - mov w1, 100 + add x0, x0, :lo12:.LC130 + mov w1, 105 add x2, x2, 112 bl printk -.L1476: +.L1500: adrp x19, .LANCHOR0 mov w1, 0 add x19, x19, :lo12:.LANCHOR0 @@ -9214,14 +9403,14 @@ flash_info_data_init: .type ftl_memcpy32, %function ftl_memcpy32: mov x3, 0 -.L1481: +.L1505: cmp w2, w3 - bls .L1483 + bls .L1507 ldr w4, [x1,x3,lsl 2] str w4, [x0,x3,lsl 2] add x3, x3, 1 - b .L1481 -.L1483: + b .L1505 +.L1507: ret .size ftl_memcpy32, .-ftl_memcpy32 .align 2 @@ -9236,27 +9425,6 @@ ftl_memcmp: ret .size ftl_memcmp, .-ftl_memcmp .align 2 - .global js_hash - .type js_hash, %function -js_hash: - mov x5, x0 - mov w0, 42982 - mov x2, 0 - movk w0, 0x47c6, lsl 16 -.L1486: - cmp w1, w2 - bls .L1488 - lsl w3, w0, 5 - ldrb w4, [x5,x2] - add w3, w3, w0, lsr 2 - add x2, x2, 1 - add w3, w3, w4 - eor w0, w0, w3 - b .L1486 -.L1488: - ret - .size js_hash, .-js_hash - .align 2 .global timer_get_time .type timer_get_time, %function timer_get_time: @@ -9264,8 +9432,8 @@ timer_get_time: stp x29, x30, [sp, -16]! add x29, sp, 0 ldr x1, [x0,#:lo12:jiffies] - adrp x0, .LANCHOR4+1168 - ldr x0, [x0,#:lo12:.LANCHOR4+1168] + adrp x0, .LANCHOR4+1160 + ldr x0, [x0,#:lo12:.LANCHOR4+1160] sub x0, x1, x0 bl jiffies_to_msecs ldp x29, x30, [sp], 16 @@ -9285,10 +9453,10 @@ StorageSysDataLoad: mov w1, 0 bl ftl_memset bl rknand_device_lock - adrp x0, .LANCHOR4+1176 + adrp x0, .LANCHOR4+1168 mov x2, x19 mov w1, 1 - ldr x0, [x0,#:lo12:.LANCHOR4+1176] + ldr x0, [x0,#:lo12:.LANCHOR4+1168] ldr x3, [x0,24] mov w0, w20 blr x3 @@ -9308,10 +9476,10 @@ StorageSysDataStore: str x0, [x29,16] str x1, [x29,24] bl rknand_device_lock - adrp x1, .LANCHOR4+1176 + adrp x1, .LANCHOR4+1168 ldr x2, [x29,24] ldr x0, [x29,16] - ldr x1, [x1,#:lo12:.LANCHOR4+1176] + ldr x1, [x1,#:lo12:.LANCHOR4+1168] ldr x3, [x1,32] mov w1, 1 blr x3 @@ -9331,11 +9499,11 @@ FlashBootVendorRead: str x1, [x29,32] str x2, [x29,40] bl rknand_device_lock - adrp x3, .LANCHOR4+1176 + adrp x3, .LANCHOR4+1168 ldr x1, [x29,32] ldr x2, [x29,40] ldr x0, [x29,24] - ldr x3, [x3,#:lo12:.LANCHOR4+1176] + ldr x3, [x3,#:lo12:.LANCHOR4+1168] ldr x3, [x3,8] blr x3 str x0, [x29,40] @@ -9354,11 +9522,11 @@ FlashBootVendorWrite: str x1, [x29,32] str x2, [x29,40] bl rknand_device_lock - adrp x3, .LANCHOR4+1176 + adrp x3, .LANCHOR4+1168 ldr x1, [x29,32] ldr x2, [x29,40] ldr x0, [x29,24] - ldr x3, [x3,#:lo12:.LANCHOR4+1176] + ldr x3, [x3,#:lo12:.LANCHOR4+1168] ldr x3, [x3,16] blr x3 str x0, [x29,40] @@ -9371,20 +9539,20 @@ FlashBootVendorWrite: .global flash_sram_load_store .type flash_sram_load_store, %function flash_sram_load_store: - adrp x4, .LANCHOR4+1184 + adrp x4, .LANCHOR4+1176 mov x6, x0 stp x29, x30, [sp, -16]! uxtw x1, w1 add x29, sp, 0 - ldr x4, [x4,#:lo12:.LANCHOR4+1184] + ldr x4, [x4,#:lo12:.LANCHOR4+1176] add x4, x4, 4096 - cbnz w2, .L1495 + cbnz w2, .L1515 add x1, x4, x1 - b .L1497 -.L1495: + b .L1517 +.L1515: add x0, x4, x1 mov x1, x6 -.L1497: +.L1517: mov w2, w3 bl ftl_memcpy ldp x29, x30, [sp], 16 @@ -9401,13 +9569,13 @@ FlashCs123Init: .type rk_ftl_de_init, %function rk_ftl_de_init: stp x29, x30, [sp, -16]! - adrp x0, .LC128 + adrp x0, .LC131 mov w1, 0 add x29, sp, 0 - add x0, x0, :lo12:.LC128 + add x0, x0, :lo12:.LC131 bl printk - adrp x0, .LANCHOR4+1176 - ldr x0, [x0,#:lo12:.LANCHOR4+1176] + adrp x0, .LANCHOR4+1168 + ldr x0, [x0,#:lo12:.LANCHOR4+1168] ldr x0, [x0,80] blr x0 ldp x29, x30, [sp], 16 @@ -9417,10 +9585,10 @@ rk_ftl_de_init: .global rk_ftl_cache_write_back .type rk_ftl_cache_write_back, %function rk_ftl_cache_write_back: - adrp x0, .LANCHOR4+1176 + adrp x0, .LANCHOR4+1168 stp x29, x30, [sp, -16]! add x29, sp, 0 - ldr x0, [x0,#:lo12:.LANCHOR4+1176] + ldr x0, [x0,#:lo12:.LANCHOR4+1168] ldr x1, [x0,64] mov w0, 0 blr x1 @@ -9431,10 +9599,10 @@ rk_ftl_cache_write_back: .global rk_nand_suspend .type rk_nand_suspend, %function rk_nand_suspend: - adrp x0, .LANCHOR4+1176 + adrp x0, .LANCHOR4+1168 stp x29, x30, [sp, -16]! add x29, sp, 0 - ldr x0, [x0,#:lo12:.LANCHOR4+1176] + ldr x0, [x0,#:lo12:.LANCHOR4+1168] ldr x0, [x0,88] blr x0 ldp x29, x30, [sp], 16 @@ -9444,10 +9612,10 @@ rk_nand_suspend: .global rk_nand_resume .type rk_nand_resume, %function rk_nand_resume: - adrp x0, .LANCHOR4+1176 + adrp x0, .LANCHOR4+1168 stp x29, x30, [sp, -16]! add x29, sp, 0 - ldr x0, [x0,#:lo12:.LANCHOR4+1176] + ldr x0, [x0,#:lo12:.LANCHOR4+1168] ldr x0, [x0,96] blr x0 ldp x29, x30, [sp], 16 @@ -9457,10 +9625,10 @@ rk_nand_resume: .global rk_ftl_get_capacity .type rk_ftl_get_capacity, %function rk_ftl_get_capacity: - adrp x0, .LANCHOR4+1176 + adrp x0, .LANCHOR4+1168 stp x29, x30, [sp, -16]! add x29, sp, 0 - ldr x0, [x0,#:lo12:.LANCHOR4+1176] + ldr x0, [x0,#:lo12:.LANCHOR4+1168] ldr x1, [x0,72] mov w0, 0 blr x1 @@ -9471,10 +9639,10 @@ rk_ftl_get_capacity: .global rk_nandc_get_irq_status .type rk_nandc_get_irq_status, %function rk_nandc_get_irq_status: - adrp x1, .LANCHOR4+1176 + adrp x1, .LANCHOR4+1168 stp x29, x30, [sp, -16]! add x29, sp, 0 - ldr x1, [x1,#:lo12:.LANCHOR4+1176] + ldr x1, [x1,#:lo12:.LANCHOR4+1168] ldr x1, [x1,120] blr x1 ldp x29, x30, [sp], 16 @@ -9484,10 +9652,10 @@ rk_nandc_get_irq_status: .global rknand_proc_ftlread .type rknand_proc_ftlread, %function rknand_proc_ftlread: - adrp x1, .LANCHOR4+1176 + adrp x1, .LANCHOR4+1168 stp x29, x30, [sp, -16]! add x29, sp, 0 - ldr x1, [x1,#:lo12:.LANCHOR4+1176] + ldr x1, [x1,#:lo12:.LANCHOR4+1168] ldr x1, [x1,128] blr x1 ldp x29, x30, [sp], 16 @@ -9497,11 +9665,11 @@ rknand_proc_ftlread: .global FtlRead .type FtlRead, %function FtlRead: - adrp x4, .LANCHOR4+1176 + adrp x4, .LANCHOR4+1168 uxtb w0, w0 stp x29, x30, [sp, -16]! add x29, sp, 0 - ldr x4, [x4,#:lo12:.LANCHOR4+1176] + ldr x4, [x4,#:lo12:.LANCHOR4+1168] ldr x4, [x4,40] blr x4 ldp x29, x30, [sp], 16 @@ -9511,10 +9679,10 @@ FtlRead: .global FtlDiscard .type FtlDiscard, %function FtlDiscard: - adrp x2, .LANCHOR4+1176 + adrp x2, .LANCHOR4+1168 stp x29, x30, [sp, -16]! add x29, sp, 0 - ldr x2, [x2,#:lo12:.LANCHOR4+1176] + ldr x2, [x2,#:lo12:.LANCHOR4+1168] ldr x2, [x2,56] blr x2 ldp x29, x30, [sp], 16 @@ -9524,10 +9692,10 @@ FtlDiscard: .global rk_ftl_garbage_collect .type rk_ftl_garbage_collect, %function rk_ftl_garbage_collect: - adrp x2, .LANCHOR4+1176 + adrp x2, .LANCHOR4+1168 stp x29, x30, [sp, -16]! add x29, sp, 0 - ldr x2, [x2,#:lo12:.LANCHOR4+1176] + ldr x2, [x2,#:lo12:.LANCHOR4+1168] ldr x2, [x2,104] blr x2 ldp x29, x30, [sp], 16 @@ -9537,10 +9705,10 @@ rk_ftl_garbage_collect: .global ReadFlashInfo .type ReadFlashInfo, %function ReadFlashInfo: - adrp x1, .LANCHOR4+1176 + adrp x1, .LANCHOR4+1168 stp x29, x30, [sp, -16]! add x29, sp, 0 - ldr x1, [x1,#:lo12:.LANCHOR4+1176] + ldr x1, [x1,#:lo12:.LANCHOR4+1168] ldr x1, [x1,112] blr x1 ldp x29, x30, [sp], 16 @@ -9556,8 +9724,8 @@ rknand_print_hex: stp x21, x22, [sp,32] stp x23, x24, [sp,48] mov x19, 0 - adrp x23, .LC129 - adrp x21, .LC130 + adrp x23, .LC132 + adrp x21, .LC133 adrp x24, .LC1 stp x25, x26, [sp,64] str x27, [sp,80] @@ -9566,48 +9734,48 @@ rknand_print_hex: mov w25, w2 uxtw x26, w3 mov w20, w19 - add x23, x23, :lo12:.LC129 - add x21, x21, :lo12:.LC130 + add x23, x23, :lo12:.LC132 + add x21, x21, :lo12:.LC133 add x24, x24, :lo12:.LC1 -.L1511: +.L1531: cmp x19, x26 - beq .L1519 - cbnz w20, .L1512 + beq .L1539 + cbnz w20, .L1532 mov x0, x23 mov x1, x27 mov x2, x22 mov w3, w19 bl printk -.L1512: +.L1532: cmp w25, 4 mov x0, x21 - bne .L1513 + bne .L1533 ldr w1, [x22,x19,lsl 2] - b .L1518 -.L1513: + b .L1538 +.L1533: cmp w25, 2 - bne .L1515 + bne .L1535 ldrsh w1, [x22,x19,lsl 1] - b .L1518 -.L1515: + b .L1538 +.L1535: ldrb w1, [x22,x19] -.L1518: +.L1538: bl printk add w20, w20, 1 cmp w20, 15 - bls .L1516 - adrp x1, .LC131 + bls .L1536 + adrp x1, .LC134 mov x0, x24 - add x1, x1, :lo12:.LC131 + add x1, x1, :lo12:.LC134 mov w20, 0 bl printk -.L1516: +.L1536: add x19, x19, 1 - b .L1511 -.L1519: + b .L1531 +.L1539: adrp x0, .LC1 - adrp x1, .LC131 - add x1, x1, :lo12:.LC131 + adrp x1, .LC134 + add x1, x1, :lo12:.LC134 add x0, x0, :lo12:.LC1 bl printk ldr x27, [sp,80] @@ -9623,171 +9791,185 @@ rknand_print_hex: .type hynix_get_read_retry_default, %function hynix_get_read_retry_default: stp x29, x30, [sp, -144]! + adrp x3, .LANCHOR0 mov w2, -83 - mov w1, -82 add x29, sp, 0 stp x19, x20, [sp,16] - adrp x19, .LANCHOR0 - stp x25, x26, [sp,64] - mov w25, w0 - add x0, x19, :lo12:.LANCHOR0 + mov w19, w0 + add x0, x3, :lo12:.LANCHOR0 stp x21, x22, [sp,32] + stp x25, x26, [sp,64] stp x23, x24, [sp,48] stp x27, x28, [sp,80] - cmp w25, 2 - str x19, [x29,128] - ldr x27, [x0,728] - add x0, x27, 112 - str x0, [x29,136] + mov w1, -82 + cmp w19, 2 + ldr x25, [x0,728] mov w0, -84 - strb w25, [x27,112] - strb w0, [x27,128] + str x3, [x29,136] + add x26, x25, 128 + add x22, x25, 112 + strb w0, [x25,128] mov w0, -81 - strb w2, [x27,129] - add x26, x27, 128 - strb w1, [x27,130] - strb w0, [x27,131] - bne .L1521 - ldr x1, [x29,136] + strb w19, [x25,112] + strb w2, [x25,129] + strb w1, [x25,130] + strb w0, [x25,131] + bne .L1541 mov w0, -89 - strb w0, [x1,16] + strb w0, [x22,16] adrp x0, .LANCHOR2+425 mov w1, -9 strb w1, [x0,#:lo12:.LANCHOR2+425] - b .L1576 -.L1521: - cmp w25, 3 - bne .L1523 - mov x4, 0 -.L1524: - sub w0, w4, #80 - strb w0, [x26,x4] - add x4, x4, 1 - cmp x4, 8 - bne .L1524 - mov w21, w4 - mov w28, w4 - b .L1522 -.L1523: - cmp w25, 4 - bne .L1525 - mov w4, -52 - strb w4, [x27,128] - mov w4, -65 - strb w4, [x27,129] - mov w4, -86 - mov w21, 8 - strb w4, [x27,130] - mov w4, -85 - strb w2, [x27,133] - mov w28, w21 - strb w4, [x27,131] - mov w4, -51 - strb w1, [x27,134] - strb w4, [x27,132] - strb w0, [x27,135] - b .L1522 -.L1525: - cmp w25, 5 - bne .L1526 + b .L1604 +.L1541: + cmp w19, 3 + bne .L1543 + mov x5, 0 +.L1544: + sub w0, w5, #80 + strb w0, [x26,x5] + add x5, x5, 1 + cmp x5, 8 + bne .L1544 + mov w27, w5 + mov w28, w5 + b .L1542 +.L1543: + cmp w19, 4 + bne .L1545 + mov w5, -52 + strb w5, [x25,128] + mov w5, -65 + strb w5, [x25,129] + mov w5, -86 + mov w27, 8 + strb w5, [x25,130] + mov w5, -85 + strb w2, [x25,133] + mov w28, w27 + strb w5, [x25,131] + mov w5, -51 + strb w1, [x25,134] + strb w5, [x25,132] + strb w0, [x25,135] + b .L1542 +.L1545: + cmp w19, 5 + bne .L1546 mov w0, 56 - strb w0, [x27,128] + strb w0, [x25,128] mov w0, 57 - strb w0, [x27,129] + strb w0, [x25,129] mov w0, 58 - mov w21, 8 - strb w0, [x27,130] + mov w27, 8 + strb w0, [x25,130] mov w0, 59 - strb w0, [x27,131] - b .L1610 -.L1526: - cmp w25, 6 - bne .L1527 + strb w0, [x25,131] + b .L1646 +.L1546: + cmp w19, 6 + bne .L1547 mov w0, 14 - strb w0, [x27,128] + strb w0, [x25,128] mov w0, 15 - strb w0, [x27,129] + strb w0, [x25,129] mov w0, 16 - mov w21, 12 - strb w0, [x27,130] + mov w27, 12 + strb w0, [x25,130] mov w0, 17 - strb w0, [x27,131] - b .L1610 -.L1527: - cmp w25, 7 - bne .L1576 + strb w0, [x25,131] + b .L1646 +.L1547: + cmp w19, 7 + bne .L1548 mov x0, 0 -.L1528: +.L1549: sub w1, w0, #80 strb w1, [x26,x0] add x0, x0, 1 cmp x0, 8 - bne .L1528 + bne .L1549 mov w0, -44 - mov w21, 12 - strb w0, [x27,136] + mov w27, 12 + strb w0, [x25,136] mov w28, 10 mov w0, -43 - strb w0, [x27,137] - b .L1522 -.L1576: - mov w21, 7 -.L1610: + strb w0, [x25,137] + b .L1542 +.L1548: + cmp w19, 8 + bne .L1604 + mov w0, 6 + strb w0, [x25,128] + mov w0, 7 + strb w0, [x25,129] + mov w0, 9 + strb w19, [x25,130] + strb w0, [x25,131] + mov w27, 50 + mov w0, 10 + mov w28, 5 + strb w0, [x25,132] + b .L1542 +.L1604: + mov w27, 7 +.L1646: mov w28, 4 -.L1522: - sub w0, w25, #1 +.L1542: + sub w0, w19, #1 cmp w0, 1 - bhi .L1607 - ldr x0, [x29,128] + bhi .L1643 + ldr x0, [x29,136] adrp x24, .LANCHOR2 add x24, x24, :lo12:.LANCHOR2 mov w23, 0 add x19, x0, :lo12:.LANCHOR0 - mov w27, 55 + mov w5, 55 add x24, x24, 408 -.L1529: +.L1550: ldrb w0, [x19,633] cmp w0, w23 - bls .L1536 + bls .L1557 add x0, x19, x23, sxtw - ldr x2, [x29,136] ldrb w0, [x0,736] mov x20, 160 - ldr x22, [x19,536] - mov x25, 0 + ldr x21, [x19,536] ubfiz x1, x0, 8, 8 - madd x20, x0, x20, x2 - add x22, x22, x1 + mov x25, 0 + madd x20, x0, x20, x22 + add x21, x21, x1 add x20, x20, 32 -.L1531: - str w27, [x22,2056] +.L1552: + str w5, [x21,2056] + str x5, [x29,136] ldrb w0, [x26,x25] - str w0, [x22,2052] + str w0, [x21,2052] mov w0, 80 bl timer_delay_ns - ldr w0, [x22,2048] + ldr w0, [x21,2048] strb w0, [x20,x25] add x25, x25, 1 + ldr x5, [x29,136] cmp w28, w25, uxtb - bhi .L1531 + bhi .L1552 mov x0, 0 -.L1532: +.L1553: add w2, w0, 8 mov x1, 0 -.L1533: +.L1554: add x3, x1, x0 add x1, x1, 4 add x3, x24, x3 cmp x1, 24 - ldrb w5, [x3,4] + ldrb w4, [x3,4] ldrb w3, [x20,x0] - add w3, w5, w3 + add w3, w4, w3 strb w3, [x20,w2,sxtw] add w2, w2, 8 - bne .L1533 + bne .L1554 add x0, x0, 1 cmp x0, 4 - bne .L1532 + bne .L1553 add w23, w23, 1 strb wzr, [x20,16] strb wzr, [x20,24] @@ -9797,34 +9979,34 @@ hynix_get_read_retry_default: strb wzr, [x20,48] strb wzr, [x20,41] strb wzr, [x20,49] - b .L1529 -.L1607: - sub w0, w25, #3 - cmp w0, 4 - bhi .L1536 - mul w0, w28, w21 - sub w23, w28, #1 + b .L1550 +.L1643: + sub w0, w19, #3 + cmp w0, 5 + bhi .L1557 + mul w0, w28, w27 + sub w24, w28, #1 mov w20, 0 - asr w22, w0, 2 + asr w23, w0, 1 lsl w0, w0, 4 - uxtb x23, w23 - str w0, [x29,120] - lsl w0, w22, 1 - sub w19, w25, #5 + str w0, [x29,128] + lsl w0, w23, 1 + uxtb x24, w24 str w0, [x29,124] + sub w0, w19, #5 adrp x26, .LANCHOR4 - add x0, x23, 1 + str w0, [x29,132] + add x0, x24, 1 str x0, [x29,112] -.L1537: - ldr x0, [x29,128] +.L1558: + ldr x0, [x29,136] add x1, x0, :lo12:.LANCHOR0 ldrb w0, [x1,633] cmp w0, w20 - bhi .L1575 -.L1536: - ldr x0, [x29,136] - strb w28, [x0,1] - strb w21, [x0,2] + bhi .L1603 +.L1557: + strb w28, [x22,1] + strb w27, [x22,2] ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -9832,280 +10014,349 @@ hynix_get_read_retry_default: ldp x27, x28, [sp,80] ldp x29, x30, [sp], 144 ret -.L1575: +.L1603: add x0, x1, x20, sxtw - ldrb w23, [x0,736] + ldrb w24, [x0,736] str x1, [x29,104] - mov x24, 160 - mov w0, w23 + mov x21, 160 + mov w0, w24 bl zftl_flash_exit_slc_mode - ldr x1, [x29,136] - sxtw x0, w23 - ubfiz x2, x23, 8, 8 - madd x24, x0, x24, x1 ldr x1, [x29,104] - add x24, x24, 32 + sxtw x0, w24 + ubfiz x2, x24, 8, 8 + madd x21, x0, x21, x22 ldr x0, [x1,536] mov w1, 255 str x1, [x29,104] - add x23, x0, x2 - str w1, [x23,2056] + add x21, x21, 32 + add x24, x0, x2 + str w1, [x24,2056] bl nandc_wait_flash_ready - mov w0, 54 - cmp w25, 4 - str w0, [x23,2056] + cmp w19, 8 ldr x1, [x29,104] - bne .L1538 + bne .L1559 + mov w0, 120 + str w0, [x24,2056] + str wzr, [x24,2052] + mov w0, 23 + str wzr, [x24,2052] + mov w1, 25 + str wzr, [x24,2052] + add x21, x25, 144 + str w0, [x24,2056] + mov w0, 4 + str w0, [x24,2056] + str w1, [x24,2056] + mov w1, 218 + str w1, [x24,2056] + mov w1, 21 + str wzr, [x24,2056] + str wzr, [x24,2052] + str wzr, [x24,2052] + str w1, [x24,2052] + b .L1649 +.L1559: + mov w0, 54 + cmp w19, 4 + str w0, [x24,2056] + bne .L1561 mov w0, 64 - str w1, [x23,2052] - str w0, [x23,2048] + str w1, [x24,2052] + str w0, [x24,2048] mov w0, 204 - b .L1611 -.L1538: - cmp w19, 1 - bhi .L1540 - ldrb w0, [x27,128] - str w0, [x23,2052] + b .L1647 +.L1561: + ldr w0, [x29,132] + cmp w0, 1 + bhi .L1563 + ldrb w0, [x25,128] + str w0, [x24,2052] mov w0, 82 - b .L1612 -.L1540: + b .L1648 +.L1563: + cmp w19, 7 + bne .L1562 mov w0, 174 - str w0, [x23,2052] - str wzr, [x23,2048] + str w0, [x24,2052] + str wzr, [x24,2048] mov w0, 176 -.L1611: - str w0, [x23,2052] +.L1647: + str w0, [x24,2052] mov w0, 77 -.L1612: - str w0, [x23,2048] +.L1648: + str w0, [x24,2048] +.L1562: mov w0, 22 - str w0, [x23,2056] + str w0, [x24,2056] mov w0, 23 - str w0, [x23,2056] + str w0, [x24,2056] mov w0, 4 - str w0, [x23,2056] + str w0, [x24,2056] mov w0, 25 - str w0, [x23,2056] - cmp w25, 6 - str wzr, [x23,2056] - str wzr, [x23,2052] - str wzr, [x23,2052] - bne .L1541 + str w0, [x24,2056] + str wzr, [x24,2056] + cmp w19, 6 + str wzr, [x24,2052] + str wzr, [x24,2052] + bne .L1564 mov w0, 31 - str w0, [x23,2052] - b .L1542 -.L1541: - str wzr, [x23,2052] -.L1542: - mov w7, 2 - str w7, [x23,2052] - str wzr, [x23,2052] + str w0, [x24,2052] + b .L1565 +.L1564: + str wzr, [x24,2052] +.L1565: + mov w0, 2 +.L1649: + str w0, [x24,2052] mov w0, 48 - str w0, [x23,2056] - str x7, [x29,104] + str wzr, [x24,2052] + str w0, [x24,2056] bl nandc_wait_flash_ready - cmp w19, 1 - mov w1, 16 - bls .L1544 - ldr x7, [x29,104] - cmp w25, 7 + ldr w0, [x29,132] + cmp w0, 1 + cset w8, ls + cmp w19, 8 + cset w7, eq + cbnz w8, .L1606 + cbnz w7, .L1606 + cmp w19, 7 mov w1, 32 - csel w1, w1, w7, eq -.L1544: + mov w0, 2 + csel w1, w0, w1, ne + b .L1566 +.L1606: + mov w1, 16 +.L1566: adrp x0, .LANCHOR4 - mov x7, 0 + mov x9, 0 add x0, x0, :lo12:.LANCHOR4 - ldr x0, [x0,1192] -.L1545: - ldr w8, [x23,2048] - strb w8, [x0,x7] - add x7, x7, 1 - cmp w1, w7, uxtb - bhi .L1545 - cmp w25, 7 - bne .L1546 + ldr x0, [x0,1184] +.L1567: + ldr w10, [x24,2048] + strb w10, [x0,x9] + add x9, x9, 1 + cmp w1, w9, uxtb + bhi .L1567 + cbz w7, .L1568 mov w1, 0 -.L1548: - ldrb w7, [x0] - cmp w7, 12 - beq .L1547 - ldrb w7, [x0,1] - cmp w7, 10 - beq .L1547 +.L1570: + ldrb w9, [x0] + cmp w9, 50 + beq .L1569 + ldrb w9, [x0,1] + cmp w9, 5 + beq .L1569 add w1, w1, 1 add x0, x0, 4 uxtb w1, w1 cmp w1, 8 - bne .L1548 - b .L1549 -.L1547: + bne .L1570 + b .L1571 +.L1569: cmp w1, 7 - bne .L1550 -.L1549: - adrp x0, .LC132 + bne .L1572 +.L1571: + adrp x0, .LC135 mov w1, 0 - add x0, x0, :lo12:.LC132 + add x0, x0, :lo12:.LC135 bl printk -.L1551: - b .L1551 -.L1546: - cmp w25, 6 - bne .L1550 +.L1573: + b .L1573 +.L1568: + cmp w19, 7 + bne .L1574 + mov w1, w7 +.L1576: + ldrb w9, [x0] + cmp w9, 12 + beq .L1575 + ldrb w9, [x0,1] + cmp w9, 10 + beq .L1575 + add w1, w1, 1 + add x0, x0, 4 + uxtb w1, w1 + cmp w1, 8 + bne .L1576 + b .L1577 +.L1575: + cmp w1, 7 + bne .L1572 +.L1577: + adrp x0, .LC135 + mov w1, 0 + add x0, x0, :lo12:.LC135 + bl printk +.L1578: + b .L1578 +.L1574: + cmp w19, 6 + bne .L1572 mov x1, 0 -.L1552: - ldrb w7, [x0,x1] - cmp w7, 12 - beq .L1550 - add x7, x0, x1 - ldrb w7, [x7,8] - cmp w7, 4 - beq .L1550 +.L1579: + ldrb w9, [x0,x1] + cmp w9, 12 + beq .L1572 + add x9, x0, x1 + ldrb w9, [x9,8] + cmp w9, 4 + beq .L1572 add x1, x1, 1 cmp x1, 8 - bne .L1552 - adrp x0, .LC132 + bne .L1579 + adrp x0, .LC135 mov w1, 0 - add x0, x0, :lo12:.LC132 + add x0, x0, :lo12:.LC135 bl printk -.L1554: - b .L1554 -.L1550: +.L1581: + b .L1581 +.L1572: add x0, x26, :lo12:.LANCHOR4 - ldr x9, [x0,1192] + ldr x10, [x0,1184] mov x0, 0 -.L1555: - ldr w1, [x29,120] +.L1582: + ldr w1, [x29,128] cmp w1, w0 - ble .L1614 - ldr w1, [x23,2048] - strb w1, [x9,x0] + ble .L1651 + ldr w1, [x24,2048] + strb w1, [x10,x0] add x0, x0, 1 - b .L1555 -.L1614: + b .L1582 +.L1651: add x0, x26, :lo12:.LANCHOR4 - mov w8, w22 - mov w7, 8 - ldr x11, [x0,1192] -.L1558: + mov w11, w23 + mov w9, 8 + ldr x12, [x0,1184] +.L1585: mov w0, 0 -.L1557: - add w1, w0, w8 +.L1584: + add w1, w0, w11 add w0, w0, 1 - sbfiz x1, x1, 2, 32 - cmp w0, w22 - ldr w10, [x11,x1] - mvn w10, w10 - str w10, [x11,x1] - bne .L1557 + sbfiz x1, x1, 1, 32 + cmp w0, w23 + ldrh w13, [x12,x1] + mvn w13, w13 + strh w13, [x12,x1] + bne .L1584 ldr w0, [x29,124] - subs w7, w7, #1 - add w8, w8, w0 - bne .L1558 - mov x7, 0 - mov w15, 1 -.L1559: - add x0, x26, :lo12:.LANCHOR4 + subs w9, w9, #1 + add w11, w11, w0 + bne .L1585 + mov x9, 0 + mov w17, 1 +.L1586: mov w1, 0 - mov w10, w1 - ldr x14, [x0,1192] -.L1563: - lsl w8, w15, w10 - mov w12, w7 + mov w11, w1 +.L1590: + lsl w13, w17, w11 + mov w15, w9 mov w0, 16 - mov w11, 0 -.L1561: - ldr w13, [x14,w12,sxtw 2] - add w12, w12, w22 - and w13, w8, w13 - cmp w13, w8 - csinc w11, w11, w11, ne + mov w14, 0 +.L1588: + ldrh w16, [x12,w15,sxtw 1] + add w15, w15, w23 + and w16, w16, w13 + cmp w16, w13 + csinc w14, w14, w14, ne subs w0, w0, #1 - bne .L1561 - cmp w11, 9 - orr w8, w1, w8 - add w10, w10, 1 - csel w1, w8, w1, cs - cmp w10, 32 - bne .L1563 - str w1, [x14,x7,lsl 2] - add x7, x7, 1 - cmp w22, w7 - bgt .L1559 + bne .L1588 + cmp w14, 8 + bls .L1589 + orr w1, w1, w13 + uxth w1, w1 +.L1589: + add w11, w11, 1 + cmp w11, 16 + bne .L1590 + strh w1, [x12,x9,lsl 1] + add x9, x9, 1 + cmp w23, w9 + bgt .L1586 add x1, x26, :lo12:.LANCHOR4 - mov x7, 0 - mov w8, w7 - ldr x1, [x1,1192] -.L1566: - ldr w10, [x1,x7] - add x7, x7, 4 - cmp w10, wzr - csinc w8, w8, w8, ne - cmp x7, 32 - bne .L1566 - cmp w8, 7 - ble .L1567 - adrp x0, .LC133 + mov x9, 0 + mov w11, w9 + ldr x1, [x1,1184] +.L1593: + ldr w12, [x1,x9] + add x9, x9, 4 + cmp w12, wzr + csinc w11, w11, w11, ne + cmp x9, 32 + bne .L1593 + cmp w11, 7 + ble .L1594 + adrp x0, .LC136 mov w2, 1 - add x0, x0, :lo12:.LC133 + add x0, x0, :lo12:.LC136 mov w3, 1024 bl rknand_print_hex - adrp x0, .LC132 + adrp x0, .LC135 mov w1, 0 - add x0, x0, :lo12:.LC132 - bl printk -.L1568: - b .L1568 -.L1567: - cmp w25, 6 - mov w7, 4 - beq .L1569 - cmp w25, 7 - mov w7, 10 + add x0, x0, :lo12:.LC135 + bl printk +.L1595: + b .L1595 +.L1594: + cmp w19, 6 + mov w9, 4 + beq .L1596 + cmp w19, 7 + mov w9, 10 + beq .L1596 + cmp w7, wzr + mov w9, 5 mov w1, 8 - csel w7, w1, w7, ne -.L1569: - mov w8, 0 -.L1570: + csel w9, w1, w9, eq +.L1596: + mov w11, 0 +.L1597: mov x1, 0 -.L1571: - add w10, w0, w1 - ldrb w11, [x9,x1] +.L1598: + add w12, w0, w1 + ldrb w13, [x10,x1] add x1, x1, 1 cmp w28, w1, uxtb - strb w11, [x24,w10,sxtw] - bhi .L1571 - add w8, w8, 1 + strb w13, [x21,w12,sxtw] + bhi .L1598 + add w11, w11, 1 ldr x1, [x29,112] - cmp w8, w21 - add w0, w0, w7 - add x9, x9, x1 - blt .L1570 - mov w24, 255 - str w24, [x23,2056] + cmp w11, w27 + add w0, w0, w9 + add x10, x10, x1 + blt .L1597 + mov w21, 255 + str w21, [x24,2056] + str x7, [x29,96] + str x8, [x29,104] bl nandc_wait_flash_ready - cmp w19, 1 - mov w0, 56 - bhi .L1613 + ldr x8, [x29,104] + ldr x7, [x29,96] + cbz w8, .L1600 mov w0, 54 - str w0, [x23,2056] - ldrb w0, [x27,128] - str w0, [x23,2052] + str w0, [x24,2056] + ldrb w0, [x25,128] + str w0, [x24,2052] mov w0, 22 - str wzr, [x23,2048] - str w0, [x23,2056] + str wzr, [x24,2048] + str w0, [x24,2056] mov w0, 48 - str wzr, [x23,2056] - str wzr, [x23,2052] - str wzr, [x23,2052] - str w24, [x23,2052] - str w24, [x23,2052] - str w24, [x23,2052] -.L1613: - str w0, [x23,2056] + str wzr, [x24,2056] + str wzr, [x24,2052] + str wzr, [x24,2052] + str w21, [x24,2052] + str w21, [x24,2052] + str w21, [x24,2052] + b .L1650 +.L1600: + mov w0, 190 + cbnz w7, .L1650 + mov w0, 56 +.L1650: + str w0, [x24,2056] add w20, w20, 1 bl nandc_wait_flash_ready uxtb w20, w20 - b .L1537 + b .L1558 .size hynix_get_read_retry_default, .-hynix_get_read_retry_default .align 2 .global flash_get_read_retry_tbl @@ -10117,10 +10368,10 @@ flash_get_read_retry_tbl: ldrb w0, [x0,#:lo12:.LANCHOR2+27] sub w1, w0, #1 uxtb w1, w1 - cmp w1, 6 - bhi .L1615 + cmp w1, 7 + bhi .L1652 bl hynix_get_read_retry_default -.L1615: +.L1652: ldp x29, x30, [sp], 16 ret .size flash_get_read_retry_tbl, .-flash_get_read_retry_tbl @@ -10140,54 +10391,54 @@ nandc_xfer_done: adrp x0, .LANCHOR4 add x1, x0, :lo12:.LANCHOR4 mov x23, x0 - strb wzr, [x1,1200] + strb wzr, [x1,1192] ldrb w1, [x20,516] cmp w1, 9 - bne .L1618 + bne .L1655 ldr x24, [x20,536] ldr w0, [x24,16] str w0, [x29,64] ldr w20, [x24,48] ubfx x20, x20, 1, 1 - cbnz w20, .L1638 - adrp x21, .LC137 - adrp x23, .LC136 - add x21, x21, :lo12:.LC137 - add x23, x23, :lo12:.LC136 - b .L1620 -.L1638: - adrp x21, .LC135 - adrp x22, .LC136 + cbnz w20, .L1675 + adrp x21, .LC140 + adrp x23, .LC139 + add x21, x21, :lo12:.LC140 + add x23, x23, :lo12:.LC139 + b .L1657 +.L1675: + adrp x21, .LC138 + adrp x22, .LC139 mov w20, 0 - add x21, x21, :lo12:.LC135 - add x22, x22, :lo12:.LC136 -.L1619: + add x21, x21, :lo12:.LC138 + add x22, x22, :lo12:.LC139 +.L1656: ldr w2, [x24,64] ldr w1, [x29,64] ubfx x2, x2, 16, 6 ubfx x1, x1, 22, 6 cmp w2, w1 - bge .L1622 + bge .L1659 add x0, x19, :lo12:.LANCHOR0 ldr x0, [x0,536] ldr w0, [x0] str w0, [x29,72] ldr w0, [x29,72] - tbz x0, 13, .L1621 + tbz x0, 13, .L1658 ldr w0, [x29,72] - tbz x0, 17, .L1621 + tbz x0, 17, .L1658 ldr w1, [x29,72] - adrp x0, .LC134 - add x0, x0, :lo12:.LC134 + adrp x0, .LC137 + add x0, x0, :lo12:.LC137 ubfx x1, x1, 17, 1 bl printk - b .L1622 -.L1621: + b .L1659 +.L1658: ldr w0, [x29,64] add w20, w20, 1 ubfx x0, x0, 22, 6 cmp w20, w0, lsl 12 - bne .L1619 + bne .L1656 ldr w2, [x24,64] mov w1, w20 ldr w3, [x29,64] @@ -10202,15 +10453,15 @@ nandc_xfer_done: ldr x1, [x1,536] bl rknand_print_hex ldr w0, [x29,72] - tbz x0, 13, .L1619 + tbz x0, 13, .L1656 add x0, x23, :lo12:.LANCHOR4 mov w1, 1 - strb w1, [x0,1200] -.L1622: + strb w1, [x0,1192] +.L1659: add x20, x19, :lo12:.LANCHOR0 add x20, x20, 680 ldr w0, [x20,32] - cbz w0, .L1626 + cbz w0, .L1663 ldr w1, [x29,64] mov w2, 0 ldr w0, [x20,24] @@ -10221,15 +10472,15 @@ nandc_xfer_done: ldr w0, [x20,28] ubfx x1, x1, 22, 6 lsl w1, w1, 2 - b .L1666 -.L1628: + b .L1703 +.L1665: add x22, x19, :lo12:.LANCHOR0 add w20, w20, 1 ldr x0, [x22,536] ldr w0, [x0,16] str w0, [x29,64] and w0, w20, 16777215 - cbnz w0, .L1620 + cbnz w0, .L1657 ldr w2, [x29,64] mov w1, w20 ldr w3, [x24,64] @@ -10241,13 +10492,13 @@ nandc_xfer_done: mov w2, 4 mov w3, 64 bl rknand_print_hex -.L1620: +.L1657: ldr w0, [x29,64] - tbz x0, 20, .L1628 + tbz x0, 20, .L1665 add x20, x19, :lo12:.LANCHOR0 add x20, x20, 680 ldr w0, [x20,32] - cbz w0, .L1626 + cbz w0, .L1663 ldr w1, [x29,64] mov w2, 1 ldr w0, [x20,24] @@ -10258,49 +10509,49 @@ nandc_xfer_done: ldr w0, [x20,28] ubfx x1, x1, 22, 6 lsl w1, w1, 2 - b .L1665 -.L1618: + b .L1702 +.L1655: ldr x23, [x20,536] ldr w0, [x23,8] str w0, [x29,64] ldr w20, [x23,16] ubfx x20, x20, 1, 1 - cbnz w20, .L1639 - adrp x21, .LC137 - adrp x24, .LC136 - add x21, x21, :lo12:.LC137 - add x24, x24, :lo12:.LC136 - b .L1631 -.L1639: - adrp x21, .LC135 - adrp x22, .LC136 + cbnz w20, .L1676 + adrp x21, .LC140 + adrp x24, .LC139 + add x21, x21, :lo12:.LC140 + add x24, x24, :lo12:.LC139 + b .L1668 +.L1676: + adrp x21, .LC138 + adrp x22, .LC139 mov w20, 0 - add x21, x21, :lo12:.LC135 - add x22, x22, :lo12:.LC136 -.L1630: + add x21, x21, :lo12:.LC138 + add x22, x22, :lo12:.LC139 +.L1667: ldr w2, [x23,28] ldr w1, [x29,64] ubfx x2, x2, 16, 5 ubfx x1, x1, 22, 6 cmp w2, w1 - bge .L1633 + bge .L1670 add x0, x19, :lo12:.LANCHOR0 ldr x0, [x0,536] ldr w0, [x0] str w0, [x29,72] ldr w0, [x29,72] - tbz x0, 13, .L1632 + tbz x0, 13, .L1669 ldr w0, [x29,72] - tbz x0, 17, .L1632 + tbz x0, 17, .L1669 ldr w1, [x29,72] - adrp x0, .LC138 - add x0, x0, :lo12:.LC138 + adrp x0, .LC141 + add x0, x0, :lo12:.LC141 bl printk - b .L1633 -.L1632: + b .L1670 +.L1669: add w20, w20, 1 and w0, w20, 16777215 - cbnz w0, .L1630 + cbnz w0, .L1667 ldr w2, [x23,28] mov w1, w20 ldr w3, [x29,64] @@ -10314,12 +10565,12 @@ nandc_xfer_done: mov w3, 64 ldr x1, [x1,536] bl rknand_print_hex - b .L1630 -.L1633: + b .L1667 +.L1670: add x20, x19, :lo12:.LANCHOR0 add x20, x20, 680 ldr w0, [x20,32] - cbz w0, .L1626 + cbz w0, .L1663 ldr w1, [x29,64] mov w2, 0 ldr w0, [x20,24] @@ -10330,17 +10581,17 @@ nandc_xfer_done: ldr w0, [x20,28] ubfx x1, x1, 22, 6 lsl w1, w1, 7 -.L1666: +.L1703: mov w2, 0 - b .L1664 -.L1637: + b .L1701 +.L1674: add x22, x19, :lo12:.LANCHOR0 add w20, w20, 1 ldr x0, [x22,536] ldr w0, [x0,8] str w0, [x29,64] and w0, w20, 16777215 - cbnz w0, .L1631 + cbnz w0, .L1668 ldr w2, [x29,64] mov w1, w20 ldr w3, [x23,28] @@ -10352,13 +10603,13 @@ nandc_xfer_done: mov w2, 4 mov w3, 64 bl rknand_print_hex -.L1631: +.L1668: ldr w0, [x29,64] - tbz x0, 20, .L1637 + tbz x0, 20, .L1674 add x20, x19, :lo12:.LANCHOR0 add x20, x20, 680 ldr w0, [x20,32] - cbz w0, .L1626 + cbz w0, .L1663 ldr w1, [x29,64] mov w2, 1 ldr w0, [x20,24] @@ -10369,11 +10620,11 @@ nandc_xfer_done: ldr w0, [x20,28] ubfx x1, x1, 22, 6 lsl w1, w1, 7 -.L1665: +.L1702: mov w2, 1 -.L1664: +.L1701: bl rknand_dma_unmap_single -.L1626: +.L1663: add x19, x19, :lo12:.LANCHOR0 ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -10402,19 +10653,19 @@ nandc_xfer: bl nandc_xfer_start bl nandc_xfer_done mov w0, 0 - cbnz w20, .L1697 + cbnz w20, .L1734 adrp x19, .LANCHOR0 add x2, x19, :lo12:.LANCHOR0 ldrb w1, [x2,516] cmp w1, 9 - bne .L1669 + bne .L1706 ldr x5, [x2,536] lsr w22, w22, 2 mov w4, 1 mov w3, w0 -.L1670: +.L1707: cmp w3, w22 - bcs .L1706 + bcs .L1743 uxtw x1, w3 add x1, x1, 84 ldr w1, [x5,x1,lsl 2] @@ -10426,30 +10677,30 @@ nandc_xfer: and w1, w1, w2 and w4, w4, w1 ldr w1, [x29,72] - tbnz x1, 2, .L1689 + tbnz x1, 2, .L1726 ldr w1, [x29,72] - tbnz x1, 18, .L1689 + tbnz x1, 18, .L1726 ldr w2, [x29,72] ldr w1, [x29,72] ubfx x2, x2, 3, 7 ubfx x1, x1, 19, 7 cmp w2, w1 ldr w1, [x29,72] - ble .L1672 + ble .L1709 ubfx x1, x1, 3, 7 - b .L1673 -.L1672: + b .L1710 +.L1709: ubfx x1, x1, 19, 7 -.L1673: +.L1710: cmp w0, w1 csel w0, w0, w1, cs - b .L1671 -.L1689: + b .L1708 +.L1726: mov w0, -1 -.L1671: +.L1708: add w3, w3, 1 - b .L1670 -.L1706: + b .L1707 +.L1743: add x22, x19, :lo12:.LANCHOR0 cmp w4, wzr ldr x1, [x22,536] @@ -10460,30 +10711,30 @@ nandc_xfer: movk w1, 0x2, lsl 16 and w1, w20, w1 cmp w1, 139264 - bne .L1676 - adrp x0, .LC139 + bne .L1713 + adrp x0, .LC142 mov w1, w20 - add x0, x0, :lo12:.LC139 + add x0, x0, :lo12:.LC142 orr w20, w20, 131072 bl printk ldr x0, [x22,536] str w20, [x0] mov w0, -1 -.L1676: - tbz x20, 13, .L1677 - adrp x1, .LANCHOR4+1200 - ldrb w1, [x1,#:lo12:.LANCHOR4+1200] - cbz w1, .L1677 - adrp x0, .LC140 +.L1713: + tbz x20, 13, .L1714 + adrp x1, .LANCHOR4+1192 + ldrb w1, [x1,#:lo12:.LANCHOR4+1192] + cbz w1, .L1714 + adrp x0, .LC143 mov w1, w20 - add x0, x0, :lo12:.LC140 + add x0, x0, :lo12:.LC143 add x19, x19, :lo12:.LANCHOR0 bl printk ldr x0, [x19,536] mov w1, 1 str w1, [x0,16] - b .L1678 -.L1669: + b .L1715 +.L1706: ldrb w0, [x2,724] mov w5, 128 lsr w6, w22, 1 @@ -10493,10 +10744,10 @@ nandc_xfer: csel w5, w0, w5, cc mov w1, w20 mov w4, w20 -.L1680: +.L1717: cmp w4, w6 add w7, w1, w5 - bcs .L1707 + bcs .L1744 ldr x0, [x2,680] and x1, x1, 4294967292 ldr w0, [x0,x1] @@ -10513,24 +10764,24 @@ nandc_xfer: add w3, w3, 4 strb w0, [x23,x1] mov w1, w7 - b .L1680 -.L1707: + b .L1717 +.L1744: add x0, x19, :lo12:.LANCHOR0 mov w2, 0 lsr w22, w22, 2 ldr x6, [x0,536] mov w0, w2 -.L1682: +.L1719: cmp w2, w22 - bcs .L1708 + bcs .L1745 uxtw x1, w2 add x1, x1, 8 ldr w1, [x6,x1,lsl 2] str w1, [x29,72] ldr w1, [x29,72] - tbnz x1, 2, .L1692 + tbnz x1, 2, .L1729 ldr w1, [x29,72] - tbnz x1, 15, .L1692 + tbnz x1, 15, .L1729 ldr w3, [x29,72] ubfx x5, x3, 3, 5 ldr w3, [x29,72] @@ -10543,26 +10794,26 @@ nandc_xfer: orr w1, w4, w1, lsl 5 cmp w3, w1 ldr w1, [x29,72] - bls .L1684 + bls .L1721 ubfx x3, x1, 3, 5 ldr w1, [x29,72] ubfx x1, x1, 27, 1 - b .L1705 -.L1684: + b .L1742 +.L1721: ubfx x3, x1, 16, 5 ldr w1, [x29,72] ubfx x1, x1, 29, 1 -.L1705: +.L1742: orr w1, w3, w1, lsl 5 cmp w0, w1 csel w0, w0, w1, cs - b .L1683 -.L1692: + b .L1720 +.L1729: mov w0, -1 -.L1683: +.L1720: add w2, w2, 1 - b .L1682 -.L1708: + b .L1719 +.L1745: add x19, x19, :lo12:.LANCHOR0 ldr x1, [x19,536] str wzr, [x1,16] @@ -10571,32 +10822,32 @@ nandc_xfer: movk w1, 0x2, lsl 16 and w1, w20, w1 cmp w1, 139264 - bne .L1677 - adrp x0, .LC141 + bne .L1714 + adrp x0, .LC144 mov w1, w20 - add x0, x0, :lo12:.LC141 + add x0, x0, :lo12:.LC144 orr w20, w20, 131072 bl printk ldr x0, [x19,536] str w20, [x0] - b .L1678 -.L1677: + b .L1715 +.L1714: cmn w0, #1 - beq .L1697 + beq .L1734 ldr w1, [x23] cmn w1, #1 - bne .L1697 + bne .L1734 ldr w1, [x23,4] cmn w1, #1 - bne .L1697 + bne .L1734 ldr w1, [x21] cmn w1, #1 mov w1, 512 csel w0, w0, w1, ne - b .L1697 -.L1678: + b .L1734 +.L1715: mov w0, -1 -.L1697: +.L1734: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldr x23, [sp,48] @@ -10626,36 +10877,36 @@ flash_read_page: and w20, w1, 2097151 ubfx x24, x23, 24, 2 ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 4, .L1710 - adrp x0, .LC142 + tbz x0, 4, .L1747 + adrp x0, .LC145 mov w1, w21 - add x0, x0, :lo12:.LC142 + add x0, x0, :lo12:.LC145 mov w2, w24 mov w3, w23 bl printk -.L1710: +.L1747: bl nandc_wait_flash_ready mov w0, w21 bl nandc_cs - cbnz w24, .L1711 + cbnz w24, .L1748 mov w0, w21 bl zftl_flash_enter_slc_mode - b .L1712 -.L1711: + b .L1749 +.L1748: add x0, x22, :lo12:.LANCHOR0 ldr x0, [x0,624] ldrb w0, [x0,12] cmp w0, 3 - bne .L1713 + bne .L1750 sxtw x0, w21 add x0, x0, 8 add x0, x19, x0, lsl 8 str w24, [x0,8] - b .L1712 -.L1713: + b .L1749 +.L1750: mov w0, w21 bl zftl_flash_exit_slc_mode -.L1712: +.L1749: ubfiz x5, x21, 8, 8 and w23, w23, 255 add x19, x19, x5 @@ -10669,19 +10920,19 @@ flash_read_page: str w0, [x19,2052] mov w0, 48 str w0, [x19,2056] - cbz w24, .L1714 + cbz w24, .L1751 add x22, x22, :lo12:.LANCHOR0 ldr x0, [x22,624] ldrb w0, [x0,12] cmp w0, 3 - bne .L1714 + bne .L1751 add w20, w20, w20, lsl 1 sub w0, w20, #1 add w0, w0, w24 - b .L1725 -.L1714: + b .L1762 +.L1751: mov w0, w20 -.L1725: +.L1762: bl nandc_set_seed bl nandc_wait_flash_ready mov w0, 5 @@ -10738,14 +10989,14 @@ micron_read_retrial: uxtb x19, w24 lsl x0, x19, 8 str x0, [x29,112] - adrp x0, .LC143 - add x0, x0, :lo12:.LC143 + adrp x0, .LC146 + add x0, x0, :lo12:.LC146 str x0, [x29,104] -.L1727: +.L1764: add x0, x23, :lo12:.LANCHOR4 - ldrb w0, [x0,1216] + ldrb w0, [x0,1208] cmp w20, w0 - bcs .L1731 + bcs .L1768 ldr x0, [x29,112] add w27, w20, 1 add x1, x22, x0 @@ -10770,7 +11021,7 @@ micron_read_retrial: mov w6, w0 adrp x0, .LANCHOR2 ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 12, .L1728 + tbz x0, 12, .L1765 ldr x0, [x29,104] mov w4, w6 mov w1, w20 @@ -10779,24 +11030,24 @@ micron_read_retrial: str x6, [x29,96] bl printk ldr x6, [x29,96] -.L1728: +.L1765: cmn w6, #1 - beq .L1729 + beq .L1766 adrp x0, .LANCHOR4 cmn w28, #1 add x0, x0, :lo12:.LANCHOR4 csel w28, w28, w6, ne - ldr x25, [x0,1192] - ldr x26, [x0,1208] + ldr x25, [x0,1184] + ldr x26, [x0,1200] ldr w0, [x29,124] cmp w6, w0 - bcc .L1736 -.L1729: + bcc .L1773 +.L1766: mov w20, w27 - b .L1727 -.L1736: + b .L1764 +.L1773: mov w28, w6 -.L1731: +.L1768: add x19, x22, x19, lsl 8 mov w0, 239 str w0, [x19,2056] @@ -10810,24 +11061,24 @@ micron_read_retrial: str wzr, [x19,2048] str wzr, [x19,2048] cmp w28, w0 - bcc .L1733 + bcc .L1770 cmn w28, #1 mov w0, 256 csel w28, w28, w0, eq -.L1733: +.L1770: cmn w28, #1 - beq .L1737 + beq .L1774 cmp w28, 256 - bne .L1734 -.L1737: - adrp x0, .LC144 + bne .L1771 +.L1774: + adrp x0, .LC147 mov w1, w20 - add x0, x0, :lo12:.LC144 + add x0, x0, :lo12:.LC147 mov w2, w21 mov w3, w20 mov w4, w28 bl printk -.L1734: +.L1771: bl nandc_wait_flash_ready mov w0, w28 ldp x19, x20, [sp,16] @@ -10873,19 +11124,19 @@ toshiba_3d_read_retrial: cmp w1, 36 mov w1, 26 csel w21, w21, w1, ne - cbnz w19, .L1751 + cbnz w19, .L1788 str x0, [x29,112] - adrp x0, .LC145 - add x0, x0, :lo12:.LC145 + adrp x0, .LC148 + add x0, x0, :lo12:.LC148 mov w19, -1 mov w28, 1 str x0, [x29,104] -.L1758: +.L1795: add x0, x20, :lo12:.LANCHOR0 ldrb w0, [x0,725] cmp w0, 36 mov x0, x23 - bne .L1752 + bne .L1789 mov w1, w28 mov w2, 0 bl toshiba_tlc_set_rr_para @@ -10893,11 +11144,11 @@ toshiba_3d_read_retrial: mov w1, 93 add x0, x25, x0 str w1, [x0,8] - b .L1753 -.L1752: + b .L1790 +.L1789: mov w1, w28 bl toshiba_3d_set_slc_rr_para -.L1753: +.L1790: ldr w4, [x29,124] mov w0, w22 mov w1, w24 @@ -10907,7 +11158,7 @@ toshiba_3d_read_retrial: mov w4, w0 adrp x0, .LANCHOR2 ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 4, .L1754 + tbz x0, 4, .L1791 ldr x0, [x29,104] mov w3, w4 mov w1, w28 @@ -10915,66 +11166,66 @@ toshiba_3d_read_retrial: str x4, [x29,96] bl printk ldr x4, [x29,96] -.L1754: +.L1791: cmn w4, #1 - beq .L1755 + beq .L1792 adrp x0, .LANCHOR4 cmn w19, #1 add x0, x0, :lo12:.LANCHOR4 csel w19, w19, w4, ne - ldr x26, [x0,1192] - ldr x27, [x0,1208] + ldr x26, [x0,1184] + ldr x27, [x0,1200] add x0, x20, :lo12:.LANCHOR0 ldrb w0, [x0,724] add w0, w0, w0, lsl 1 cmp w4, w0, lsr 2 - bcc .L1774 -.L1755: + bcc .L1811 +.L1792: add w28, w28, 1 cmp w28, w21 - bne .L1758 - b .L1757 -.L1774: + bne .L1795 + b .L1794 +.L1811: mov w21, w28 mov w19, w4 -.L1757: +.L1794: add x0, x20, :lo12:.LANCHOR0 ldrb w0, [x0,725] cmp w0, 36 mov x0, x23 - bne .L1759 + bne .L1796 mov w1, 0 mov w2, w1 - b .L1797 -.L1759: + b .L1834 +.L1796: mov w1, 0 bl toshiba_3d_set_slc_rr_para - b .L1760 -.L1751: + b .L1797 +.L1788: mov x28, x0 - adrp x0, .LC146 - add x0, x0, :lo12:.LC146 + adrp x0, .LC149 + add x0, x0, :lo12:.LC149 mov w19, -1 mov w21, 1 str x0, [x29,104] -.L1767: +.L1804: add x0, x20, :lo12:.LANCHOR0 ldrb w0, [x0,725] cmp w0, 36 mov x0, x23 - bne .L1761 + bne .L1798 mov w1, w21 mov w2, 1 bl toshiba_tlc_set_rr_para add x0, x25, x28 mov w1, 93 - b .L1796 -.L1761: + b .L1833 +.L1798: mov w1, w21 bl toshiba_3d_set_tlc_rr_para add x0, x25, x28 mov w1, 38 -.L1796: +.L1833: str w1, [x0,8] mov x2, x26 mov w0, w22 @@ -10985,7 +11236,7 @@ toshiba_3d_read_retrial: mov w4, w0 adrp x0, .LANCHOR2 ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 4, .L1763 + tbz x0, 4, .L1800 ldr x0, [x29,104] mov w3, w4 mov w1, w21 @@ -10993,47 +11244,47 @@ toshiba_3d_read_retrial: str x4, [x29,96] bl printk ldr x4, [x29,96] -.L1763: +.L1800: cmn w4, #1 - beq .L1764 + beq .L1801 adrp x0, .LANCHOR4 cmn w19, #1 add x0, x0, :lo12:.LANCHOR4 csel w19, w19, w4, ne - ldr x26, [x0,1192] - ldr x27, [x0,1208] + ldr x26, [x0,1184] + ldr x27, [x0,1200] add x0, x20, :lo12:.LANCHOR0 ldrb w0, [x0,724] add w0, w0, w0, lsl 1 cmp w4, w0, lsr 2 - bcc .L1775 -.L1764: + bcc .L1812 +.L1801: ldr w0, [x29,112] add w21, w21, 1 cmp w21, w0 - bne .L1767 - b .L1766 -.L1775: + bne .L1804 + b .L1803 +.L1812: mov w19, w4 -.L1766: +.L1803: add x0, x20, :lo12:.LANCHOR0 ldrb w0, [x0,725] cmp w0, 36 mov x0, x23 - bne .L1768 + bne .L1805 mov w1, 0 mov w2, 1 -.L1797: +.L1834: bl toshiba_tlc_set_rr_para - b .L1760 -.L1768: + b .L1797 +.L1805: mov w1, 0 bl toshiba_3d_set_tlc_rr_para -.L1760: +.L1797: add x0, x20, :lo12:.LANCHOR0 ldrb w0, [x0,725] cmp w0, 36 - bne .L1769 + bne .L1806 ubfiz x22, x22, 8, 8 mov w0, 85 add x25, x25, x22 @@ -11042,29 +11293,29 @@ toshiba_3d_read_retrial: str wzr, [x25,2052] str wzr, [x25,2048] str w0, [x25,2056] -.L1769: +.L1806: add x20, x20, :lo12:.LANCHOR0 ldrb w0, [x20,724] add w0, w0, w0, lsl 1 cmp w19, w0, lsr 2 - bcc .L1770 + bcc .L1807 cmn w19, #1 mov w0, 256 csel w19, w19, w0, eq -.L1770: +.L1807: cmn w19, #1 - beq .L1776 + beq .L1813 cmp w19, 256 - bne .L1771 -.L1776: - adrp x0, .LC147 + bne .L1808 +.L1813: + adrp x0, .LC150 mov w1, w21 - add x0, x0, :lo12:.LC147 + add x0, x0, :lo12:.LC150 mov w2, w24 mov w3, w21 mov w4, w19 bl printk -.L1771: +.L1808: bl nandc_wait_flash_ready mov w0, w19 ldp x19, x20, [sp,16] @@ -11104,20 +11355,20 @@ toshiba_read_retrial: add x21, x22, x21, lsl 8 uxtb w0, w0 cmp w0, 1 - bls .L1799 + bls .L1836 ldrb w0, [x1,672] - cbz w0, .L1800 + cbz w0, .L1837 mov w0, 1 mov w25, 1 bl nandc_set_if_mode -.L1800: +.L1837: ubfiz x0, x23, 8, 8 mov w1, 92 add x0, x22, x0 str w1, [x0,2056] mov w1, 197 str w1, [x0,2056] -.L1799: +.L1836: ldr x0, [x29,112] mov w20, 1 mov w24, -1 @@ -11126,13 +11377,13 @@ toshiba_read_retrial: str x0, [x29,104] ubfiz x0, x23, 8, 8 str x0, [x29,96] -.L1801: +.L1838: adrp x0, .LANCHOR4 add x0, x0, :lo12:.LANCHOR4 - ldrb w0, [x0,1216] + ldrb w0, [x0,1208] add w0, w0, 1 cmp w20, w0 - bcs .L1832 + bcs .L1869 add x0, x19, :lo12:.LANCHOR0 mov w1, w20 ldrb w0, [x0,725] @@ -11140,27 +11391,27 @@ toshiba_read_retrial: uxtb w0, w0 cmp w0, 1 mov x0, x21 - bhi .L1802 + bhi .L1839 bl sandisk_set_rr_para - b .L1803 -.L1802: + b .L1840 +.L1839: bl toshiba_set_rr_para -.L1803: +.L1840: add x0, x19, :lo12:.LANCHOR0 ldrb w0, [x0,725] cmp w0, 34 - bne .L1804 + bne .L1841 adrp x0, .LANCHOR4 add x0, x0, :lo12:.LANCHOR4 - ldrb w0, [x0,1216] + ldrb w0, [x0,1208] sub w0, w0, #3 cmp w20, w0 - bne .L1804 + bne .L1841 ldr x0, [x29,104] mov w1, 179 add x0, x22, x0 str w1, [x0,8] -.L1804: +.L1841: ldr x0, [x29,96] mov w1, 38 ldr w4, [x29,120] @@ -11175,24 +11426,24 @@ toshiba_read_retrial: bl flash_read_page cmn w0, #1 mov w28, w0 - beq .L1807 + beq .L1844 cmn w24, #1 csel w24, w24, w0, ne adrp x0, .LANCHOR4 add x0, x0, :lo12:.LANCHOR4 - ldr x26, [x0,1192] - ldr x27, [x0,1208] + ldr x26, [x0,1184] + ldr x27, [x0,1200] add x0, x19, :lo12:.LANCHOR0 ldrb w0, [x0,724] add w0, w0, w0, lsl 1 cmp w28, w0, lsr 2 - bcc .L1809 -.L1807: + bcc .L1846 +.L1844: add w20, w20, 1 - b .L1801 -.L1832: + b .L1838 +.L1869: mov w28, w24 -.L1809: +.L1846: add x0, x19, :lo12:.LANCHOR0 mov w1, 0 ldrb w0, [x0,725] @@ -11200,12 +11451,12 @@ toshiba_read_retrial: uxtb w0, w0 cmp w0, 1 mov x0, x21 - bhi .L1811 + bhi .L1848 bl sandisk_set_rr_para - b .L1812 -.L1811: + b .L1849 +.L1848: bl toshiba_set_rr_para -.L1812: +.L1849: ldr x0, [x29,112] add x19, x19, :lo12:.LANCHOR0 add x0, x0, 8 @@ -11215,29 +11466,29 @@ toshiba_read_retrial: ldrb w0, [x19,724] add w0, w0, w0, lsl 1 cmp w28, w0, lsr 2 - bcc .L1813 + bcc .L1850 cmn w28, #1 mov w0, 256 csel w28, w28, w0, eq -.L1813: +.L1850: cmn w28, #1 - beq .L1819 + beq .L1856 cmp w28, 256 - bne .L1814 -.L1819: - adrp x0, .LC147 + bne .L1851 +.L1856: + adrp x0, .LC150 ldr w2, [x29,124] - add x0, x0, :lo12:.LC147 + add x0, x0, :lo12:.LC150 mov w1, w20 mov w3, w20 mov w4, w28 bl printk -.L1814: +.L1851: bl nandc_wait_flash_ready - cbz w25, .L1816 + cbz w25, .L1853 mov w0, 4 bl nandc_set_if_mode -.L1816: +.L1853: mov w0, w28 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -11275,9 +11526,9 @@ hynix_read_retrial: bl nandc_wait_flash_ready mov w6, 0 adrp x7, .LANCHOR4 -.L1834: +.L1871: cmp w6, w24 - bcs .L1838 + bcs .L1875 add w20, w20, 1 mov w0, w22 str x7, [x29,104] @@ -11296,47 +11547,47 @@ hynix_read_retrial: cmn w0, #1 ldr x6, [x29,112] ldr x7, [x29,104] - beq .L1836 + beq .L1873 add x1, x7, :lo12:.LANCHOR4 cmn w19, #1 csel w19, w19, w0, ne - ldr x25, [x1,1192] - ldr x26, [x1,1208] + ldr x25, [x1,1184] + ldr x26, [x1,1200] add x1, x28, :lo12:.LANCHOR0 ldrb w1, [x1,724] add w1, w1, w1, lsl 1 cmp w0, w1, lsr 2 - bcc .L1843 -.L1836: + bcc .L1880 +.L1873: add w6, w6, 1 - b .L1834 -.L1843: + b .L1871 +.L1880: mov w19, w0 -.L1838: +.L1875: add x28, x28, :lo12:.LANCHOR0 add x21, x27, x21 ldrb w0, [x28,724] strb w20, [x21,8] add w0, w0, w0, lsl 1 cmp w19, w0, lsr 2 - bcc .L1840 + bcc .L1877 cmn w19, #1 mov w0, 256 csel w19, w19, w0, eq -.L1840: +.L1877: cmn w19, #1 - beq .L1844 + beq .L1881 cmp w19, 256 - bne .L1841 -.L1844: - adrp x0, .LC148 + bne .L1878 +.L1881: + adrp x0, .LC151 mov w1, w6 - add x0, x0, :lo12:.LC148 + add x0, x0, :lo12:.LC151 mov w2, w23 mov w3, w6 mov w4, w19 bl printk -.L1841: +.L1878: bl nandc_wait_flash_ready mov w0, w19 ldp x19, x20, [sp,16] @@ -11366,16 +11617,16 @@ flash_ddr_tuning_read: bl nandc_get_ddr_para mov w27, 0 str w0, [x29,116] - adrp x0, .LC149 + adrp x0, .LC152 str w27, [x29,124] - add x0, x0, :lo12:.LC149 + add x0, x0, :lo12:.LC152 mov w25, w27 mov w28, w27 mov w19, 1024 mov w26, 6 mov w21, -1 str x0, [x29,104] -.L1859: +.L1896: mov w0, w26 bl nandc_set_ddr_para ldr w4, [x29,120] @@ -11387,7 +11638,7 @@ flash_ddr_tuning_read: mov w4, w0 adrp x0, .LANCHOR2 ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 4, .L1854 + tbz x0, 4, .L1891 ldr x0, [x29,104] mov w3, w4 mov w1, w26 @@ -11395,73 +11646,73 @@ flash_ddr_tuning_read: str x4, [x29,96] bl printk ldr x4, [x29,96] -.L1854: +.L1891: add w0, w19, 1 cmp w4, w0 - bhi .L1855 + bhi .L1892 adrp x0, .LANCHOR4 add x0, x0, :lo12:.LANCHOR4 - ldr x24, [x0,1192] - ldr x23, [x0,1208] + ldr x24, [x0,1184] + ldr x23, [x0,1200] adrp x0, .LANCHOR0 add x0, x0, :lo12:.LANCHOR0 ldrb w0, [x0,724] cmp w4, w0, lsr 2 - bcs .L1865 + bcs .L1902 add w28, w28, 1 cmp w28, 7 - bls .L1865 + bls .L1902 sub w27, w26, w28 mov w19, w4 mov w21, 0 - b .L1857 -.L1855: + b .L1894 +.L1892: cmp w25, w28 - bcs .L1866 + bcs .L1903 sub w0, w27, w28 cmp w28, 7 str w0, [x29,124] - bhi .L1858 + bhi .L1895 mov w25, w28 - b .L1866 -.L1865: + b .L1903 +.L1902: mov w27, w26 mov w19, w4 mov w21, 0 - b .L1856 -.L1866: + b .L1893 +.L1903: mov w28, 0 -.L1856: +.L1893: add w26, w26, 2 cmp w26, 50 - bne .L1859 -.L1857: + bne .L1896 +.L1894: ldr w0, [x29,124] cmp w25, w28 csel w27, w27, w0, ls -.L1858: - cbz w27, .L1860 +.L1895: + cbz w27, .L1897 adrp x0, .LANCHOR0+724 mov w1, 3 ldrb w0, [x0,#:lo12:.LANCHOR0+724] udiv w0, w0, w1 cmp w19, w0 - bcs .L1860 - adrp x0, .LC150 + bcs .L1897 + adrp x0, .LC153 mov w1, w27 - add x0, x0, :lo12:.LC150 + add x0, x0, :lo12:.LC153 bl printk mov w0, w27 - b .L1875 -.L1860: + b .L1912 +.L1897: ldrb w0, [x29,116] -.L1875: +.L1912: bl nandc_set_ddr_para - cbz w21, .L1862 - adrp x0, .LC151 + cbz w21, .L1899 + adrp x0, .LC154 mov w2, w22 mov w1, w20 - add x0, x0, :lo12:.LC151 + add x0, x0, :lo12:.LC154 adrp x26, .LANCHOR0 bl printk add x27, x26, :lo12:.LANCHOR0 @@ -11483,33 +11734,33 @@ flash_ddr_tuning_read: mov w0, w20 bl flash_read_page mov w19, w0 - adrp x0, .LC152 + adrp x0, .LC155 mov w1, w20 - add x0, x0, :lo12:.LC152 + add x0, x0, :lo12:.LC155 mov w2, w22 mov w3, w19 bl printk ldrb w0, [x27,724] cmp w19, w0 - bhi .L1867 + bhi .L1904 adrp x1, .LANCHOR4 add x1, x1, :lo12:.LANCHOR4 - ldr w0, [x1,1220] + ldr w0, [x1,1212] add w0, w0, 1 - str w0, [x1,1220] + str w0, [x1,1212] cmp w0, 100 - bls .L1863 + bls .L1900 strb wzr, [x27,672] - b .L1862 -.L1867: + b .L1899 +.L1904: mov w19, w21 -.L1863: +.L1900: add x26, x26, :lo12:.LANCHOR0 ldrb w0, [x26,780] bl flash_set_interface_mode ldrb w0, [x26,780] bl nandc_set_if_mode -.L1862: +.L1899: mov w0, w19 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -11538,57 +11789,57 @@ flash_read_page_en: ldrb w0, [x0,633] mov w22, w4 cmp w0, w25 - bhi .L1877 + bhi .L1914 adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 - mov w2, 386 + mov w2, 398 add x1, x1, 136 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L1877: +.L1914: add x0, x20, :lo12:.LANCHOR0 add x1, x0, x25, sxtw ldrb w21, [x1,736] ldrb w1, [x0,633] cmp w1, w25 - bcs .L1878 + bcs .L1915 adrp x0, .LANCHOR2 ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 6, .L1904 - adrp x0, .LC153 + tbz x0, 6, .L1941 + adrp x0, .LC156 mov w1, w21 - add x0, x0, :lo12:.LC153 + add x0, x0, :lo12:.LC156 mov w2, w25 mov w3, w19 bl printk -.L1904: +.L1941: mov w0, -1 - b .L1903 -.L1878: + b .L1940 +.L1915: ubfx x1, x19, 24, 2 - cbnz w1, .L1881 + cbnz w1, .L1918 adrp x1, .LANCHOR0 ldrb w1, [x1,#:lo12:.LANCHOR0] - cbz w1, .L1882 + cbz w1, .L1919 ldrb w0, [x0,1] - cbz w0, .L1881 -.L1882: + cbz w0, .L1918 +.L1919: add x1, x20, :lo12:.LANCHOR0 ldrh w2, [x1,2] udiv w0, w19, w2 mul w0, w0, w2 ldrb w2, [x1,1] sub w19, w19, w0 - cbz w2, .L1883 + cbz w2, .L1920 add w19, w0, w19, lsl 1 - b .L1881 -.L1883: + b .L1918 +.L1920: add x1, x1, 4 ldrh w19, [x1,w19,uxtw 1] add w19, w19, w0 -.L1881: +.L1918: mov w0, w21 mov w1, w19 mov x2, x24 @@ -11596,16 +11847,16 @@ flash_read_page_en: mov w4, w22 bl flash_read_page cmn w0, #1 - bne .L1903 + bne .L1940 add x25, x20, :lo12:.LANCHOR0 ldrb w26, [x25,720] - cbnz w26, .L1885 -.L1888: - adrp x0, .LANCHOR4+1224 - ldr x5, [x0,#:lo12:.LANCHOR4+1224] - cbnz x5, .L1886 - b .L1887 -.L1885: + cbnz w26, .L1922 +.L1925: + adrp x0, .LANCHOR4+1216 + ldr x5, [x0,#:lo12:.LANCHOR4+1216] + cbnz x5, .L1923 + b .L1924 +.L1922: mov w0, w21 mov w1, w19 mov x2, x24 @@ -11615,9 +11866,9 @@ flash_read_page_en: bl flash_read_page strb w26, [x25,720] cmn w0, #1 - beq .L1888 - b .L1903 -.L1886: + beq .L1925 + b .L1940 +.L1923: mov w0, w21 mov w1, w19 mov x2, x24 @@ -11625,25 +11876,25 @@ flash_read_page_en: mov w4, w22 blr x5 cmn w0, #1 - bne .L1903 -.L1887: + bne .L1940 +.L1924: add x20, x20, :lo12:.LANCHOR0 - adrp x0, .LC154 - add x0, x0, :lo12:.LC154 + adrp x0, .LC157 + add x0, x0, :lo12:.LC157 mov w1, 0 mov w2, w19 mov w3, -1 ldrb w4, [x20,720] bl printk ldrb w0, [x20,672] - cbz w0, .L1904 + cbz w0, .L1941 mov w0, w21 mov w1, w19 mov x2, x24 mov x3, x23 mov w4, w22 bl flash_ddr_tuning_read -.L1903: +.L1940: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -11659,11 +11910,11 @@ flash_get_last_written_page: add x29, sp, 0 stp x23, x24, [sp,48] uxtb w23, w0 - adrp x0, .LANCHOR4+1092 + adrp x0, .LANCHOR4+1084 stp x19, x20, [sp,16] adrp x20, .LANCHOR2 mov x24, x2 - ldrh w19, [x0,#:lo12:.LANCHOR4+1092] + ldrh w19, [x0,#:lo12:.LANCHOR4+1084] add x0, x20, :lo12:.LANCHOR2 stp x21, x22, [sp,32] stp x25, x26, [sp,64] @@ -11680,12 +11931,12 @@ flash_get_last_written_page: add w1, w26, w19 bl flash_read_page_en cmp w0, 512 - bne .L1906 + bne .L1943 mov w28, 0 mov w5, 2 -.L1907: +.L1944: cmp w28, w19 - bgt .L1906 + bgt .L1943 add w0, w28, w19 mov x2, x24 mov x3, x21 @@ -11697,24 +11948,24 @@ flash_get_last_written_page: bl flash_read_page_en cmp w0, 512 ldr x5, [x29,104] - bne .L1908 + bne .L1945 sub w19, w20, #1 sxth w19, w19 - b .L1907 -.L1908: + b .L1944 +.L1945: add w20, w20, 1 sxth w28, w20 - b .L1907 -.L1906: + b .L1944 +.L1943: ldr w0, [x27,#:lo12:.LANCHOR2] - tbz x0, 12, .L1911 - adrp x0, .LC155 + tbz x0, 12, .L1948 + adrp x0, .LC158 ldr w3, [x21] - add x0, x0, :lo12:.LC155 + add x0, x0, :lo12:.LC158 mov w1, w22 mov w2, w19 bl printk -.L1911: +.L1948: mov w0, w19 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -11750,163 +12001,6 @@ flash_get_last_written_page_ext: ret .size flash_get_last_written_page_ext, .-flash_get_last_written_page_ext .align 2 - .global flash_info_blk_init - .type flash_info_blk_init, %function -flash_info_blk_init: - adrp x0, .LANCHOR2 - stp x29, x30, [sp, -64]! - add x29, sp, 0 - ldr w0, [x0,#:lo12:.LANCHOR2] - stp x19, x20, [sp,16] - stp x21, x22, [sp,32] - stp x23, x24, [sp,48] - adrp x20, .LANCHOR0 - tbz x0, 12, .L1917 - add x4, x20, :lo12:.LANCHOR0 - adrp x2, .LANCHOR3 - adrp x0, .LC156 - add x2, x2, :lo12:.LANCHOR3 - add x0, x0, :lo12:.LC156 - mov w1, 49 - ldr x4, [x4,728] - add x2, x2, 160 - mov w3, 2048 - bl printk -.L1917: - mov w22, 4 - adrp x24, .LANCHOR4 -.L1920: - add x19, x20, :lo12:.LANCHOR0 - add x21, x24, :lo12:.LANCHOR4 - mov w0, 0 - mov w4, 4 - adrp x23, .LANCHOR4 - ldrh w1, [x19,2] - ldr x2, [x19,728] - ldr x3, [x21,1232] - mul w1, w22, w1 - bl flash_read_page_en - cmn w0, #1 - beq .L1918 - ldr x2, [x19,728] - mov w0, 21321 - movk w0, 0x5359, lsl 16 - ldr w1, [x2] - cmp w1, w0 - beq .L1919 -.L1918: - add w22, w22, 1 - cmp w22, 16 - bne .L1920 -.L1944: - mov w0, -1 - b .L1943 -.L1919: - ldrb w1, [x2,36] - mov w4, 4 - ldrh w3, [x19,2] - strb w1, [x21,1240] - ldrb w0, [x2,37] - mul w1, w1, w3 - ldr x3, [x21,1232] - strb w0, [x21,1241] - mov w0, 0 - mov w21, 0 - bl flash_read_page_en - cmn w0, #1 - beq .L1922 - ldr x0, [x19,728] - mov w1, 21321 - movk w1, 0x5359, lsl 16 - mov w21, 0 - ldr w2, [x0] - cmp w2, w1 - bne .L1922 - ldr w21, [x0,4] -.L1922: - add x19, x23, :lo12:.LANCHOR4 - add x22, x20, :lo12:.LANCHOR0 - mov w0, 0 - mov w4, 4 - ldrb w2, [x19,1241] - ldrh w1, [x22,2] - ldr x3, [x19,1232] - mul w1, w2, w1 - ldr x2, [x22,728] - bl flash_read_page_en - cmn w0, #1 - beq .L1923 - ldr x0, [x22,728] - mov w1, 21321 - movk w1, 0x5359, lsl 16 - ldr w2, [x0] - cmp w2, w1 - bne .L1923 - ldr w1, [x0,4] - cmp w21, w1 - bcs .L1923 - ldrb w1, [x0,37] - ldrb w0, [x0,36] - strb w1, [x19,1240] - strb w0, [x19,1241] -.L1923: - add x21, x23, :lo12:.LANCHOR4 - add x22, x20, :lo12:.LANCHOR0 - mov w0, 0 - mov w4, 4 - ldrb w1, [x21,1240] - ldr x3, [x21,1232] - ldr x2, [x22,728] - bl flash_get_last_written_page - sxth w19, w0 - add w0, w0, 1 - strh w0, [x21,1242] - ldrb w0, [x21,1240] - ldrh w21, [x22,2] - mul w21, w0, w21 -.L1924: - tbnz w19, #31, .L1945 - add x22, x20, :lo12:.LANCHOR0 - add x3, x23, :lo12:.LANCHOR4 - mov w0, 0 - add w1, w19, w21 - mov w4, 4 - ldr x2, [x22,728] - ldr x3, [x3,1232] - bl flash_read_page_en - cmn w0, #1 - beq .L1925 - ldr x0, [x22,728] - ldr w1, [x0] - mov w0, 21321 - movk w0, 0x5359, lsl 16 - cmp w1, w0 - bne .L1925 -.L1927: - mov w0, 0 - b .L1943 -.L1925: - sub w19, w19, #1 - sxth w19, w19 - b .L1924 -.L1945: - cmn w19, #1 - bne .L1927 - add x20, x20, :lo12:.LANCHOR0 - adrp x0, .LC157 - add x0, x0, :lo12:.LC157 - ldr x1, [x20,728] - ldr w1, [x1] - bl printk - b .L1944 -.L1943: - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x29, x30, [sp], 64 - ret - .size flash_info_blk_init, .-flash_info_blk_init - .align 2 .global flash_ddr_para_scan .type flash_ddr_para_scan, %function flash_ddr_para_scan: @@ -11927,33 +12021,33 @@ flash_ddr_para_scan: bl flash_set_interface_mode ldrb w0, [x21,780] bl nandc_set_if_mode - ldr x2, [x20,1248] + ldr x2, [x20,1224] mov w1, w23 - ldr x3, [x20,1256] + ldr x3, [x20,1232] mov w4, 4 mov w0, w24 bl flash_ddr_tuning_read - ldr x2, [x20,1248] + ldr x2, [x20,1224] mov w0, w24 - ldr x3, [x20,1256] + ldr x3, [x20,1232] mov w1, w23 mov w4, 4 bl flash_read_page cmn w0, #1 - bne .L1947 + bne .L1954 ldrb w0, [x21,780] - tbz x0, 0, .L1947 + tbz x0, 0, .L1954 mov w0, 1 bl flash_set_interface_mode mov w0, w22 bl nandc_set_if_mode strb wzr, [x21,672] - b .L1948 -.L1947: + b .L1955 +.L1954: add x19, x19, :lo12:.LANCHOR0 mov w0, 1 strb w0, [x19,672] -.L1948: +.L1955: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -11962,34 +12056,36 @@ flash_ddr_para_scan: ret .size flash_ddr_para_scan, .-flash_ddr_para_scan .align 2 - .type id_block_read_data.constprop.31, %function -id_block_read_data.constprop.31: + .type id_block_read_data.constprop.32, %function +id_block_read_data.constprop.32: stp x29, x30, [sp, -240]! add x29, sp, 0 - stp x27, x28, [sp,80] - mov w27, w1 - adrp x1, .LANCHOR0 - stp x19, x20, [sp,16] - add x19, x1, :lo12:.LANCHOR0 - str x1, [x29,120] stp x25, x26, [sp,64] mov w26, w0 - ldr x0, [x19,624] + adrp x0, .LANCHOR2 + add x0, x0, :lo12:.LANCHOR2 stp x21, x22, [sp,32] + stp x19, x20, [sp,16] stp x23, x24, [sp,48] + stp x27, x28, [sp,80] + add x0, x0, 8 + mov w27, w1 + ldrb w1, [x0,9] mov x21, x2 + str w1, [x29,164] mov w22, 0 - ldrb w2, [x0,9] + ldrh w0, [x0,26] mov w23, 4 - ldrh w0, [x0,10] mov w25, w22 - str w2, [x29,164] - mul w0, w2, w0 + mul w0, w1, w0 + adrp x1, .LANCHOR0 + str x1, [x29,120] + add x19, x1, :lo12:.LANCHOR0 + uxth w0, w0 ldrb w2, [x19,720] str w2, [x29,136] - uxth w0, w0 - strb wzr, [x19,720] udiv w2, w26, w0 + strb wzr, [x19,720] msub w0, w2, w0, w26 str w0, [x29,172] sub w0, w26, w0 @@ -11997,34 +12093,32 @@ id_block_read_data.constprop.31: ldr w0, [x29,172] and w0, w0, 3 str w0, [x29,168] - adrp x0, .LC158 - add x0, x0, :lo12:.LC158 + adrp x0, .LC159 + add x0, x0, :lo12:.LC159 str x0, [x29,112] -.L1953: +.L1960: cmp w22, w27 - bcs .L1990 + bcs .L1997 ldr w0, [x29,168] - adrp x1, .LANCHOR4 - add x1, x1, :lo12:.LANCHOR4 + ldrb w1, [x19,782] sub w0, w23, w0 uxth w0, w0 str w0, [x29,144] ldr w0, [x29,172] - ldrb w1, [x1,1264] add w20, w22, w0 add x0, x19, 4 udiv w20, w20, w23 and w20, w20, 65535 ldrh w0, [x0,w20,sxtw 1] - cbnz w1, .L1954 + cbnz w1, .L1961 mov w20, w0 - b .L1955 -.L1954: + b .L1962 +.L1961: ldrb w1, [x19,1] lsl w0, w20, 1 cmp w1, wzr csel w20, w0, w20, ne -.L1955: +.L1962: ldr w1, [x29,160] ldr w0, [x29,164] ldrb w28, [x19,632] @@ -12039,7 +12133,7 @@ id_block_read_data.constprop.31: str w0, [x29,132] mov w0, w28 bl nandc_bch_sel -.L1956: +.L1963: mov w0, 0 mov w1, w24 mov x2, x21 @@ -12048,16 +12142,16 @@ id_block_read_data.constprop.31: bl flash_read_page cmn w0, #1 mov w20, w0 - bne .L1963 + bne .L1970 ldrb w6, [x19,720] - cbnz w6, .L1958 -.L1961: + cbnz w6, .L1965 +.L1968: adrp x0, .LANCHOR4 add x0, x0, :lo12:.LANCHOR4 - ldr x6, [x0,1224] - cbnz x6, .L1959 - b .L1960 -.L1958: + ldr x6, [x0,1216] + cbnz x6, .L1966 + b .L1967 +.L1965: mov w0, 0 mov w1, w24 mov x2, x21 @@ -12069,9 +12163,9 @@ id_block_read_data.constprop.31: cmn w0, #1 ldr x6, [x29,104] strb w6, [x19,720] - beq .L1961 - b .L1989 -.L1959: + beq .L1968 + b .L1996 +.L1966: mov w0, 0 mov w1, w24 mov x2, x21 @@ -12079,28 +12173,28 @@ id_block_read_data.constprop.31: mov w4, w23 blr x6 cmn w0, #1 - bne .L1989 -.L1960: + bne .L1996 +.L1967: ldrb w0, [x19,672] - cbz w0, .L1963 + cbz w0, .L1970 mov w0, 0 mov w1, w24 mov x2, x21 add x3, x29, 176 mov w4, w23 bl flash_ddr_tuning_read -.L1989: +.L1996: mov w20, w0 -.L1963: +.L1970: cmn w20, #1 - bne .L1964 + bne .L1971 cmp w28, 16 - beq .L1964 + beq .L1971 mov w0, 16 mov w28, 16 bl nandc_bch_sel - b .L1956 -.L1964: + b .L1963 +.L1971: ldr w0, [x29,132] bl nandc_bch_sel cmn w20, #1 @@ -12111,18 +12205,18 @@ id_block_read_data.constprop.31: cmp w0, w26 cset w0, eq tst w1, w0 - beq .L1966 - cbnz w25, .L1966 + beq .L1973 + cbnz w25, .L1973 ldr w1, [x21] mov w0, 18766 movk w0, 0x464e, lsl 16 cmp w1, w0 - bne .L1966 + bne .L1973 ldr w0, [x29,144] ldrb w23, [x21,17] add w27, w27, w0 - b .L1967 -.L1966: + b .L1974 +.L1973: ldr x0, [x29,144] mov w2, w22 ldr w1, [x29,140] @@ -12133,12 +12227,12 @@ id_block_read_data.constprop.31: ldr x0, [x29,112] bl printk str wzr, [x29,168] -.L1967: +.L1974: ldr w0, [x29,144] add w22, w0, w22 uxth w22, w22 - b .L1953 -.L1990: + b .L1960 +.L1997: ldr x0, [x29,120] ldrb w1, [x29,136] add x0, x0, :lo12:.LANCHOR0 @@ -12151,7 +12245,7 @@ id_block_read_data.constprop.31: ldp x27, x28, [sp,80] ldp x29, x30, [sp], 240 ret - .size id_block_read_data.constprop.31, .-id_block_read_data.constprop.31 + .size id_block_read_data.constprop.32, .-id_block_read_data.constprop.32 .align 2 .global flash_complete_plane_page_read .type flash_complete_plane_page_read, %function @@ -12171,27 +12265,27 @@ flash_complete_plane_page_read: mov x23, x2 ldrb w0, [x0,633] cmp w0, w22 - bhi .L1992 + bhi .L1999 adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 - mov w2, 795 - add x1, x1, 184 + mov w2, 886 + add x1, x1, 160 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L1992: +.L1999: add x0, x21, :lo12:.LANCHOR0 add x22, x0, x22, sxtw ldrb w22, [x22,736] ldr x25, [x0,536] mov w0, w22 bl nandc_cs - cbnz w20, .L1993 + cbnz w20, .L2000 mov w0, w19 bl slc_phy_page_address_calc mov w19, w0 -.L1993: +.L2000: add x3, x21, :lo12:.LANCHOR0 uxtb x5, w22 and w2, w19, 255 @@ -12199,26 +12293,26 @@ flash_complete_plane_page_read: ldrb w0, [x3,656] cmp w0, 1 lsr w0, w19, 16 - bne .L1994 + bne .L2001 add x5, x25, x5, lsl 8 mov w3, 6 - b .L2007 -.L1994: + b .L2014 +.L2001: ldr x3, [x3,624] add x5, x25, x5, lsl 8 ldrb w3, [x3,12] cmp w3, 3 - bne .L1996 + bne .L2003 mov w3, 5 -.L2007: +.L2014: str w3, [x5,2056] str wzr, [x5,2052] str wzr, [x5,2052] str w2, [x5,2052] str w1, [x5,2052] str w0, [x5,2052] - b .L2005 -.L1996: + b .L2012 +.L2003: str wzr, [x5,2056] str wzr, [x5,2052] str wzr, [x5,2052] @@ -12229,22 +12323,22 @@ flash_complete_plane_page_read: str w0, [x5,2056] str wzr, [x5,2052] str wzr, [x5,2052] -.L2005: +.L2012: mov w0, 224 str w0, [x5,2056] - cbz w20, .L1997 + cbz w20, .L2004 add x21, x21, :lo12:.LANCHOR0 ldr x0, [x21,624] ldrb w0, [x0,12] cmp w0, 3 - bne .L1997 + bne .L2004 sub w20, w20, #1 add w0, w19, w19, lsl 1 add w0, w20, w0 - b .L2006 -.L1997: + b .L2013 +.L2004: mov w0, w19 -.L2006: +.L2013: bl nandc_set_seed adrp x2, .LANCHOR2+17 mov x3, x24 @@ -12285,27 +12379,27 @@ flash_complete_page_read: mov x26, x2 ubfx x22, x24, 24, 2 cmp w0, w21 - bhi .L2009 + bhi .L2016 adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 - mov w2, 917 - add x1, x1, 216 + mov w2, 1008 + add x1, x1, 192 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L2009: +.L2016: add x0, x19, :lo12:.LANCHOR0 add x21, x0, x21, sxtw ldrb w23, [x21,736] ldr x21, [x0,536] mov w0, w23 bl nandc_cs - cbnz w22, .L2010 + cbnz w22, .L2017 mov w0, w20 bl slc_phy_page_address_calc mov w20, w0 -.L2010: +.L2017: ubfiz x0, x23, 8, 8 add x5, x21, x0 mov w0, 5 @@ -12320,19 +12414,19 @@ flash_complete_page_read: str w0, [x5,2052] mov w0, 224 str w0, [x5,2056] - cbz w22, .L2011 + cbz w22, .L2018 add x0, x19, :lo12:.LANCHOR0 ldr x0, [x0,624] ldrb w0, [x0,12] cmp w0, 3 - bne .L2011 + bne .L2018 sub w0, w22, #1 add w1, w20, w20, lsl 1 add w0, w0, w1 - b .L2043 -.L2011: + b .L2050 +.L2018: mov w0, w20 -.L2043: +.L2050: adrp x21, .LANCHOR2 bl nandc_set_seed add x27, x21, :lo12:.LANCHOR2 @@ -12344,10 +12438,10 @@ flash_complete_page_read: ldrb w2, [x27,9] bl nandc_xfer cmn w0, #1 - bne .L2013 + bne .L2020 add x28, x19, :lo12:.LANCHOR0 ldrb w5, [x28,720] - cbz w5, .L2014 + cbz w5, .L2021 ldrb w4, [x27,9] mov w0, w23 orr w1, w20, w22, lsl 24 @@ -12358,44 +12452,44 @@ flash_complete_page_read: bl flash_read_page ldr x5, [x29,104] strb w5, [x28,720] - cbnz w22, .L2015 -.L2022: + cbnz w22, .L2022 +.L2029: ldrb w2, [x19,#:lo12:.LANCHOR0] add x1, x19, :lo12:.LANCHOR0 - cbz w2, .L2015 + cbz w2, .L2022 ldrb w1, [x1,724] add w1, w1, w1, lsl 1 cmp w0, w1, lsr 2 - blt .L2015 + blt .L2022 add x21, x21, :lo12:.LANCHOR2 ldrb w1, [x21,27] sub w1, w1, #4 uxtb w1, w1 - cmp w1, 3 + cmp w1, 4 mov w1, 256 csel w0, w0, w1, hi - b .L2030 -.L2015: + b .L2037 +.L2022: cmn w0, #1 - bne .L2030 -.L2023: - adrp x0, .LANCHOR4+1224 - ldr x5, [x0,#:lo12:.LANCHOR4+1224] - cbnz x5, .L2018 -.L2021: + bne .L2037 +.L2030: + adrp x0, .LANCHOR4+1216 + ldr x5, [x0,#:lo12:.LANCHOR4+1216] + cbnz x5, .L2025 +.L2028: add x19, x19, :lo12:.LANCHOR0 - adrp x0, .LC159 - add x0, x0, :lo12:.LC159 + adrp x0, .LC160 + add x0, x0, :lo12:.LC160 mov w1, 0 mov w2, w24 mov w3, -1 ldrb w4, [x19,720] bl printk ldrb w0, [x19,672] - cbnz w0, .L2019 + cbnz w0, .L2026 mov w0, -1 - b .L2030 -.L2018: + b .L2037 +.L2025: add x4, x21, :lo12:.LANCHOR2 mov w0, w23 orr w1, w20, w22, lsl 24 @@ -12404,9 +12498,9 @@ flash_complete_page_read: ldrb w4, [x4,17] blr x5 cmn w0, #1 - bne .L2030 - b .L2021 -.L2019: + bne .L2037 + b .L2028 +.L2026: add x21, x21, :lo12:.LANCHOR2 mov w0, w23 orr w1, w20, w22, lsl 24 @@ -12414,14 +12508,14 @@ flash_complete_page_read: mov x3, x26 ldrb w4, [x21,17] bl flash_ddr_tuning_read + b .L2037 +.L2020: + cbz w22, .L2029 + b .L2037 +.L2021: + cbz w22, .L2029 b .L2030 -.L2013: - cbz w22, .L2022 - b .L2030 -.L2014: - cbz w22, .L2022 - b .L2023 -.L2030: +.L2037: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -12444,53 +12538,54 @@ queue_wait_first_req_completed: stp x27, x28, [sp,80] ldrb w21, [x0,2835] cmp w21, 255 - beq .L2128 + beq .L2135 add x0, x0, 784 mov w1, 0 add x0, x0, x21, lsl 6 ldrb w2, [x0,58] ldr w20, [x0,40] sub w3, w2, #1 - cmp w3, 9 - bhi .L2046 - adrp x0, .L2048 - add x0, x0, :lo12:.L2048 + cmp w3, 10 + bhi .L2053 + adrp x0, .L2055 + add x0, x0, :lo12:.L2055 ldrh w0, [x0,w3,uxtw #1] - adr x1, .Lrtx2048 + adr x1, .Lrtx2055 add x0, x1, w0, sxth #2 br x0 -.Lrtx2048: +.Lrtx2055: .section .rodata .align 0 .align 2 -.L2048: - .2byte (.L2047 - .Lrtx2048) / 4 - .2byte (.L2049 - .Lrtx2048) / 4 - .2byte (.L2050 - .Lrtx2048) / 4 - .2byte (.L2050 - .Lrtx2048) / 4 - .2byte (.L2050 - .Lrtx2048) / 4 - .2byte (.L2051 - .Lrtx2048) / 4 - .2byte (.L2052 - .Lrtx2048) / 4 - .2byte (.L2053 - .Lrtx2048) / 4 - .2byte (.L2050 - .Lrtx2048) / 4 - .2byte (.L2053 - .Lrtx2048) / 4 +.L2055: + .2byte (.L2054 - .Lrtx2055) / 4 + .2byte (.L2056 - .Lrtx2055) / 4 + .2byte (.L2057 - .Lrtx2055) / 4 + .2byte (.L2057 - .Lrtx2055) / 4 + .2byte (.L2057 - .Lrtx2055) / 4 + .2byte (.L2057 - .Lrtx2055) / 4 + .2byte (.L2058 - .Lrtx2055) / 4 + .2byte (.L2059 - .Lrtx2055) / 4 + .2byte (.L2060 - .Lrtx2055) / 4 + .2byte (.L2057 - .Lrtx2055) / 4 + .2byte (.L2060 - .Lrtx2055) / 4 .text -.L2047: +.L2054: mov w0, w20 mov w1, 64 bl flash_wait_device_ready - tbz x0, 6, .L2128 + tbz x0, 6, .L2135 add x3, x19, :lo12:.LANCHOR0 add x0, x3, 784 add x0, x0, x21, lsl 6 ldr x2, [x0,16] ldr x1, [x0,8] - cbz x2, .L2055 + cbz x2, .L2062 ldrb w4, [x0,56] ldrb w0, [x3,2832] cmp w4, w0 csel x1, x1, x2, ne -.L2055: +.L2062: add x19, x19, :lo12:.LANCHOR0 mov w0, w20 add x19, x19, 784 @@ -12498,13 +12593,13 @@ queue_wait_first_req_completed: ldr x2, [x19,24] bl flash_complete_page_read str w0, [x19,52] - mov w0, 12 + mov w0, 13 strb w0, [x19,58] ldrb w0, [x19,2] orr w0, w0, 8 strb w0, [x19,2] - b .L2128 -.L2049: + b .L2135 +.L2056: mov w0, w20 mov w1, 64 bl flash_wait_device_ready @@ -12513,27 +12608,27 @@ queue_wait_first_req_completed: add x3, x2, 784 add x1, x3, x4 ldrb w20, [x3,x4] - tbz x0, 6, .L2128 + tbz x0, 6, .L2135 add x3, x3, x20, lsl 6 ldr x0, [x1,16] ldr x27, [x1,8] ldr x23, [x3,8] - cbz x0, .L2056 + cbz x0, .L2063 ldrb w3, [x1,56] ldrb w1, [x2,2832] cmp w3, w1 csel x27, x27, x0, ne -.L2056: +.L2063: add x2, x19, :lo12:.LANCHOR0 add x0, x2, 784 add x0, x0, x20, lsl 6 ldr x1, [x0,16] - cbz x1, .L2057 + cbz x1, .L2064 ldrb w3, [x0,56] ldrb w0, [x2,2832] cmp w3, w0 csel x23, x23, x1, ne -.L2057: +.L2064: add x24, x19, :lo12:.LANCHOR0 mov x1, x27 add x24, x24, 784 @@ -12551,15 +12646,15 @@ queue_wait_first_req_completed: bl flash_complete_plane_page_read mov w25, w0 cmn w22, #1 - beq .L2058 + beq .L2065 ldr w0, [x28,4] cmn w0, #1 - beq .L2059 + beq .L2066 ldr x1, [x26,8] ldr w1, [x1,4] cmp w0, w1 - beq .L2059 -.L2058: + beq .L2066 +.L2065: add x4, x19, :lo12:.LANCHOR0 mov x2, x27 add x24, x4, 784 @@ -12575,41 +12670,41 @@ queue_wait_first_req_completed: mov w22, w0 ldr w2, [x26,4] cmn w2, #1 - beq .L2060 + beq .L2067 ldr x3, [x24,8] ldr w4, [x3,4] cmp w2, w4 - beq .L2060 + beq .L2067 adrp x0, .LANCHOR2 ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 6, .L2060 - adrp x0, .LC160 + tbz x0, 6, .L2067 + adrp x0, .LC161 ldr w1, [x26,8] ldr w3, [x3] - add x0, x0, :lo12:.LC160 + add x0, x0, :lo12:.LC161 bl printk -.L2060: +.L2067: add x0, x19, :lo12:.LANCHOR0 add x0, x0, 784 add x0, x0, x21, lsl 6 ldr w1, [x0,36] cmn w1, #1 - beq .L2059 + beq .L2066 ldr x0, [x0,24] ldr w0, [x0,4] cmp w1, w0 - beq .L2059 + beq .L2066 adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 - mov w2, 338 - add x1, x1, 248 + mov w2, 360 + add x1, x1, 224 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L2059: +.L2066: add x3, x19, :lo12:.LANCHOR0 - mov w1, 12 + mov w1, 13 add x3, x3, 784 cmn w25, #1 add x21, x3, x21, lsl 6 @@ -12618,16 +12713,16 @@ queue_wait_first_req_completed: orr w0, w0, 8 strb w1, [x21,58] strb w0, [x21,2] - beq .L2061 + beq .L2068 add x3, x3, x20, lsl 6 ldr w0, [x3,36] cmn w0, #1 - beq .L2063 + beq .L2070 ldr x1, [x3,24] ldr w1, [x1,4] cmp w0, w1 - beq .L2063 -.L2061: + beq .L2070 +.L2068: add x4, x19, :lo12:.LANCHOR0 mov x2, x23 add x21, x4, 784 @@ -12642,41 +12737,41 @@ queue_wait_first_req_completed: bl flash_read_page_en ldr w2, [x24,4] cmn w2, #1 - beq .L2065 + beq .L2072 ldr x3, [x21,8] ldr w4, [x3,4] cmp w2, w4 - beq .L2065 + beq .L2072 adrp x0, .LANCHOR2 ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 6, .L2065 - adrp x0, .LC160 + tbz x0, 6, .L2072 + adrp x0, .LC161 ldr w1, [x24,8] ldr w3, [x3] - add x0, x0, :lo12:.LC160 + add x0, x0, :lo12:.LC161 bl printk -.L2065: +.L2072: add x0, x19, :lo12:.LANCHOR0 add x0, x0, 784 add x0, x0, x20, lsl 6 ldr w1, [x0,36] cmn w1, #1 - beq .L2063 + beq .L2070 ldr x0, [x0,24] ldr w0, [x0,4] cmp w1, w0 - beq .L2063 + beq .L2070 adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 - mov w2, 353 - add x1, x1, 248 + mov w2, 375 + add x1, x1, 224 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L2063: +.L2070: add x19, x19, :lo12:.LANCHOR0 - mov w1, 12 + mov w1, 13 add x19, x19, 784 add x20, x19, x20, lsl 6 ldrb w0, [x20,2] @@ -12684,78 +12779,78 @@ queue_wait_first_req_completed: orr w0, w0, 8 strb w1, [x20,58] strb w0, [x20,2] - b .L2128 -.L2050: + b .L2135 +.L2057: bl nandc_iqr_wait_flash_ready mov w0, w20 mov w1, 64 bl flash_wait_device_ready mov w20, w0 - tbz x20, 6, .L2128 + tbz x20, 6, .L2135 mov w1, 5 add x19, x19, :lo12:.LANCHOR0 ands w1, w20, w1 - beq .L2066 + beq .L2073 add x19, x19, 784 - mov w0, 11 + mov w0, 12 add x19, x19, x21, lsl 6 mov w2, w20 - mov w4, 11 + mov w4, 12 strb w0, [x19,58] - adrp x0, .LC161 + adrp x0, .LC162 ldrb w1, [x19,1] - add x0, x0, :lo12:.LC161 + add x0, x0, :lo12:.LC162 ldr w3, [x19,40] bl printk mov w0, -1 str w0, [x19,52] - b .L2129 -.L2066: + b .L2136 +.L2073: add x19, x19, x21, lsl 6 - b .L2073 -.L2053: + b .L2080 +.L2060: add x22, x19, :lo12:.LANCHOR0 mov w0, 3 - cmp w2, 10 - mov w1, 9 + cmp w2, 11 + mov w1, 10 add x22, x22, 784 csel w1, w0, w1, ne ubfx x3, x20, 21, 3 add x0, x22, x21, lsl 6 -.L2068: +.L2075: ldrb w23, [x0] cmp w23, 255 - beq .L2130 + beq .L2137 add x0, x22, x23, lsl 6 ldrb w2, [x0,58] cmp w2, w1 - bne .L2068 + bne .L2075 ldr w2, [x0,40] ubfx x2, x2, 21, 3 cmp w3, w2 - bne .L2068 + bne .L2075 bl nandc_iqr_wait_flash_ready mov w0, w20 mov w1, 64 bl flash_wait_device_ready mov w20, w0 and w0, w0, 64 - tbz x20, 6, .L2076 + tbz x20, 6, .L2083 ands w0, w20, 15 add x22, x22, x21, lsl 6 - beq .L2071 - adrp x0, .LC162 + beq .L2078 + adrp x0, .LC163 ldrb w1, [x22,1] ldr w3, [x22,40] - add x0, x0, :lo12:.LC162 + add x0, x0, :lo12:.LC163 mov w2, w20 - mov w4, 11 + mov w4, 12 bl printk - mov w0, 11 + mov w0, 12 strb w0, [x22,58] mov w0, -1 str w0, [x22,52] -.L2070: +.L2077: add x19, x19, :lo12:.LANCHOR0 add x19, x19, 784 add x21, x19, x21, lsl 6 @@ -12764,52 +12859,52 @@ queue_wait_first_req_completed: strb w0, [x23,58] ldr w0, [x21,52] str w0, [x23,52] -.L2129: +.L2136: mov w1, w20 - b .L2046 -.L2071: - mov w1, 12 + b .L2053 +.L2078: + mov w1, 13 str w0, [x22,52] strb w1, [x22,58] -.L2076: +.L2083: mov w20, w0 - b .L2070 -.L2130: + b .L2077 +.L2137: mov w1, -1 - b .L2046 -.L2051: + b .L2053 +.L2058: mov w1, 32 mov w0, w20 bl flash_wait_device_ready - tbz x0, 5, .L2128 + tbz x0, 5, .L2135 ands w1, w0, 15 add x19, x19, :lo12:.LANCHOR0 add x19, x19, x21, lsl 6 - beq .L2073 - mov w1, 11 + beq .L2080 + mov w1, 12 strb w1, [x19,842] mov w1, -1 str w1, [x19,836] mov w1, w0 - b .L2046 -.L2073: - mov w0, 12 + b .L2053 +.L2080: + mov w0, 13 str w1, [x19,836] strb w0, [x19,842] - b .L2046 -.L2052: + b .L2053 +.L2059: mov w1, 64 mov w0, w20 bl flash_wait_device_ready - tbz x0, 6, .L2128 + tbz x0, 6, .L2135 add x19, x19, :lo12:.LANCHOR0 add x19, x19, x21, lsl 6 str w0, [x19,836] - mov w0, 6 + mov w0, 7 strb w0, [x19,842] -.L2128: +.L2135: mov w1, 0 -.L2046: +.L2053: mov w0, w1 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -12827,15 +12922,15 @@ sblk_wait_write_queue_completed: add x29, sp, 0 str x19, [sp,16] adrp x19, .LANCHOR0 -.L2132: +.L2139: add x0, x19, :lo12:.LANCHOR0 ldrb w0, [x0,2835] cmp w0, 255 - beq .L2134 + beq .L2141 bl queue_wait_first_req_completed bl queue_remove_completed_req - b .L2132 -.L2134: + b .L2139 +.L2141: ldr x19, [sp,16] ldp x29, x30, [sp], 32 ret @@ -12908,49 +13003,49 @@ sblk_read_page: mov x19, x0 mov w20, w21 add x27, x22, 784 - add x23, x23, 280 -.L2138: - cbz w20, .L2161 + add x23, x23, 256 +.L2145: + cbz w20, .L2168 ldrb w28, [x19] ldr w26, [x19,40] -.L2139: +.L2146: mov w0, w26 mov w1, 0 bl queue_lun_state - cbz w0, .L2162 + cbz w0, .L2169 bl queue_wait_first_req_completed bl queue_remove_completed_req - b .L2139 -.L2162: + b .L2146 +.L2169: cmp w20, 1 - beq .L2145 - adrp x0, .LANCHOR4+1265 - ldrb w0, [x0,#:lo12:.LANCHOR4+1265] - cbz w0, .L2145 + beq .L2152 + adrp x0, .LANCHOR4+1240 + ldrb w0, [x0,#:lo12:.LANCHOR4+1240] + cbz w0, .L2152 ldrb w0, [x19] ubfx x3, x26, 21, 3 cmp w0, 255 - bne .L2144 + bne .L2151 adrp x0, .LC0 mov x1, x23 - mov w2, 624 + mov w2, 652 add x0, x0, :lo12:.LC0 str x3, [x29,120] bl printk bl dump_stack ldr x3, [x29,120] -.L2144: +.L2151: ldrb w24, [x19] lsl x24, x24, 6 add x2, x27, x24 ldr w1, [x2,40] ubfx x0, x1, 21, 3 cmp w3, w0 - bne .L2145 - ldrh w0, [x22,3350] + bne .L2152 + ldrh w0, [x22,3348] add w26, w0, w26 cmp w1, w26 - bne .L2145 + bne .L2152 ldr w0, [x19,40] add x26, x22, 2835 str x2, [x29,104] @@ -12976,36 +13071,36 @@ sblk_read_page: strb wzr, [x2,59] strb w3, [x27,x24] bl buf_add_tail - b .L2143 -.L2145: + b .L2150 +.L2152: mov x0, x19 bl queue_read_cmd -.L2143: +.L2150: subs w20, w20, #1 - beq .L2161 + beq .L2168 sbfiz x19, x28, 6, 32 add x19, x27, x19 - b .L2138 -.L2161: + b .L2145 +.L2168: adrp x19, .LANCHOR0 add x19, x19, :lo12:.LANCHOR0 add x19, x19, 784 -.L2149: - cbz w21, .L2163 +.L2156: + cbz w21, .L2170 ldrb w0, [x25,58] - cmp w0, 12 - bne .L2150 + cmp w0, 13 + bne .L2157 ldrb w0, [x25] sub w21, w21, #1 cmp w0, 255 - beq .L2150 + beq .L2157 sbfiz x25, x0, 6, 32 add x25, x19, x25 -.L2150: +.L2157: bl queue_wait_first_req_completed bl queue_remove_completed_req - b .L2149 -.L2163: + b .L2156 +.L2170: mov w0, w21 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -13040,24 +13135,24 @@ flash_prog_page: add x22, x19, x22, lsl 8 and w24, w1, 2097151 ubfx x27, x23, 24, 2 - tbz x0, 4, .L2165 - adrp x0, .LC163 + tbz x0, 4, .L2172 + adrp x0, .LC164 mov w2, w27 - add x0, x0, :lo12:.LC163 + add x0, x0, :lo12:.LC164 bl printk -.L2165: +.L2172: bl nandc_wait_flash_ready mov w0, w20 bl hynix_reconfig_rr_para mov w0, w20 bl nandc_cs mov w0, w20 - cbnz w27, .L2166 + cbnz w27, .L2173 bl zftl_flash_enter_slc_mode - b .L2167 -.L2166: + b .L2174 +.L2173: bl zftl_flash_exit_slc_mode -.L2167: +.L2174: ubfiz x4, x20, 8, 8 mov w0, 128 add x19, x19, x4 @@ -13089,16 +13184,13 @@ flash_prog_page: mov w0, w20 and w19, w21, 4 bl nandc_de_cs - tbz x21, 2, .L2168 - adrp x0, .LANCHOR2 - ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 12, .L2168 - adrp x0, .LC164 + tbz x21, 2, .L2175 + adrp x0, .LC165 mov w1, w23 - add x0, x0, :lo12:.LC164 + add x0, x0, :lo12:.LC165 mov w2, w19 bl printk -.L2168: +.L2175: mov w0, w19 ldr x27, [sp,80] ldp x19, x20, [sp,16] @@ -13122,9 +13214,9 @@ flash_test_blk: mov w1, 165 stp x21, x22, [sp,32] uxtb w22, w0 - ldr x0, [x19,1192] + ldr x0, [x19,1184] bl ftl_memset - ldr x0, [x19,1208] + ldr x0, [x19,1200] mov w1, 90 mov w2, 8 bl ftl_memset @@ -13135,43 +13227,43 @@ flash_test_blk: mov w1, w20 bl flash_erase_block cmn w0, #1 - bne .L2179 -.L2181: + bne .L2183 +.L2185: mov w19, -1 - b .L2180 -.L2179: + b .L2184 +.L2183: adrp x21, .LANCHOR2 - ldr x2, [x19,1192] + ldr x2, [x19,1184] add x21, x21, :lo12:.LANCHOR2 - ldr x3, [x19,1208] + ldr x3, [x19,1200] mov w0, w22 mov w1, w20 add x21, x21, 8 ldrb w4, [x21,9] bl flash_prog_page cmn w0, #1 - beq .L2181 - ldr x2, [x19,1192] + beq .L2185 + ldr x2, [x19,1184] mov w0, w22 - ldr x3, [x19,1208] + ldr x3, [x19,1200] mov w1, w20 ldrb w4, [x21,9] bl flash_read_page cmn w0, #1 - beq .L2181 - ldr x0, [x19,1192] + beq .L2185 + ldr x0, [x19,1184] ldr w1, [x0] mov w0, 42405 bfi w0, w0, 16, 16 cmp w1, w0 - bne .L2181 - ldr x0, [x19,1208] + bne .L2185 + ldr x0, [x19,1200] ldr w1, [x0] mov w0, 23130 bfi w0, w0, 16, 16 cmp w1, w0 csetm w19, ne -.L2180: +.L2184: mov w1, w20 mov w0, w22 bl flash_erase_block @@ -13181,377 +13273,178 @@ flash_test_blk: ldp x29, x30, [sp], 48 ret .size flash_test_blk, .-flash_test_blk - .section .text.unlikely .align 2 - .type fw_flash_page_prog.constprop.30, %function -fw_flash_page_prog.constprop.30: - stp x29, x30, [sp, -64]! - adrp x4, .LANCHOR0 - add x29, sp, 0 - add x4, x4, :lo12:.LANCHOR0 - str x21, [sp,32] - mov x21, x1 - stp x19, x20, [sp,16] - str x2, [x29,56] - ldr x1, [x4,624] - ldrb w20, [x4,724] - ldrb w19, [x1,9] - udiv w19, w0, w19 - ldrb w0, [x4,632] - bl nandc_bch_sel - ldr x3, [x29,56] - mov w1, w19 - mov x2, x21 - mov w4, 4 - mov w0, 0 - bl flash_prog_page - mov w19, w0 - mov w0, w20 - bl nandc_bch_sel - ldr x21, [sp,32] - mov w0, w19 - ldp x19, x20, [sp,16] - ldp x29, x30, [sp], 64 - ret - .size fw_flash_page_prog.constprop.30, .-fw_flash_page_prog.constprop.30 - .text - .align 2 - .global flash_start_page_prog - .type flash_start_page_prog, %function -flash_start_page_prog: - stp x29, x30, [sp, -96]! + .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] - adrp x22, .LANCHOR0 - stp x25, x26, [sp,64] - uxtb w25, w0 - add x0, x22, :lo12:.LANCHOR0 + uxtb x21, w0 + adrp x0, .LANCHOR0+536 stp x23, x24, [sp,48] - stp x19, x20, [sp,16] stp x27, x28, [sp,80] - ubfx x24, x1, 21, 3 - mov x27, x2 - ldrb w0, [x0,633] - mov x26, x3 - and w20, w1, 2097151 - ubfx x23, x1, 24, 2 - cmp w0, w24 - bhi .L2190 - adrp x1, .LANCHOR3 - adrp x0, .LC0 - add x1, x1, :lo12:.LANCHOR3 - mov w2, 712 - add x1, x1, 296 - add x0, x0, :lo12:.LC0 + ldr x23, [x0,#:lo12:.LANCHOR0+536] + adrp x0, .LANCHOR2 + mov x28, x2 + str x0, [x29,104] + stp x19, x20, [sp,16] + ldr w2, [x0,#:lo12:.LANCHOR2] + mov x20, x21 + stp x25, x26, [sp,64] + add x21, x21, 8 + mov w22, w1 + mov x27, x3 + mov x26, x4 + mov x25, x5 + mov w3, w6 + add x21, x23, x21, lsl 8 + and w19, w1, 2097151 + ubfx x24, x22, 24, 2 + tbz x2, 4, .L2193 + adrp x0, .LC164 + mov w2, w24 + add x0, x0, :lo12:.LC164 bl printk - bl dump_stack -.L2190: - add x28, x22, :lo12:.LANCHOR0 - add x0, x28, x24, sxtw - ldrb w21, [x0,736] - ldr x19, [x28,536] - bl nandc_rdy_status - cbnz w0, .L2191 - ldrb w0, [x28,633] - cmp w0, 1 - bne .L2192 +.L2193: bl nandc_wait_flash_ready - b .L2191 -.L2192: - mov w0, w24 - mov w1, w20 - mov w2, 64 - bl flash_wait_device_ready_raw -.L2191: - mov w0, w21 - bl hynix_reconfig_rr_para - mov w0, w21 + mov w0, w20 bl nandc_cs - cbnz w23, .L2193 mov w0, w20 - bl slc_phy_page_address_calc - mov w20, w0 - ldrb w0, [x22,#:lo12:.LANCHOR0] - cbz w0, .L2194 - mov w0, w21 + cbnz w24, .L2194 bl zftl_flash_enter_slc_mode - b .L2194 -.L2193: - mov w0, w21 - bl zftl_flash_exit_slc_mode + b .L2195 .L2194: - ubfiz x4, x21, 8, 8 - mov w0, 128 - add x19, x19, x4 - 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 zftl_flash_exit_slc_mode +.L2195: + ubfiz x0, x20, 8, 8 + mov w4, 128 + add x23, x23, x0 + and w0, w22, 255 + str x4, [x29,96] + str w4, [x23,2056] + str wzr, [x23,2052] + str wzr, [x23,2052] + str w0, [x23,2052] + lsr w0, w19, 8 + str w0, [x23,2052] + lsr w0, w19, 16 + str w0, [x23,2052] + mov w0, w19 bl nandc_set_seed - adrp x1, .LANCHOR2+17 - mov x2, x27 - mov x3, x26 + ldr x0, [x29,104] + mov x3, x27 + mov x2, x28 + mov w27, 16 + add x24, x0, :lo12:.LANCHOR2 mov w0, 1 - ldrb w1, [x1,#:lo12:.LANCHOR2+17] + ldrb w1, [x24,17] bl nandc_xfer_start bl nandc_xfer_done - str w25, [x19,2056] - mov w0, w21 + str w27, [x23,2056] + bl nandc_iqr_wait_flash_ready + bl nandc_wait_flash_ready + ldr x4, [x29,96] + add w0, w19, 1 + str w4, [x23,2056] + and w1, w0, 255 + str wzr, [x23,2052] + str wzr, [x23,2052] + str w1, [x23,2052] + lsr w1, w0, 8 + str w1, [x23,2052] + lsr w1, w0, 16 + str w1, [x23,2052] + bl nandc_set_seed + ldrb w1, [x24,17] + mov x2, x26 + mov x3, x25 + mov w0, 1 + bl nandc_xfer_start + bl nandc_xfer_done + str w27, [x23,2056] + bl nandc_iqr_wait_flash_ready + bl nandc_wait_flash_ready + mov x0, x21 + bl flash_read_status + mov w21, w0 + mov w0, w20 + and w19, w21, 4 bl nandc_de_cs - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] - ldp x27, x28, [sp,80] - ldp x29, x30, [sp], 96 - ret - .size flash_start_page_prog, .-flash_start_page_prog - .align 2 - .type queue_prog_cmd, %function -queue_prog_cmd: - stp x29, x30, [sp, -32]! - add x29, sp, 0 - str x19, [sp,16] - mov x19, x0 - mov w0, 16 - ldr w1, [x19,40] - ldr x2, [x19,8] - ldr x3, [x19,24] - bl flash_start_page_prog - adrp x0, .LANCHOR0 - ldr w4, [x19,40] - add x1, x0, :lo12:.LANCHOR0 - ldrb w2, [x1,2835] - cmp w2, 255 - beq .L2199 - ubfx x4, x4, 21, 3 - add x1, x1, 784 -.L2201: - add x3, x1, x2, lsl 6 - ldr w5, [x3,40] - ubfx x5, x5, 21, 3 - cmp w4, w5 - bne .L2200 - ldrb w5, [x3,58] - add x3, x3, 48 - cmp w5, 6 - bne .L2200 - mov w1, 3 - strb w1, [x3,10] - b .L2199 -.L2200: - lsl x2, x2, 6 - ldrb w2, [x1,x2] - cmp w2, 255 - bne .L2201 -.L2199: - mov w1, 3 - strb w1, [x19,58] - mov w1, 1 - add x0, x0, :lo12:.LANCHOR0 - strb w1, [x19,59] - mov w1, -1 - add x0, x0, 2835 - strb w1, [x19] - mov x1, x19 - bl buf_add_tail - ldr x19, [sp,16] - ldp x29, x30, [sp], 32 - ret - .size queue_prog_cmd, .-queue_prog_cmd - .align 2 - .global sblk_prog_page - .type sblk_prog_page, %function -sblk_prog_page: - stp x29, x30, [sp, -96]! - add x29, sp, 0 - stp x19, x20, [sp,16] - stp x21, x22, [sp,32] - stp x23, x24, [sp,48] - stp x25, x26, [sp,64] - stp x27, x28, [sp,80] - mov x19, x0 - uxtb w20, w1 - ldrh w0, [x0,50] - cbz w0, .L2207 + tbz x21, 2, .L2196 adrp x0, .LANCHOR2 ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 8, .L2207 + tbz x0, 12, .L2196 adrp x0, .LC165 - ldr w1, [x19,40] + mov w1, w22 add x0, x0, :lo12:.LC165 - mov w2, w20 - bl printk -.L2207: - adrp x24, .LANCHOR0 - adrp x25, .LC0 - add x23, x24, :lo12:.LANCHOR0 - mov w21, 0 - add x27, x23, 784 - add x25, x25, :lo12:.LC0 -.L2208: - cbz w20, .L2238 - ldrb w26, [x19] - ldr w22, [x19,40] -.L2209: - mov w0, w22 - mov w1, 1 - bl queue_lun_state - cbz w0, .L2239 - bl queue_wait_first_req_completed - bl queue_remove_completed_req - b .L2209 -.L2239: - cmp w20, 1 - beq .L2211 - add x0, x24, :lo12:.LANCHOR0 - ldrb w0, [x0,781] - cbnz w0, .L2212 -.L2211: - mov x0, x19 - bl queue_prog_cmd - b .L2213 -.L2212: - ldrb w0, [x19] - ubfx x28, x22, 21, 3 - cmp w0, 255 - bne .L2214 - adrp x1, .LANCHOR3 - mov w2, 546 - add x1, x1, :lo12:.LANCHOR3 - mov x0, x25 - add x1, x1, 320 + mov w2, w19 bl printk - bl dump_stack -.L2214: - ldrb w0, [x19] - add x0, x27, x0, lsl 6 - ldr w4, [x0,40] - ubfx x0, x4, 21, 3 - cmp w28, w0 - bne .L2215 - ldrh w3, [x23,3340] - mov w1, 21 - ldrb w6, [x23,3338] - mov w28, 1 - sub w1, w1, w3 - lsr w0, w22, w3 - sub w6, w6, #1 - lsl w1, w28, w1 - sub w1, w1, #1 - lsl w2, w28, w3 - uxth w7, w6 - sub w2, w2, #1 - and w5, w7, w0 - lsr w0, w4, w3 - uxth w1, w1 - and w3, w7, w0 - and w3, w1, w3 - and w0, w1, w5 - cmp w0, w3 - uxth w2, w2 - beq .L2215 - and w22, w2, w22 - and w2, w2, w4 - cmp w22, w2 - bne .L2215 - cmp w21, w6 - beq .L2215 - ldr w1, [x19,40] - mov w0, 17 - ldr x2, [x19,8] - add w21, w21, w28 - ldr x3, [x19,24] - bl flash_start_page_prog - strb w28, [x19,59] - mov w0, 8 - strb w0, [x19,58] - mov w0, -1 - mov x1, x19 - strb w0, [x19] - add x0, x23, 2835 - bl buf_add_tail - b .L2213 -.L2215: - mov x0, x19 - mov w21, 0 - bl queue_prog_cmd -.L2213: - subs w20, w20, #1 - beq .L2238 - add x19, x24, :lo12:.LANCHOR0 - sbfiz x26, x26, 6, 32 - add x19, x19, 784 - add x19, x19, x26 - b .L2208 -.L2238: - mov w0, 0 +.L2196: + mov w0, w19 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] ldp x25, x26, [sp,64] ldp x27, x28, [sp,80] - ldp x29, x30, [sp], 96 + ldp x29, x30, [sp], 112 ret - .size sblk_prog_page, .-sblk_prog_page + .size flash_dual_page_prog, .-flash_dual_page_prog + .section .text.unlikely .align 2 - .global ftl_flush - .type ftl_flush, %function -ftl_flush: - stp x29, x30, [sp, -32]! - adrp x2, .LANCHOR0 + .type fw_flash_page_prog.constprop.31, %function +fw_flash_page_prog.constprop.31: + stp x29, x30, [sp, -64]! + adrp x4, .LANCHOR0 add x29, sp, 0 - add x0, x2, :lo12:.LANCHOR0 + add x4, x4, :lo12:.LANCHOR0 + stp x21, x22, [sp,32] stp x19, x20, [sp,16] - mov x19, x2 + mov x21, x1 + str x2, [x29,56] + ldr x1, [x4,624] + ldrb w22, [x4,724] + ldrb w19, [x1,9] + udiv w19, w0, w19 + ldrb w0, [x4,632] + bl nandc_bch_sel + adrp x0, .LANCHOR2+15 + ldr x3, [x29,56] + ldrb w0, [x0,#:lo12:.LANCHOR2+15] + cmp w0, 9 + bne .L2207 adrp x20, .LANCHOR4 - ldrb w1, [x0,2857] - cbz w1, .L2241 - add x2, x20, :lo12:.LANCHOR4 - add x0, x0, 784 - ldrb w2, [x2,1266] - add x0, x0, x2, lsl 6 - bl sblk_prog_page -.L2241: - add x2, x19, :lo12:.LANCHOR0 + mov w1, 255 add x20, x20, :lo12:.LANCHOR4 - mov w0, -1 - strb wzr, [x2,2857] - strb w0, [x20,1266] - bl sblk_wait_write_queue_completed - bl ftl_write_completed - mov w0, -1 - bl ftl_vpn_decrement + mov w2, 16384 + ldr x0, [x20,1184] + bl ftl_memset + ldr x4, [x20,1184] + mov w1, w19 + ldr x3, [x29,56] + mov x2, x21 + mov x5, x4 + mov w6, 4 + mov w0, 0 + bl flash_dual_page_prog + b .L2209 +.L2207: + mov w0, 0 + mov w1, w19 + mov x2, x21 + mov w4, 4 + bl flash_prog_page +.L2209: + mov w19, w0 + mov w0, w22 + bl nandc_bch_sel + mov w0, w19 ldp x19, x20, [sp,16] - ldp x29, x30, [sp], 32 - ret - .size ftl_flush, .-ftl_flush - .align 2 - .global zftl_cache_flush - .type zftl_cache_flush, %function -zftl_cache_flush: - adrp x0, .LANCHOR0+2857 - stp x29, x30, [sp, -16]! - add x29, sp, 0 - ldrb w0, [x0,#:lo12:.LANCHOR0+2857] - cbz w0, .L2245 - bl timer_get_time - adrp x1, .LANCHOR4+1268 - ldr w1, [x1,#:lo12:.LANCHOR4+1268] - add w1, w1, 100 - cmp w0, w1 - bls .L2245 - bl ftl_flush -.L2245: - ldp x29, x30, [sp], 16 + ldp x21, x22, [sp,32] + ldp x29, x30, [sp], 64 ret - .size zftl_cache_flush, .-zftl_cache_flush + .size fw_flash_page_prog.constprop.31, .-fw_flash_page_prog.constprop.31 + .text .align 2 .global flash_start_tlc_page_prog .type flash_start_tlc_page_prog, %function @@ -13574,28 +13467,28 @@ flash_start_tlc_page_prog: mov x23, x6 cmp w0, w26 mov x19, x4 - bhi .L2250 + bhi .L2211 adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 - mov w2, 661 - add x1, x1, 336 + mov w2, 726 + add x1, x1, 272 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L2250: +.L2211: add x4, x19, :lo12:.LANCHOR0 add x26, x4, x26, sxtw ldrb w26, [x26,736] mov w0, w26 ldr x19, [x4,536] bl nandc_cs - cbz w25, .L2251 + cbz w25, .L2212 sxtw x1, w26 add x1, x1, 8 add x1, x19, x1, lsl 8 str w25, [x1,8] -.L2251: +.L2212: ubfiz x7, x26, 8, 8 mov w0, 128 add x19, x19, x7 @@ -13701,16 +13594,16 @@ sblk_tlc_prog_one_page: mov x20, x0 ldr x0, [x0] ldr w21, [x0,40] -.L2257: +.L2218: mov w0, w21 mov w1, 1 bl queue_lun_state mov w19, w0 - cbz w0, .L2259 + cbz w0, .L2220 bl queue_wait_first_req_completed bl queue_remove_completed_req - b .L2257 -.L2259: + b .L2218 +.L2220: mov x0, x20 bl queue_tlc_prog_cmd ldr x21, [sp,32] @@ -13733,17 +13626,17 @@ sblk_xlc_prog_pages: ldr x0, [x0] mov w24, w2 ldr w20, [x0,40] -.L2261: +.L2222: mov w0, w20 mov w1, 1 bl queue_lun_state - cbz w0, .L2265 + cbz w0, .L2226 bl queue_wait_first_req_completed bl queue_remove_completed_req - b .L2261 -.L2265: + b .L2222 +.L2226: cmp w24, 2 - bne .L2263 + bne .L2224 ldr x6, [x19] mov w1, 1 ldr x0, [x22] @@ -13827,11 +13720,11 @@ sblk_xlc_prog_pages: add x0, x0, :lo12:.LANCHOR0 add x0, x0, 2835 bl buf_add_tail - b .L2264 -.L2263: + b .L2225 +.L2224: mov x0, x19 bl queue_tlc_prog_cmd -.L2264: +.L2225: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -13840,154 +13733,738 @@ sblk_xlc_prog_pages: ret .size sblk_xlc_prog_pages, .-sblk_xlc_prog_pages .align 2 - .global flash_prog_page_en - .type flash_prog_page_en, %function -flash_prog_page_en: + .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] + str x21, [sp,32] + mov x19, x0 + ldr w2, [x0,40] + adrp x0, .LC166 + add x0, x0, :lo12:.LC166 + and w20, w2, 2097151 + mov w3, w2 + mov w1, w20 + ubfx x21, x2, 21, 3 + bl printk + ldr x5, [x19,8] + mov w3, w21 + ldr x6, [x19,24] + mov w4, w20 + mov w1, 1 + mov w2, 26 + mov w0, 0 + bl flash_start_tlc_page_prog + bl nandc_iqr_wait_flash_ready + bl nandc_wait_flash_ready + ldr x5, [x19,8] + mov w3, w21 + ldr x6, [x19,24] + mov w4, w20 + mov w1, 2 + mov w2, 26 + mov w0, 0 + bl flash_start_tlc_page_prog + bl nandc_iqr_wait_flash_ready + bl nandc_wait_flash_ready + ldr x5, [x19,8] + mov w3, w21 + ldr x6, [x19,24] + mov w4, w20 + mov w2, 16 + mov w1, 3 + mov w0, 0 + bl flash_start_tlc_page_prog + bl nandc_iqr_wait_flash_ready + bl nandc_wait_flash_ready + ldr w0, [x19,40] + mov w1, 64 + bl flash_wait_device_ready + ldr x21, [sp,32] + ldp x19, x20, [sp,16] + ldp x29, x30, [sp], 48 + ret + .size sblk_3d_tlc_dump_prog, .-sblk_3d_tlc_dump_prog + .align 2 + .global flash_start_3d_mlc_page_prog + .type flash_start_3d_mlc_page_prog, %function +flash_start_3d_mlc_page_prog: + stp x29, x30, [sp, -64]! + adrp x5, .LANCHOR0 + add x29, sp, 0 + stp x21, x22, [sp,32] + uxtb w22, w0 + add x0, x5, :lo12:.LANCHOR0 + stp x19, x20, [sp,16] + stp x23, x24, [sp,48] + uxtb w20, w1 + mov w21, w2 + ldrb w0, [x0,633] + mov x23, x3 + mov x24, x4 + mov x19, x5 + cmp w0, w20 + bhi .L2229 + adrp x1, .LANCHOR3 + adrp x0, .LC0 + add x1, x1, :lo12:.LANCHOR3 + mov w2, 756 + add x1, x1, 304 + add x0, x0, :lo12:.LC0 + bl printk + bl dump_stack +.L2229: + add x5, x19, :lo12:.LANCHOR0 + add x20, x5, x20, sxtw + ldrb w20, [x20,736] + ldr x19, [x5,536] + mov w0, w20 + ubfiz x20, x20, 8, 8 + add x19, x19, x20 + bl nandc_cs + mov w0, 128 + str w0, [x19,2056] + and w0, w21, 255 + str wzr, [x19,2052] + str wzr, [x19,2052] + str w0, [x19,2052] + lsr w0, w21, 8 + str w0, [x19,2052] + lsr w0, w21, 16 + str w0, [x19,2052] + mov w0, w21 + bl nandc_set_seed + adrp x1, .LANCHOR2+17 + mov x2, x23 + mov x3, x24 + mov w0, 1 + ldrb w1, [x1,#:lo12:.LANCHOR2+17] + bl nandc_xfer_start + bl nandc_xfer_done + str w22, [x19,2056] + ldp x19, x20, [sp,16] + ldp x21, x22, [sp,32] + ldp x23, x24, [sp,48] + ldp x29, x30, [sp], 64 + ret + .size flash_start_3d_mlc_page_prog, .-flash_start_3d_mlc_page_prog + .align 2 + .global sblk_3d_mlc_prog_pages + .type sblk_3d_mlc_prog_pages, %function +sblk_3d_mlc_prog_pages: + stp x29, x30, [sp, -48]! + add x29, sp, 0 + stp x19, x20, [sp,16] + stp x21, x22, [sp,32] + mov x20, x0 + ldr x0, [x0] + ldr w19, [x0,40] +.L2231: + mov w0, w19 + mov w1, 1 + bl queue_lun_state + mov w21, w0 + cbz w0, .L2233 + bl queue_wait_first_req_completed + bl queue_remove_completed_req + b .L2231 +.L2233: + ldr x0, [x20] + ldr w19, [x0,40] + and w22, w19, 2097151 + ubfx x19, x19, 21, 3 + mov w0, w19 + bl zftl_flash_exit_slc_mode + ldr x4, [x20] + mov w1, w19 + mov w2, w22 + mov w0, 16 + ldr x3, [x4,8] + ldr x4, [x4,24] + bl flash_start_3d_mlc_page_prog + bl nandc_wait_flash_ready + ldr x4, [x20,8] + mov w1, w19 + add w2, w22, 1 + mov w0, 16 + ldr x3, [x4,8] + ldr x4, [x4,24] + bl flash_start_3d_mlc_page_prog + mov w0, w19 + bl nandc_de_cs + ldr x1, [x20] + mov w0, 4 + adrp x2, .LANCHOR0 + strb w0, [x1,58] + mov w0, 1 + strb w0, [x1,59] + mov w0, -1 + strb w0, [x1] + add x0, x2, :lo12:.LANCHOR0 + add x0, x0, 2835 + bl buf_add_tail + mov w0, w21 + ldp x19, x20, [sp,16] + ldp x21, x22, [sp,32] + ldp x29, x30, [sp], 48 + ret + .size sblk_3d_mlc_prog_pages, .-sblk_3d_mlc_prog_pages + .align 2 + .global sblk_mlc_dump_prog + .type sblk_mlc_dump_prog, %function +sblk_mlc_dump_prog: + stp x29, x30, [sp, -48]! + add x29, sp, 0 + stp x19, x20, [sp,16] + str x21, [sp,32] + mov x20, x0 + ldr w19, [x0,40] + and w21, w19, 2097151 + ubfx x19, x19, 21, 3 + mov w0, w19 + bl zftl_flash_exit_slc_mode + ldr w2, [x20,40] + adrp x0, .LC167 + mov w1, w21 + add x0, x0, :lo12:.LC167 + add w3, w2, 1 + bl printk + ldr x3, [x20,8] + mov w1, w19 + ldr x4, [x20,24] + mov w2, w21 + mov w0, 16 + bl flash_start_3d_mlc_page_prog + bl nandc_iqr_wait_flash_ready + bl nandc_wait_flash_ready + ldr x3, [x20,8] + add w2, w21, 1 + ldr x4, [x20,24] + mov w1, w19 + mov w0, 16 + bl flash_start_3d_mlc_page_prog + bl nandc_iqr_wait_flash_ready + bl nandc_wait_flash_ready + ldr w0, [x20,40] + mov w1, 64 + bl flash_wait_device_ready + mov w20, w0 + mov w0, w19 + bl nandc_de_cs + ldr x21, [sp,32] + mov w0, w20 + ldp x19, x20, [sp,16] + ldp x29, x30, [sp], 48 + ret + .size sblk_mlc_dump_prog, .-sblk_mlc_dump_prog + .align 2 + .global flash_start_page_prog + .type flash_start_page_prog, %function +flash_start_page_prog: stp x29, x30, [sp, -96]! - adrp x6, .LANCHOR0 add x29, sp, 0 + stp x21, x22, [sp,32] + adrp x22, .LANCHOR0 + stp x25, x26, [sp,64] + uxtb w25, w0 + add x0, x22, :lo12:.LANCHOR0 stp x23, x24, [sp,48] - uxtb w23, w0 - add x0, x6, :lo12:.LANCHOR0 + stp x19, x20, [sp,16] + stp x27, x28, [sp,80] + ubfx x24, x1, 21, 3 + mov x27, x2 + ldrb w0, [x0,633] + mov x26, x3 + and w20, w1, 2097151 + ubfx x23, x1, 24, 2 + cmp w0, w24 + bhi .L2236 + adrp x1, .LANCHOR3 + adrp x0, .LC0 + add x1, x1, :lo12:.LANCHOR3 + mov w2, 803 + add x1, x1, 336 + add x0, x0, :lo12:.LC0 + bl printk + bl dump_stack +.L2236: + add x28, x22, :lo12:.LANCHOR0 + add x0, x28, x24, sxtw + ldrb w21, [x0,736] + ldr x19, [x28,536] + bl nandc_rdy_status + cbnz w0, .L2237 + ldrb w0, [x28,633] + cmp w0, 1 + bne .L2238 + bl nandc_wait_flash_ready + b .L2237 +.L2238: + mov w0, w24 + mov w1, w20 + mov w2, 64 + bl flash_wait_device_ready_raw +.L2237: + mov w0, w21 + bl hynix_reconfig_rr_para + mov w0, w21 + bl nandc_cs + cbnz w23, .L2239 + mov w0, w20 + bl slc_phy_page_address_calc + mov w20, w0 + ldrb w0, [x22,#:lo12:.LANCHOR0] + cbz w0, .L2240 + mov w0, w21 + bl zftl_flash_enter_slc_mode + b .L2240 +.L2239: + mov w0, w21 + bl zftl_flash_exit_slc_mode +.L2240: + ubfiz x4, x21, 8, 8 + mov w0, 128 + add x19, x19, x4 + 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 x1, .LANCHOR2+17 + mov x2, x27 + mov x3, x26 + mov w0, 1 + ldrb w1, [x1,#:lo12:.LANCHOR2+17] + bl nandc_xfer_start + bl nandc_xfer_done + str w25, [x19,2056] + mov w0, w21 + bl nandc_de_cs + ldp x19, x20, [sp,16] + ldp x21, x22, [sp,32] + ldp x23, x24, [sp,48] + ldp x25, x26, [sp,64] + ldp x27, x28, [sp,80] + ldp x29, x30, [sp], 96 + ret + .size flash_start_page_prog, .-flash_start_page_prog + .align 2 + .type queue_prog_cmd, %function +queue_prog_cmd: + stp x29, x30, [sp, -32]! + add x29, sp, 0 + str x19, [sp,16] + mov x19, x0 + mov w0, 16 + ldr w1, [x19,40] + ldr x2, [x19,8] + ldr x3, [x19,24] + bl flash_start_page_prog + adrp x0, .LANCHOR0 + ldr w4, [x19,40] + add x1, x0, :lo12:.LANCHOR0 + ldrb w2, [x1,2835] + cmp w2, 255 + beq .L2245 + ubfx x4, x4, 21, 3 + add x1, x1, 784 +.L2247: + add x3, x1, x2, lsl 6 + ldr w5, [x3,40] + ubfx x5, x5, 21, 3 + cmp w4, w5 + bne .L2246 + ldrb w5, [x3,58] + add x3, x3, 48 + cmp w5, 7 + bne .L2246 + mov w1, 3 + strb w1, [x3,10] + b .L2245 +.L2246: + lsl x2, x2, 6 + ldrb w2, [x1,x2] + cmp w2, 255 + bne .L2247 +.L2245: + mov w1, 3 + strb w1, [x19,58] + mov w1, 1 + add x0, x0, :lo12:.LANCHOR0 + strb w1, [x19,59] + mov w1, -1 + add x0, x0, 2835 + strb w1, [x19] + mov x1, x19 + bl buf_add_tail + ldr x19, [sp,16] + ldp x29, x30, [sp], 32 + ret + .size queue_prog_cmd, .-queue_prog_cmd + .align 2 + .global sblk_prog_page + .type sblk_prog_page, %function +sblk_prog_page: + stp x29, x30, [sp, -96]! + add x29, sp, 0 stp x19, x20, [sp,16] stp x21, x22, [sp,32] + stp x23, x24, [sp,48] stp x25, x26, [sp,64] stp x27, x28, [sp,80] + mov x19, x0 + uxtb w20, w1 + ldrh w0, [x0,50] + cbz w0, .L2253 + adrp x0, .LANCHOR2 + ldr w0, [x0,#:lo12:.LANCHOR2] + tbz x0, 8, .L2253 + adrp x0, .LC168 + ldr w1, [x19,40] + add x0, x0, :lo12:.LC168 + mov w2, w20 + bl printk +.L2253: + adrp x24, .LANCHOR0 + adrp x25, .LC0 + add x23, x24, :lo12:.LANCHOR0 + mov w21, 0 + add x27, x23, 784 + add x25, x25, :lo12:.LC0 +.L2254: + cbz w20, .L2284 + ldrb w26, [x19] + ldr w22, [x19,40] +.L2255: + mov w0, w22 + mov w1, 1 + bl queue_lun_state + cbz w0, .L2285 + bl queue_wait_first_req_completed + bl queue_remove_completed_req + b .L2255 +.L2285: + cmp w20, 1 + beq .L2257 + add x0, x24, :lo12:.LANCHOR0 + ldrb w0, [x0,781] + cbnz w0, .L2258 +.L2257: + mov x0, x19 + bl queue_prog_cmd + b .L2259 +.L2258: + ldrb w0, [x19] + ubfx x28, x22, 21, 3 + cmp w0, 255 + bne .L2260 + adrp x1, .LANCHOR3 + mov w2, 574 + add x1, x1, :lo12:.LANCHOR3 + mov x0, x25 + add x1, x1, 360 + bl printk + bl dump_stack +.L2260: + ldrb w0, [x19] + add x0, x27, x0, lsl 6 + ldr w4, [x0,40] + ubfx x0, x4, 21, 3 + cmp w28, w0 + bne .L2261 + ldrh w3, [x23,3340] + mov w1, 21 + ldrb w6, [x23,3338] + mov w28, 1 + sub w1, w1, w3 + lsr w0, w22, w3 + sub w6, w6, #1 + lsl w1, w28, w1 + sub w1, w1, #1 + lsl w2, w28, w3 + uxth w7, w6 + sub w2, w2, #1 + and w5, w7, w0 + lsr w0, w4, w3 + uxth w1, w1 + and w3, w7, w0 + and w3, w1, w3 + and w0, w1, w5 + cmp w0, w3 + uxth w2, w2 + beq .L2261 + and w22, w2, w22 + and w2, w2, w4 + cmp w22, w2 + bne .L2261 + cmp w21, w6 + beq .L2261 + ldr w1, [x19,40] + mov w0, 17 + ldr x2, [x19,8] + add w21, w21, w28 + ldr x3, [x19,24] + bl flash_start_page_prog + strb w28, [x19,59] + mov w0, 9 + strb w0, [x19,58] + mov w0, -1 + mov x1, x19 + strb w0, [x19] + add x0, x23, 2835 + bl buf_add_tail + b .L2259 +.L2261: + mov x0, x19 + mov w21, 0 + bl queue_prog_cmd +.L2259: + subs w20, w20, #1 + beq .L2284 + add x19, x24, :lo12:.LANCHOR0 + sbfiz x26, x26, 6, 32 + add x19, x19, 784 + add x19, x19, x26 + b .L2254 +.L2284: + mov w0, 0 + ldp x19, x20, [sp,16] + ldp x21, x22, [sp,32] + ldp x23, x24, [sp,48] + ldp x25, x26, [sp,64] + ldp x27, x28, [sp,80] + ldp x29, x30, [sp], 96 + ret + .size sblk_prog_page, .-sblk_prog_page + .align 2 + .global ftl_flush + .type ftl_flush, %function +ftl_flush: + stp x29, x30, [sp, -32]! + adrp x2, .LANCHOR0 + add x29, sp, 0 + add x0, x2, :lo12:.LANCHOR0 + stp x19, x20, [sp,16] + mov x19, x2 + adrp x20, .LANCHOR4 + ldrb w1, [x0,2857] + cbz w1, .L2287 + add x2, x20, :lo12:.LANCHOR4 + add x0, x0, 784 + ldrb w2, [x2,1241] + add x0, x0, x2, lsl 6 + bl sblk_prog_page +.L2287: + add x2, x19, :lo12:.LANCHOR0 + add x20, x20, :lo12:.LANCHOR4 + mov w0, -1 + strb wzr, [x2,2857] + strb w0, [x20,1241] + bl sblk_wait_write_queue_completed + bl ftl_write_completed + mov w0, -1 + bl ftl_vpn_decrement + ldp x19, x20, [sp,16] + ldp x29, x30, [sp], 32 + ret + .size ftl_flush, .-ftl_flush + .align 2 + .global zftl_cache_flush + .type zftl_cache_flush, %function +zftl_cache_flush: + adrp x0, .LANCHOR0+2857 + stp x29, x30, [sp, -16]! + add x29, sp, 0 + ldrb w0, [x0,#:lo12:.LANCHOR0+2857] + cbz w0, .L2291 + bl timer_get_time + adrp x1, .LANCHOR4+1244 + ldr w1, [x1,#:lo12:.LANCHOR4+1244] + add w1, w1, 100 + cmp w0, w1 + bls .L2291 + bl ftl_flush +.L2291: + ldp x29, x30, [sp], 16 + ret + .size zftl_cache_flush, .-zftl_cache_flush + .align 2 + .global flash_prog_page_en + .type flash_prog_page_en, %function +flash_prog_page_en: + stp x29, x30, [sp, -128]! + add x29, sp, 0 + stp x23, x24, [sp,48] + uxtb w24, w0 + adrp x0, .LANCHOR0 + stp x19, x20, [sp,16] mov w20, w1 + add x1, x0, :lo12:.LANCHOR0 + stp x21, x22, [sp,32] + stp x27, x28, [sp,80] + stp x25, x26, [sp,64] mov x22, x2 - ldrb w0, [x0,633] mov x21, x3 - mov w24, w4 - uxtb w25, w5 - cmp w0, w23 - ubfx x28, x20, 24, 2 - mov x19, x6 - bhi .L2267 + ldrb w1, [x1,633] + mov w27, w4 + uxtb w28, w5 + ubfx x25, x20, 24, 2 + cmp w1, w24 + mov x23, x0 + bhi .L2296 adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 - mov w2, 484 - add x1, x1, 368 + mov w2, 546 + add x1, x1, 376 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L2267: - add x0, x19, :lo12:.LANCHOR0 - mov w26, w20 - add x1, x0, x23, sxtw - ldrb w27, [x1,736] - cbnz w28, .L2268 +.L2296: + add x0, x23, :lo12:.LANCHOR0 + mov w19, w20 + add x1, x0, x24, sxtw + ldrb w26, [x1,736] + cbnz w25, .L2297 adrp x1, .LANCHOR0 ldrb w1, [x1,#:lo12:.LANCHOR0] - cbz w1, .L2269 + cbz w1, .L2298 ldrb w0, [x0,1] - cbz w0, .L2268 -.L2269: - add x6, x19, :lo12:.LANCHOR0 - ldrh w26, [x6,2] - ldrb w1, [x6,1] - udiv w2, w20, w26 - mul w26, w2, w26 - sub w0, w20, w26 - cbz w1, .L2270 - add w26, w26, w0, lsl 1 - b .L2268 -.L2270: - add x6, x6, 4 - ldrh w0, [x6,w0,uxtw 1] - add w26, w0, w26 -.L2268: + cbz w0, .L2297 +.L2298: + add x0, x23, :lo12:.LANCHOR0 + ldrh w19, [x0,2] + ldrb w2, [x0,1] + udiv w1, w20, w19 + mul w19, w1, w19 + sub w1, w20, w19 + cbz w2, .L2299 + add w19, w19, w1, lsl 1 + b .L2297 +.L2299: + add x0, x0, 4 + ldrh w0, [x0,w1,uxtw 1] + add w19, w0, w19 +.L2297: + adrp x25, .LC169 + adrp x23, .LC170 + adrp x0, .LC171 + add x25, x25, :lo12:.LC169 + add x0, x0, :lo12:.LC171 + add x23, x23, :lo12:.LC170 + str x0, [x29,120] +.L2303: adrp x0, .LANCHOR2 ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 4, .L2271 - adrp x0, .LC166 - mov w1, w27 - add x0, x0, :lo12:.LC166 + tbz x0, 4, .L2300 + mov x0, x25 + mov w1, w26 mov w2, w20 + mov w3, w19 bl printk -.L2271: - mov w1, w26 - mov w0, w27 +.L2300: + mov w0, w26 + mov w1, w19 mov x2, x22 mov x3, x21 - mov w4, w24 + mov w4, w27 bl flash_prog_page - mov w26, w0 - cbz w25, .L2272 - adrp x19, .LANCHOR4 - mov w0, w23 - add x25, x19, :lo12:.LANCHOR4 + mov w6, w0 + cbz w28, .L2301 + adrp x5, .LANCHOR4 + mov w4, w27 + add x7, x5, :lo12:.LANCHOR4 + mov w0, w24 mov w1, w20 - mov w4, w24 - ldr x2, [x25,1248] - ldr x3, [x25,1256] + str x5, [x29,104] + str x6, [x29,96] + ldr x2, [x7,1224] + ldr x3, [x7,1232] + str x7, [x29,112] bl flash_read_page_en cmp w0, 512 - beq .L2273 + cset w4, eq + ldr x5, [x29,104] + cbnz w4, .L2302 cmn w0, #1 - beq .L2273 - ldr x0, [x25,1248] + beq .L2302 + ldr x7, [x29,112] ldr w1, [x22] + ldr x6, [x29,96] + ldr x0, [x7,1224] ldr w0, [x0] cmp w1, w0 - bne .L2273 - ldr x0, [x25,1256] + bne .L2302 + ldr x0, [x7,1232] ldr w1, [x21] ldr w0, [x0] cmp w1, w0 - beq .L2272 -.L2273: + beq .L2301 +.L2302: mov w2, 4 - adrp x0, .LC167 - mov x1, x22 + mov x0, x23 mov w3, w2 - add x0, x0, :lo12:.LC167 - add x19, x19, :lo12:.LANCHOR4 + mov x1, x22 + str x4, [x29,104] + str x5, [x29,112] bl rknand_print_hex mov w2, 4 - adrp x0, .LC168 - mov x1, x21 + ldr x0, [x29,120] mov w3, w2 - add x0, x0, :lo12:.LC168 + mov x1, x21 bl rknand_print_hex - ldr x1, [x19,1256] + ldr x5, [x29,112] mov w2, 4 - adrp x0, .LC169 + adrp x0, .LC172 mov w3, w2 - add x0, x0, :lo12:.LC169 + add x5, x5, :lo12:.LANCHOR4 + add x0, x0, :lo12:.LC172 + str x5, [x29,112] + ldr x1, [x5,1232] bl rknand_print_hex + ldr x5, [x29,112] mov w2, 4 - adrp x0, .LC170 - ldr x1, [x19,1248] - add x0, x0, :lo12:.LC170 + adrp x0, .LC173 mov w3, w2 + add x0, x0, :lo12:.LC173 + ldr x1, [x5,1224] bl rknand_print_hex - b .L2274 -.L2272: - cmn w26, #1 - mov w0, w26 - bne .L2275 -.L2274: - adrp x0, .LC171 + ldr x4, [x29,104] + cbnz w4, .L2303 +.L2305: + adrp x0, .LC174 mov w1, w20 - add x0, x0, :lo12:.LC171 + add x0, x0, :lo12:.LC174 bl printk adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 - mov w2, 512 - add x1, x1, 368 + mov w2, 577 + add x1, x1, 376 add x0, x0, :lo12:.LC0 bl printk bl dump_stack mov w0, -1 -.L2275: + b .L2304 +.L2301: + cmn w6, #1 + mov w0, w6 + beq .L2305 +.L2304: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] ldp x25, x26, [sp,64] ldp x27, x28, [sp,80] - ldp x29, x30, [sp], 96 + ldp x29, x30, [sp], 128 ret .size flash_prog_page_en, .-flash_prog_page_en .align 2 @@ -14012,20 +14489,20 @@ ftl_prog_page: bl flash_prog_page_en cmn w0, #1 mov w19, w0 - bne .L2289 + bne .L2323 adrp x2, .LANCHOR3 adrp x0, .LC0 add x1, x2, :lo12:.LANCHOR3 add x0, x0, :lo12:.LC0 - add x1, x1, 392 - mov w2, 2150 + add x1, x1, 400 + mov w2, 2203 bl printk bl dump_stack - adrp x0, .LC171 + adrp x0, .LC174 mov w1, w20 - add x0, x0, :lo12:.LC171 + add x0, x0, :lo12:.LC174 bl printk -.L2289: +.L2323: mov w0, w19 ldp x19, x20, [sp,16] ldp x29, x30, [sp], 64 @@ -14050,20 +14527,20 @@ ftl_info_flush: adrp x23, .LANCHOR3 add x19, x22, :lo12:.LANCHOR4 ldrb w2, [x0,2832] - adrp x24, .LC172 + adrp x24, .LC175 add x23, x23, :lo12:.LANCHOR3 add x0, x19, 1280 lsl w2, w2, 1 mov w25, 0 - add x24, x24, :lo12:.LC172 - add x23, x23, 408 + add x24, x24, :lo12:.LC175 + add x23, x23, 416 bl ftl_memset -.L2291: +.L2325: add x0, x21, :lo12:.LANCHOR0 ldrb w27, [x19,1536] ldrh w20, [x19,1538] ldr x2, [x0,2864] - ldrh w28, [x0,3350] + ldrh w28, [x0,3348] ldr w1, [x2,4] add w1, w1, 1 str w1, [x2,4] @@ -14073,29 +14550,29 @@ ftl_info_flush: str w0, [x19,1284] adrp x0, .LANCHOR2 ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 12, .L2292 + tbz x0, 12, .L2326 ldr w3, [x3,4] mov x0, x24 mov w1, w27 mov w2, w20 bl printk -.L2292: +.L2326: add x1, x21, :lo12:.LANCHOR0 ldrh w0, [x19,1538] ldrh w1, [x1,3300] cmp w1, w0 - bhi .L2293 + bhi .L2327 adrp x20, .LC0 add x20, x20, :lo12:.LC0 -.L2298: +.L2332: ldrb w1, [x19,1537] add w1, w1, 1 uxtb w1, w1 strb w1, [x19,1537] cmp w1, 7 - bls .L2294 + bls .L2328 mov x1, 0 -.L2297: +.L2331: add x0, x21, :lo12:.LANCHOR0 uxth w25, w1 ldr x2, [x0,728] @@ -14105,24 +14582,24 @@ ftl_info_flush: add w0, w2, 127 uxtb w0, w0 cmp w0, 125 - bhi .L2295 + bhi .L2329 mov x1, x23 mov w2, 742 mov x0, x20 bl printk bl dump_stack - b .L2296 -.L2295: + b .L2330 +.L2329: cmp w2, 255 - bne .L2296 + bne .L2330 add x1, x1, 1 cmp x1, 8 - bne .L2297 + bne .L2331 mov w25, w1 -.L2296: +.L2330: strb w25, [x19,1537] mov w25, 1 -.L2294: +.L2328: add x27, x21, :lo12:.LANCHOR0 ldrb w1, [x19,1537] ldr x0, [x27,728] @@ -14130,8 +14607,8 @@ ftl_info_flush: ldrb w2, [x1,40] strb w2, [x19,1536] cmp w2, 255 - beq .L2298 - ldrh w20, [x27,3350] + beq .L2332 + ldrh w20, [x27,3348] mov w0, 0 mul w20, w2, w20 mov w1, w20 @@ -14145,13 +14622,13 @@ ftl_info_flush: bl ftl_prog_page mov w0, 1 strh w0, [x19,1538] - b .L2299 -.L2293: + b .L2333 +.L2327: madd w20, w27, w28, w20 - cbnz w0, .L2299 + cbnz w0, .L2333 mov w1, w20 bl flash_erase_block -.L2299: +.L2333: add x4, x21, :lo12:.LANCHOR0 mov w1, w20 mov w0, 0 @@ -14164,41 +14641,41 @@ ftl_info_flush: adrp x0, .LANCHOR5 add w1, w1, 1 strh w1, [x19,1538] - beq .L2300 + beq .L2334 add x1, x0, :lo12:.LANCHOR5 ldrb w1, [x1,576] - cbz w1, .L2301 -.L2300: + cbz w1, .L2335 +.L2334: add x0, x0, :lo12:.LANCHOR5 strb wzr, [x0,576] - b .L2291 -.L2301: - cbnz w25, .L2302 -.L2310: + b .L2325 +.L2335: + cbnz w25, .L2336 +.L2344: add x22, x22, :lo12:.LANCHOR4 ldrb w0, [x22,1536] cmp w0, 255 - bne .L2304 + bne .L2338 adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 mov w2, 778 - add x1, x1, 408 + add x1, x1, 416 add x0, x0, :lo12:.LC0 bl printk bl dump_stack - b .L2304 -.L2302: + b .L2338 +.L2336: ldrb w19, [x19,1537] adrp x20, .LANCHOR3 adrp x23, .LC0 add x20, x20, :lo12:.LANCHOR3 add w19, w19, 1 add x23, x23, :lo12:.LC0 - add x20, x20, 408 -.L2305: + add x20, x20, 416 +.L2339: cmp w19, 7 - bhi .L2310 + bhi .L2344 add x0, x21, :lo12:.LANCHOR0 ldr x1, [x0,728] add w0, w19, 8 @@ -14207,27 +14684,27 @@ ftl_info_flush: add w0, w24, 127 uxtb w0, w0 cmp w0, 125 - bhi .L2306 + bhi .L2340 mov x1, x20 mov w2, 771 mov x0, x23 bl printk bl dump_stack - b .L2307 -.L2306: + b .L2341 +.L2340: cmp w24, 255 - beq .L2308 -.L2307: + beq .L2342 +.L2341: add x0, x21, :lo12:.LANCHOR0 - ldrh w1, [x0,3350] + ldrh w1, [x0,3348] mov w0, 0 mul w1, w24, w1 bl flash_erase_block -.L2308: +.L2342: add w19, w19, 1 uxth w19, w19 - b .L2305 -.L2304: + b .L2339 +.L2338: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -14266,10 +14743,10 @@ ftl_info_blk_init: str x1, [x23,2864] mov w1, 0 str x24, [x23,584] - adrp x26, .LC173 + adrp x26, .LC176 adrp x27, .LANCHOR2 bl ftl_memset - add x26, x26, :lo12:.LC173 + add x26, x26, :lo12:.LC176 add x0, x20, 640 mov w1, 0 mov w2, 16384 @@ -14281,7 +14758,7 @@ ftl_info_blk_init: strh wzr, [x22,1538] ldrb w0, [x0,40] strb w0, [x22,1536] -.L2328: +.L2362: add x5, x19, :lo12:.LANCHOR0 add w0, w20, 8 sxth w25, w20 @@ -14289,8 +14766,8 @@ ftl_info_blk_init: add x0, x1, x0, sxtw ldrb w1, [x0,32] cmp w1, 255 - beq .L2324 - ldrh w22, [x5,3350] + beq .L2358 + ldrh w22, [x5,3348] mov w0, 0 ldrb w4, [x5,2832] mov x2, x24 @@ -14302,7 +14779,7 @@ ftl_info_blk_init: cmn w0, #1 mov w28, w0 ldr x5, [x29,104] - bne .L2325 + bne .L2359 ldrb w4, [x5,2832] mov w0, 0 add w1, w22, 1 @@ -14310,9 +14787,9 @@ ftl_info_blk_init: mov x3, x23 bl ftl_read_page mov w28, w0 -.L2325: +.L2359: ldr w0, [x27,#:lo12:.LANCHOR2] - tbz x0, 12, .L2326 + tbz x0, 12, .L2360 add x0, x19, :lo12:.LANCHOR0 mov w1, w20 mov w2, w28 @@ -14321,39 +14798,39 @@ ftl_info_blk_init: mov x0, x26 ldr w4, [x4] bl printk -.L2326: +.L2360: cmn w28, #1 - beq .L2324 + beq .L2358 add x0, x19, :lo12:.LANCHOR0 ldr x0, [x0,2864] ldr w1, [x0] mov w0, 21574 movk w0, 0x494c, lsl 16 cmp w1, w0 - beq .L2336 -.L2324: + beq .L2370 +.L2358: sub w20, w20, #1 cmn w20, #1 - bne .L2328 + bne .L2362 mov w25, 0 - b .L2327 -.L2336: + b .L2361 +.L2370: mov w20, w25 -.L2327: +.L2361: adrp x0, .LANCHOR2 ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 12, .L2329 + tbz x0, 12, .L2363 add x0, x19, :lo12:.LANCHOR0 mov w1, w20 mov w2, 4800 ldr x3, [x0,2864] - adrp x0, .LC174 - add x0, x0, :lo12:.LC174 + adrp x0, .LC177 + add x0, x0, :lo12:.LC177 ldr w3, [x3] bl printk -.L2329: +.L2363: cmn w20, #1 - bne .L2330 + bne .L2364 add x0, x21, :lo12:.LANCHOR4 mov w1, 0 add x19, x19, :lo12:.LANCHOR0 @@ -14369,8 +14846,8 @@ ftl_info_blk_init: ldr x1, [x19,2864] str w0, [x1,12] mov w0, w20 - b .L2331 -.L2330: + b .L2365 +.L2364: add x26, x19, :lo12:.LANCHOR0 add x23, x21, :lo12:.LANCHOR4 add w0, w25, 8 @@ -14390,10 +14867,10 @@ ftl_info_blk_init: add w0, w0, 1 uxth w20, w0 ldrb w0, [x23,1536] - ldrh w23, [x26,3350] + ldrh w23, [x26,3348] mul w23, w0, w23 -.L2332: - tbnz w22, #31, .L2335 +.L2366: + tbnz w22, #31, .L2369 add x26, x19, :lo12:.LANCHOR0 mov w0, 0 add w1, w22, w23 @@ -14402,14 +14879,14 @@ ftl_info_blk_init: ldrb w4, [x26,2832] bl ftl_read_page cmn w0, #1 - beq .L2333 + beq .L2367 ldr x0, [x26,2864] ldr w1, [x0] mov w0, 21574 movk w0, 0x494c, lsl 16 cmp w1, w0 - bne .L2333 -.L2335: + bne .L2367 +.L2369: add x21, x21, :lo12:.LANCHOR4 add x19, x19, :lo12:.LANCHOR0 strh w20, [x21,1538] @@ -14423,12 +14900,12 @@ ftl_info_blk_init: mov w0, 0 bl ftl_info_flush mov w0, 0 - b .L2331 -.L2333: + b .L2365 +.L2367: sub w22, w22, #1 sxth w22, w22 - b .L2332 -.L2331: + b .L2366 +.L2365: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -14455,30 +14932,30 @@ ftl_ext_info_flush: ldr x1, [x1,608] ldr w3, [x1,520] cmp w0, w3 - bls .L2354 + bls .L2388 ldr w2, [x1,12] sub w2, w2, w3 add w2, w2, w0 str w2, [x1,12] - b .L2367 -.L2354: - bcs .L2355 -.L2367: + b .L2401 +.L2388: + bcs .L2389 +.L2401: str w0, [x1,520] -.L2355: +.L2389: adrp x23, .LANCHOR3 adrp x19, .LANCHOR4 add x23, x23, :lo12:.LANCHOR3 add x19, x19, :lo12:.LANCHOR4 mov w0, 0 - add x23, x23, 424 + add x23, x23, 432 add x19, x19, 1280 bl ftl_total_vpn_update -.L2356: +.L2390: adrp x24, .LANCHOR5 add x24, x24, :lo12:.LANCHOR5 add x25, x24, 640 -.L2359: +.L2393: add x2, x22, :lo12:.LANCHOR0 ldr x0, [x2,2864] ldr w1, [x0,56] @@ -14487,22 +14964,22 @@ ftl_ext_info_flush: ldrh w1, [x0,140] ldrh w0, [x2,3300] cmp w1, w0 - bcc .L2357 + bcc .L2391 bl ftl_ext_alloc_new_blk -.L2357: +.L2391: add x0, x22, :lo12:.LANCHOR0 ldr x0, [x0,2864] ldrh w1, [x0,130] mov w0, 65535 cmp w1, w0 - bne .L2358 + bne .L2392 adrp x0, .LC0 mov x1, x23 - mov w2, 1746 + mov w2, 1798 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L2358: +.L2392: add x21, x22, :lo12:.LANCHOR0 mov w0, 21 mov w1, 1 @@ -14516,7 +14993,7 @@ ftl_ext_info_flush: sub w20, w20, #1 ldrb w2, [x21,2832] and w3, w20, w3 - ldrh w20, [x21,3350] + ldrh w20, [x21,3348] mov w1, 0 lsl w2, w2, 1 madd w20, w3, w20, w0 @@ -14539,17 +15016,17 @@ ftl_ext_info_flush: uxth w1, w1 strh w1, [x2,140] cmp w1, 1 - beq .L2359 + beq .L2393 cmn w0, #1 - beq .L2360 + beq .L2394 ldrb w0, [x24,578] - cbz w0, .L2361 -.L2360: + cbz w0, .L2395 +.L2394: adrp x0, .LANCHOR5 add x0, x0, :lo12:.LANCHOR5 strb wzr, [x0,578] - b .L2356 -.L2361: + b .L2390 +.L2395: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -14579,7 +15056,7 @@ ftl_ext_info_init: ldrh w22, [x26,3340] add x2, x2, 640 add x3, x3, 1280 - strh wzr, [x26,3888] + strh wzr, [x26,3880] ldrh w1, [x0,130] mov w0, 21 sub w22, w0, w22 @@ -14596,60 +15073,60 @@ ftl_ext_info_init: adrp x0, .LANCHOR2 mov w23, w24 ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 12, .L2369 + tbz x0, 12, .L2403 ldr x5, [x26,2864] adrp x1, .LANCHOR3 - adrp x0, .LC175 + adrp x0, .LC178 add x1, x1, :lo12:.LANCHOR3 - add x0, x0, :lo12:.LC175 - add x1, x1, 448 + add x0, x0, :lo12:.LC178 + add x1, x1, 456 ldrh w5, [x5,130] - mov w2, 1790 + mov w2, 1842 mov w3, w24 uxth w4, w27 bl printk -.L2369: +.L2403: add x20, x20, :lo12:.LANCHOR5 add x21, x21, :lo12:.LANCHOR4 mov w26, w24 add x20, x20, 640 add x21, x21, 1280 -.L2370: - tbnz w26, #31, .L2375 +.L2404: + tbnz w26, #31, .L2409 add x27, x19, :lo12:.LANCHOR0 mov w0, w25 mov x2, x20 mov x3, x21 - ldrh w1, [x27,3350] + ldrh w1, [x27,3348] ldrb w4, [x27,2832] madd w1, w22, w1, w26 bl flash_read_page_en cmp w0, 512 - beq .L2371 + beq .L2405 cmn w0, #1 - beq .L2371 + beq .L2405 ldr x0, [x27,608] ldr w1, [x0] mov w0, 20038 movk w0, 0x4549, lsl 16 cmp w1, w0 - bne .L2371 -.L2375: + bne .L2405 +.L2409: bl zftl_sblk_list_init add x0, x19, :lo12:.LANCHOR0 ldr x0, [x0,2864] ldrh w1, [x0,140] cmp w1, w24 - bgt .L2373 + bgt .L2407 add w23, w23, 1 strh w23, [x0,140] bl ftl_ext_info_flush - b .L2373 -.L2371: + b .L2407 +.L2405: sub w26, w26, #1 sxth w26, w26 - b .L2370 -.L2373: + b .L2404 +.L2407: add x19, x19, :lo12:.LANCHOR0 ldr x20, [x19,608] bl timer_get_time @@ -14709,14 +15186,14 @@ ftl_write_last_log_page: add x19, x19, :lo12:.LANCHOR0 ldrh w24, [x0,12] cmp w1, 1 - ldr x22, [x19,3872] - bne .L2387 + ldr x22, [x19,3864] + bne .L2421 mov x20, x0 bl ftl_get_new_free_page cmn w0, #1 mov w23, w0 mov w21, 0 - beq .L2387 + beq .L2421 ldrh w0, [x20] add x22, x22, x24, uxth 2 bl ftl_vpn_decrement @@ -14741,7 +15218,7 @@ ftl_write_last_log_page: str w21, [x2,8] str w21, [x2,12] bl ftl_prog_ppa_page -.L2387: +.L2421: mov w0, w21 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -14753,380 +15230,510 @@ ftl_write_last_log_page: .global ftl_open_sblk_recovery .type ftl_open_sblk_recovery, %function ftl_open_sblk_recovery: - stp x29, x30, [sp, -128]! + stp x29, x30, [sp, -208]! add x29, sp, 0 - stp x23, x24, [sp,48] - adrp x24, .LANCHOR2 - stp x19, x20, [sp,16] - mov x19, x0 - ldr w0, [x24,#:lo12:.LANCHOR2] - stp x27, x28, [sp,80] stp x21, x22, [sp,32] + adrp x21, .LANCHOR2 stp x25, x26, [sp,64] - mov x27, x1 - tbz x0, 12, .L2392 - adrp x0, .LC176 - ldrh w1, [x19,2] - add x0, x0, :lo12:.LC176 + mov x25, x0 + str x1, [x29,120] + ldr w0, [x21,#:lo12:.LANCHOR2] + stp x19, x20, [sp,16] + stp x23, x24, [sp,48] + stp x27, x28, [sp,80] + tbz x0, 12, .L2426 + adrp x0, .LC179 + ldrh w1, [x25,2] + add x0, x0, :lo12:.LC179 bl printk -.L2392: - ldr w0, [x24,#:lo12:.LANCHOR2] - tbz x0, 12, .L2393 - adrp x0, .LC177 - ldrb w1, [x19,5] - add x0, x0, :lo12:.LC177 +.L2426: + ldr w0, [x21,#:lo12:.LANCHOR2] + tbz x0, 12, .L2427 + adrp x0, .LC180 + ldrb w1, [x25,5] + add x0, x0, :lo12:.LC180 bl printk -.L2393: - ldr w0, [x24,#:lo12:.LANCHOR2] - tbz x0, 12, .L2394 - adrp x0, .LC178 - ldrh w1, [x19] - add x0, x0, :lo12:.LC178 +.L2427: + ldr w0, [x21,#:lo12:.LANCHOR2] + tbz x0, 12, .L2428 + adrp x0, .LC181 + ldrh w1, [x25] + add x0, x0, :lo12:.LC181 bl printk -.L2394: - ldr w0, [x24,#:lo12:.LANCHOR2] - tbz x0, 12, .L2395 - adrp x0, .LC179 - ldrh w1, [x19,16] - ldrh w2, [x19,18] - add x0, x0, :lo12:.LC179 +.L2428: + ldr w0, [x21,#:lo12:.LANCHOR2] + tbz x0, 12, .L2429 + adrp x0, .LC182 + ldrh w1, [x25,16] + ldrh w2, [x25,18] + add x0, x0, :lo12:.LC182 bl printk -.L2395: - ldrh w0, [x19,10] - adrp x21, .LANCHOR0 - strh w0, [x19,14] - add x0, x21, :lo12:.LANCHOR0 - ldrh w1, [x19] +.L2429: + ldrh w0, [x25,10] + adrp x19, .LANCHOR0 + strh w0, [x25,14] + add x0, x19, :lo12:.LANCHOR0 + ldrh w1, [x25] ldrh w0, [x0,576] cmp w1, w0 - bcs .L2391 + bcs .L2425 mov w0, 1 - adrp x25, .LANCHOR4 - adrp x26, .LANCHOR3 - add x25, x25, :lo12:.LANCHOR4 + add x20, x29, 144 + adrp x24, .LANCHOR4 + mov w26, 2 bl buf_alloc - add x26, x26, :lo12:.LANCHOR3 - ldrb w22, [x19,5] - mov x20, x0 - ldrh w23, [x19,2] - add x0, x26, 472 - mov w28, 0 - add x25, x25, 1280 - str x0, [x29,120] -.L2398: - add x0, x21, :lo12:.LANCHOR0 + mov x27, x0 + mov w1, 255 + mov x0, x20 + mov w2, 64 + add x24, x24, :lo12:.LANCHOR4 + add x24, x24, 1280 + bl ftl_memset + ldrb w22, [x25,5] + adrp x0, .LANCHOR3 + ldrh w23, [x25,2] + add x0, x0, :lo12:.LANCHOR3 + str wzr, [x29,136] + add x0, x0, 480 + str x0, [x29,112] +.L2431: + add x0, x19, :lo12:.LANCHOR0 ldrh w0, [x0,3300] cmp w0, w23 - bls .L2401 - ldrb w22, [x19,5] -.L2399: - ldrb w0, [x19,9] + bls .L2434 + ldrb w22, [x25,5] +.L2432: + ldrb w0, [x25,9] cmp w0, w22 - bls .L2475 - add x0, x19, x22, sxtw 1 + bls .L2542 + add x0, x25, x22, sxtw 1 ldrh w0, [x0,16] mov w1, 65535 cmp w0, w1 - beq .L2400 - add x3, x21, :lo12:.LANCHOR0 - ldr x2, [x20,24] - ldrh w1, [x3,3350] + beq .L2433 + add x3, x19, :lo12:.LANCHOR0 + ldr x2, [x27,24] + ldrh w1, [x3,3348] ldrb w3, [x3,2832] madd w0, w0, w1, w23 - ldr x1, [x20,8] + ldr x1, [x27,8] + str w0, [x29,132] bl ftl_read_ppa_page cmp w0, 512 - mov w26, w0 - beq .L2401 + mov w28, w0 + beq .L2434 cmn w0, #1 - beq .L2402 - ldr x0, [x20,24] + beq .L2435 + ldr x0, [x27,24] ldr w1, [x0] cmn w1, #1 - bne .L2402 + bne .L2435 ldr w0, [x0,4] cmn w0, #1 - bne .L2402 - ldr x0, [x20,8] + bne .L2435 + ldr x0, [x27,8] ldr w0, [x0] cmn w0, #1 - beq .L2401 -.L2402: + beq .L2434 +.L2435: adrp x0, .LANCHOR5+577 mov w1, 1 strb w1, [x0,#:lo12:.LANCHOR5+577] - ldrb w0, [x19,9] - ldrh w1, [x19,10] + ldrb w0, [x25,9] + ldrh w1, [x25,10] madd w0, w23, w0, w22 cmp w1, w0 - beq .L2403 + beq .L2436 adrp x0, .LC0 - ldr x1, [x29,120] - mov w2, 1395 + ldr x1, [x29,112] + mov w2, 1399 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L2403: - ldrh w0, [x19,10] - ldrh w1, [x19,6] - ldrb w2, [x19,9] +.L2436: + ldrh w0, [x25,10] + ldrh w1, [x25,6] + ldrb w2, [x25,9] add w1, w1, w0 - add x0, x21, :lo12:.LANCHOR0 + add x0, x19, :lo12:.LANCHOR0 ldrh w0, [x0,3300] mul w0, w0, w2 cmp w1, w0 - beq .L2404 + beq .L2437 adrp x0, .LC0 - ldr x1, [x29,120] - mov w2, 1396 + ldr x1, [x29,112] + mov w2, 1400 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L2404: - cmn w26, #1 - beq .L2408 - ldr x0, [x20,24] +.L2437: + cmn w28, #1 + beq .L2441 + ldr x0, [x27,24] ldr w0, [x0,4] cmn w0, #1 - beq .L2408 + beq .L2441 bl lpa_hash_get_ppa - cbz x27, .L2406 - ldr x2, [x20,24] - ldr w3, [x2,8] - cmp w0, w3 - beq .L2406 + ldr x1, [x29,120] + cbz x1, .L2439 + ldr x3, [x27,24] + ldr w1, [x3,8] + cmp w0, w1 + beq .L2439 cmn w0, #1 - beq .L2406 - add x4, x21, :lo12:.LANCHOR0 - mov w5, 21 - mov w28, 1 - ldrh w3, [x4,3340] - lsr w1, w0, w3 - sub w3, w5, w3 - lsl w3, w28, w3 - sub w3, w3, #1 - and w3, w1, w3 - ldrb w1, [x4,3338] - udiv w3, w3, w1 - ldrh w1, [x27] - cmp w1, w3, uxth - bne .L2406 - ldr w6, [x2] - mov x2, x25 - ldrb w3, [x4,2832] - ldr x1, [x20,8] - str x5, [x29,96] - str x6, [x29,104] - str x4, [x29,112] + beq .L2439 + add x28, x19, :lo12:.LANCHOR0 + mov w4, 21 + mov w26, 1 + ldrh w1, [x28,3340] + lsr w2, w0, w1 + sub w1, w4, w1 + lsl w1, w26, w1 + sub w1, w1, #1 + and w1, w2, w1 + ldrb w2, [x28,3338] + udiv w1, w1, w2 + ldr x2, [x29,120] + ldrh w2, [x2] + cmp w2, w1, uxth + bne .L2439 + ldr w7, [x3] + mov x2, x24 + ldr x1, [x27,8] + ldrb w3, [x28,2832] + str x4, [x29,104] + str x7, [x29,136] bl ftl_read_ppa_page - ldr w0, [x25] - ldr x6, [x29,104] - ldr x4, [x29,112] - cmp w0, w6 - ldr x5, [x29,96] - bcc .L2406 - ldr x0, [x20,24] + ldr w0, [x24] + ldr x7, [x29,136] + ldr x4, [x29,104] + cmp w0, w7 + bcc .L2439 + ldr x0, [x27,24] ldr w1, [x0,8] cmn w1, #1 - beq .L2408 - ldrh w0, [x4,3340] - sub w5, w5, w0 + beq .L2441 + ldrh w0, [x28,3340] + sub w4, w4, w0 lsr w1, w1, w0 - lsl w28, w28, w5 - ldrb w0, [x4,3338] - sub w28, w28, #1 - and w1, w28, w1 + lsl w26, w26, w4 + ldrb w0, [x28,3338] + sub w26, w26, #1 + and w1, w26, w1 udiv w0, w1, w0 bl ftl_vpn_decrement - b .L2408 -.L2406: - ldr x2, [x20,24] - add x1, x21, :lo12:.LANCHOR0 + b .L2441 +.L2439: + ldr x2, [x27,24] + add x1, x19, :lo12:.LANCHOR0 ldr w3, [x2,4] ldr w0, [x1,2840] cmp w3, w0 - bcs .L2408 - ldrb w0, [x19,9] + bcs .L2441 + ldrb w0, [x25,9] ldrh w4, [x1,3300] - ldrh w3, [x19,10] + ldrh w3, [x25,10] mul w0, w0, w4 sub w0, w0, #1 cmp w3, w0 - blt .L2476 -.L2408: - ldrh w0, [x19,6] - mov w28, 1 + blt .L2543 +.L2441: + ldrh w0, [x25,6] + mov w26, 4 sub w0, w0, #1 - strh w0, [x19,6] - ldrh w0, [x19,10] + strh w0, [x25,6] + ldrh w0, [x25,10] add w0, w0, 1 - strh w0, [x19,10] -.L2400: + strh w0, [x25,10] + mov w0, 1 + str w0, [x29,136] +.L2433: add w22, w22, 1 uxth w22, w22 - b .L2399 -.L2475: + b .L2432 +.L2542: add w23, w23, 1 - strb wzr, [x19,5] + strb wzr, [x25,5] uxth w23, w23 - b .L2398 -.L2401: - add x2, x21, :lo12:.LANCHOR0 - ldrh w0, [x19,10] - ldrh w1, [x19,6] - strh w23, [x19,2] + b .L2431 +.L2434: + add x2, x19, :lo12:.LANCHOR0 + ldrh w0, [x25,10] + ldrh w1, [x25,6] + strh w23, [x25,2] add w1, w1, w0 ldrh w2, [x2,3300] - ldrb w0, [x19,9] - strb w22, [x19,5] + ldrb w0, [x25,9] + strb w22, [x25,5] mul w0, w0, w2 cmp w1, w0 - beq .L2412 + beq .L2445 adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 - mov w2, 1472 - add x1, x1, 472 + mov w2, 1480 + add x1, x1, 480 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L2412: - add x0, x21, :lo12:.LANCHOR0 - ldrh w3, [x19,10] - ldr x4, [x0,3872] +.L2445: + add x0, x19, :lo12:.LANCHOR0 + ldrh w3, [x25,10] + ldr x4, [x0,3864] mov w0, 0 mov w2, w0 -.L2413: +.L2446: cmp w2, w3 - bcs .L2477 - ldrh w1, [x19,12] + bcs .L2544 + ldrh w1, [x25,12] add w1, w2, w1 ldr w1, [x4,x1,lsl 2] cmn w1, #1 - beq .L2414 + beq .L2447 add w1, w0, 1 uxth w0, w1 -.L2414: +.L2447: add w2, w2, 1 - b .L2413 -.L2477: - add x2, x21, :lo12:.LANCHOR0 - ldrb w1, [x19,9] + b .L2446 +.L2544: + add x2, x19, :lo12:.LANCHOR0 + ldrb w1, [x25,9] sub w0, w0, w3 ldrh w22, [x2,3300] madd w0, w1, w22, w0 uxth w22, w0 - ldr w0, [x24,#:lo12:.LANCHOR2] - tbz x0, 12, .L2416 - ldrh w1, [x19] - adrp x0, .LC180 + ldr w0, [x21,#:lo12:.LANCHOR2] + tbz x0, 12, .L2449 + ldrh w1, [x25] + adrp x0, .LC183 ldr x4, [x2,600] - add x0, x0, :lo12:.LC180 + add x0, x0, :lo12:.LC183 ubfiz x3, x1, 1, 16 mov w2, w22 ldrh w3, [x4,x3] bl printk -.L2416: - add x0, x21, :lo12:.LANCHOR0 - ldrh w1, [x19] - adrp x23, .LC181 - mov w25, -1 - add x23, x23, :lo12:.LC181 +.L2449: + add x0, x19, :lo12:.LANCHOR0 + ldrh w1, [x25] ldr x0, [x0,600] strh w22, [x0,x1,lsl 1] - mov x0, x20 - mov w22, 0 - bl buf_free -.L2417: - add x2, x21, :lo12:.LANCHOR0 - ldrb w0, [x2,3276] - cmp w22, w0, lsl 1 - bcs .L2478 - cbz w28, .L2418 - ldrh w0, [x19,6] - cmp w0, 1 - bls .L2418 - mov x0, x19 - bl ftl_get_new_free_page - mov w26, w0 - ldr w0, [x24,#:lo12:.LANCHOR2] - tbz x0, 12, .L2419 - mov x0, x23 - mov w1, w26 + ldr w0, [x21,#:lo12:.LANCHOR2] + tbz x0, 14, .L2450 + adrp x0, .LC184 + ldr w1, [x29,144] + ldr w2, [x29,148] + add x0, x0, :lo12:.LC184 + ldr w3, [x29,152] + ldr w4, [x29,156] bl printk -.L2419: - add x3, x21, :lo12:.LANCHOR0 - ldr x0, [x20,24] - ldr x1, [x3,2864] +.L2450: + add x0, x19, :lo12:.LANCHOR0 + mov w1, 0 + adrp x24, .LC185 + mov x23, 0 + add x24, x24, :lo12:.LC185 + ldrb w2, [x0,2832] + ldr x0, [x27,8] + lsl w2, w2, 9 + bl ftl_memset + adrp x0, .LC186 + add x28, x0, :lo12:.LC186 + adrp x0, .LC187 + add x0, x0, :lo12:.LC187 + str x0, [x29,120] +.L2451: + add x22, x19, :lo12:.LANCHOR0 + str w23, [x29,132] + ldrb w0, [x22,3276] + mul w0, w26, w0 + cmp w23, w0 + bcs .L2545 + ldr w0, [x20,x23,lsl 2] + cmn w0, #1 + bne .L2452 +.L2456: + add x1, x19, :lo12:.LANCHOR0 + ldr x0, [x27,24] + mov w22, -1 + ldr x1, [x1,2864] ldr w1, [x1,8] str w1, [x0] - ldr x0, [x20,24] - str w25, [x0,4] - ldr x0, [x20,24] - str w25, [x0,8] - ldr x0, [x20,24] + ldr x0, [x27,24] + str w22, [x0,4] + ldr x0, [x27,24] + str w22, [x0,8] + ldr x0, [x27,24] str wzr, [x0,12] - ldr x0, [x20,8] + ldr x0, [x27,8] str wzr, [x0] - mov w0, w26 - ldr x1, [x20,8] - ldr x2, [x20,24] + b .L2453 +.L2452: + ldrb w3, [x22,2832] + ldr x1, [x27,8] + ldr x2, [x27,24] + bl ftl_read_ppa_page + mov w22, w0 + ldr x0, [x27,24] + ldr w0, [x0,4] + bl lpa_hash_get_ppa + mov w4, w0 + ldr w0, [x21,#:lo12:.LANCHOR2] + tbz x0, 14, .L2454 + ldr x3, [x27,24] + mov w1, w4 + ldr w2, [x20,x23,lsl 2] + mov x0, x24 + str x4, [x29,112] + ldr w3, [x3,4] + bl printk + ldr x4, [x29,112] +.L2454: + ldr w0, [x20,x23,lsl 2] + ldr x2, [x27,24] + cmp w4, w0 + add x0, x19, :lo12:.LANCHOR0 + csinv w22, w22, wzr, eq + cmn w22, #1 + ldr x1, [x0,2864] + ldr w0, [x1,8] + add w3, w0, 1 + str w3, [x1,8] + str w0, [x2] + mov w1, 1 + ldr x0, [x27,24] + str w4, [x0,8] + ldr x0, [x27,24] + str w1, [x0,12] + beq .L2456 +.L2453: + ldr w0, [x29,136] + cbz w0, .L2458 +.L2541: + ldrh w0, [x25,6] + cmp w0, 1 + bls .L2458 + mov x0, x25 + bl ftl_get_new_free_page + mov w4, w0 + ldr w0, [x21,#:lo12:.LANCHOR2] + tbz x0, 14, .L2460 + ldr x2, [x27,24] + mov w1, w4 + mov x0, x28 + str x4, [x29,112] + ldr w2, [x2,4] + bl printk + ldr x4, [x29,112] +.L2460: + add x3, x19, :lo12:.LANCHOR0 + ldr w1, [x29,132] + ldrh w0, [x25,6] + ldrb w2, [x3,3276] + mul w2, w26, w2 + add w2, w2, 1 + sub w2, w2, w1 + cmp w0, w2 + bls .L2458 + ldr x1, [x27,8] + mov w0, w4 + ldr x2, [x27,24] ldrb w3, [x3,2832] bl ftl_prog_ppa_page - ldrh w0, [x19] + mov w2, w0 + ldrh w0, [x25] + str x2, [x29,112] bl ftl_vpn_decrement -.L2418: - add w22, w22, 1 - b .L2417 -.L2478: - ldrh w1, [x2,3300] - ldrh w0, [x19,12] - ldrb w3, [x19,9] - madd w0, w1, w3, w0 + ldr x2, [x29,112] + cmn w22, #1 + cset w1, ne + cmn w2, #1 + beq .L2461 + cbz w1, .L2458 + ldr w0, [x21,#:lo12:.LANCHOR2] + tbz x0, 14, .L2462 + ldr x2, [x27,24] + ldrh w0, [x25,12] + ldrh w3, [x25,10] + ldr w1, [x2,4] + add w3, w3, w0 + ldr w2, [x2,8] + ldr x0, [x29,120] + sub w3, w3, #1 + bl printk +.L2462: + ldr x1, [x27,24] + ldrh w0, [x25,12] + ldrh w2, [x25,10] + add w2, w2, w0 + ldr w0, [x1,4] + ldr w1, [x1,8] + sub w2, w2, #1 + bl lpa_hash_update_ppa + b .L2458 +.L2461: + cbnz w1, .L2541 +.L2458: + add x23, x23, 1 + b .L2451 +.L2545: + mov x0, x27 + bl buf_free + ldrh w1, [x22,3300] + ldrh w0, [x25,12] + ldrb w2, [x25,9] + madd w0, w1, w2, w0 mov x1, -4 add x0, x1, x0, sxtw 2 - ldr x1, [x2,3872] + ldr x1, [x22,3864] ldr w0, [x1,x0] cmn w0, #1 - beq .L2421 + beq .L2466 adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 - mov w2, 1502 - add x1, x1, 472 + mov w2, 1554 + add x1, x1, 480 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L2421: - ldrh w0, [x19,6] +.L2466: + ldrh w0, [x25,6] cmp w0, 1 - bne .L2391 - mov x0, x19 + bne .L2425 + mov x0, x25 bl ftl_write_last_log_page - b .L2391 -.L2476: + b .L2425 +.L2543: ldr x0, [x1,2864] ldr w2, [x2] ldr w1, [x0,8] cmp w2, w1 - bls .L2409 + bls .L2442 str w2, [x0,8] -.L2409: - ldr x1, [x20,24] - ldrh w0, [x19,10] - ldrh w2, [x19,12] +.L2442: + ldr x1, [x27,24] + ldrh w0, [x25,10] + ldrh w2, [x25,12] add w2, w2, w0 ldr w0, [x1,4] ldr w1, [x1,8] bl lpa_hash_update_ppa - b .L2408 -.L2391: + ldr w0, [x20,4] + str w0, [x20] + ldr w0, [x20,8] + str w0, [x20,4] + ldr w0, [x20,12] + str w0, [x20,8] + ldr w0, [x29,132] + str w0, [x20,12] + b .L2441 +.L2425: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] ldp x25, x26, [sp,64] ldp x27, x28, [sp,80] - ldp x29, x30, [sp], 128 + ldp x29, x30, [sp], 208 ret .size ftl_open_sblk_recovery, .-ftl_open_sblk_recovery .align 2 @@ -15147,8 +15754,8 @@ pm_write_page: mov x24, x1 adrp x25, .LANCHOR0 add x23, x23, :lo12:.LC0 - add x22, x22, 496 -.L2480: + add x22, x22, 504 +.L2547: add x2, x25, :lo12:.LANCHOR0 adrp x19, .LANCHOR0 ldr x0, [x2,2864] @@ -15158,34 +15765,34 @@ pm_write_page: str w1, [x0,48] ldrh w1, [x2,3300] cmp w3, w1 - bcs .L2481 + bcs .L2548 ldrh w1, [x0,692] mov w0, 65535 cmp w1, w0 - bne .L2482 -.L2481: + bne .L2549 +.L2548: bl pm_alloc_new_blk mov w0, 0 bl ftl_info_flush -.L2482: +.L2549: add x0, x19, :lo12:.LANCHOR0 ldr x0, [x0,2864] ldrh w1, [x0,692] mov w0, 65535 cmp w1, w0 - bne .L2483 + bne .L2550 mov x1, x22 mov w2, 230 mov x0, x23 bl printk bl dump_stack -.L2483: +.L2550: add x19, x19, :lo12:.LANCHOR0 adrp x20, .LANCHOR7 add x27, x20, :lo12:.LANCHOR7 mov w2, 64 ldr x1, [x19,2864] - ldrh w26, [x19,3350] + ldrh w26, [x19,3348] ldrh w0, [x1,692] ldrh w1, [x1,696] madd w26, w0, w26, w1 @@ -15211,28 +15818,28 @@ pm_write_page: uxth w2, w2 strh w2, [x1,696] cmp w2, 1 - beq .L2484 + beq .L2551 ldrb w2, [x27,-120] - cbz w2, .L2485 -.L2484: + cbz w2, .L2552 +.L2551: add x20, x20, :lo12:.LANCHOR7 strb wzr, [x20,-120] - b .L2480 -.L2485: + b .L2547 +.L2552: cmn w0, #1 - bne .L2487 - adrp x0, .LC182 + bne .L2554 + adrp x0, .LC188 mov w1, w26 - add x0, x0, :lo12:.LC182 + add x0, x0, :lo12:.LC188 bl printk - b .L2480 -.L2487: + b .L2547 +.L2554: ldrh w0, [x1,698] cmp w21, w0 - bcs .L2488 + bcs .L2555 add x21, x1, x21, uxtw 2 str w26, [x21,704] -.L2488: +.L2555: mov w0, 0 ldr x27, [sp,80] ldp x19, x20, [sp,16] @@ -15243,11 +15850,267 @@ pm_write_page: ret .size pm_write_page, .-pm_write_page .align 2 + .global ftl_dump_write_open_sblk + .type ftl_dump_write_open_sblk, %function +ftl_dump_write_open_sblk: + sub sp, sp, #208 + stp x29, x30, [sp,48] + add x29, sp, 48 + stp x21, x22, [sp,80] + adrp x22, .LANCHOR0 + stp x23, x24, [sp,96] + uxth w23, w0 + add x0, x22, :lo12:.LANCHOR0 + stp x19, x20, [sp,64] + stp x25, x26, [sp,112] + stp x27, x28, [sp,128] + ldrh w1, [x0,576] + cmp w1, w23 + bls .L2559 + ldrb w1, [x0,3272] + cbnz w1, .L2561 + ldrb w0, [x0,3258] + cbz w0, .L2559 +.L2561: + add x1, x22, :lo12:.LANCHOR0 + ubfiz x19, x23, 2, 16 + mov w27, 1 + ldr x0, [x1,584] + add x0, x0, x19 + ldrb w0, [x0,2] + and w0, w0, 224 + cmp w0, 160 + bne .L2562 + ldrb w27, [x1,3257] +.L2562: + add x24, x29, 128 + mov w0, w23 + add x1, x24, 16 + strh w23, [x29,128] + mov w21, 0 + adrp x25, .LC190 + bl ftl_get_blk_list_in_sblk + uxtb w0, w0 + add x1, x22, :lo12:.LANCHOR0 + strb w0, [x29,137] + strh wzr, [x29,130] + mov w20, w21 + strb wzr, [x29,133] + mov w26, w21 + ldrh w2, [x1,3300] + add x25, x25, :lo12:.LC190 + strh wzr, [x29,138] + mul w0, w0, w2 + strh w0, [x29,134] + ldr x0, [x1,584] + add x1, x0, x19 + ldrh w4, [x0,x19] + ldr w5, [x0,x19] + adrp x0, .LC189 + ldrb w3, [x1,2] + and w4, w4, 2047 + mov w1, w23 + ubfx x5, x5, 11, 8 + ubfx x2, x3, 5, 3 + add x0, x0, :lo12:.LC189 + ubfx x3, x3, 3, 2 + bl printk + mov w0, 1 + bl buf_alloc + mov x19, x0 + mov w8, 65535 +.L2563: + add x0, x22, :lo12:.LANCHOR0 + ldrh w0, [x0,3300] + cmp w0, w20 + bls .L2584 + lsl w28, w20, 1 + mov w26, 0 + sub w28, w28, #1 +.L2573: + ldrb w0, [x24,9] + cmp w0, w26 + bls .L2588 + mov w21, 1 + sxtw x9, w26 +.L2572: + cmp w21, w27 + bhi .L2589 + add x0, x9, 8 + ldrh w5, [x24,x0,lsl 1] + cmp w5, w8 + beq .L2565 + add x0, x22, :lo12:.LANCHOR0 + cmp w27, 3 + ldrh w2, [x0,3348] + mul w2, w5, w2 + bne .L2566 + add w2, w2, w20 + orr w3, w2, w21, lsl 24 + b .L2567 +.L2566: + cmp w27, 2 + add w3, w2, w20 + bne .L2567 + ldrb w3, [x0,3257] + add w2, w2, w28 + add w2, w2, w21 + orr w3, w2, w3, lsl 24 +.L2567: + str w3, [x19,40] + mov w1, 1 + mov x0, x19 + str x8, [x29,96] + str x9, [x29,104] + str x5, [x29,112] + str x3, [x29,120] + bl sblk_read_page + ldr x7, [x19,8] + mov w2, w20 + ldr x0, [x19,24] + ldr w10, [x19,52] + ldr w1, [x7,12] + str w1, [sp] + mov w4, w10 + ldr x5, [x29,112] + ldr w1, [x0] + str w1, [sp,8] + ldr x3, [x29,120] + ldr w1, [x0,4] + str w1, [sp,16] + str x10, [x29,120] + ldr w1, [x0,8] + str w1, [sp,24] + mov w1, w5 + ldr w0, [x0,12] + str w0, [sp,32] + mov x0, x25 + ldr w5, [x7] + ldr w6, [x7,4] + ldr w7, [x7,8] + bl printk + ldr x10, [x29,120] + ldr x9, [x29,104] + cmp w10, 512 + ldr x8, [x29,96] + beq .L2584 +.L2565: + add w21, w21, 1 + uxth w21, w21 + b .L2572 +.L2589: + add w26, w26, 1 + uxth w26, w26 + b .L2573 +.L2588: + add w20, w20, 1 + uxth w20, w20 + b .L2563 +.L2584: +.L2569: + adrp x0, .LC191 + mov w4, w21 + mov w2, w20 + mov w3, w26 + mov w1, w23 + mov w25, w20 + add x0, x0, :lo12:.LC191 + add x20, x22, :lo12:.LANCHOR0 + adrp x21, .LC192 + bl printk + add x21, x21, :lo12:.LC192 + ldrb w2, [x20,2832] + mov w1, 0 + ldr x0, [x19,8] + lsl w2, w2, 9 + bl ftl_memset + ldrb w2, [x20,2832] + mov w1, 0 + ldr x0, [x19,24] + lsl w2, w2, 1 + bl ftl_memset +.L2574: + add x0, x22, :lo12:.LANCHOR0 + ldrh w0, [x0,3300] + cmp w0, w25 + bls .L2579 + lsl w26, w25, 1 + mov w20, 0 +.L2580: + ldrb w0, [x24,9] + cmp w0, w20 + bls .L2590 + mov w1, w25 + mov x0, x21 + mov w2, w20 + bl printk + add x4, x22, :lo12:.LANCHOR0 + sxtw x3, w20 + ldrb w5, [x4,3272] + ldrh w1, [x4,3348] + cbz w5, .L2575 + add x3, x3, 8 + ldrh w0, [x24,x3,lsl 1] + mul w1, w0, w1 + mov x0, x19 + orr w1, w1, w25 + str w1, [x19,40] + bl sblk_3d_tlc_dump_prog + b .L2576 +.L2575: + add x3, x3, 8 + ldrb w0, [x4,3257] + cmp w0, 2 + ldrh w0, [x24,x3,lsl 1] + mul w1, w0, w1 + bne .L2577 + orr w1, w1, w26 + mov x0, x19 + orr w1, w1, 33554432 + str w1, [x19,40] + bl sblk_mlc_dump_prog + b .L2576 +.L2577: + orr w1, w1, w25 + ldr x2, [x19,8] + ldr x3, [x19,24] + ubfx x0, x1, 21, 3 + ldrb w4, [x4,2832] + str w1, [x19,40] + and w1, w1, -14680065 + bl flash_prog_page_en +.L2576: + add w20, w20, 1 + uxth w20, w20 + b .L2580 +.L2590: + add w25, w25, 1 + uxth w25, w25 + b .L2574 +.L2579: + mov x0, x19 + bl buf_free + adrp x0, .LC193 + mov w1, w23 + add x0, x0, :lo12:.LC193 + bl printk +.L2559: + sub sp, x29, #48 + 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, 208 + ret + .size ftl_dump_write_open_sblk, .-ftl_dump_write_open_sblk + .align 2 .global flash_info_flush .type flash_info_flush, %function flash_info_flush: adrp x0, .LANCHOR2 - stp x29, x30, [sp, -96]! + stp x29, x30, [sp, -112]! add x29, sp, 0 ldr w0, [x0,#:lo12:.LANCHOR2] stp x19, x20, [sp,16] @@ -15255,31 +16118,32 @@ flash_info_flush: stp x23, x24, [sp,48] stp x25, x26, [sp,64] stp x27, x28, [sp,80] - tbz x0, 12, .L2493 + tbz x0, 12, .L2592 adrp x2, .LANCHOR3 - adrp x0, .LC127 + adrp x0, .LC130 add x2, x2, :lo12:.LANCHOR3 - add x0, x0, :lo12:.LC127 - mov w1, 250 - add x2, x2, 512 + add x0, x0, :lo12:.LC130 + mov w1, 324 + add x2, x2, 520 bl printk -.L2493: - adrp x22, .LANCHOR4 +.L2592: + adrp x22, .LANCHOR7 adrp x23, .LANCHOR0 - add x0, x22, :lo12:.LANCHOR4 + add x0, x22, :lo12:.LANCHOR7 mov w1, 0 mov w2, 64 add x19, x23, :lo12:.LANCHOR0 - adrp x24, .LC184 - adrp x25, .LC185 - ldr x0, [x0,1232] + adrp x24, .LC195 + adrp x25, .LC196 + ldr x0, [x0,-112] mov w26, 0 - add x24, x24, :lo12:.LC184 - add x25, x25, :lo12:.LC185 + add x24, x24, :lo12:.LC195 + adrp x27, .LANCHOR4 + add x25, x25, :lo12:.LC196 bl ftl_memset ldr x1, [x19,728] - adrp x0, .LC183 - add x0, x0, :lo12:.LC183 + adrp x0, .LC194 + add x0, x0, :lo12:.LC194 mov w2, 4 mov w3, 16 bl rknand_print_hex @@ -15288,90 +16152,258 @@ flash_info_flush: ldr w1, [x19,8] bl js_hash str w0, [x19,12] -.L2494: - add x21, x22, :lo12:.LANCHOR4 - add x27, x23, :lo12:.LANCHOR0 +.L2593: + add x21, x22, :lo12:.LANCHOR7 + add x28, x23, :lo12:.LANCHOR0 mov x0, x24 - ldrb w20, [x21,1240] - ldrh w19, [x21,1242] + ldrb w20, [x21,-104] + ldrh w19, [x21,-102] + ldrh w3, [x28,2] mov w1, w20 - ldrh w28, [x27,2] mov w2, w19 + str x3, [x29,104] bl printk - ldrh w1, [x21,1092] - ldrh w0, [x21,1242] + add x1, x27, :lo12:.LANCHOR4 + ldrh w0, [x21,-102] + ldr x3, [x29,104] + ldrh w1, [x1,1084] sub w1, w1, #1 cmp w0, w1 - blt .L2495 - ldr x1, [x27,728] - ldrb w19, [x21,1241] - strh wzr, [x21,1242] + blt .L2594 + ldr x1, [x28,728] + strh wzr, [x21,-102] ldr w0, [x1,4] add w0, w0, 1 str w0, [x1,4] - ldrb w0, [x21,1240] - ldr x20, [x27,728] - strb w0, [x21,1241] - mov x0, x20 - strb w19, [x21,1240] - ldrh w1, [x20,16] + ldrb w0, [x21,-104] + ldr x19, [x28,728] + ldrb w1, [x21,-103] + strb w0, [x21,-103] + mov x0, x19 + strb w1, [x21,-104] + ldrh w1, [x19,16] add w1, w1, 1 strh w1, [x0,16]! - ldr w1, [x20,8] + ldr w1, [x19,8] bl js_hash - str w0, [x20,12] - ldrh w0, [x27,2] - mul w19, w19, w0 + str w0, [x19,12] + ldrb w1, [x21,-104] mov w0, 0 - b .L2503 -.L2495: - madd w19, w20, w28, w19 - cbnz w0, .L2496 -.L2503: + ldrh w19, [x28,2] + mul w19, w1, w19 + b .L2602 +.L2594: + madd w19, w20, w3, w19 + cbnz w0, .L2595 +.L2602: mov w1, w19 bl flash_erase_block -.L2496: +.L2595: add x2, x23, :lo12:.LANCHOR0 - add x20, x22, :lo12:.LANCHOR4 + add x20, x22, :lo12:.LANCHOR7 mov w4, 4 mov w5, 1 ldr x1, [x2,728] - ldr x0, [x20,1232] + ldr x0, [x20,-112] ldr w1, [x1,4] str w1, [x0] mov w0, 21321 movk w0, 0x5359, lsl 16 - ldr x1, [x20,1232] + ldr x1, [x20,-112] str w0, [x1,4] mov w1, w19 mov w0, 0 ldr x2, [x2,728] - ldr x3, [x20,1232] + ldr x3, [x20,-112] bl flash_prog_page_en cmn w0, #1 - ldrh w1, [x20,1242] + ldrh w1, [x20,-102] add w1, w1, 1 - strh w1, [x20,1242] - bne .L2497 + strh w1, [x20,-102] + bne .L2596 mov x0, x25 mov w1, w19 bl printk - b .L2494 -.L2497: - cbnz w26, .L2504 + b .L2593 +.L2596: + cbnz w26, .L2603 mov w26, 1 - b .L2494 -.L2504: + b .L2593 +.L2603: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] ldp x25, x26, [sp,64] ldp x27, x28, [sp,80] - ldp x29, x30, [sp], 96 + ldp x29, x30, [sp], 112 ret .size flash_info_flush, .-flash_info_flush .align 2 + .global flash_info_blk_init + .type flash_info_blk_init, %function +flash_info_blk_init: + adrp x0, .LANCHOR2 + stp x29, x30, [sp, -80]! + add x29, sp, 0 + ldr w0, [x0,#:lo12:.LANCHOR2] + stp x19, x20, [sp,16] + stp x21, x22, [sp,32] + stp x23, x24, [sp,48] + str x25, [sp,64] + adrp x20, .LANCHOR0 + tbz x0, 12, .L2605 + add x4, x20, :lo12:.LANCHOR0 + adrp x2, .LANCHOR3 + adrp x0, .LC197 + add x2, x2, :lo12:.LANCHOR3 + add x0, x0, :lo12:.LC197 + mov w1, 50 + ldr x4, [x4,728] + add x2, x2, 544 + mov w3, 2048 + bl printk +.L2605: + mov w23, 4 + adrp x24, .LANCHOR7 +.L2608: + add x19, x20, :lo12:.LANCHOR0 + add x21, x24, :lo12:.LANCHOR7 + mov w0, 0 + mov w4, 4 + adrp x22, .LANCHOR7 + ldrh w1, [x19,2] + ldr x2, [x19,728] + ldr x3, [x21,-112] + mul w1, w23, w1 + bl flash_read_page_en + cmn w0, #1 + beq .L2606 + ldr x2, [x19,728] + mov w0, 21321 + movk w0, 0x5359, lsl 16 + ldr w1, [x2] + cmp w1, w0 + beq .L2607 +.L2606: + add w23, w23, 1 + cmp w23, 16 + bne .L2608 +.L2633: + mov w0, -1 + b .L2632 +.L2607: + ldrb w1, [x2,36] + mov w4, 4 + ldrh w3, [x19,2] + strb w1, [x21,-104] + ldrb w0, [x2,37] + mul w1, w1, w3 + ldr x3, [x21,-112] + strb w0, [x21,-103] + mov w0, 0 + mov w21, 0 + bl flash_read_page_en + cmn w0, #1 + beq .L2610 + ldr x0, [x19,728] + mov w1, 21321 + movk w1, 0x5359, lsl 16 + mov w21, 0 + ldr w2, [x0] + cmp w2, w1 + bne .L2610 + ldr w21, [x0,4] +.L2610: + add x19, x22, :lo12:.LANCHOR7 + add x23, x20, :lo12:.LANCHOR0 + mov w0, 0 + mov w4, 4 + ldrb w2, [x19,-103] + ldrh w1, [x23,2] + ldr x3, [x19,-112] + mul w1, w2, w1 + ldr x2, [x23,728] + bl flash_read_page_en + cmn w0, #1 + beq .L2611 + ldr x0, [x23,728] + mov w1, 21321 + movk w1, 0x5359, lsl 16 + ldr w2, [x0] + cmp w2, w1 + bne .L2611 + ldr w1, [x0,4] + cmp w21, w1 + bcs .L2611 + ldrb w1, [x0,37] + ldrb w0, [x0,36] + strb w1, [x19,-104] + strb w0, [x19,-103] +.L2611: + add x19, x22, :lo12:.LANCHOR7 + add x21, x20, :lo12:.LANCHOR0 + mov w0, 0 + mov w4, 4 + ldrb w1, [x19,-104] + ldr x2, [x21,728] + ldr x3, [x19,-112] + bl flash_get_last_written_page + ldrh w23, [x21,2] + ldrb w1, [x19,-104] + uxth w24, w0 + add w0, w24, 1 + mov w21, 0 + strh w0, [x19,-102] + mul w23, w1, w23 +.L2612: + sub w19, w24, w21 + sxth w19, w19 + tbnz w19, #31, .L2634 + add x25, x20, :lo12:.LANCHOR0 + add x3, x22, :lo12:.LANCHOR7 + mov w0, 0 + add w1, w19, w23 + mov w4, 4 + ldr x2, [x25,728] + ldr x3, [x3,-112] + bl flash_read_page_en + cmn w0, #1 + beq .L2613 + ldr x0, [x25,728] + ldr w1, [x0] + mov w0, 21321 + movk w0, 0x5359, lsl 16 + cmp w1, w0 + beq .L2614 +.L2613: + add w21, w21, 1 + b .L2612 +.L2634: + cmn w19, #1 + bne .L2614 + add x20, x20, :lo12:.LANCHOR0 + adrp x0, .LC198 + add x0, x0, :lo12:.LC198 + ldr x1, [x20,728] + ldr w1, [x1] + bl printk + b .L2633 +.L2614: + cmp w21, 1 + mov w0, 0 + bls .L2632 + bl flash_info_flush + mov w0, 0 +.L2632: + ldp x19, x20, [sp,16] + ldp x21, x22, [sp,32] + ldp x23, x24, [sp,48] + ldr x25, [sp,64] + ldp x29, x30, [sp], 80 + ret + .size flash_info_blk_init, .-flash_info_blk_init + .align 2 .global nand_flash_init .type nand_flash_init, %function nand_flash_init: @@ -15384,22 +16416,22 @@ nand_flash_init: stp x23, x24, [sp,48] ldr w0, [x20,#:lo12:.LANCHOR2] str x25, [sp,64] - tbz x0, 12, .L2506 + tbz x0, 12, .L2636 adrp x2, .LANCHOR3 - adrp x0, .LC127 + adrp x0, .LC130 add x2, x2, :lo12:.LANCHOR3 - add x0, x0, :lo12:.LC127 - mov w1, 2258 - add x2, x2, 536 + add x0, x0, :lo12:.LC130 + mov w1, 2459 + add x2, x2, 568 bl printk -.L2506: +.L2636: adrp x21, .LANCHOR4 mov x0, x19 add x23, x21, :lo12:.LANCHOR4 adrp x19, .LANCHOR0 add x22, x19, :lo12:.LANCHOR0 mov w25, 44 - str wzr, [x23,1220] + str wzr, [x23,1212] bl nandc_init add x1, x20, :lo12:.LANCHOR2 mov w0, 1 @@ -15412,78 +16444,78 @@ nand_flash_init: add x22, x22, 748 bl ftl_memset mov x24, x22 - add x0, x23, 1096 + add x0, x23, 1088 mov w1, 0 mov w2, 32 mov w23, 0 bl ftl_memset -.L2512: +.L2642: mov w0, w23 mov x1, x22 bl flash_read_id - cbnz w23, .L2507 + cbnz w23, .L2637 ldrb w0, [x24] sub w0, w0, #1 uxtb w0, w0 cmp w0, 253 - bls .L2508 -.L2510: + bls .L2638 +.L2640: mov w22, -2 - b .L2579 -.L2508: + b .L2712 +.L2638: ldrb w0, [x24,1] cmp w0, 255 - beq .L2510 -.L2507: + beq .L2640 +.L2637: ldrb w0, [x22] cmp w0, 181 - bne .L2511 + bne .L2641 strb w25, [x22] -.L2511: +.L2641: add w23, w23, 1 add x22, x22, 8 uxtb w23, w23 cmp w23, 4 - bne .L2512 + bne .L2642 add x23, x20, :lo12:.LANCHOR2 add x24, x19, :lo12:.LANCHOR0 add x23, x23, 440 mov w22, 0 add x24, x24, 748 -.L2515: +.L2645: ldrb w2, [x23] add x0, x23, 1 mov x1, x24 bl flash_mem_cmp8 - cbnz w0, .L2513 + cbnz w0, .L2643 add x1, x20, :lo12:.LANCHOR2 ubfiz x22, x22, 5, 32 add x0, x1, 440 adds x22, x0, x22 - beq .L2510 + beq .L2640 ldrb w3, [x22,22] mov x0, 0 - b .L2517 -.L2513: + b .L2647 +.L2643: add w22, w22, 1 add x23, x23, 32 - cmp w22, 36 - bne .L2515 - b .L2510 -.L2517: + cmp w22, 38 + bne .L2645 + b .L2640 +.L2647: add x4, x1, x0, lsl 5 mov w2, w0 - ldrb w4, [x4,1592] + ldrb w4, [x4,1656] cmp w4, w3 - beq .L2516 + beq .L2646 add x0, x0, 1 cmp x0, 4 - bne .L2517 + bne .L2647 mov w2, w0 -.L2516: +.L2646: add x23, x20, :lo12:.LANCHOR2 add x24, x19, :lo12:.LANCHOR0 - add x1, x23, 1592 + add x1, x23, 1656 ubfiz x2, x2, 5, 32 add x1, x1, x2 add x0, x24, 640 @@ -15496,262 +16528,280 @@ nand_flash_init: bl ftl_memcpy ldrb w0, [x24,516] cmp w0, 8 - bhi .L2518 + bhi .L2648 ldrb w1, [x23,20] cmp w1, 60 - bls .L2519 + bls .L2649 mov w1, 60 strb w1, [x23,20] -.L2519: +.L2649: cmp w0, 8 - bne .L2518 + bne .L2648 add x0, x19, :lo12:.LANCHOR0 ldrb w0, [x0,748] cmp w0, 137 - beq .L2543 + beq .L2678 cmp w0, 44 - beq .L2543 -.L2518: + beq .L2678 +.L2648: ldr w0, [x20,#:lo12:.LANCHOR2] - tbz x0, 12, .L2521 + tbz x0, 12, .L2651 adrp x2, .LANCHOR3 - adrp x0, .LC127 + adrp x0, .LC130 add x2, x2, :lo12:.LANCHOR3 - add x0, x0, :lo12:.LC127 - mov w1, 2283 - add x2, x2, 536 + add x0, x0, :lo12:.LC130 + mov w1, 2484 + add x2, x2, 568 bl printk -.L2521: - add x23, x21, :lo12:.LANCHOR4 +.L2651: + add x24, x21, :lo12:.LANCHOR4 mov w0, 16384 add x22, x19, :lo12:.LANCHOR0 - add x24, x20, :lo12:.LANCHOR2 + adrp x23, .LANCHOR7 bl ftl_malloc - str x0, [x23,1248] + add x25, x20, :lo12:.LANCHOR2 + str x0, [x24,1224] mov w0, 16384 bl ftl_malloc - str x0, [x23,1192] + str x0, [x24,1184] mov w0, 2048 bl ftl_malloc str x0, [x22,728] mov w0, 64 bl ftl_malloc - str x0, [x23,1256] + str x0, [x24,1232] mov w0, 64 bl ftl_malloc - str x0, [x23,1208] + str x0, [x24,1200] mov w0, 64 bl ftl_malloc - str x0, [x23,1232] - adrp x0, .LANCHOR7-119 - strb wzr, [x0,#:lo12:.LANCHOR7-119] + add x1, x23, :lo12:.LANCHOR7 + str x0, [x1,-112] + strb wzr, [x1,-100] bl flash_die_info_init - ldrb w0, [x24,26] + ldrb w0, [x25,26] bl flash_lsb_page_tbl_build - ldrb w0, [x24,28] + ldrb w0, [x25,28] bl nandc_bch_sel - str xzr, [x23,1224] + str xzr, [x24,1216] ldr x1, [x22,624] ldrh w0, [x1,16] + ldrb w1, [x1,28] ubfx x2, x0, 8, 3 strb w2, [x22,780] ubfx x2, x0, 3, 1 - strb w2, [x23,1265] + strb w2, [x24,1240] ubfx x2, x0, 4, 1 strb w2, [x22,781] ubfx x2, x0, 12, 1 strb w2, [x22,3272] ubfx x2, x0, 13, 1 - ubfx x0, x0, 14, 1 - strb w0, [x22,1] - ldrb w0, [x1,28] - mov w1, 60 - strb w1, [x22,632] - ldrb w1, [x22,516] - strb w2, [x22,3348] - strb w0, [x19,#:lo12:.LANCHOR0] + strb w2, [x22,3258] + ubfx x2, x0, 14, 1 + lsr w0, w0, 15 + strb w0, [x22,3259] + mov w0, 60 + strb w0, [x22,632] + ldrb w0, [x22,516] + strb w2, [x22,1] + strb w1, [x19,#:lo12:.LANCHOR0] + cmp w0, 9 + bne .L2652 + mov w0, 70 + strb w0, [x22,632] +.L2652: + add x0, x19, :lo12:.LANCHOR0 + strb w1, [x0,782] + add x1, x20, :lo12:.LANCHOR2 + ldrb w1, [x1,15] cmp w1, 9 - bne .L2522 - mov w1, 70 - strb w1, [x22,632] -.L2522: - add x2, x20, :lo12:.LANCHOR2 - add x1, x21, :lo12:.LANCHOR4 - add x2, x2, 8 - add x3, x19, :lo12:.LANCHOR0 - strb w0, [x1,1264] - ldrb w0, [x2,19] - ldrh w2, [x2,16] - strb w0, [x3,725] - tbz x2, 6, .L2523 - sub w2, w0, #17 - uxtb w2, w2 - cmp w2, 2 - bhi .L2524 - adrp x0, micron_read_retrial - add x0, x0, :lo12:micron_read_retrial - str x0, [x1,1224] - mov w0, 15 - b .L2581 -.L2524: - sub w2, w0, #65 - uxtb w2, w2 - cmp w2, 1 - bls .L2544 + bne .L2653 + strb wzr, [x0,782] +.L2653: + add x1, x20, :lo12:.LANCHOR2 + add x2, x19, :lo12:.LANCHOR0 + add x1, x1, 8 + ldrb w0, [x1,19] + ldrh w1, [x1,16] + strb w0, [x2,725] + tbz x1, 6, .L2655 + sub w1, w0, #17 + cmp w0, 21 + cset w2, eq + uxtb w1, w1 + cmp w1, 2 + bls .L2679 + cbz w2, .L2656 +.L2679: + add x0, x21, :lo12:.LANCHOR4 + adrp x1, micron_read_retrial + add x1, x1, :lo12:micron_read_retrial + str x1, [x0,1216] + mov w1, 15 + cbz w2, .L2714 + mov w1, 4 + b .L2714 +.L2656: + sub w1, w0, #65 + uxtb w1, w1 + cmp w1, 1 + bls .L2680 cmp w0, 33 - bne .L2525 -.L2544: + bne .L2660 +.L2680: add x0, x21, :lo12:.LANCHOR4 adrp x1, toshiba_read_retrial add x1, x1, :lo12:toshiba_read_retrial mov w2, 4 - str x1, [x0,1224] + str x1, [x0,1216] add x1, x19, :lo12:.LANCHOR0 strb w2, [x1,726] - mov w1, 7 - strb w1, [x0,1216] - b .L2523 -.L2525: - sub w2, w0, #67 - uxtb w2, w2 - cmp w2, 1 - sub w2, w0, #34 - cset w3, ls - uxtb w2, w2 - cmp w2, 1 - bls .L2545 - cbz w3, .L2527 -.L2545: - add x2, x21, :lo12:.LANCHOR4 + b .L2716 +.L2660: + sub w1, w0, #67 + uxtb w1, w1 + cmp w1, 1 + sub w1, w0, #34 + cset w2, ls + uxtb w1, w1 + cmp w1, 1 + bls .L2681 + cbz w2, .L2662 +.L2681: + add x3, x21, :lo12:.LANCHOR4 adrp x1, toshiba_read_retrial add x1, x1, :lo12:toshiba_read_retrial cmp w0, 35 - str x1, [x2,1224] - beq .L2529 + str x1, [x3,1216] + beq .L2664 cmp w0, 68 - beq .L2529 + beq .L2664 mov w0, 7 - strb w0, [x2,1216] - b .L2530 -.L2529: + strb w0, [x3,1208] + b .L2665 +.L2664: add x0, x21, :lo12:.LANCHOR4 mov w1, 17 - strb w1, [x0,1216] -.L2530: + strb w1, [x0,1208] +.L2665: add x0, x19, :lo12:.LANCHOR0 mov w1, 4 - cbnz w3, .L2582 + cbnz w2, .L2715 mov w1, 5 -.L2582: +.L2715: strb w1, [x0,726] - b .L2523 -.L2527: + b .L2655 +.L2662: sub w0, w0, #36 uxtb w0, w0 cmp w0, 1 - bhi .L2523 - adrp x0, toshiba_3d_read_retrial - add x0, x0, :lo12:toshiba_3d_read_retrial - str x0, [x1,1224] - mov w0, 7 -.L2581: - strb w0, [x1,1216] -.L2523: + bhi .L2655 + add x0, x21, :lo12:.LANCHOR4 + adrp x1, toshiba_3d_read_retrial + add x1, x1, :lo12:toshiba_3d_read_retrial + str x1, [x0,1216] +.L2716: + mov w1, 7 +.L2714: + strb w1, [x0,1208] +.L2655: ldr w0, [x20,#:lo12:.LANCHOR2] - tbz x0, 12, .L2532 + tbz x0, 12, .L2667 adrp x2, .LANCHOR3 - adrp x0, .LC127 + adrp x0, .LC130 add x2, x2, :lo12:.LANCHOR3 - add x0, x0, :lo12:.LC127 - mov w1, 2331 - add x2, x2, 536 + add x0, x0, :lo12:.LC130 + mov w1, 2537 + add x2, x2, 568 bl printk -.L2532: +.L2667: add x0, x19, :lo12:.LANCHOR0 strb wzr, [x0,672] ldrb w0, [x0,780] - tbz x0, 0, .L2533 + tbz x0, 0, .L2668 mov w0, 4 bl nandc_set_if_mode mov w0, 1 bl flash_set_interface_mode mov w0, 1 - b .L2583 -.L2533: + b .L2717 +.L2668: mov w0, 4 -.L2583: +.L2717: bl nandc_set_if_mode bl flash_info_blk_init cmn w0, #1 mov w22, w0 - bne .L2535 + bne .L2670 ldr w0, [x20,#:lo12:.LANCHOR2] - tbz x0, 12, .L2536 + tbz x0, 12, .L2671 adrp x2, .LANCHOR3 - adrp x0, .LC127 + adrp x0, .LC130 add x2, x2, :lo12:.LANCHOR3 - add x0, x0, :lo12:.LC127 - mov w1, 2352 - add x2, x2, 536 + add x0, x0, :lo12:.LC130 + mov w1, 2568 + add x2, x2, 568 bl printk -.L2536: +.L2671: add x19, x19, :lo12:.LANCHOR0 mov w1, 17 ldr x0, [x19,728] strb w1, [x0,32] - b .L2579 -.L2535: + mov w0, 0 + bl zftl_flash_exit_slc_mode + b .L2712 +.L2670: add x0, x19, :lo12:.LANCHOR0 ldrb w0, [x0,725] sub w0, w0, #1 uxtb w0, w0 - cmp w0, 6 - bhi .L2537 - add x0, x21, :lo12:.LANCHOR4 - adrp x1, hynix_read_retrial - add x1, x1, :lo12:hynix_read_retrial - str x1, [x0,1224] -.L2537: + cmp w0, 7 + bhi .L2672 + add x21, x21, :lo12:.LANCHOR4 + adrp x0, hynix_read_retrial + add x0, x0, :lo12:hynix_read_retrial + str x0, [x21,1216] +.L2672: add x19, x19, :lo12:.LANCHOR0 ldrb w0, [x19,780] - tbz x0, 2, .L2539 + tbz x0, 2, .L2674 ldr x0, [x19,728] ldrb w0, [x0,19] - cbz w0, .L2539 - add x21, x21, :lo12:.LANCHOR4 + cbz w0, .L2674 + add x23, x23, :lo12:.LANCHOR7 ldrh w1, [x19,2] mov w0, 0 - ldrb w2, [x21,1240] + ldrb w2, [x23,-104] mul w1, w2, w1 bl flash_ddr_para_scan ldrb w0, [x19,672] - cbnz w0, .L2539 + cbnz w0, .L2674 ldr x1, [x19,728] strb w0, [x1,19] bl flash_info_flush -.L2539: +.L2674: ldr w0, [x20,#:lo12:.LANCHOR2] - tbz x0, 12, .L2541 + tbz x0, 12, .L2676 adrp x2, .LANCHOR3 - adrp x0, .LC127 + adrp x0, .LC130 add x2, x2, :lo12:.LANCHOR3 - add x0, x0, :lo12:.LC127 - mov w1, 2409 - add x2, x2, 536 + add x0, x0, :lo12:.LC130 + mov w1, 2634 + add x2, x2, 568 bl printk -.L2541: +.L2676: bl nand_flash_print_info mov w22, 0 - b .L2579 -.L2543: + b .L2712 +.L2678: add x0, x20, :lo12:.LANCHOR2 add x0, x0, 8 ldrb w1, [x0,28] cmp w1, 3 - bne .L2518 + bne .L2648 strb wzr, [x0,28] - b .L2518 -.L2579: + b .L2648 +.L2712: mov w0, w22 ldr x25, [sp,64] ldp x19, x20, [sp,16] @@ -15777,20 +16827,20 @@ ftl_sysblk_dump: bl buf_alloc ldr x24, [x0,8] mov w20, 0 - adrp x22, .LC186 - adrp x23, .LC187 + adrp x22, .LC190 + adrp x23, .LC199 mov x27, x0 mov w19, w20 adrp x28, .LANCHOR0 - add x22, x22, :lo12:.LC186 - add x23, x23, :lo12:.LC187 + add x22, x22, :lo12:.LC190 + add x23, x23, :lo12:.LC199 add x24, x24, 704 -.L2585: +.L2719: add x3, x28, :lo12:.LANCHOR0 ldrh w1, [x3,3300] cmp w1, w19 - bls .L2597 - ldrh w21, [x3,3350] + bls .L2731 + ldrh w21, [x3,3348] ldr x1, [x27,8] ldr x2, [x27,24] madd w21, w25, w21, w19 @@ -15825,28 +16875,28 @@ ftl_sysblk_dump: mov w3, 32 bl rknand_print_hex cmp w26, 512 - beq .L2590 + beq .L2724 cmn w26, #1 - bne .L2586 -.L2590: + bne .L2720 +.L2724: mov w20, 1 -.L2586: +.L2720: add w19, w19, 1 uxth w19, w19 - b .L2585 -.L2597: + b .L2719 +.L2731: mov x0, x27 bl buf_free - cbz w20, .L2589 + cbz w20, .L2723 adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 mov w2, 1338 - add x1, x1, 552 + add x1, x1, 584 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L2589: +.L2723: sub sp, x29, #48 mov w0, w20 ldp x19, x20, [sp,64] @@ -15863,31 +16913,31 @@ ftl_sysblk_dump: .type dump_ftl_info, %function dump_ftl_info: stp x29, x30, [sp, -32]! - adrp x0, .LC188 + adrp x0, .LC200 add x29, sp, 0 str x19, [sp,16] adrp x19, .LANCHOR0 add x19, x19, :lo12:.LANCHOR0 - add x0, x0, :lo12:.LC188 + add x0, x0, :lo12:.LC200 ldrb w1, [x19,2834] bl printk adrp x3, .LANCHOR4 - adrp x0, .LC189 + adrp x0, .LC201 add x3, x3, :lo12:.LANCHOR4 - add x0, x0, :lo12:.LC189 + add x0, x0, :lo12:.LC201 ldrb w1, [x3,1536] ldrb w2, [x3,1537] ldrh w3, [x3,1538] bl printk ldr x2, [x19,2864] - adrp x0, .LC190 - add x0, x0, :lo12:.LC190 + adrp x0, .LC202 + add x0, x0, :lo12:.LC202 ldrh w1, [x2,130] ldrh w2, [x2,140] bl printk ldr x1, [x19,608] - adrp x0, .LC191 - add x0, x0, :lo12:.LC191 + adrp x0, .LC203 + add x0, x0, :lo12:.LC203 add x5, x1, 16 ldrh w1, [x1,16] ldrh w2, [x5,2] @@ -15896,8 +16946,8 @@ dump_ftl_info: ldrh w5, [x5,10] bl printk ldr x1, [x19,608] - adrp x0, .LC192 - add x0, x0, :lo12:.LC192 + adrp x0, .LC204 + add x0, x0, :lo12:.LC204 add x5, x1, 48 ldrh w1, [x1,48] ldrh w2, [x5,2] @@ -15906,8 +16956,8 @@ dump_ftl_info: ldrh w5, [x5,10] bl printk ldr x1, [x19,608] - adrp x0, .LC193 - add x0, x0, :lo12:.LC193 + adrp x0, .LC205 + add x0, x0, :lo12:.LC205 add x5, x1, 80 ldrh w1, [x1,80] ldrh w4, [x5,6] @@ -15918,44 +16968,44 @@ dump_ftl_info: ldrh w0, [x19,3300] mov w2, 4 ldrb w3, [x19,3276] - ldr x1, [x19,3872] + ldr x1, [x19,3864] mul w3, w0, w3 - adrp x0, .LC194 - add x0, x0, :lo12:.LC194 + adrp x0, .LC206 + add x0, x0, :lo12:.LC206 lsl w3, w3, 1 bl rknand_print_hex ldr x1, [x19,600] - adrp x0, .LC195 + adrp x0, .LC207 ldrh w3, [x19,576] - add x0, x0, :lo12:.LC195 + add x0, x0, :lo12:.LC207 mov w2, 2 bl rknand_print_hex ldr x3, [x19,2864] - adrp x0, .LC187 - add x0, x0, :lo12:.LC187 + adrp x0, .LC199 + add x0, x0, :lo12:.LC199 mov w2, 4 add x1, x3, 704 ldrh w3, [x3,698] bl rknand_print_hex ldr x1, [x19,584] - adrp x0, .LC196 + adrp x0, .LC208 ldrh w3, [x19,576] - add x0, x0, :lo12:.LC196 + add x0, x0, :lo12:.LC208 mov w2, 4 bl rknand_print_hex - adrp x0, .LC197 - add x1, x19, 3360 - add x0, x0, :lo12:.LC197 + adrp x0, .LC209 + add x1, x19, 3352 + add x0, x0, :lo12:.LC209 mov w2, 2 mov w3, 256 bl rknand_print_hex ldrh w0, [x19,3300] mov w2, 2 ldrb w3, [x19,3276] - ldr x1, [x19,3880] + ldr x1, [x19,3872] mul w3, w0, w3 - adrp x0, .LC198 - add x0, x0, :lo12:.LC198 + adrp x0, .LC210 + add x0, x0, :lo12:.LC210 lsl w3, w3, 1 bl rknand_print_hex ldr x19, [sp,16] @@ -15986,19 +17036,19 @@ pm_ppa_update_check: ubfx x3, x3, 5, 3 cmp w3, 7 cset w4, eq - cbnz w4, .L2603 + cbnz w4, .L2737 cmp w3, w7 - bne .L2600 -.L2603: + bne .L2734 +.L2737: mov w3, w2 mov w2, w1 mov x1, x0 - adrp x0, .LC199 - add x0, x0, :lo12:.LC199 + adrp x0, .LC211 + add x0, x0, :lo12:.LC211 bl printk bl dump_ftl_info mov w4, -1 -.L2600: +.L2734: mov w0, w4 ldp x29, x30, [sp], 16 ret @@ -16014,65 +17064,65 @@ load_l2p_region: stp x19, x20, [sp,16] cmp w22, 31 uxth w20, w0 - bls .L2606 + bls .L2740 adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 mov w2, 31 - add x1, x1, 568 + add x1, x1, 600 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L2606: +.L2740: adrp x21, .LANCHOR0 adrp x19, .LANCHOR7 add x21, x21, :lo12:.LANCHOR0 ldr x0, [x21,2864] ldrh w2, [x0,698] cmp w20, w2 - bls .L2607 - adrp x0, .LC200 + bls .L2741 + adrp x0, .LC212 mov w1, w20 - add x0, x0, :lo12:.LC200 + add x0, x0, :lo12:.LC212 add x19, x19, :lo12:.LANCHOR7 bl printk mov x0, 0 - ldrh w2, [x19,-118] + ldrh w2, [x19,-98] mov w1, 255 ldr x0, [x0,8] bl ftl_memset ldr x0, [x21,2864] ldrh w0, [x0,698] cmp w0, w20 - bcs .L2609 + bcs .L2743 adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 add x0, x0, :lo12:.LC0 - add x1, x1, 568 + add x1, x1, 600 mov w2, 35 - b .L2613 -.L2607: + b .L2747 +.L2741: add x0, x0, x20, sxtw 2 sbfiz x22, x22, 4, 32 ldr w4, [x0,704] - add x0, x21, 3904 + add x0, x21, 3896 add x23, x0, x22 strh w20, [x0,x22] strh wzr, [x23,2] - cbnz w4, .L2610 - adrp x0, .LC201 + cbnz w4, .L2744 + adrp x0, .LC213 mov w1, w20 mov w2, w4 add x19, x19, :lo12:.LANCHOR7 - add x0, x0, :lo12:.LC201 + add x0, x0, :lo12:.LC213 bl printk ldr x0, [x23,8] mov w1, 255 - ldrh w2, [x19,-118] + ldrh w2, [x19,-98] bl ftl_memset - b .L2609 -.L2610: + b .L2743 +.L2744: add x22, x19, :lo12:.LANCHOR7 ldrb w3, [x21,2832] ldr x1, [x23,8] @@ -16085,47 +17135,47 @@ load_l2p_region: ldr x4, [x29,72] ldr w2, [x0] cmp w2, w20 - beq .L2611 - adrp x0, .LC202 + beq .L2745 + adrp x0, .LC214 mov w1, w20 - add x0, x0, :lo12:.LC202 + add x0, x0, :lo12:.LC214 bl printk ldr x3, [x21,2864] - adrp x0, .LC203 - add x0, x0, :lo12:.LC203 + adrp x0, .LC215 + add x0, x0, :lo12:.LC215 mov w2, 4 add x1, x3, 704 ldrh w3, [x3,698] bl rknand_print_hex ldrb w3, [x21,2832] - adrp x0, .LC204 + adrp x0, .LC216 ldr x1, [x23,8] - add x0, x0, :lo12:.LC204 + add x0, x0, :lo12:.LC216 mov w2, 4 lsl w3, w3, 7 bl rknand_print_hex - adrp x0, .LC205 + adrp x0, .LC217 ldr x1, [x22,-128] - add x0, x0, :lo12:.LC205 + add x0, x0, :lo12:.LC217 mov w2, 4 mov w3, 16 bl rknand_print_hex -.L2611: +.L2745: add x19, x19, :lo12:.LANCHOR7 ldr x0, [x19,-128] ldr w0, [x0] cmp w0, w20 - beq .L2609 + beq .L2743 adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 add x0, x0, :lo12:.LC0 - add x1, x1, 568 + add x1, x1, 600 mov w2, 59 -.L2613: +.L2747: bl printk bl dump_stack -.L2609: +.L2743: mov w0, 0 ldr x23, [sp,48] ldp x19, x20, [sp,16] @@ -16149,27 +17199,27 @@ pm_gc: add x19, x19, :lo12:.LANCHOR4 ldr x0, [x20,2864] ldrh w1, [x0,688] - ldrh w0, [x19,1164] + ldrh w0, [x19,1156] sub w0, w0, #1 cmp w1, w0 - blt .L2616 + blt .L2750 bl pm_free_sblk ldr x2, [x20,2864] - ldrh w1, [x19,1164] + ldrh w1, [x19,1156] ldrh w3, [x2,688] sub w1, w1, #1 cmp w3, w1 - blt .L2616 + blt .L2750 add x0, x2, x0, uxth 1 ldrh w21, [x0,416] mov w0, 65535 cmp w21, w0 - bne .L2618 + bne .L2752 adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 mov w2, 131 - add x1, x1, 584 + add x1, x1, 616 add x0, x0, :lo12:.LC0 bl printk bl dump_stack @@ -16177,38 +17227,38 @@ pm_gc: ldr x1, [x20,2864] add x0, x1, x0, uxth 1 ldrh w21, [x0,416] -.L2618: +.L2752: bl pm_select_ram_region uxth x20, w0 add x0, x23, :lo12:.LANCHOR0 lsl x1, x20, 4 - add x0, x0, 3904 + add x0, x0, 3896 mov x22, x20 add x19, x0, x1 ldrh w0, [x0,x1] mov w1, 65535 cmp w0, w1 - beq .L2619 + beq .L2753 ldr x1, [x19,8] - cbz x1, .L2619 + cbz x1, .L2753 ldrsh w2, [x19,2] - tbz w2, #31, .L2619 + tbz w2, #31, .L2753 bl pm_write_page ldrh w0, [x19,2] and w0, w0, 32767 strh w0, [x19,2] -.L2619: +.L2753: add x23, x23, :lo12:.LANCHOR0 mov w19, 0 - add x0, x23, 3904 + add x0, x23, 3896 mov w24, 21 mov w25, 1 add x20, x0, x20, lsl 4 -.L2620: +.L2754: ldr x0, [x23,2864] ldrh w1, [x0,698] cmp w1, w19 - bls .L2626 + bls .L2760 ldrh w1, [x23,3340] add x0, x0, x19, sxtw 2 ldr w0, [x0,704] @@ -16220,7 +17270,7 @@ pm_gc: ldrb w0, [x23,3338] udiv w1, w1, w0 cmp w21, w1, uxth - bne .L2621 + bne .L2755 mov w1, w22 mov w0, w19 bl load_l2p_region @@ -16229,13 +17279,13 @@ pm_gc: bl pm_write_page mov w0, -1 strh w0, [x20] -.L2621: +.L2755: add w19, w19, 1 uxth w19, w19 - b .L2620 -.L2626: + b .L2754 +.L2760: bl pm_free_sblk -.L2616: +.L2750: mov w0, 0 ldr x25, [sp,64] ldp x19, x20, [sp,16] @@ -16254,7 +17304,7 @@ pm_flush_id: stp x19, x20, [sp,16] adrp x19, .LANCHOR0 add x19, x19, :lo12:.LANCHOR0 - add x1, x19, 3904 + add x1, x19, 3896 add x20, x1, x0 ldrh w0, [x1,x0] ldr x1, [x20,8] @@ -16262,11 +17312,11 @@ pm_flush_id: ldrh w0, [x20,2] and w0, w0, 32767 strh w0, [x20,2] - ldr w0, [x19,3896] - cbz w0, .L2628 + ldr w0, [x19,3888] + cbz w0, .L2762 bl pm_gc - str wzr, [x19,3896] -.L2628: + str wzr, [x19,3888] +.L2762: mov w0, 0 ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 @@ -16282,17 +17332,17 @@ pm_flush: adrp x20, .LANCHOR0 mov x19, 0 add x20, x20, :lo12:.LANCHOR0 - add x20, x20, 3904 -.L2634: + add x20, x20, 3896 +.L2768: add x1, x20, x19, lsl 4 uxth w0, w19 ldrsh w1, [x1,2] - tbz w1, #31, .L2633 + tbz w1, #31, .L2767 bl pm_flush_id -.L2633: +.L2767: add x19, x19, 1 cmp x19, 32 - bne .L2634 + bne .L2768 mov w0, 0 ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 @@ -16343,31 +17393,31 @@ pm_init: mov w0, 1 strb w0, [x22,-120] mov w0, 64 - str wzr, [x20,3896] - add x20, x20, 3904 + str wzr, [x20,3888] + add x20, x20, 3896 bl ftl_malloc mov w24, -1 str x0, [x22,-128] add x22, x20, 512 -.L2640: +.L2774: strh w24, [x20] strh wzr, [x20,2] - cbz w23, .L2639 + cbz w23, .L2773 add x0, x19, :lo12:.LANCHOR0 ldrb w0, [x0,2832] lsl w0, w0, 9 bl ftl_malloc str x0, [x20,8] -.L2639: +.L2773: add x20, x20, 16 cmp x20, x22 - bne .L2640 + bne .L2774 add x20, x19, :lo12:.LANCHOR0 add x21, x21, :lo12:.LANCHOR7 mov w4, 4 ldr x1, [x20,2864] ldr x25, [x21,-128] - ldr x23, [x20,3912] + ldr x23, [x20,3904] ldrb w0, [x1,694] mov x3, x25 ldrh w1, [x1,692] @@ -16378,25 +17428,25 @@ pm_init: mov w24, w21 ldrh w2, [x1,696] cmp w2, w21 - bgt .L2641 - adrp x0, .LC206 + bgt .L2775 + adrp x0, .LC218 ldrh w1, [x1,692] mov w3, w21 - add x0, x0, :lo12:.LC206 - adrp x26, .LC207 + add x0, x0, :lo12:.LC218 + adrp x26, .LC219 add w21, w21, 1 bl printk - add x26, x26, :lo12:.LC207 + add x26, x26, :lo12:.LC219 ldr x0, [x20,2864] ldrsh w20, [x0,696] -.L2642: +.L2776: cmp w20, w21 - bge .L2655 + bge .L2789 add x27, x19, :lo12:.LANCHOR0 mov x2, x23 mov x3, x25 ldr x0, [x27,2864] - ldrh w22, [x27,3350] + ldrh w22, [x27,3348] ldrb w4, [x27,2832] ldrh w1, [x0,692] ldrb w0, [x0,694] @@ -16414,21 +17464,21 @@ pm_init: ldr w1, [x25] bl printk cmp w28, 512 - beq .L2643 + beq .L2777 cmn w28, #1 - beq .L2643 + beq .L2777 ldr x1, [x27,2864] ldr w0, [x25] ldrh w2, [x1,698] cmp w0, w2 - bcs .L2643 + bcs .L2777 add x0, x1, x0, uxtw 2 str w22, [x0,704] -.L2643: +.L2777: add w20, w20, 1 sxth w20, w20 - b .L2642 -.L2655: + b .L2776 +.L2789: adrp x0, .LANCHOR5+577 mov w1, 1 add w24, w24, 1 @@ -16437,18 +17487,18 @@ pm_init: ldr x0, [x0,2864] strh w24, [x0,696] bl pm_free_sblk -.L2641: +.L2775: add x19, x19, :lo12:.LANCHOR0 mov w0, -1 - ldr x1, [x19,3912] + ldr x1, [x19,3904] bl pm_write_page - ldr x1, [x19,3912] + ldr x1, [x19,3904] mov w0, -1 bl pm_write_page - ldr x1, [x19,3912] + ldr x1, [x19,3904] mov w0, -1 bl pm_write_page - ldr x1, [x19,3912] + ldr x1, [x19,3904] mov w0, -1 bl pm_write_page bl pm_free_sblk @@ -16480,7 +17530,7 @@ pm_log2phys: mov x19, 0 ldrb w4, [x3,2832] ldr w2, [x3,2840] - add x3, x3, 3904 + add x3, x3, 3896 lsl w20, w4, 7 lsl w24, w4, 7 cmp w0, w2 @@ -16488,87 +17538,87 @@ pm_log2phys: uxth w25, w20 msub w24, w25, w24, w0 uxth x24, w24 - bcc .L2669 - adrp x0, .LC208 + bcc .L2803 + adrp x0, .LC220 mov w1, w5 - add x0, x0, :lo12:.LC208 + add x0, x0, :lo12:.LC220 bl printk mov w0, -1 - cbnz w23, .L2658 + cbnz w23, .L2792 str w0, [x22] - b .L2658 -.L2673: + b .L2792 +.L2807: ldrh w0, [x3] cmp w0, w25 - beq .L2660 -.L2659: + beq .L2794 +.L2793: add w19, w19, 1 add x3, x3, 16 uxth x19, w19 cmp w19, 32 - beq .L2672 -.L2669: + beq .L2806 +.L2803: ldr x0, [x3,8] - cbnz x0, .L2673 - b .L2659 -.L2672: + cbnz x0, .L2807 + b .L2793 +.L2806: bl pm_select_ram_region uxth x19, w0 add x2, x21, :lo12:.LANCHOR0 sbfiz x3, x19, 4, 32 - add x2, x2, 3904 + add x2, x2, 3896 mov w1, w0 add x4, x2, x3 ldrh w3, [x2,x3] mov w2, 65535 cmp w3, w2 - bne .L2674 -.L2664: - adrp x0, .LANCHOR7-116 - strb w19, [x0,#:lo12:.LANCHOR7-116] + bne .L2808 +.L2798: + adrp x0, .LANCHOR7-96 + strb w19, [x0,#:lo12:.LANCHOR7-96] mov w0, w25 bl load_l2p_region -.L2660: - cbnz w23, .L2661 +.L2794: + cbnz w23, .L2795 add x0, x21, :lo12:.LANCHOR0 add x0, x0, x19, lsl 4 - ldr x0, [x0,3912] + ldr x0, [x0,3904] ldr w0, [x0,x24,lsl 2] str w0, [x22] - b .L2662 -.L2661: + b .L2796 +.L2795: add x0, x21, :lo12:.LANCHOR0 ldr w2, [x22] - add x0, x0, 3904 + add x0, x0, 3896 add x0, x0, x19, lsl 4 ldr x1, [x0,8] str w2, [x1,x24,lsl 2] ldrh w1, [x0,2] orr w1, w1, -32768 strh w1, [x0,2] - adrp x0, .LANCHOR4+64 - strb w20, [x0,#:lo12:.LANCHOR4+64] -.L2662: + adrp x0, .LANCHOR4+56 + strb w20, [x0,#:lo12:.LANCHOR4+56] +.L2796: add x21, x21, :lo12:.LANCHOR0 mov w2, 32767 - add x21, x21, 3904 + add x21, x21, 3896 mov w0, 0 add x19, x21, x19, lsl 4 ldrh w1, [x19,2] and w3, w1, 32767 cmp w3, w2 - beq .L2658 + beq .L2792 add w1, w1, 1 strh w1, [x19,2] - b .L2658 -.L2674: + b .L2792 +.L2808: ldrsh w2, [x4,2] - tbz w2, #31, .L2664 + tbz w2, #31, .L2798 str x1, [x29,88] bl pm_flush_id ldr x1, [x29,88] - b .L2664 -.L2658: + b .L2798 +.L2792: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -16584,32 +17634,31 @@ gc_recovery: stp x29, x30, [sp,32] add x29, sp, 32 stp x19, x20, [sp,48] - adrp x20, .LANCHOR0 + adrp x19, .LANCHOR0 stp x23, x24, [sp,80] - add x24, x20, :lo12:.LANCHOR0 + add x24, x19, :lo12:.LANCHOR0 adrp x23, .LANCHOR4 stp x21, x22, [sp,64] stp x25, x26, [sp,96] stp x27, x28, [sp,112] add x0, x23, :lo12:.LANCHOR4 strb wzr, [x24,3273] - ldr x21, [x24,608] - strb wzr, [x0,1130] + ldr x20, [x24,608] + strb wzr, [x0,1122] bl gc_init - ldrh w1, [x21,80] + ldrh w1, [x20,80] mov w0, 65535 - str x23, [x29,136] - add x22, x21, 80 + add x22, x20, 80 cmp w1, w0 ldr x0, [x24,608] - beq .L2676 + beq .L2810 mov w1, -1 strh w1, [x0,130] mov w0, 1 bl buf_alloc - mov x19, x0 + mov x21, x0 ldrb w0, [x22,9] - ldrh w1, [x24,3350] + ldrh w1, [x24,3348] sub w0, w0, #1 add x0, x22, x0, sxtw 1 ldrh w0, [x0,16] @@ -16617,362 +17666,367 @@ gc_recovery: ldrb w1, [x24,3257] str w0, [x29,152] cmp w1, 3 - bne .L2677 + bne .L2811 ldrh w1, [x24,3300] sub w1, w1, #1 add w0, w1, w0 orr w0, w0, 50331648 - b .L2720 -.L2677: + b .L2854 +.L2811: cmp w1, 2 - bne .L2678 + bne .L2812 ldrh w1, [x24,3300] add w0, w0, w1, lsl 1 sub w0, w0, #1 orr w0, w0, 33554432 -.L2720: - str w0, [x19,40] -.L2678: - mov x0, x19 +.L2854: + str w0, [x21,40] +.L2812: + mov x0, x21 mov w1, 1 bl sblk_read_page - ldr w0, [x19,52] + ldr w0, [x21,52] cmp w0, 512 - beq .L2679 + beq .L2813 cmn w0, #1 - beq .L2679 - ldr x0, [x19,24] + beq .L2813 + ldr x0, [x21,24] ldr w1, [x0] mov w0, 15555 movk w0, 0xf55f, lsl 16 cmp w1, w0 - beq .L2680 -.L2679: - mov x0, x19 + beq .L2814 +.L2813: + mov x0, x21 bl buf_free - ldr x7, [x19,24] - ldr x6, [x19,8] + ldr x7, [x21,24] + ldr x6, [x21,8] ldr w0, [x7,4] str w0, [sp] ldr w0, [x7,8] str w0, [sp,8] ldr w0, [x7,12] str w0, [sp,16] - adrp x0, .LC209 - add x0, x0, :lo12:.LC209 + adrp x0, .LC221 + add x0, x0, :lo12:.LC221 ldr w3, [x6] ldr w4, [x6,4] ldr w5, [x6,8] - ldr w1, [x19,40] - ldr w2, [x19,52] + ldr w1, [x21,40] + ldr w2, [x21,52] ldr w6, [x6,12] ldr w7, [x7] bl printk - b .L2723 -.L2680: - add x24, x20, :lo12:.LANCHOR0 - ldr x0, [x29,136] - ldr x1, [x19,8] - add x25, x0, :lo12:.LANCHOR4 - ldrb w2, [x24,3276] + b .L2857 +.L2814: + add x24, x19, :lo12:.LANCHOR0 + add x25, x23, :lo12:.LANCHOR4 + ldr x1, [x21,8] ldrh w0, [x24,3274] + ldrb w2, [x24,3276] mul w2, w0, w2 - ldr x0, [x25,1136] + ldr x0, [x25,1128] lsl w2, w2, 2 bl ftl_memcpy ldrh w0, [x24,3274] ldrb w2, [x24,3276] - ldr x1, [x19,8] + ldr x1, [x21,8] mul w2, w0, w2 add x1, x1, x2, sxtw 2 - ldr x0, [x25,1144] + ldr x0, [x25,1136] lsl w2, w2, 2 bl ftl_memcpy ldrb w26, [x24,3257] ldrh w25, [x24,3300] cmp w26, 2 - bne .L2682 + bne .L2816 lsl w25, w25, 1 mov w26, 1 -.L2682: - mov w23, 0 - adrp x24, .LC210 - add x0, x24, :lo12:.LC210 - mov w27, w23 - str x0, [x29,112] - b .L2683 -.L2725: - ldr x0, [x0,1144] +.L2816: + mov w27, 0 + adrp x24, .LC222 + add x0, x24, :lo12:.LC222 + mov w28, w27 + str x0, [x29,120] + b .L2817 +.L2859: + ldr x0, [x0,1136] ldr w1, [x0,x12] ldr w0, [x7,8] cmp w1, w0 - bne .L2687 -.L2710: - add w27, w27, 1 + bne .L2821 +.L2844: add w28, w28, 1 -.L2691: - cmp w28, w26 - bhi .L2724 - ldr x0, [x29,128] - add x1, x20, :lo12:.LANCHOR0 + add w9, w9, 1 +.L2825: + cmp w9, w26 + bhi .L2858 + ldr x0, [x29,136] + add x1, x19, :lo12:.LANCHOR0 add x0, x0, 8 - ldrh w2, [x1,3350] + ldrh w2, [x1,3348] ldrb w1, [x1,3257] ldrh w0, [x22,x0,lsl 1] cmp w1, 3 mul w0, w0, w2 str w0, [x29,152] - bne .L2684 - add w0, w0, w23 - orr w0, w0, w28, lsl 24 -.L2721: - str w0, [x19,40] + bne .L2818 + add w0, w0, w27 + orr w0, w0, w9, lsl 24 +.L2855: + str w0, [x21,40] mov w1, 1 - mov x0, x19 + mov x0, x21 + str x9, [x29,112] bl sblk_read_page - ldr x0, [x29,136] - sbfiz x12, x27, 2, 32 - ldr x7, [x19,24] - add x0, x0, :lo12:.LANCHOR4 + add x0, x23, :lo12:.LANCHOR4 + sbfiz x12, x28, 2, 32 + ldr x7, [x21,24] + ldr x9, [x29,112] + ldr x1, [x0,1128] ldr w6, [x7,4] - ldr x1, [x0,1136] ldr w3, [x1,x12] cmp w3, w6 - beq .L2725 -.L2687: - ldr x0, [x29,136] - str x12, [x29,104] - add x13, x0, :lo12:.LANCHOR4 + beq .L2859 +.L2821: + add x13, x23, :lo12:.LANCHOR4 ldr w0, [x7,12] - str x13, [x29,96] - ldr x4, [x13,1144] + str x9, [x29,96] + str x13, [x29,104] + ldr x4, [x13,1136] str w0, [sp] - ldr x0, [x29,112] + ldr x0, [x29,120] ldr w4, [x4,x12] ldr w5, [x7] - ldr w1, [x19,40] - ldr w2, [x19,52] + ldr w1, [x21,40] + ldr w2, [x21,52] ldr w7, [x7,8] + str x12, [x29,112] bl printk - ldr x13, [x29,96] - ldr x12, [x29,104] - ldr x0, [x13,1136] + ldr x13, [x29,104] + ldr x12, [x29,112] + ldr x9, [x29,96] + ldr x0, [x13,1128] ldr w0, [x0,x12] cmn w0, #1 - beq .L2710 - mov x0, x19 + beq .L2844 + mov x0, x21 bl buf_free -.L2723: - add x0, x20, :lo12:.LANCHOR0 - ldrh w2, [x21,80] - mov w28, 0 +.L2857: + add x0, x19, :lo12:.LANCHOR0 + ldrh w2, [x20,80] + mov w21, 0 ldr x1, [x0,600] strh wzr, [x1,x2,lsl 1] ldr x0, [x0,608] - ldrh w1, [x21,80] + ldrh w1, [x20,80] strh w1, [x0,130] - b .L2681 -.L2690: - add w23, w23, 1 -.L2683: - cmp w23, w25 - beq .L2692 - sub w0, w23, #1 + b .L2815 +.L2824: + add w27, w27, 1 +.L2817: + cmp w27, w25 + beq .L2826 + sub w0, w27, #1 mov w24, 0 - str w0, [x29,124] -.L2693: + str w0, [x29,132] +.L2827: ldrb w0, [x22,9] cmp w24, w0 - bge .L2690 + bge .L2824 sxtw x0, w24 - mov w28, 1 - str x0, [x29,128] - b .L2691 -.L2684: + mov w9, 1 + str x0, [x29,136] + b .L2825 +.L2818: cmp w1, 2 - bne .L2686 - ldr w1, [x29,124] + bne .L2820 + ldr w1, [x29,132] add w0, w0, w1 - add w0, w0, w28 + add w0, w0, w9 orr w0, w0, 33554432 - b .L2721 -.L2686: - add w0, w0, w23 - b .L2721 -.L2724: + b .L2855 +.L2820: + add w0, w0, w27 + b .L2855 +.L2858: add w24, w24, 1 - b .L2693 -.L2692: - mov x0, x19 - mov w28, 0 - mov w27, w28 + b .L2827 +.L2826: + mov x0, x21 + mov w21, 0 + mov w28, w21 bl buf_free - str w28, [x29,128] - add x0, x20, :lo12:.LANCHOR0 + str w21, [x29,136] + add x0, x19, :lo12:.LANCHOR0 ldrb w1, [x22,9] - ldrh w3, [x21,80] + ldrh w3, [x20,80] ldr x2, [x0,600] ldrh w0, [x0,3274] mul w0, w1, w0 strh w0, [x2,x3,lsl 1] -.L2694: - cmp w27, w25 - beq .L2705 - sub w0, w27, #1 +.L2828: + cmp w28, w25 + beq .L2839 + sub w0, w28, #1 mov w24, 0 str w0, [x29,104] -.L2706: +.L2840: ldrb w0, [x22,9] cmp w24, w0 - bge .L2703 + bge .L2837 sxtw x0, w24 - mov w23, 1 + mov w27, 1 str x0, [x29,112] -.L2704: - cmp w23, w26 - bhi .L2726 - ldr x1, [x29,136] - ldr w0, [x29,128] - add x1, x1, :lo12:.LANCHOR4 +.L2838: + cmp w27, w26 + bhi .L2860 + add x1, x23, :lo12:.LANCHOR4 + ldr w0, [x29,136] sbfiz x0, x0, 2, 32 - ldr x2, [x1,1136] - ldr w6, [x2,x0] - cmn w6, #1 - beq .L2695 - ldr x1, [x1,1144] - str x6, [x29,96] + ldr x2, [x1,1128] + ldr w5, [x2,x0] + cmn w5, #1 + beq .L2829 + ldr x1, [x1,1136] + str x5, [x29,120] ldr w0, [x1,x0] - str w0, [x29,124] - mov w0, w6 + str w0, [x29,132] + mov w0, w5 bl lpa_hash_get_ppa str w0, [x29,156] cmn w0, #1 - ldr x6, [x29,96] - bne .L2696 - mov w0, w6 + ldr x5, [x29,120] + bne .L2830 + mov w0, w5 add x1, x29, 156 mov w2, 0 bl pm_log2phys - ldr x6, [x29,96] -.L2696: + ldr x5, [x29,120] +.L2830: ldr x0, [x29,112] add x0, x0, 8 ldrh w1, [x22,x0,lsl 1] - add x0, x20, :lo12:.LANCHOR0 - ldrh w2, [x0,3350] + add x0, x19, :lo12:.LANCHOR0 + ldrh w2, [x0,3348] ldrb w0, [x0,3257] cmp w0, 3 mul w1, w1, w2 - bne .L2697 - add w1, w1, w27 - orr w1, w1, w23, lsl 24 - b .L2722 -.L2697: + bne .L2831 + add w1, w1, w28 + orr w1, w1, w27, lsl 24 + b .L2856 +.L2831: cmp w0, 2 - bne .L2699 + bne .L2833 ldr w0, [x29,104] add w1, w1, w0 - add w1, w1, w23 - orr w1, w1, 33554432 - b .L2722 -.L2699: add w1, w1, w27 -.L2722: - add x0, x20, :lo12:.LANCHOR0 - ldr w2, [x29,124] + orr w1, w1, 33554432 + b .L2856 +.L2833: + add w1, w1, w28 +.L2856: + add x0, x19, :lo12:.LANCHOR0 str w1, [x29,152] + ldr w2, [x29,132] + mov w3, 21 ldrh w1, [x0,3340] - lsr w19, w2, w1 - mov w2, 21 - sub w1, w2, w1 - mov w2, 1 - lsl w1, w2, w1 + ldrb w0, [x0,3338] + lsr w2, w2, w1 + sub w1, w3, w1 + mov w3, 1 + lsl w1, w3, w1 sub w1, w1, #1 - and w1, w19, w1 - ldrb w19, [x0,3338] + and w1, w2, w1 + udiv w1, w1, w0 + uxth w0, w1 + ldr w1, [x29,132] + str w0, [x29,120] ldr w0, [x29,156] - udiv w19, w1, w19 - ldr w1, [x29,124] cmp w0, w1 - uxth x19, w19 - bne .L2700 - mov w0, w6 + bne .L2834 + mov w0, w5 add x1, x29, 152 - add w28, w28, 1 + mov w2, w3 + add w21, w21, 1 bl pm_log2phys - mov w0, w19 + ldrh w0, [x29,120] bl ftl_vpn_decrement - b .L2701 -.L2700: + b .L2835 +.L2834: ldr w1, [x29,152] cmp w0, w1 - csinc w28, w28, w28, ne -.L2701: - ldr w0, [x29,128] - add x1, x20, :lo12:.LANCHOR0 + csinc w21, w21, w21, ne +.L2835: + ldr w0, [x29,136] + add x2, x19, :lo12:.LANCHOR0 add w0, w0, 1 - str w0, [x29,128] - ldr x0, [x1,584] - add x0, x0, x19, lsl 2 - ldrb w0, [x0,2] - ands w0, w0, 224 - bne .L2695 - lsl x19, x19, 1 - ldr x1, [x1,600] - ldrh w2, [x1,x19] - cbz w2, .L2695 - strh w0, [x1,x19] -.L2695: - add w23, w23, 1 - b .L2704 -.L2726: - add w24, w24, 1 - b .L2706 -.L2703: + str w0, [x29,136] + ldr w0, [x29,120] + ldr x1, [x2,584] + add x1, x1, x0, lsl 2 + ldrb w1, [x1,2] + ands w1, w1, 224 + bne .L2829 + lsl x0, x0, 1 + ldr x2, [x2,600] + ldrh w5, [x2,x0] + cbz w5, .L2829 + strh w1, [x2,x0] +.L2829: add w27, w27, 1 - b .L2694 -.L2705: - add x0, x20, :lo12:.LANCHOR0 - ldrh w1, [x21,80] + b .L2838 +.L2860: + add w24, w24, 1 + b .L2840 +.L2837: + add w28, w28, 1 + b .L2828 +.L2839: + add x0, x19, :lo12:.LANCHOR0 + ldrh w1, [x20,80] ldr x0, [x0,600] - strh w28, [x0,x1,lsl 1] - ldrh w0, [x21,80] + strh w21, [x0,x1,lsl 1] + ldrh w0, [x20,80] bl zftl_insert_data_list -.L2681: - ldrh w1, [x21,80] - adrp x0, .LC211 - mov w2, w28 - add x0, x0, :lo12:.LC211 +.L2815: + ldrh w0, [x20,80] + bl ftl_dump_write_open_sblk + ldrh w1, [x20,80] + adrp x0, .LC223 + mov w2, w21 + add x0, x0, :lo12:.LC223 bl printk mov w0, -1 - strh w0, [x21,80] + strh w0, [x20,80] bl pm_flush bl ftl_ext_info_flush - add x0, x20, :lo12:.LANCHOR0 + add x0, x19, :lo12:.LANCHOR0 mov w1, 65535 ldr x0, [x0,608] ldrh w0, [x0,130] cmp w0, w1 - beq .L2707 + beq .L2841 bl ftl_free_sblk -.L2707: - add x20, x20, :lo12:.LANCHOR0 +.L2841: + add x19, x19, :lo12:.LANCHOR0 mov w0, -1 - ldr x1, [x20,2864] + ldr x1, [x19,2864] strh w0, [x1,126] - ldr x1, [x20,608] + ldr x1, [x19,608] strh w0, [x1,130] mov w0, 0 bl ftl_info_flush - b .L2675 -.L2676: + b .L2809 +.L2810: ldrh w0, [x0,130] cmp w0, w1 - beq .L2675 + beq .L2809 ldr x1, [x24,2864] ldrh w1, [x1,126] cmp w1, w0 - bne .L2709 + bne .L2843 bl pm_flush ldr x0, [x24,608] ldrh w0, [x0,130] @@ -16982,12 +18036,12 @@ gc_recovery: strh w1, [x0,126] mov w0, 0 bl ftl_info_flush -.L2709: - add x20, x20, :lo12:.LANCHOR0 +.L2843: + add x19, x19, :lo12:.LANCHOR0 mov w1, -1 - ldr x0, [x20,608] + ldr x0, [x19,608] strh w1, [x0,130] -.L2675: +.L2809: sub sp, x29, #32 ldp x19, x20, [sp,48] ldp x21, x22, [sp,64] @@ -17015,24 +18069,24 @@ zftl_init: stp x23, x24, [sp,48] add x23, x21, :lo12:.LANCHOR7 strb w0, [x20,2888] - strb w0, [x20,3893] - strb w0, [x1,1266] + strb w0, [x20,3885] + strb w0, [x1,1241] mov w0, -1 adrp x1, .LC2 - str w0, [x23,-112] + str w0, [x23,-92] adrp x0, .LC1 add x1, x1, :lo12:.LC2 add x0, x0, :lo12:.LC1 strb wzr, [x20,2856] - strb wzr, [x20,3894] + strb wzr, [x20,3886] strb wzr, [x20,2857] bl printk adrp x11, .LANCHOR2 ldrb w6, [x20,633] add x1, x11, :lo12:.LANCHOR2 - strb w6, [x20,3352] + strb w6, [x20,3350] ldrh w4, [x20,2] - strh w4, [x20,3350] + strh w4, [x20,3348] ldrb w2, [x1,21] ldrb w8, [x1,20] ldrh w3, [x1,18] @@ -17052,15 +18106,15 @@ zftl_init: strb w6, [x20,3276] strh w7, [x20,576] mov x20, x11 - strh w10, [x23,-118] -.L2728: + strh w10, [x23,-98] +.L2862: cmp w2, w4 - bhi .L2794 + bhi .L2928 add w1, w1, 1 lsl w2, w2, 1 uxth w1, w1 - b .L2728 -.L2794: + b .L2862 +.L2928: mul w3, w0, w3 add x2, x19, :lo12:.LANCHOR0 sub w1, w1, #1 @@ -17069,14 +18123,14 @@ zftl_init: mov w1, 1 lsr w4, w5, 21 mov w2, 0 -.L2730: +.L2864: cmp w1, w4 - bhi .L2795 + bhi .L2929 add w2, w2, 1 lsl w1, w1, 1 uxth w2, w2 - b .L2730 -.L2795: + b .L2864 +.L2929: mov w1, 57344 mov w4, 1 movk w1, 0x1c, lsl 16 @@ -17090,7 +18144,7 @@ zftl_init: mul w1, w1, w2 mul w9, w9, w6 add w5, w1, 24576 - str w5, [x11,-108] + str w5, [x11,-88] mul w3, w3, w6 udiv w2, w5, w0 sub w0, w10, #1 @@ -17103,20 +18157,20 @@ zftl_init: add w5, w5, 8 strh w5, [x4,3308] udiv w0, w0, w10 - strh w0, [x11,-104] + strh w0, [x11,-84] ubfiz w0, w0, 4, 16 sdiv w0, w0, w9 - strh w0, [x2,1164] + strh w0, [x2,1156] add w0, w7, w7, lsl 1 asr w0, w0, 2 strh w0, [x4,3344] lsr w0, w7, 4 strh w0, [x4,3306] cmp w0, 79 - bhi .L2732 + bhi .L2866 mov w0, 80 strh w0, [x4,3306] -.L2732: +.L2866: add x0, x19, :lo12:.LANCHOR0 mov w2, 2000 mov w3, 256 @@ -17125,102 +18179,102 @@ zftl_init: mov w2, 50 strh w2, [x0,3342] add x2, x22, :lo12:.LANCHOR4 - strh w3, [x2,1160] + strh w3, [x2,1152] mov w3, 48 - strh w3, [x2,1162] + strh w3, [x2,1154] mov w2, 32 strh w2, [x0,592] - beq .L2733 + beq .L2867 ldrb w0, [x0,3272] - cbz w0, .L2734 -.L2733: + cbz w0, .L2868 +.L2867: add x0, x19, :lo12:.LANCHOR0 mov w2, 150 mov w3, 64 strh w2, [x0,3342] add x2, x22, :lo12:.LANCHOR4 - strh w3, [x2,1162] + strh w3, [x2,1154] mov w3, 12 strh w3, [x0,592] ldrb w3, [x19,#:lo12:.LANCHOR0] - cbnz w3, .L2734 + cbnz w3, .L2868 mov w3, 4 strh w3, [x0,592] mov w3, 600 strh w3, [x0,3346] mov w0, 128 - strh w0, [x2,1160] -.L2734: + strh w0, [x2,1152] +.L2868: ldr w0, [x20,#:lo12:.LANCHOR2] - tbz x0, 12, .L2736 - adrp x0, .LC212 - add x0, x0, :lo12:.LC212 + tbz x0, 12, .L2870 + adrp x0, .LC224 + add x0, x0, :lo12:.LC224 bl printk -.L2736: +.L2870: ldr w0, [x20,#:lo12:.LANCHOR2] - tbz x0, 12, .L2737 + tbz x0, 12, .L2871 add x1, x19, :lo12:.LANCHOR0 - adrp x0, .LC213 - add x0, x0, :lo12:.LC213 + adrp x0, .LC225 + add x0, x0, :lo12:.LC225 ldr w1, [x1,2836] bl printk -.L2737: +.L2871: ldr w0, [x20,#:lo12:.LANCHOR2] - tbz x0, 12, .L2738 + tbz x0, 12, .L2872 add x1, x19, :lo12:.LANCHOR0 - adrp x0, .LC214 - add x0, x0, :lo12:.LC214 + adrp x0, .LC226 + add x0, x0, :lo12:.LC226 ldr w1, [x1,2840] bl printk -.L2738: +.L2872: ldr w0, [x20,#:lo12:.LANCHOR2] - tbz x0, 12, .L2739 + tbz x0, 12, .L2873 add x1, x21, :lo12:.LANCHOR7 - adrp x0, .LC215 - add x0, x0, :lo12:.LC215 - ldr w1, [x1,-108] + adrp x0, .LC227 + add x0, x0, :lo12:.LC227 + ldr w1, [x1,-88] bl printk -.L2739: +.L2873: ldr w0, [x20,#:lo12:.LANCHOR2] - tbz x0, 12, .L2740 + tbz x0, 12, .L2874 add x1, x21, :lo12:.LANCHOR7 - adrp x0, .LC216 - add x0, x0, :lo12:.LC216 - ldrh w1, [x1,-104] + adrp x0, .LC228 + add x0, x0, :lo12:.LC228 + ldrh w1, [x1,-84] bl printk -.L2740: +.L2874: ldr w0, [x20,#:lo12:.LANCHOR2] - tbz x0, 12, .L2741 + tbz x0, 12, .L2875 add x1, x21, :lo12:.LANCHOR7 - adrp x0, .LC217 - add x0, x0, :lo12:.LC217 - ldrh w1, [x1,-118] + adrp x0, .LC229 + add x0, x0, :lo12:.LC229 + ldrh w1, [x1,-98] bl printk -.L2741: +.L2875: ldr w0, [x20,#:lo12:.LANCHOR2] - tbz x0, 12, .L2742 + tbz x0, 12, .L2876 add x22, x22, :lo12:.LANCHOR4 - adrp x0, .LC218 - add x0, x0, :lo12:.LC218 - ldrh w1, [x22,1164] + adrp x0, .LC230 + add x0, x0, :lo12:.LC230 + ldrh w1, [x22,1156] bl printk -.L2742: +.L2876: ldr w0, [x20,#:lo12:.LANCHOR2] - tbz x0, 12, .L2743 + tbz x0, 12, .L2877 add x1, x19, :lo12:.LANCHOR0 - adrp x0, .LC219 - add x0, x0, :lo12:.LC219 + adrp x0, .LC231 + add x0, x0, :lo12:.LC231 ldrh w1, [x1,3306] bl printk -.L2743: +.L2877: ldr w0, [x20,#:lo12:.LANCHOR2] - tbz x0, 12, .L2744 + tbz x0, 12, .L2878 add x1, x19, :lo12:.LANCHOR0 - adrp x0, .LC220 - add x0, x0, :lo12:.LC220 + adrp x0, .LC232 + add x0, x0, :lo12:.LC232 ldrh w1, [x1,3308] bl printk -.L2744: +.L2878: add x22, x19, :lo12:.LANCHOR0 bl buf_init mov w0, 6 @@ -17234,12 +18288,12 @@ zftl_init: mul w0, w0, w1 lsl w0, w0, 2 bl ftl_malloc - str x0, [x22,3880] + str x0, [x22,3872] ldrb w1, [x22,3276] add x2, x23, :lo12:.LANCHOR5 ldrh w0, [x22,3300] add x2, x2, 640 - str x2, [x22,3872] + str x2, [x22,3864] mul w1, w0, w1 ldrh w0, [x22,576] lsl w1, w1, 1 @@ -17249,17 +18303,17 @@ zftl_init: ldr w0, [x20,#:lo12:.LANCHOR2] add x1, x2, x1, sxtw 2 str x1, [x22,608] - tbz x0, 12, .L2745 - adrp x0, .LC221 - add x0, x0, :lo12:.LC221 + tbz x0, 12, .L2879 + adrp x0, .LC233 + add x0, x0, :lo12:.LC233 bl printk -.L2745: +.L2879: add x2, x19, :lo12:.LANCHOR0 add x3, x21, :lo12:.LANCHOR7 ldrh w0, [x2,3300] ldrb w22, [x2,3276] ldrh w1, [x2,576] - ldrh w24, [x3,-104] + ldrh w24, [x3,-84] mul w22, w0, w22 ldr w0, [x20,#:lo12:.LANCHOR2] lsl w24, w24, 2 @@ -17268,28 +18322,28 @@ zftl_init: add w24, w24, 704 lsl w22, w22, 1 add w22, w22, 632 - tbz x0, 12, .L2746 - adrp x0, .LC222 - ldrh w3, [x3,-118] - add x0, x0, :lo12:.LC222 + tbz x0, 12, .L2880 + adrp x0, .LC234 + ldrh w3, [x3,-98] + add x0, x0, :lo12:.LC234 mov w1, w22 mov w2, w24 bl printk -.L2746: +.L2880: add x21, x21, :lo12:.LANCHOR7 - ldrh w0, [x21,-118] + ldrh w0, [x21,-98] cmp w22, w0 - bhi .L2748 + bhi .L2882 cmp w24, w0 - bls .L2747 -.L2748: -.L2749: - b .L2749 -.L2747: + bls .L2881 +.L2882: +.L2883: + b .L2883 +.L2881: bl sblk_init bl ftl_info_blk_init cmn w0, #1 - beq .L2750 + beq .L2884 bl ftl_ext_info_init add x19, x19, :lo12:.LANCHOR0 mov w0, 1 @@ -17322,18 +18376,18 @@ zftl_init: mov w0, 1 bl ftl_total_vpn_update ldrb w0, [x23,577] - cbz w0, .L2751 + cbz w0, .L2885 ldr x1, [x19,2864] ldr w0, [x1,68] add w0, w0, 1 str w0, [x1,68] -.L2751: +.L2885: bl ftl_ext_info_flush mov w0, 0 bl ftl_info_flush bl print_ftl_debug_info mov w0, 0 -.L2750: +.L2884: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -17347,41 +18401,41 @@ rk_ftl_init: stp x29, x30, [sp, -48]! adrp x0, jiffies add x29, sp, 0 - stp x19, x20, [sp,16] - adrp x20, .LANCHOR4 - ldr x0, [x0,#:lo12:jiffies] - add x19, x20, :lo12:.LANCHOR4 stp x21, x22, [sp,32] - adrp x21, .LANCHOR7 - add x21, x21, :lo12:.LANCHOR7 - str x0, [x19,1168] + adrp x21, .LANCHOR4 + ldr x0, [x0,#:lo12:jiffies] + stp x19, x20, [sp,16] + add x19, x21, :lo12:.LANCHOR4 + adrp x20, .LANCHOR7 + add x20, x20, :lo12:.LANCHOR7 + str x0, [x19,1160] mov w0, 136 - strb wzr, [x21,-102] + strb wzr, [x20,-82] bl ftl_malloc - str x0, [x19,1176] - cbnz x0, .L2797 -.L2799: + str x0, [x19,1168] + cbnz x0, .L2931 +.L2933: mov w0, -1 - b .L2798 -.L2797: + b .L2932 +.L2931: mov w0, 2048 bl ftl_malloc - str x0, [x21,-96] - mov x1, x21 - add x0, x19, 1184 - str xzr, [x19,1184] - str xzr, [x1,-88]! + str x0, [x20,-80] + mov x1, x20 + add x0, x19, 1176 + str xzr, [x19,1176] + str xzr, [x1,-72]! bl rknand_get_reg_addr - ldr x0, [x19,1184] - cbz x0, .L2799 + ldr x0, [x19,1176] + cbz x0, .L2933 bl rk_nandc_irq_init mov w1, 0 - ldr x0, [x21,-96] + ldr x0, [x20,-80] mov w2, w1 mov w3, 2048 bl flash_sram_load_store bl rknand_flash_cs_init - ldr x0, [x19,1176] + ldr x0, [x19,1168] adrp x1, zftl_deinit add x1, x1, :lo12:zftl_deinit str x1, [x0,80] @@ -17430,18 +18484,18 @@ rk_ftl_init: adrp x1, zftl_discard add x1, x1, :lo12:zftl_discard str x1, [x0,56] - ldr x0, [x19,1184] + ldr x0, [x19,1176] bl nand_flash_init mov w22, w0 - cbnz w0, .L2800 + cbnz w0, .L2934 bl zftl_init mov w19, w0 bl zftl_proc_debug_init mov w0, 1 - strb w0, [x21,-102] - b .L2801 -.L2800: - ldr x1, [x19,1176] + strb w0, [x20,-82] + b .L2935 +.L2934: + ldr x1, [x19,1168] adrp x2, ftl_read_flash_info add x2, x2, :lo12:ftl_read_flash_info adrp x0, ftl_deinit @@ -17488,76 +18542,76 @@ rk_ftl_init: str x0, [x1,72] str x2, [x1,104] adrp x2, ftl_discard - ldr x0, [x19,1184] + ldr x0, [x19,1176] add x2, x2, :lo12:ftl_discard str x2, [x1,56] bl FlashInit mov w19, w0 cmn w22, #2 adrp x22, .LANCHOR2 - bne .L2802 - add x21, x22, :lo12:.LANCHOR2 + bne .L2936 + add x20, x22, :lo12:.LANCHOR2 adrp x1, gNandParaInfo - add x21, x21, 8 + add x20, x20, 8 add x1, x1, :lo12:gNandParaInfo mov w2, 32 - mov x0, x21 + mov x0, x20 bl ftl_memcpy - ldrb w0, [x21,18] + ldrb w0, [x20,18] bl flash_lsb_page_tbl_build - ldrh w0, [x21,10] - strh w0, [x21,26] -.L2802: + ldrh w0, [x20,10] + strh w0, [x20,26] +.L2936: adrp x0, g_nandc_version_data ldr w1, [x0,#:lo12:g_nandc_version_data] mov w0, 12336 movk w0, 0x5638, lsl 16 cmp w1, w0 - adrp x1, .LANCHOR0 - bne .L2803 - adrp x0, gFlashSlcMode - ldrb w0, [x0,#:lo12:gFlashSlcMode] - cbnz w0, .L2804 -.L2803: - add x0, x20, :lo12:.LANCHOR4 - strb wzr, [x1,#:lo12:.LANCHOR0] - strb wzr, [x0,1264] -.L2804: + adrp x0, .LANCHOR0 + bne .L2937 + adrp x1, gFlashSlcMode + ldrb w1, [x1,#:lo12:gFlashSlcMode] + cbnz w1, .L2938 +.L2937: + add x1, x0, :lo12:.LANCHOR0 + strb wzr, [x0,#:lo12:.LANCHOR0] + strb wzr, [x1,782] +.L2938: adrp x2, gNandFlashIDBEccBits - add x0, x1, :lo12:.LANCHOR0 + add x1, x0, :lo12:.LANCHOR0 add x22, x22, :lo12:.LANCHOR2 - add x20, x20, :lo12:.LANCHOR4 + add x21, x21, :lo12:.LANCHOR4 ldrb w2, [x2,#:lo12:gNandFlashIDBEccBits] - strb w2, [x0,632] + strb w2, [x1,632] adrp x2, gNandFlashEccBits ldrh w3, [x22,18] - str xzr, [x20,1224] + str xzr, [x21,1216] ldrb w2, [x2,#:lo12:gNandFlashEccBits] - strb w2, [x0,724] + strb w2, [x1,724] mov w2, 1 - mov w0, 0 -.L2805: + mov w1, 0 +.L2939: cmp w2, w3 - bhi .L2810 - add w0, w0, 1 + bhi .L2944 + add w1, w1, 1 lsl w2, w2, 1 - uxth w0, w0 - b .L2805 -.L2810: - add x1, x1, :lo12:.LANCHOR0 - sub w0, w0, #1 - strb wzr, [x1,672] - strh w0, [x1,3340] - cbnz w19, .L2801 + uxth w1, w1 + b .L2939 +.L2944: + add x0, x0, :lo12:.LANCHOR0 + sub w1, w1, #1 + strb wzr, [x0,672] + strh w1, [x0,3340] + cbnz w19, .L2935 bl FtlInit mov w19, w0 -.L2801: - adrp x0, .LC223 +.L2935: + adrp x0, .LC235 mov w1, w19 - add x0, x0, :lo12:.LC223 + add x0, x0, :lo12:.LC235 bl printk mov w0, w19 -.L2798: +.L2932: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x29, x30, [sp], 48 @@ -17585,12 +18639,12 @@ gc_update_l2p_map_new: mul w24, w24, w0 bl timer_get_time ldr w0, [x22,#:lo12:.LANCHOR2] - tbz x0, 8, .L2812 - adrp x0, .LC224 + tbz x0, 8, .L2946 + adrp x0, .LC236 ldrh w1, [x20,80] - add x0, x0, :lo12:.LC224 + add x0, x0, :lo12:.LC236 bl printk -.L2812: +.L2946: add x0, x19, :lo12:.LANCHOR0 ldrh w1, [x20,80] sub w2, w24, #1 @@ -17599,21 +18653,21 @@ gc_update_l2p_map_new: adrp x27, .LANCHOR4 ldr x0, [x0,600] strh w2, [x0,x1,lsl 1] - adrp x0, .LC226 - add x0, x0, :lo12:.LC226 + adrp x0, .LC238 + add x0, x0, :lo12:.LC238 str x0, [x29,120] - adrp x0, .LC225 - add x0, x0, :lo12:.LC225 + adrp x0, .LC237 + add x0, x0, :lo12:.LC237 str x0, [x29,112] -.L2813: +.L2947: cmp w23, w24 - beq .L2845 + beq .L2979 adrp x0, .LANCHOR4 add x0, x0, :lo12:.LANCHOR4 - ldr x0, [x0,1136] + ldr x0, [x0,1128] ldr w2, [x0,w23,sxtw 2] cmn w2, #1 - beq .L2814 + beq .L2948 add x0, x19, :lo12:.LANCHOR0 ldrb w0, [x0,2832] lsl w0, w0, 7 @@ -17621,28 +18675,28 @@ gc_update_l2p_map_new: and w0, w0, 65535 str w0, [x29,140] ldr w0, [x22,#:lo12:.LANCHOR2] - tbz x0, 8, .L2815 + tbz x0, 8, .L2949 ldr x0, [x29,112] mov w3, w23 ldr w1, [x29,140] bl printk -.L2815: +.L2949: mov w25, w23 -.L2821: +.L2955: add x1, x27, :lo12:.LANCHOR4 sbfiz x26, x25, 2, 32 - ldr x0, [x1,1136] + ldr x0, [x1,1128] ldr w4, [x0,x26] cmn w4, #1 - beq .L2816 + beq .L2950 add x0, x19, :lo12:.LANCHOR0 ldr w2, [x29,140] ldrb w0, [x0,2832] lsl w0, w0, 7 udiv w0, w4, w0 cmp w2, w0, uxth - bne .L2816 - ldr x0, [x1,1144] + bne .L2950 + ldr x0, [x1,1136] str x4, [x29,104] ldr w28, [x0,x26] mov w0, w4 @@ -17650,21 +18704,21 @@ gc_update_l2p_map_new: str w0, [x29,156] cmn w0, #1 ldr x4, [x29,104] - bne .L2817 + bne .L2951 mov w0, w4 add x1, x29, 156 mov w2, 0 bl pm_log2phys ldr x4, [x29,104] -.L2817: +.L2951: ldr w3, [x29,156] cmp w3, w28 - bne .L2818 + bne .L2952 add x0, x27, :lo12:.LANCHOR4 add x1, x29, 152 mov w2, 1 add w21, w21, 1 - ldr x0, [x0,1152] + ldr x0, [x0,1144] ldr w0, [x0,x26] str w0, [x29,152] mov w0, w4 @@ -17680,60 +18734,60 @@ gc_update_l2p_map_new: and w28, w0, w28 ldrb w0, [x2,3338] udiv w0, w28, w0 - b .L2844 -.L2818: + b .L2978 +.L2952: ldr w0, [x22,#:lo12:.LANCHOR2] - tbz x0, 8, .L2820 + tbz x0, 8, .L2954 ldr x0, [x29,120] mov w1, w4 mov w2, w28 bl printk -.L2820: +.L2954: ldr x0, [x29,128] ldrh w0, [x0] -.L2844: +.L2978: bl ftl_vpn_decrement add x0, x27, :lo12:.LANCHOR4 mov w1, -1 - ldr x0, [x0,1136] + ldr x0, [x0,1128] str w1, [x0,x26] bl timer_get_time -.L2816: +.L2950: add w25, w25, 1 cmp w25, w24 - bne .L2821 -.L2814: + bne .L2955 +.L2948: add w23, w23, 1 - b .L2813 -.L2845: + b .L2947 +.L2979: ldr w0, [x22,#:lo12:.LANCHOR2] - tbz x0, 8, .L2823 + tbz x0, 8, .L2957 add x0, x19, :lo12:.LANCHOR0 ldrh w3, [x20,80] ldr x1, [x0,608] ldr x2, [x0,600] - adrp x0, .LC227 - add x0, x0, :lo12:.LC227 + adrp x0, .LC239 + add x0, x0, :lo12:.LC239 ldrh w1, [x1,80] ldrh w2, [x2,x3,lsl 1] mov w3, w21 bl printk -.L2823: +.L2957: add x0, x19, :lo12:.LANCHOR0 ldrh w1, [x20,80] ldr x0, [x0,600] ldrh w0, [x0,x1,lsl 1] cmp w0, w21 - beq .L2824 + beq .L2958 adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 - mov w2, 489 - add x1, x1, 592 + mov w2, 569 + add x1, x1, 624 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L2824: +.L2958: add x19, x19, :lo12:.LANCHOR0 ldrh w1, [x20,80] ldr x0, [x19,600] @@ -17768,62 +18822,62 @@ gc_scan_src_blk_one_page: mov w3, 0 ldrh w2, [x1,2] mov w4, w3 -.L2847: +.L2981: cmp w22, w5 - bne .L2873 + bne .L3007 add w0, w0, 1 uxtb w0, w0 cmp w0, w6 - bne .L2848 + bne .L2982 add w2, w2, 1 mov w0, 0 mov w4, 1 uxth w2, w2 -.L2848: +.L2982: add x3, x1, x0, sxtw 1 ldrh w22, [x3,40] mov w3, 1 - b .L2847 -.L2873: - cbz w4, .L2850 + b .L2981 +.L3007: + cbz w4, .L2984 add x1, x19, :lo12:.LANCHOR0 strh w2, [x1,2898] -.L2850: - cbz w3, .L2851 +.L2984: + cbz w3, .L2985 add x1, x19, :lo12:.LANCHOR0 strb w0, [x1,2900] -.L2851: +.L2985: mov w0, 1 mov w23, 1 add x19, x19, :lo12:.LANCHOR0 bl buf_alloc mov x21, x0 -.L2852: +.L2986: add x20, x19, 2896 ldrb w1, [x20,6] cmp w23, w1 - bgt .L2874 - ldrh w0, [x19,3350] + bgt .L3008 + ldrh w0, [x19,3348] cmp w1, 3 mul w0, w22, w0 - bne .L2853 + bne .L2987 ldrh w1, [x20,2] add w0, w0, w1 orr w0, w0, w23, lsl 24 - b .L2872 -.L2853: + b .L3006 +.L2987: cmp w1, 2 ldrh w1, [x20,2] - bne .L2855 + bne .L2989 add w0, w0, w1, lsl 1 ldrb w1, [x19,3257] sub w0, w0, #1 add w0, w0, w23 orr w0, w0, w1, lsl 24 - b .L2872 -.L2855: + b .L3006 +.L2989: add w0, w0, w1 -.L2872: +.L3006: str w0, [x21,40] mov w1, 1 mov x0, x21 @@ -17831,38 +18885,38 @@ gc_scan_src_blk_one_page: bl sblk_read_page ldr w0, [x21,52] cmp w0, 512 - beq .L2858 + beq .L2992 cmn w0, #1 - beq .L2858 + beq .L2992 ldr x0, [x21,24] ldr w20, [x0,4] mov w0, w20 bl lpa_hash_get_ppa str w0, [x29,76] cmn w0, #1 - bne .L2859 + bne .L2993 mov w0, w20 add x1, x29, 76 mov w2, 0 bl pm_log2phys -.L2859: +.L2993: ldr w1, [x21,40] ldr w0, [x29,76] cmp w1, w0 - bne .L2858 + bne .L2992 ldrh w2, [x19,2920] ldr x1, [x19,3248] str w24, [x1,x2,lsl 2] ldrh w1, [x19,2920] add w1, w1, 1 strh w1, [x19,2920] -.L2858: +.L2992: ldrh w0, [x19,2922] add w23, w23, 1 add w0, w0, 1 strh w0, [x19,2922] - b .L2852 -.L2874: + b .L2986 +.L3008: mov x0, x21 bl buf_free ldrb w0, [x20,4] @@ -17871,12 +18925,12 @@ gc_scan_src_blk_one_page: uxtb w0, w0 strb w0, [x20,4] cmp w1, w0 - bne .L2846 + bne .L2980 ldrh w0, [x20,2] strb wzr, [x20,4] add w0, w0, 1 strh w0, [x20,2] -.L2846: +.L2980: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -17898,32 +18952,32 @@ gc_scan_src_blk: ldrh w1, [x0,2896] mov w0, 65535 cmp w1, w0 - bne .L2876 + bne .L3010 adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 - mov w2, 919 - add x1, x1, 616 + mov w2, 1004 + add x1, x1, 648 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L2876: +.L3010: add x2, x19, :lo12:.LANCHOR0 mov w3, 65535 mov w0, 0 ldrh w1, [x2,2896] cmp w1, w3 - beq .L2877 + beq .L3011 adrp x0, .LANCHOR2 ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 8, .L2878 + tbz x0, 8, .L3012 ubfiz x3, x1, 1, 16 ldr x2, [x2,600] - adrp x0, .LC228 - add x0, x0, :lo12:.LC228 + adrp x0, .LC240 + add x0, x0, :lo12:.LC240 ldrh w2, [x2,x3] bl printk -.L2878: +.L3012: add x20, x19, :lo12:.LANCHOR0 bl timer_get_time add x21, x20, 2896 @@ -17932,97 +18986,97 @@ gc_scan_src_blk: bl ftl_get_blk_list_in_sblk uxtb w1, w0 strb w1, [x21,5] - cbnz w1, .L2879 + cbnz w1, .L3013 mov w0, -1 strh w0, [x20,2896] - b .L2905 -.L2879: + b .L3039 +.L3013: ldrh w3, [x20,2896] ldr x2, [x20,584] add x2, x2, x3, lsl 2 ldrb w2, [x2,2] tst w2, 192 and w4, w2, 224 - beq .L2880 + beq .L3014 cmp w4, 224 - beq .L2880 + beq .L3014 ldr x2, [x20,608] ldrh w5, [x2,16] cmp w5, w3 - beq .L2880 + beq .L3014 ldrh w5, [x2,48] cmp w5, w3 - beq .L2880 + beq .L3014 ldrh w2, [x2,80] cmp w2, w3 - bne .L2881 -.L2880: - cbnz w4, .L2882 + bne .L3015 +.L3014: + cbnz w4, .L3016 add x0, x19, :lo12:.LANCHOR0 ldr x0, [x0,600] ldrh w0, [x0,x3,lsl 1] - cbz w0, .L2883 + cbz w0, .L3017 adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 - mov w2, 939 - add x1, x1, 616 + mov w2, 1024 + add x1, x1, 648 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L2883: +.L3017: add x0, x19, :lo12:.LANCHOR0 ldrh w1, [x0,2896] ldr x0, [x0,600] strh wzr, [x0,x1,lsl 1] -.L2882: +.L3016: add x19, x19, :lo12:.LANCHOR0 mov w0, -1 strh wzr, [x19,2920] strh w0, [x19,2896] -.L2905: +.L3039: mov w0, 0 - b .L2877 -.L2881: + b .L3011 +.L3015: and w0, w0, 255 sub w0, w0, #1 add x0, x21, x0, sxtw 1 ldrh w20, [x0,40] mov w0, 65535 cmp w20, w0 - bne .L2884 + bne .L3018 adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 - mov w2, 947 - add x1, x1, 616 + mov w2, 1032 + add x1, x1, 648 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L2884: +.L3018: add x2, x19, :lo12:.LANCHOR0 mov w25, 1 ldrh w3, [x2,2896] ldr x4, [x2,584] ldrh w0, [x2,3300] add x3, x4, x3, lsl 2 - ldrh w1, [x2,3350] + ldrh w1, [x2,3348] sub w0, w0, #1 ldrb w3, [x3,2] uxth w0, w0 mul w1, w20, w1 and w3, w3, 224 cmp w3, 160 - bne .L2885 + bne .L3019 ldrb w3, [x2,3257] cmp w3, 2 uxth w25, w3 orr w1, w1, w3, lsl 24 - bne .L2885 + bne .L3019 ldrh w0, [x2,3274] sub w0, w0, #1 uxth w0, w0 -.L2885: +.L3019: add x20, x19, :lo12:.LANCHOR0 orr w23, w0, w1 mov w0, 1 @@ -18046,29 +19100,29 @@ gc_scan_src_blk: strh wzr, [x20,2920] ldr w0, [x21,52] cmp w0, 512 - beq .L2906 + beq .L3040 cmn w0, #1 - beq .L2906 + beq .L3040 ldr x0, [x21,24] ldr w1, [x0] mov w0, 15555 movk w0, 0xf55f, lsl 16 cmp w1, w0 - beq .L2888 + beq .L3022 adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 - mov w2, 980 - add x1, x1, 616 + mov w2, 1065 + add x1, x1, 648 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L2906: +.L3040: mov x0, x21 bl buf_free mov w0, -1 - b .L2877 -.L2888: + b .L3011 +.L3022: ldrb w0, [x20,3276] mov x26, 0 ldrh w22, [x20,3300] @@ -18078,21 +19132,21 @@ gc_scan_src_blk: mul w22, w25, w22 mov w25, 1 uxth w22, w22 -.L2889: +.L3023: cmp w22, w26 - ble .L2907 + ble .L3041 ldr w0, [x23,x26,lsl 2] cmn w0, #1 - beq .L2891 + beq .L3025 bl lpa_hash_get_ppa str w0, [x29,92] cmn w0, #1 - bne .L2892 + bne .L3026 ldr w0, [x23,x26,lsl 2] add x1, x29, 92 mov w2, 0 bl pm_log2phys -.L2892: +.L3026: ldrh w1, [x20,3340] ldr w2, [x29,92] sub w0, w24, w1 @@ -18104,18 +19158,18 @@ gc_scan_src_blk: ldrb w0, [x20,3338] udiv w1, w1, w0 cmp w1, w3 - bne .L2891 + bne .L3025 ldrh w3, [x20,2920] ldr x1, [x20,3248] str w2, [x1,x3,lsl 2] ldrh w1, [x20,2920] add w1, w1, 1 strh w1, [x20,2920] -.L2891: +.L3025: bl timer_get_time add x26, x26, 1 - b .L2889 -.L2907: + b .L3023 +.L3041: mov x0, x21 bl buf_free add x0, x19, :lo12:.LANCHOR0 @@ -18125,11 +19179,11 @@ gc_scan_src_blk: ldrh w2, [x3,x2] ldrh w3, [x0,2920] cmp w2, w3 - beq .L2895 - adrp x0, .LC229 - add x0, x0, :lo12:.LC229 + beq .L3029 + adrp x0, .LC241 + add x0, x0, :lo12:.LC241 bl printk -.L2895: +.L3029: add x19, x19, :lo12:.LANCHOR0 ldrh w2, [x19,2896] ldr x1, [x19,600] @@ -18137,7 +19191,7 @@ gc_scan_src_blk: strh w3, [x1,x2,lsl 1] strh wzr, [x19,2924] ldrh w0, [x19,2920] -.L2877: +.L3011: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -18159,14 +19213,14 @@ gc_scan_static_data: ldr x0, [x3,608] ldr w1, [x0,544] cmn w1, #1 - beq .L2909 + beq .L3043 adrp x21, .LANCHOR3 adrp x22, .LC0 add x21, x21, :lo12:.LANCHOR3 mov w20, 11 add x22, x22, :lo12:.LC0 - add x21, x21, 632 -.L2910: + add x21, x21, 664 +.L3044: add x24, x19, :lo12:.LANCHOR0 add x1, x29, 76 mov w2, 0 @@ -18175,7 +19229,7 @@ gc_scan_static_data: bl pm_log2phys ldr w0, [x29,76] cmn w0, #1 - beq .L2911 + beq .L3045 mov w0, 1 bl buf_alloc mov x23, x0 @@ -18185,7 +19239,7 @@ gc_scan_static_data: bl sblk_read_page ldr w0, [x23,52] cmp w0, 256 - bne .L2912 + bne .L3046 ldrh w0, [x24,3340] mov w2, 21 mov w1, 1 @@ -18199,23 +19253,23 @@ gc_scan_static_data: udiv w0, w2, w0 mov w2, 0 bl gc_add_sblk -.L2912: +.L3046: add x0, x19, :lo12:.LANCHOR0 ldr x1, [x23,24] ldr x0, [x0,608] ldr w1, [x1,4] ldr w0, [x0,544] cmp w1, w0 - beq .L2913 + beq .L3047 mov x1, x21 - mov w2, 1419 + mov w2, 1504 mov x0, x22 bl printk bl dump_stack -.L2913: +.L3047: mov x0, x23 bl buf_free -.L2911: +.L3045: add x2, x19, :lo12:.LANCHOR0 ldr x1, [x2,608] ldr w2, [x2,2840] @@ -18223,7 +19277,7 @@ gc_scan_static_data: add w0, w0, 1 str w0, [x1,544] cmp w0, w2 - bcc .L2914 + bcc .L3048 mov w0, -1 str w0, [x1,544] ldr w0, [x1,548] @@ -18234,37 +19288,37 @@ gc_scan_static_data: bl ftl_ext_info_flush mov w0, 0 bl ftl_info_flush - b .L2908 -.L2914: + b .L3042 +.L3048: ldr w0, [x29,76] cmn w0, #1 - bne .L2908 + bne .L3042 sub w20, w20, #1 uxth w20, w20 - cbnz w20, .L2910 - b .L2908 -.L2909: + cbnz w20, .L3044 + b .L3042 +.L3043: ldr w1, [x0,536] ldr w2, [x0,12] add w1, w1, 12959744 add w1, w1, 256 cmp w2, w1 - bhi .L2919 + bhi .L3053 ldr x3, [x3,2864] ldr w1, [x0,540] ldr w3, [x3,44] - add w1, w1, 98304 - add w1, w1, 1696 + add w1, w1, 4096 + add w1, w1, 904 cmp w3, w1 - bls .L2908 -.L2919: + bls .L3042 +.L3053: add x19, x19, :lo12:.LANCHOR0 ldr x1, [x19,2864] ldr w1, [x1,44] str w1, [x0,540] str w2, [x0,536] str wzr, [x0,544] -.L2908: +.L3042: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -18288,45 +19342,45 @@ gc_block_vpn_scan: ldrh w0, [x20,576] ldr w1, [x1,608] cmp w1, w0 - bcs .L2924 + bcs .L3058 bl timer_get_time ldr x21, [x20,608] ldr w1, [x21,604] add w1, w1, 28672 add w1, w1, 1328 cmp w0, w1 - bls .L2924 + bls .L3058 bl timer_get_time str w0, [x21,604] ldr x0, [x20,608] ldrh w2, [x20,576] ldr w1, [x0,600] cmp w1, w2 - bcs .L2928 + bcs .L3062 ldr x2, [x20,2864] ldrh w2, [x2,134] cmp w1, w2 - bcs .L2929 -.L2928: + bcs .L3063 +.L3062: add x1, x19, :lo12:.LANCHOR0 ldr x1, [x1,2864] ldrh w1, [x1,134] str w1, [x0,600] -.L2929: +.L3063: ldr w25, [x0,600] mov w0, 65535 uxth w20, w25 cmp w20, w0 - bne .L2930 + bne .L3064 adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 - mov w2, 1714 - add x1, x1, 656 + mov w2, 1799 + add x1, x1, 688 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L2930: +.L3064: add x21, x19, :lo12:.LANCHOR0 ldr x0, [x21,608] ldr w1, [x0,600] @@ -18339,47 +19393,47 @@ gc_block_vpn_scan: mov w0, w20 bl ftl_get_blk_list_in_sblk uxth w1, w0 - cbz w1, .L2924 + cbz w1, .L3058 uxtw x22, w20 ldr x24, [x21,584] add x24, x24, x22, lsl 2 ldrb w1, [x24,2] tst w1, 192 and w2, w1, 224 - beq .L2931 + beq .L3065 cmp w2, 224 - beq .L2931 + beq .L3065 ldr x1, [x21,608] ldrh w3, [x1,16] cmp w3, w20 - beq .L2931 + beq .L3065 ldrh w3, [x1,48] cmp w3, w20 - beq .L2931 + beq .L3065 ldrh w1, [x1,80] cmp w1, w20 - bne .L2932 -.L2931: - cbnz w2, .L2924 + bne .L3066 +.L3065: + cbnz w2, .L3058 add x0, x19, :lo12:.LANCHOR0 lsl x22, x22, 1 ldr x0, [x0,600] ldrh w0, [x0,x22] - cbz w0, .L2933 + cbz w0, .L3067 adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 - mov w2, 1730 - add x1, x1, 656 + mov w2, 1815 + add x1, x1, 688 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L2933: +.L3067: add x19, x19, :lo12:.LANCHOR0 ldr x0, [x19,600] strh wzr, [x0,x22] - b .L2924 -.L2932: + b .L3058 +.L3066: and w0, w0, 65535 add x1, x29, 144 sub w0, w0, #1 @@ -18387,36 +19441,36 @@ gc_block_vpn_scan: ldrh w21, [x0,-16] mov w0, 65535 cmp w21, w0 - bne .L2935 + bne .L3069 adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 - mov w2, 1736 - add x1, x1, 656 + mov w2, 1821 + add x1, x1, 688 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L2935: +.L3069: add x2, x19, :lo12:.LANCHOR0 ldrb w3, [x24,2] mov w26, 1 and w3, w3, 224 ldrh w0, [x2,3300] cmp w3, 160 - ldrh w1, [x2,3350] + ldrh w1, [x2,3348] sub w0, w0, #1 mul w1, w21, w1 uxth w0, w0 - bne .L2936 + bne .L3070 ldrb w3, [x2,3257] cmp w3, 2 uxth w26, w3 orr w1, w1, w3, lsl 24 - bne .L2936 + bne .L3070 ldrh w0, [x2,3274] sub w0, w0, #1 uxth w0, w0 -.L2936: +.L3070: orr w21, w0, w1 mov w0, 1 bl buf_alloc @@ -18434,30 +19488,30 @@ gc_block_vpn_scan: bl ftl_memset ldr w0, [x23,52] cmp w0, 512 - beq .L2948 + beq .L3082 cmn w0, #1 cset w2, eq - cbz w2, .L2937 -.L2948: + cbz w2, .L3071 +.L3082: mov w0, w20 mov w1, 1 mov w2, 0 - b .L2961 -.L2937: + b .L3095 +.L3071: ldr x0, [x23,24] ldr w1, [x0] mov w0, 15555 movk w0, 0xf55f, lsl 16 cmp w1, w0 - beq .L2939 + beq .L3073 mov w0, w20 mov w1, 1 -.L2961: +.L3095: bl gc_add_sblk mov x0, x23 bl buf_free - b .L2924 -.L2939: + b .L3058 +.L3073: ldrb w0, [x21,3276] mov x27, 0 ldrh w1, [x21,3300] @@ -18468,22 +19522,22 @@ gc_block_vpn_scan: uxth w0, w26 ldr x26, [x23,8] str w0, [x29,108] -.L2940: +.L3074: ldr w0, [x29,108] cmp w0, w27 - ble .L2962 + ble .L3096 ldr w0, [x26,x27,lsl 2] cmn w0, #1 - beq .L2941 + beq .L3075 bl lpa_hash_get_ppa str w0, [x29,124] cmn w0, #1 - bne .L2942 + bne .L3076 ldr w0, [x26,x27,lsl 2] add x1, x29, 124 mov w2, 0 bl pm_log2phys -.L2942: +.L3076: add x4, x19, :lo12:.LANCHOR0 mov w1, 21 ldrh w0, [x4,3340] @@ -18497,39 +19551,39 @@ gc_block_vpn_scan: and w0, w2, w0 udiv w0, w0, w1 cmp w0, w28 - bne .L2941 + bne .L3075 add w21, w21, 1 uxth w21, w21 -.L2941: +.L3075: add x27, x27, 1 - b .L2940 -.L2962: + b .L3074 +.L3096: mov x0, x23 bl buf_free adrp x0, .LANCHOR2 ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 8, .L2944 + tbz x0, 8, .L3078 add x0, x19, :lo12:.LANCHOR0 ldrb w4, [x24,2] uxth w1, w25 mov w3, w21 ubfx x4, x4, 5, 3 ldr x2, [x0,600] - adrp x0, .LC230 - add x0, x0, :lo12:.LC230 + adrp x0, .LC242 + add x0, x0, :lo12:.LC242 ldrh w2, [x2,x22,lsl 1] bl printk -.L2944: +.L3078: add x19, x19, :lo12:.LANCHOR0 cmp w21, 31 ldr x0, [x19,600] strh w21, [x0,x22,lsl 1] - bhi .L2924 + bhi .L3058 mov w0, w20 mov w1, 1 mov w2, 0 bl gc_add_sblk -.L2924: +.L3058: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -18561,9 +19615,9 @@ ftl_sblk_dump: add x1, x0, x25 ldrh w4, [x0,x25] ldr w5, [x0,x25] - adrp x0, .LC231 + adrp x0, .LC243 ldrb w3, [x1,2] - add x0, x0, :lo12:.LC231 + add x0, x0, :lo12:.LC243 mov w1, w20 and w4, w4, 2047 ubfx x2, x3, 5, 3 @@ -18573,19 +19627,19 @@ ftl_sblk_dump: mov w1, 65535 mov w0, 0 cmp w20, w1 - beq .L2964 + beq .L3098 ldrh w1, [x19,576] cmp w1, w20 - bls .L2964 + bls .L3098 ldr x0, [x19,584] mov w26, 1 add x0, x0, x25 ldrb w0, [x0,2] and w0, w0, 224 cmp w0, 160 - bne .L2965 + bne .L3099 ldrb w26, [x19,3257] -.L2965: +.L3099: add x1, x29, 192 mov w0, w20 strh w20, [x29,176] @@ -18606,8 +19660,8 @@ ftl_sblk_dump: mul w1, w1, w2 strh w1, [x29,182] ldr x1, [x0,584] - adrp x0, .LC232 - add x0, x0, :lo12:.LC232 + adrp x0, .LC244 + add x0, x0, :lo12:.LC244 add x1, x1, x25 ldrb w2, [x1,2] mov w1, w20 @@ -18616,56 +19670,56 @@ ftl_sblk_dump: mov w0, 1 bl buf_alloc mov x28, x0 - adrp x0, .LC186 + adrp x0, .LC190 str w22, [x29,152] - add x0, x0, :lo12:.LC186 + add x0, x0, :lo12:.LC190 str x0, [x29,120] adrp x0, .LANCHOR3 add x0, x0, :lo12:.LANCHOR3 - add x0, x0, 680 + add x0, x0, 712 str x0, [x29,112] -.L2966: +.L3100: add x21, x23, :lo12:.LANCHOR0 ldrh w0, [x21,3300] cmp w0, w19 - bls .L2982 + bls .L3116 lsl w0, w19, 1 str wzr, [x29,156] sub w0, w0, #1 str w0, [x29,132] -.L2983: +.L3117: ldrb w0, [x29,185] ldr w1, [x29,156] cmp w0, w1 - bls .L2980 + bls .L3114 mov w24, 1 -.L2981: +.L3115: cmp w24, w26 ldr w0, [x29,156] - bhi .L3000 + bhi .L3134 add x1, x29, 176 add x0, x1, x0, sxtw 1 ldrh w2, [x0,16] mov w0, 65535 cmp w2, w0 - beq .L2967 + beq .L3101 add x1, x23, :lo12:.LANCHOR0 cmp w26, 3 - ldrh w0, [x1,3350] + ldrh w0, [x1,3348] mul w0, w2, w0 add w21, w0, w19 - bne .L2968 + bne .L3102 orr w21, w21, w24, lsl 24 - b .L2969 -.L2968: + b .L3103 +.L3102: cmp w26, 2 - bne .L2969 + bne .L3103 ldr w3, [x29,132] ldrb w21, [x1,3257] add w0, w0, w3 add w0, w0, w24 orr w21, w0, w21, lsl 24 -.L2969: +.L3103: mov w1, 1 str w21, [x28,40] mov x0, x28 @@ -18697,23 +19751,23 @@ ftl_sblk_dump: bl printk ldr x9, [x29,104] cmp w9, 512 - beq .L2987 + beq .L3121 cmn w9, #1 - bne .L2971 -.L2987: + bne .L3105 +.L3121: mov w0, 1 str w0, [x29,152] -.L2971: +.L3105: add x0, x23, :lo12:.LANCHOR0 ldr x0, [x0,584] add x0, x0, x25 ldrb w0, [x0,2] and w0, w0, 224 cmp w0, 32 - beq .L2967 + beq .L3101 cmp w0, 224 cset w2, eq - cbnz w2, .L2967 + cbnz w2, .L3101 ldr x0, [x28,24] str x2, [x29,104] ldr w0, [x0,4] @@ -18721,82 +19775,82 @@ ftl_sblk_dump: str w0, [x29,172] cmn w0, #1 ldr x2, [x29,104] - bne .L2973 + bne .L3107 ldr x0, [x28,24] add x1, x29, 172 ldr w0, [x0,4] bl pm_log2phys -.L2973: +.L3107: ldr w0, [x29,172] cmp w0, w21 - bne .L2974 + bne .L3108 ldr x2, [x28,24] add w22, w22, 1 - adrp x0, .LC233 + adrp x0, .LC245 mov w1, w21 - add x0, x0, :lo12:.LC233 + add x0, x0, :lo12:.LC245 mov w3, w22 ldr w2, [x2,4] bl printk -.L2974: +.L3108: ldr x0, [x29,144] - cbz x0, .L2976 + cbz x0, .L3110 ubfiz x21, x27, 2, 32 ldr w2, [x0,x21] ldr x0, [x28,24] ldr w0, [x0,4] cmp w0, w2 - beq .L2977 + beq .L3111 adrp x0, .LANCHOR2 ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 12, .L2977 - adrp x0, .LC234 + tbz x0, 12, .L3111 + adrp x0, .LC246 mov w1, w27 - add x0, x0, :lo12:.LC234 + add x0, x0, :lo12:.LC246 bl printk -.L2977: +.L3111: ldr x0, [x29,144] ldr x1, [x28,24] ldr w0, [x0,x21] ldr w1, [x1,4] cmp w1, w0 - beq .L2976 + beq .L3110 cmn w0, #1 - beq .L2976 + beq .L3110 adrp x0, .LC0 ldr x1, [x29,112] mov w2, 1299 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L2976: +.L3110: add w27, w27, 1 -.L2967: +.L3101: add w24, w24, 1 uxth w24, w24 - b .L2981 -.L3000: + b .L3115 +.L3134: add w0, w0, 1 uxth w0, w0 str w0, [x29,156] - b .L2983 -.L2980: + b .L3117 +.L3114: add w19, w19, 1 uxth w19, w19 - b .L2966 -.L2982: + b .L3100 +.L3116: mov x0, x28 bl buf_free ldr x3, [x29,136] - adrp x0, .LC235 + adrp x0, .LC247 ldr x2, [x21,600] - add x0, x0, :lo12:.LC235 + add x0, x0, :lo12:.LC247 mov w1, w20 ldrh w2, [x2,x3,lsl 1] mov w3, w22 bl printk ldr w0, [x29,152] -.L2964: +.L3098: sub sp, x29, #48 ldp x19, x20, [sp,64] ldp x21, x22, [sp,80] @@ -18811,43 +19865,44 @@ ftl_sblk_dump: .global zftl_read .type zftl_read, %function zftl_read: - stp x29, x30, [sp, -160]! - add x29, sp, 0 - stp x19, x20, [sp,16] + sub sp, sp, #176 + stp x29, x30, [sp,16] + add x29, sp, 16 + stp x19, x20, [sp,32] mov w19, w0 adrp x0, .LANCHOR2 - stp x21, x22, [sp,32] - stp x23, x24, [sp,48] + stp x21, x22, [sp,48] + stp x23, x24, [sp,64] ldr w0, [x0,#:lo12:.LANCHOR2] mov w22, w1 - stp x25, x26, [sp,64] - stp x27, x28, [sp,80] + stp x25, x26, [sp,80] + stp x27, x28, [sp,96] mov w25, w2 mov x23, x3 - tbz x0, 12, .L3002 - adrp x0, .LC236 + tbz x0, 12, .L3136 + adrp x0, .LC248 mov w1, w19 - add x0, x0, :lo12:.LC236 + add x0, x0, :lo12:.LC248 mov w2, w22 mov w3, w25 bl printk -.L3002: - cbnz w19, .L3003 +.L3136: + cbnz w19, .L3137 adrp x0, .LANCHOR0+520 mov w19, 24576 ldr w2, [x0,#:lo12:.LANCHOR0+520] - b .L3004 -.L3003: + b .L3138 +.L3137: cmp w19, 3 mov w0, -1 - bhi .L3005 + bhi .L3139 lsl w19, w19, 13 mov w2, 8192 -.L3004: +.L3138: add w1, w22, w25 mov w0, -1 cmp w1, w2 - bhi .L3005 + bhi .L3139 add w22, w19, w22 adrp x19, .LANCHOR0 add x1, x19, :lo12:.LANCHOR0 @@ -18870,10 +19925,10 @@ zftl_read: str x0, [x29,128] adrp x0, .LANCHOR3 add x0, x0, :lo12:.LANCHOR3 - add x0, x0, 696 + add x0, x0, 728 str x0, [x29,120] -.L3006: - cbz w24, .L3066 +.L3140: + cbz w24, .L3200 add x0, x19, :lo12:.LANCHOR0 ldr w1, [x29,136] cmp w20, w27 @@ -18882,12 +19937,12 @@ zftl_read: ldrb w0, [x0,2832] cset w26, eq uxth w21, w0 - cbnz w26, .L3036 - cbz w2, .L3007 - b .L3065 -.L3036: - cbz w2, .L3009 -.L3065: + cbnz w26, .L3170 + cbz w2, .L3141 + b .L3199 +.L3170: + cbz w2, .L3143 +.L3199: udiv w26, w22, w0 msub w26, w26, w0, w22 uxth w0, w25 @@ -18896,21 +19951,21 @@ zftl_read: uxth w21, w21 cmp w21, w25 csel w21, w0, w21, hi - b .L3007 -.L3009: + b .L3141 +.L3143: msub w21, w0, w20, w28 mov w26, w2 uxtb w21, w21 -.L3007: +.L3141: add x1, x19, :lo12:.LANCHOR0 mov w0, 0 add x1, x1, 784 -.L3012: +.L3146: ldr w2, [x1,36] cmp w2, w20 - bne .L3010 + bne .L3144 ldrb w2, [x1,2] - tbz x2, 3, .L3010 + tbz x2, 3, .L3144 add x2, x19, :lo12:.LANCHOR0 ubfiz x1, x0, 6, 32 add x0, x2, x1 @@ -18922,48 +19977,48 @@ zftl_read: add x23, x23, x21 add x1, x1, x26 bl ftl_memcpy - b .L3011 -.L3010: + b .L3145 +.L3144: add w0, w0, 1 add x1, x1, 64 cmp w0, 32 - bne .L3012 + bne .L3146 mov w0, w20 bl lpa_hash_get_ppa str w0, [x29,156] cmn w0, #1 - bne .L3013 + bne .L3147 mov w0, w20 add x1, x29, 156 mov w2, 0 bl pm_log2phys -.L3013: +.L3147: ldr w0, [x29,156] cmn w0, #1 - bne .L3014 + bne .L3148 mov w21, 0 -.L3015: +.L3149: add x0, x19, :lo12:.LANCHOR0 ldrb w0, [x0,2832] cmp w21, w0 - bcs .L3011 + bcs .L3145 madd w0, w20, w0, w21 cmp w0, w22 - bcc .L3016 + bcc .L3150 cmp w0, w28 - bcs .L3016 + bcs .L3150 mov x0, x23 mov w1, 0 mov w2, 512 add x23, x23, 512 bl ftl_memset -.L3016: +.L3150: add w21, w21, 1 - b .L3015 -.L3014: + b .L3149 +.L3148: mov w0, 0 bl buf_alloc - cbz x0, .L3018 + cbz x0, .L3152 add x2, x19, :lo12:.LANCHOR0 ldr x3, [x2,2864] ldr w2, [x3,40] @@ -18979,110 +20034,112 @@ zftl_read: str w20, [x0,36] strb w26, [x0,57] bl zftl_add_read_buf -.L3011: +.L3145: add w20, w20, 1 sub w24, w24, #1 -.L3018: - cbz w24, .L3037 +.L3152: + cbz w24, .L3171 add x0, x19, :lo12:.LANCHOR0 ldrb w0, [x0,2834] cmp w0, 2 - bhi .L3006 -.L3037: + bhi .L3140 +.L3171: add x2, x19, :lo12:.LANCHOR0 - ldrb w1, [x2,3894] - cbz w1, .L3006 + ldrb w1, [x2,3886] + cbz w1, .L3140 add x0, x2, 784 - ldrb w2, [x2,3893] + ldrb w2, [x2,3885] add x0, x0, x2, lsl 6 bl sblk_read_page -.L3021: +.L3155: add x0, x19, :lo12:.LANCHOR0 - ldrb w1, [x0,3894] - cbz w1, .L3067 - ldrb w0, [x0,3893] + ldrb w1, [x0,3886] + cbz w1, .L3201 + ldrb w0, [x0,3885] cmp w0, 255 - bne .L3022 + bne .L3156 ldr x1, [x29,120] - mov w2, 1065 + mov w2, 1070 ldr x0, [x29,128] bl printk bl dump_stack -.L3022: - add x2, x19, :lo12:.LANCHOR0 - add x1, x2, 784 - ldrb w21, [x2,3893] +.L3156: + add x5, x19, :lo12:.LANCHOR0 + add x1, x5, 784 + ldrb w21, [x5,3885] lsl x0, x21, 6 add x26, x1, x0 ldrb w0, [x1,x0] ldr w8, [x26,52] - strb w0, [x2,3893] + strb w0, [x5,3885] cmn w8, #1 - bne .L3023 - ldr x1, [x2,608] + bne .L3157 + ldr x1, [x5,608] str w8, [x29,140] ldr w0, [x1,552] add w0, w0, 1 str w0, [x1,552] - b .L3024 -.L3023: + b .L3158 +.L3157: cmp w8, 256 - bne .L3024 - ldrh w0, [x2,3340] + bne .L3158 + ldrh w0, [x5,3340] mov w1, 21 - mov w5, 1 + mov w6, 1 ldr w3, [x26,40] sub w4, w1, w0 - str x8, [x29,96] - lsl w4, w5, w4 + ldr w2, [x26,36] + lsl w4, w6, w4 lsr w0, w3, w0 sub w4, w4, #1 - str x5, [x29,104] + str x8, [x29,96] and w0, w4, w0 - ldrb w4, [x2,3338] - ldr w2, [x26,36] + ldrb w4, [x5,3338] + str x6, [x29,104] udiv w4, w0, w4 - adrp x0, .LC237 - add x0, x0, :lo12:.LC237 + adrp x0, .LC249 + add x0, x0, :lo12:.LC249 str x4, [x29,112] uxth w1, w4 bl printk ldr x4, [x29,112] mov w2, 0 - ldr x5, [x29,104] + ldr x6, [x29,104] mov w0, w4 - mov w1, w5 + mov w1, w6 bl gc_add_sblk ldr x8, [x29,96] -.L3024: +.L3158: add x9, x19, :lo12:.LANCHOR0 - add x1, x9, 784 - add x1, x1, x21, lsl 6 - add x10, x1, 32 - ldr x0, [x1,24] - ldr w3, [x0,4] - ldr w0, [x1,36] - cmp w3, w0 - beq .L3025 + add x0, x9, 784 + add x0, x0, x21, lsl 6 + add x10, x0, 32 + ldr x1, [x0,24] + ldr w3, [x1,4] + ldr w1, [x0,36] + cmp w3, w1 + beq .L3159 ldr x3, [x9,608] - str x8, [x29,96] - str x9, [x29,104] - ldr w0, [x3,552] + mov w2, w8 + str x8, [x29,104] + str x9, [x29,96] + ldr w1, [x3,552] str x10, [x29,112] - add w0, w0, 1 - str w0, [x3,552] - adrp x0, .LC238 - ldr x7, [x1,24] - add x0, x0, :lo12:.LC238 - ldr w2, [x10,4] - ldr w3, [x10,8] - ldr w4, [x7] - ldr w5, [x7,4] - ldr w6, [x7,8] - ldrb w1, [x1,1] - ldr w7, [x7,12] + add w1, w1, 1 + str w1, [x3,552] + ldr x7, [x0,24] + ldrb w1, [x0,1] + ldr w0, [x7,12] + str w0, [sp] + adrp x0, .LC250 + add x0, x0, :lo12:.LC250 + ldr w3, [x10,4] + ldr w4, [x10,8] + ldr w5, [x7] + ldr w6, [x7,4] + ldr w7, [x7,8] bl printk - ldr x9, [x29,104] + ldr x9, [x29,96] mov w1, 21 ldr x10, [x29,112] ldrh w0, [x9,3340] @@ -19097,8 +20154,8 @@ zftl_read: udiv w0, w0, w1 mov x1, 0 bl ftl_sblk_dump - ldr x8, [x29,96] -.L3025: + ldr x8, [x29,104] +.L3159: add x0, x19, :lo12:.LANCHOR0 add x0, x0, 784 add x0, x0, x21, lsl 6 @@ -19106,62 +20163,64 @@ zftl_read: ldr w0, [x0,36] ldr w1, [x1,4] cmp w1, w0 - bne .L3038 + bne .L3172 cmn w8, #1 - bne .L3026 -.L3038: + bne .L3160 +.L3172: ldr x1, [x29,120] - mov w2, 1086 + mov w2, 1091 ldr x0, [x29,128] bl printk bl dump_stack -.L3026: +.L3160: add x1, x19, :lo12:.LANCHOR0 add x0, x1, 784 add x21, x0, x21, lsl 6 ldrb w1, [x1,2832] ldrb w2, [x21,56] cmp w1, w2 - bls .L3028 + bls .L3162 ldrb w3, [x21,57] lsl w2, w2, 9 ldr x1, [x21,8] ldr x0, [x21,16] add x1, x1, x3, lsl 9 bl ftl_memcpy - b .L3029 -.L3028: + b .L3163 +.L3162: ldrb w0, [x21,2] and w0, w0, -9 strb w0, [x21,2] -.L3029: +.L3163: add x21, x19, :lo12:.LANCHOR0 mov x1, x26 - add x0, x21, 3895 + add x0, x21, 3887 bl buf_remove_buf mov x0, x26 bl buf_free - ldrb w0, [x21,3894] + ldrb w0, [x21,3886] sub w0, w0, #1 - strb w0, [x21,3894] - b .L3021 -.L3067: + strb w0, [x21,3886] + b .L3155 +.L3201: mov w2, -1 - strb w1, [x0,3894] - strb w2, [x0,3893] - b .L3006 -.L3066: + strb w1, [x0,3886] + strb w2, [x0,3885] + b .L3140 +.L3200: bl timer_get_time - adrp x1, .LANCHOR7-80 - str w0, [x1,#:lo12:.LANCHOR7-80] + adrp x1, .LANCHOR7-64 + str w0, [x1,#:lo12:.LANCHOR7-64] ldr w0, [x29,140] -.L3005: - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] - ldp x27, x28, [sp,80] - ldp x29, x30, [sp], 160 +.L3139: + sub sp, x29, #16 + ldp x19, x20, [sp,32] + ldp x21, x22, [sp,48] + ldp x23, x24, [sp,64] + ldp x25, x26, [sp,80] + ldp x27, x28, [sp,96] + ldp x29, x30, [sp,16] + add sp, sp, 176 ret .size zftl_read, .-zftl_read .align 2 @@ -19210,34 +20269,34 @@ zftl_debug_proc_write: stp x23, x24, [sp,80] stp x25, x26, [sp,96] mov x21, x2 - bhi .L3071 + bhi .L3205 mov x0, x19 bl rk_copy_from_user mov x22, x0 mov x0, -14 - cbnz x22, .L3071 - adrp x0, .LC239 + cbnz x22, .L3205 + adrp x0, .LC251 mov x1, x19 - add x0, x0, :lo12:.LC239 + add x0, x0, :lo12:.LC251 strb w22, [x19,x21] bl printk - adrp x0, .LC240 + adrp x0, .LC252 mov x1, x19 - add x0, x0, :lo12:.LC240 + add x0, x0, :lo12:.LC252 mov w2, 1 mov w3, 16 bl rknand_print_hex bl rknand_device_lock - adrp x1, .LC241 + adrp x1, .LC253 mov x0, x19 - add x1, x1, :lo12:.LC241 + add x1, x1, :lo12:.LC253 mov x2, 7 bl memcmp - cbnz w0, .L3072 + cbnz w0, .L3206 adrp x23, .LANCHOR0 - adrp x0, .LC242 + adrp x0, .LC254 add x19, x23, :lo12:.LANCHOR0 - add x0, x0, :lo12:.LC242 + add x0, x0, :lo12:.LC254 mov w2, 4 adrp x20, .LANCHOR4 ldr x3, [x19,2864] @@ -19246,19 +20305,19 @@ zftl_debug_proc_write: bl rknand_print_hex add x3, x20, :lo12:.LANCHOR4 ldr x1, [x19,2864] - adrp x0, .LC243 + adrp x0, .LC255 mov w2, 2 - add x0, x0, :lo12:.LC243 + add x0, x0, :lo12:.LC255 add x1, x1, 416 - ldrh w3, [x3,1164] + ldrh w3, [x3,1156] mov w19, w22 mov w22, 65535 bl rknand_print_hex -.L3073: +.L3207: add x0, x20, :lo12:.LANCHOR4 - ldrh w0, [x0,1164] + ldrh w0, [x0,1156] cmp w19, w0 - bge .L3076 + bge .L3210 mov w0, 300 bl msleep add x0, x23, :lo12:.LANCHOR0 @@ -19266,63 +20325,63 @@ zftl_debug_proc_write: add x0, x0, x19, sxtw 1 ldrh w0, [x0,416] cmp w0, w22 - beq .L3074 + beq .L3208 mov x1, 0 bl ftl_sblk_dump -.L3074: +.L3208: add w19, w19, 1 - b .L3073 -.L3072: - adrp x1, .LC244 + b .L3207 +.L3206: + adrp x1, .LC256 mov x0, x19 - add x1, x1, :lo12:.LC244 + add x1, x1, :lo12:.LC256 mov x2, 7 bl memcmp - cbnz w0, .L3077 + cbnz w0, .L3211 adrp x23, .LANCHOR0 - adrp x0, .LC242 + adrp x0, .LC254 add x20, x23, :lo12:.LANCHOR0 - add x0, x0, :lo12:.LC242 + add x0, x0, :lo12:.LC254 mov w2, 4 add x22, x29, 192 - adrp x24, .LC247 + adrp x24, .LC259 ldr x3, [x20,2864] - add x24, x24, :lo12:.LC247 + add x24, x24, :lo12:.LC259 add x1, x3, 704 ldrh w3, [x3,698] bl rknand_print_hex - adrp x3, .LANCHOR4+1164 + adrp x3, .LANCHOR4+1156 ldr x1, [x20,2864] - adrp x0, .LC243 + adrp x0, .LC255 mov w2, 2 - add x0, x0, :lo12:.LC243 + add x0, x0, :lo12:.LC255 add x1, x1, 416 - ldrh w3, [x3,#:lo12:.LANCHOR4+1164] + ldrh w3, [x3,#:lo12:.LANCHOR4+1156] bl rknand_print_hex - adrp x0, .LC245 + adrp x0, .LC257 add x1, x19, 7 - add x0, x0, :lo12:.LC245 + add x0, x0, :lo12:.LC257 str x1, [x22,-88]! - add x19, x20, 3904 + add x19, x20, 3896 mov x20, x23 bl printk - adrp x23, .LC246 + adrp x23, .LC258 ldr x0, [x29,104] mov x1, x22 add x25, x19, 512 - add x23, x23, :lo12:.LC246 - bl rk_simple_strtoull.constprop.29 + add x23, x23, :lo12:.LC258 + bl rk_simple_strtoull.constprop.30 mov w22, w0 str w0, [x29,100] uxth w26, w0 -.L3079: +.L3213: ldrh w1, [x19] mov x0, x23 ldrh w2, [x19,2] bl printk ldrh w0, [x19] cmp w0, w26 - bne .L3078 + bne .L3212 add x0, x20, :lo12:.LANCHOR0 ldr x1, [x19,8] mov w2, 4 @@ -19330,10 +20389,10 @@ zftl_debug_proc_write: mov x0, x24 lsl w3, w3, 7 bl rknand_print_hex -.L3078: +.L3212: add x19, x19, 16 cmp x19, x25 - bne .L3079 + bne .L3213 mov w0, 300 add x20, x20, :lo12:.LANCHOR0 bl msleep @@ -19356,8 +20415,8 @@ zftl_debug_proc_write: str w0, [sp,8] ldr w0, [x7,12] str w0, [sp,16] - adrp x0, .LC209 - add x0, x0, :lo12:.LC209 + adrp x0, .LC221 + add x0, x0, :lo12:.LC221 ldr w3, [x6] ldr w2, [x19,52] ldr w4, [x6,4] @@ -19366,61 +20425,61 @@ zftl_debug_proc_write: ldr w6, [x6,12] bl printk ldrb w3, [x20,2832] - adrp x0, .LC248 - add x0, x0, :lo12:.LC248 + adrp x0, .LC260 + add x0, x0, :lo12:.LC260 ldr x1, [x19,8] mov w2, 4 lsl w3, w3, 7 - b .L3094 -.L3077: - adrp x1, .LC249 + b .L3228 +.L3211: + adrp x1, .LC261 mov x0, x19 - add x1, x1, :lo12:.LC249 + add x1, x1, :lo12:.LC261 mov x2, 7 bl memcmp - cbnz w0, .L3080 + cbnz w0, .L3214 bl dump_ftl_info - b .L3076 -.L3080: - adrp x1, .LC250 + b .L3210 +.L3214: + adrp x1, .LC262 mov x0, x19 - add x1, x1, :lo12:.LC250 + add x1, x1, :lo12:.LC262 mov x2, 9 bl memcmp - cbnz w0, .L3081 + cbnz w0, .L3215 add x1, x29, 192 add x0, x19, 9 str x0, [x1,-88]! - bl rk_simple_strtoull.constprop.29 + bl rk_simple_strtoull.constprop.30 str w0, [x29,100] adrp x1, .LANCHOR0+3336 strh w0, [x1,#:lo12:.LANCHOR0+3336] bl dump_all_list_info - b .L3076 -.L3081: - adrp x1, .LC251 + b .L3210 +.L3215: + adrp x1, .LC263 mov x0, x19 - add x1, x1, :lo12:.LC251 + add x1, x1, :lo12:.LC263 mov x2, 8 bl memcmp - cbz w0, .L3076 - adrp x1, .LC252 + cbz w0, .L3210 + adrp x1, .LC264 mov x0, x19 - add x1, x1, :lo12:.LC252 + add x1, x1, :lo12:.LC264 mov x2, 8 bl memcmp - cbnz w0, .L3083 + cbnz w0, .L3217 add x20, x29, 192 - adrp x0, .LC245 + adrp x0, .LC257 add x1, x19, 8 - add x0, x0, :lo12:.LC245 + add x0, x0, :lo12:.LC257 str x1, [x20,-88]! bl printk ldr x0, [x29,104] mov x1, x20 adrp x20, .LANCHOR0 add x20, x20, :lo12:.LANCHOR0 - bl rk_simple_strtoull.constprop.29 + bl rk_simple_strtoull.constprop.30 str w0, [x29,100] mov w0, 1 bl buf_alloc @@ -19438,8 +20497,8 @@ zftl_debug_proc_write: str w0, [sp,8] ldr w0, [x7,12] str w0, [sp,16] - adrp x0, .LC209 - add x0, x0, :lo12:.LC209 + adrp x0, .LC221 + add x0, x0, :lo12:.LC221 ldr w3, [x6] ldr w4, [x6,4] ldr w5, [x6,8] @@ -19448,129 +20507,129 @@ zftl_debug_proc_write: ldr w7, [x7] bl printk ldrb w3, [x20,2832] - adrp x0, .LC204 + adrp x0, .LC216 ldr x1, [x19,8] - add x0, x0, :lo12:.LC204 + add x0, x0, :lo12:.LC216 mov w2, 4 lsl w3, w3, 7 bl rknand_print_hex ldrb w3, [x20,2832] - adrp x0, .LC205 + adrp x0, .LC217 ldr x1, [x19,24] - add x0, x0, :lo12:.LC205 + add x0, x0, :lo12:.LC217 mov w2, 4 lsl w3, w3, 1 -.L3094: +.L3228: bl rknand_print_hex mov x0, x19 bl buf_free - b .L3076 -.L3083: - adrp x1, .LC253 + b .L3210 +.L3217: + adrp x1, .LC265 mov x0, x19 - add x1, x1, :lo12:.LC253 + add x1, x1, :lo12:.LC265 mov x2, 8 bl memcmp - cbnz w0, .L3084 + cbnz w0, .L3218 add x20, x29, 192 - adrp x0, .LC245 + adrp x0, .LC257 add x1, x19, 8 - add x0, x0, :lo12:.LC245 + add x0, x0, :lo12:.LC257 str x1, [x20,-88]! bl printk ldr x0, [x29,104] mov x1, x20 - bl rk_simple_strtoull.constprop.29 + bl rk_simple_strtoull.constprop.30 str w0, [x29,100] mov x1, x22 bl ftl_sblk_dump - b .L3076 -.L3084: - adrp x1, .LC254 + b .L3210 +.L3218: + adrp x1, .LC266 mov x0, x19 - add x1, x1, :lo12:.LC254 + add x1, x1, :lo12:.LC266 mov x2, 10 bl memcmp - cbnz w0, .L3085 + cbnz w0, .L3219 add x20, x29, 192 - adrp x0, .LC245 + adrp x0, .LC257 add x1, x19, 10 - add x0, x0, :lo12:.LC245 + add x0, x0, :lo12:.LC257 str x1, [x20,-88]! bl printk ldr x0, [x29,104] mov x1, x20 - bl rk_simple_strtoull.constprop.29 + bl rk_simple_strtoull.constprop.30 str w0, [x29,100] adrp x1, .LANCHOR2 str w0, [x1,#:lo12:.LANCHOR2] - b .L3076 -.L3085: - adrp x1, .LC255 + b .L3210 +.L3219: + adrp x1, .LC267 mov x2, 8 mov x0, x19 - add x1, x1, :lo12:.LC255 + add x1, x1, :lo12:.LC267 bl memcmp mov w2, w0 str x2, [x29,88] - cbnz w0, .L3086 + cbnz w0, .L3220 add x1, x19, 8 - adrp x0, .LC245 + adrp x0, .LC257 add x19, x29, 192 - add x0, x0, :lo12:.LC245 + add x0, x0, :lo12:.LC257 str x1, [x19,-88]! bl printk ldr x0, [x29,104] mov x1, x19 - bl rk_simple_strtoull.constprop.29 + bl rk_simple_strtoull.constprop.30 mov w19, w0 bl lpa_hash_get_ppa str w0, [x29,100] cmn w0, #1 ldr x2, [x29,88] - bne .L3087 + bne .L3221 mov w0, w19 add x1, x29, 100 bl pm_log2phys -.L3087: - adrp x0, .LC256 +.L3221: + adrp x0, .LC268 ldr w2, [x29,100] mov w1, w19 - add x0, x0, :lo12:.LC256 + add x0, x0, :lo12:.LC268 bl printk - b .L3076 -.L3086: - adrp x0, .LC257 - add x0, x0, :lo12:.LC257 + b .L3210 +.L3220: + adrp x0, .LC269 + add x0, x0, :lo12:.LC269 bl printk - adrp x0, .LC258 - add x0, x0, :lo12:.LC258 + adrp x0, .LC270 + add x0, x0, :lo12:.LC270 bl printk - adrp x0, .LC259 - add x0, x0, :lo12:.LC259 + adrp x0, .LC271 + add x0, x0, :lo12:.LC271 bl printk - adrp x0, .LC260 - add x0, x0, :lo12:.LC260 + adrp x0, .LC272 + add x0, x0, :lo12:.LC272 bl printk - adrp x0, .LC261 - add x0, x0, :lo12:.LC261 + adrp x0, .LC273 + add x0, x0, :lo12:.LC273 bl printk - adrp x0, .LC262 - add x0, x0, :lo12:.LC262 + adrp x0, .LC274 + add x0, x0, :lo12:.LC274 bl printk - adrp x0, .LC263 - add x0, x0, :lo12:.LC263 + adrp x0, .LC275 + add x0, x0, :lo12:.LC275 bl printk - adrp x0, .LC264 - add x0, x0, :lo12:.LC264 + adrp x0, .LC276 + add x0, x0, :lo12:.LC276 bl printk - adrp x0, .LC265 - add x0, x0, :lo12:.LC265 + adrp x0, .LC277 + add x0, x0, :lo12:.LC277 bl printk -.L3076: +.L3210: bl rknand_device_unlock mov x0, x21 -.L3071: +.L3205: sub sp, x29, #32 ldp x19, x20, [sp,48] ldp x21, x22, [sp,64] @@ -19597,118 +20656,118 @@ gc_check_data_one_wl: ldr x0, [x20,2904] ldr x23, [x20,608] add x20, x20, 2896 - cbnz x0, .L3096 + cbnz x0, .L3230 mov w0, 1 bl buf_alloc str x0, [x20,8] -.L3096: +.L3230: add x0, x19, :lo12:.LANCHOR0 ldr x20, [x0,2904] - cbnz x20, .L3097 + cbnz x20, .L3231 adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 - mov w2, 367 - add x1, x1, 712 + mov w2, 447 + add x1, x1, 744 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L3097: +.L3231: mov w24, 0 add x25, x23, 80 add x21, x19, :lo12:.LANCHOR0 adrp x27, .LANCHOR4 -.L3098: +.L3232: ldrb w0, [x25,9] cmp w24, w0 - bge .L3121 + bge .L3255 mov w22, 1 sxtw x28, w24 -.L3107: +.L3241: add x0, x21, 2896 ldrh w1, [x0,20] cmp w22, w1 - bgt .L3122 + bgt .L3256 add x1, x28, 8 - ldrh w2, [x21,3350] + ldrh w2, [x21,3348] ldrh w0, [x0,16] ldrh w1, [x25,x1,lsl 1] mul w1, w1, w2 ldrb w2, [x21,3257] cmp w2, 3 - bne .L3099 + bne .L3233 add w1, w1, w0 orr w1, w1, w22, lsl 24 - b .L3120 -.L3099: + b .L3254 +.L3233: cmp w2, 2 - bne .L3101 + bne .L3235 sub w0, w0, #1 add w1, w0, w1 add w1, w1, w22 orr w1, w1, 33554432 - b .L3120 -.L3101: + b .L3254 +.L3235: add w1, w1, w0 -.L3120: +.L3254: str w1, [x20,40] mov x0, x20 mov w1, 1 bl sblk_read_page ldr w0, [x20,52] cmn w0, #1 - beq .L3102 + beq .L3236 add x2, x27, :lo12:.LANCHOR4 ldrh w0, [x21,2918] ldr x1, [x20,24] lsl x0, x0, 2 - ldr x3, [x2,1136] + ldr x3, [x2,1128] ldr w4, [x3,x0] ldr w3, [x1,4] cmp w4, w3 - bne .L3102 - ldr x2, [x2,1144] + bne .L3236 + ldr x2, [x2,1136] ldr w2, [x2,x0] ldr w0, [x1,8] cmp w2, w0 - beq .L3103 -.L3102: + beq .L3237 +.L3236: add x26, x27, :lo12:.LANCHOR4 ldrh w0, [x21,2918] add x4, x21, 2896 - ldr x1, [x26,1136] + ldr x1, [x26,1128] ldr w0, [x1,x0,lsl 2] cmn w0, #1 - beq .L3103 + beq .L3237 ldrb w5, [x25,9] - adrp x0, .LC266 + adrp x0, .LC278 ldrh w3, [x21,3274] - add x0, x0, :lo12:.LC266 + add x0, x0, :lo12:.LC278 mov w2, 4 str x4, [x29,104] mul w3, w5, w3 bl rknand_print_hex ldrb w5, [x25,9] - adrp x0, .LC267 + adrp x0, .LC279 ldrh w3, [x21,3274] - add x0, x0, :lo12:.LC267 - ldr x1, [x26,1144] + add x0, x0, :lo12:.LC279 + ldr x1, [x26,1136] mov w2, 4 mul w3, w5, w3 bl rknand_print_hex adrp x0, .LANCHOR2 ldr x4, [x29,104] ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 10, .L3104 + tbz x0, 10, .L3238 ldr x7, [x20,24] ldrh w4, [x4,22] - ldr x5, [x26,1144] + ldr x5, [x26,1136] ldr w0, [x7,12] lsl x4, x4, 2 - ldr x3, [x26,1136] + ldr x3, [x26,1128] str w0, [sp] - adrp x0, .LC268 - add x0, x0, :lo12:.LC268 + adrp x0, .LC280 + add x0, x0, :lo12:.LC280 ldr w3, [x3,x4] ldr w6, [x7,4] ldr w4, [x5,x4] @@ -19717,7 +20776,7 @@ gc_check_data_one_wl: ldr w2, [x20,52] ldr w7, [x7,8] bl printk -.L3104: +.L3238: add x19, x19, :lo12:.LANCHOR0 mov x1, 0 ldr x0, [x19,608] @@ -19727,27 +20786,27 @@ gc_check_data_one_wl: ldrh w1, [x23,80] strh wzr, [x0,x1,lsl 1] mov w0, -1 - b .L3105 -.L3103: + b .L3239 +.L3237: ldrh w0, [x21,2918] add w22, w22, 1 add w0, w0, 1 strh w0, [x21,2918] - b .L3107 -.L3122: + b .L3241 +.L3256: add w24, w24, 1 - b .L3098 -.L3121: + b .L3232 +.L3255: add x19, x19, :lo12:.LANCHOR0 ldrh w1, [x19,2912] - ldrb w3, [x19,3348] + ldrb w3, [x19,3258] add w0, w1, 1 strh w0, [x19,2912] mov w0, 0 - cbz w3, .L3105 + cbz w3, .L3239 add w1, w1, 2 strh w1, [x19,2912] -.L3105: +.L3239: sub sp, x29, #16 ldp x19, x20, [sp,32] ldp x21, x22, [sp,48] @@ -19775,39 +20834,39 @@ ftl_update_l2p_map: ldrb w1, [x23,9] ldrh w24, [x0,3300] ldrh w20, [x23,12] - ldr x0, [x0,3872] + ldr x0, [x0,3864] mul w24, w24, w1 add x20, x0, x20, lsl 2 add x0, x20, x24, sxtw 2 ldr w0, [x0,-4] cmn w0, #1 - beq .L3124 + beq .L3258 adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 - mov w2, 1575 - add x1, x1, 736 + mov w2, 1627 + add x1, x1, 768 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L3124: - adrp x0, .LC270 +.L3258: + adrp x0, .LC282 mov x28, 0 - add x0, x0, :lo12:.LC270 - adrp x27, .LC269 + add x0, x0, :lo12:.LC282 + adrp x27, .LC281 str x0, [x29,120] - adrp x0, .LC271 - add x0, x0, :lo12:.LC271 + adrp x0, .LC283 + add x0, x0, :lo12:.LC283 mov w22, w28 str x0, [x29,112] - add x27, x27, :lo12:.LC269 -.L3125: + add x27, x27, :lo12:.LC281 +.L3259: cmp w28, w24 mov w25, w28 - bge .L3152 + bge .L3286 ldr w2, [x20,x28,lsl 2] cmn w2, #1 - beq .L3126 + beq .L3260 add x0, x19, :lo12:.LANCHOR0 ldrb w21, [x0,2832] adrp x0, .LANCHOR2 @@ -19815,24 +20874,24 @@ ftl_update_l2p_map: ldr w0, [x0,#:lo12:.LANCHOR2] udiv w21, w2, w21 and w21, w21, 65535 - tbz x0, 12, .L3130 + tbz x0, 12, .L3264 mov x0, x27 mov w1, w21 mov w3, w28 bl printk -.L3130: +.L3264: sbfiz x26, x25, 2, 32 ldr w0, [x20,x26] cmn w0, #1 - beq .L3128 + beq .L3262 add x3, x19, :lo12:.LANCHOR0 ldrb w1, [x3,2832] lsl w1, w1, 7 udiv w0, w0, w1 cmp w21, w0, uxth - bne .L3128 + bne .L3262 ldrb w0, [x23,9] - ldrh w2, [x3,3350] + ldrh w2, [x3,3348] str x3, [x29,104] sdiv w1, w25, w0 msub w0, w1, w0, w25 @@ -19844,13 +20903,13 @@ ftl_update_l2p_map: ldr w1, [x20,x26] bl pm_ppa_update_check ldr x3, [x29,104] - cbz w0, .L3129 - ldr x1, [x3,3872] + cbz w0, .L3263 + ldr x1, [x3,3864] mov w2, 4 ldr x0, [x29,112] mov w3, w24 bl rknand_print_hex -.L3129: +.L3263: ldr w0, [x20,x26] add x1, x29, 140 mov w2, 1 @@ -19859,27 +20918,27 @@ ftl_update_l2p_map: uxth w22, w22 mov w0, -1 str w0, [x20,x26] -.L3128: +.L3262: add w25, w25, 1 cmp w25, w24 - bne .L3130 -.L3126: + bne .L3264 +.L3260: add x28, x28, 1 - b .L3125 -.L3152: + b .L3259 +.L3286: adrp x0, .LANCHOR2 ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 12, .L3132 + tbz x0, 12, .L3266 add x0, x19, :lo12:.LANCHOR0 ldrh w1, [x23] mov w2, w22 ubfiz x3, x1, 1, 16 ldr x4, [x0,600] - adrp x0, .LC272 - add x0, x0, :lo12:.LC272 + adrp x0, .LC284 + add x0, x0, :lo12:.LC284 ldrh w3, [x4,x3] bl printk -.L3132: +.L3266: add x19, x19, :lo12:.LANCHOR0 ldrh w1, [x23] ldr x0, [x19,600] @@ -19905,9 +20964,9 @@ ftl_alloc_new_data_sblk: ldrh w0, [x19] mov w1, 65535 cmp w0, w1 - beq .L3154 + beq .L3288 bl zftl_insert_data_list -.L3154: +.L3288: adrp x0, .LANCHOR0+608 mov w2, 2 mov w1, 3 @@ -19941,15 +21000,15 @@ ftl_write_commit: add x0, x0, :lo12:.LANCHOR4 str x0, [x29,120] stp x19, x20, [sp,16] - add x0, x0, 1266 + add x0, x0, 1241 str x0, [x29,104] stp x21, x22, [sp,32] stp x25, x26, [sp,64] stp x27, x28, [sp,80] -.L3158: +.L3292: ldrb w0, [x24,2856] adrp x21, .LANCHOR0 - cbz w0, .L3160 + cbz w0, .L3294 ldrb w1, [x24,2888] sub w0, w0, #1 ldr x2, [x29,112] @@ -19962,16 +21021,16 @@ ftl_write_commit: strb w1, [x24,2888] ldr w1, [x27,36] cmp w1, w0 - bcc .L3161 + bcc .L3295 adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 - mov w2, 496 - add x1, x1, 760 + mov w2, 501 + add x1, x1, 792 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L3161: +.L3295: ldr x0, [x29,128] add x1, x21, :lo12:.LANCHOR0 add x4, x1, 784 @@ -19979,32 +21038,32 @@ ftl_write_commit: ldr w2, [x1,2840] ldr w23, [x0,36] cmp w23, w2 - bcc .L3162 + bcc .L3296 mov x0, x27 bl buf_free mov w0, -1 - b .L3216 -.L3162: + b .L3350 +.L3296: ldr x25, [x0,8] ldr x28, [x0,24] ldrb w22, [x0,57] ldrb w20, [x0,56] ldrb w0, [x1,2857] - cbz w0, .L3164 + cbz w0, .L3298 ldr x0, [x29,120] - ldrb w3, [x0,1266] + ldrb w3, [x0,1241] add x3, x4, x3, lsl 6 -.L3165: +.L3299: ldrb w5, [x3] cmp w5, 255 - beq .L3218 + beq .L3352 sbfiz x3, x5, 6, 32 add x3, x4, x3 - b .L3165 -.L3218: + b .L3299 +.L3352: ldr w0, [x3,36] cmp w0, w23 - bne .L3164 + bne .L3298 ldr x0, [x3,8] ubfiz x1, x22, 9, 8 lsl w2, w20, 9 @@ -20013,29 +21072,29 @@ ftl_write_commit: bl ftl_memcpy mov x0, x27 bl buf_free - b .L3158 -.L3164: + b .L3292 +.L3298: mov w0, w23 bl lpa_hash_get_ppa str w0, [x29,156] cmn w0, #1 - bne .L3168 + bne .L3302 mov w0, w23 add x1, x29, 156 mov w2, 0 bl pm_log2phys -.L3168: +.L3302: add x4, x21, :lo12:.LANCHOR0 mov w3, 0 add x4, x4, 784 ldr x19, [x4,-176] add x19, x19, 16 -.L3171: +.L3305: ldr w0, [x4,36] cmp w0, w23 - bne .L3169 + bne .L3303 ldrb w5, [x4,2] - tbz x5, 3, .L3169 + tbz x5, 3, .L3303 add x0, x21, :lo12:.LANCHOR0 ubfiz x3, x3, 6, 32 add x0, x0, 784 @@ -20045,22 +21104,22 @@ ftl_write_commit: strb w5, [x3,2] ldr x26, [x3,8] str w0, [x29,156] - b .L3170 -.L3169: + b .L3304 +.L3303: add w3, w3, 1 add x4, x4, 64 cmp w3, 32 - bne .L3171 + bne .L3305 mov x26, 0 -.L3170: +.L3304: add x3, x21, :lo12:.LANCHOR0 str wzr, [x29,136] ldrb w0, [x3,2832] cmp w20, w0 - bcs .L3172 + bcs .L3306 add w20, w22, w20 - cbz x26, .L3173 - cbz w22, .L3174 + cbz x26, .L3307 + cbz w22, .L3308 mov x0, x25 mov x1, x26 lsl w2, w22, 9 @@ -20069,28 +21128,28 @@ ftl_write_commit: ldr x3, [x29,136] ldr x19, [x3,608] add x19, x19, 48 -.L3174: +.L3308: add x0, x21, :lo12:.LANCHOR0 ldrb w2, [x0,2832] cmp w20, w2 - bcc .L3175 + bcc .L3309 ldr x19, [x0,608] add x19, x19, 16 - b .L3217 -.L3175: + b .L3351 +.L3309: ubfiz x1, x20, 9, 9 sub w2, w2, w20 add x0, x25, x1 lsl w2, w2, 9 add x1, x26, x1 bl ftl_memcpy -.L3217: +.L3351: str wzr, [x29,136] - b .L3172 -.L3173: + b .L3306 +.L3307: ldr w0, [x29,156] cmn w0, #1 - beq .L3176 + beq .L3310 mov w0, 1 bl buf_alloc mov x26, x0 @@ -20105,11 +21164,11 @@ ftl_write_commit: add w1, w1, 1 str w1, [x29,136] cmp w0, w23 - bne .L3177 + bne .L3311 ldr w0, [x26,52] cmn w0, #1 - bne .L3178 -.L3177: + bne .L3312 +.L3311: add x0, x21, :lo12:.LANCHOR0 ldr w2, [x29,156] mov w3, w23 @@ -20117,99 +21176,99 @@ ftl_write_commit: ldr w0, [x1,552] add w0, w0, 1 str w0, [x1,552] - adrp x0, .LC273 + adrp x0, .LC285 ldrb w1, [x26,1] - add x0, x0, :lo12:.LC273 + add x0, x0, :lo12:.LC285 ldr w4, [x26,52] bl printk - adrp x0, .LC205 + adrp x0, .LC217 mov w2, 4 ldr x1, [x26,24] - add x0, x0, :lo12:.LC205 + add x0, x0, :lo12:.LC217 mov w3, w2 bl rknand_print_hex -.L3178: +.L3312: ldr x0, [x26,24] ldr w0, [x0,4] cmp w0, w23 - bne .L3179 + bne .L3313 ldr w0, [x26,52] cmn w0, #1 - bne .L3180 -.L3179: + bne .L3314 +.L3313: adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 - mov w2, 567 - add x1, x1, 760 + mov w2, 572 + add x1, x1, 792 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L3180: - cbz w22, .L3181 +.L3314: + cbz w22, .L3315 ldr w0, [x29,156] lsl w2, w22, 9 cmn w0, #1 - beq .L3182 + beq .L3316 ldr x1, [x26,8] mov x0, x25 bl ftl_memcpy - b .L3183 -.L3176: - cbz w22, .L3181 + b .L3317 +.L3310: + cbz w22, .L3315 lsl w2, w22, 9 -.L3182: +.L3316: mov x0, x25 mov w1, 0 bl ftl_memset -.L3183: +.L3317: add x0, x21, :lo12:.LANCHOR0 ldr x19, [x0,608] add x19, x19, 48 -.L3181: +.L3315: add x0, x21, :lo12:.LANCHOR0 ldrb w2, [x0,2832] cmp w20, w2 - bcc .L3184 - bls .L3185 + bcc .L3318 + bls .L3319 ldr x19, [x0,608] add x19, x19, 16 - b .L3185 -.L3184: + b .L3319 +.L3318: ldr w0, [x29,156] sub w2, w2, w20 lsl w2, w2, 9 cmn w0, #1 ubfiz x0, x20, 7, 9 - beq .L3186 + beq .L3320 ldr x1, [x26,8] lsl x20, x0, 2 add x0, x25, x20 add x1, x1, x20 bl ftl_memcpy - b .L3185 -.L3186: + b .L3319 +.L3320: add x0, x25, x0, lsl 2 mov w1, 0 bl ftl_memset -.L3185: - cbz x26, .L3172 +.L3319: + cbz x26, .L3306 ldrb w0, [x26,2] mov x1, x26 and w0, w0, -9 strb w0, [x26,2] add x0, x21, :lo12:.LANCHOR0 - add x0, x0, 3895 + add x0, x0, 3887 bl buf_remove_buf mov x0, x26 bl buf_free -.L3172: +.L3306: ldrh w0, [x19,6] - cbnz w0, .L3187 + cbnz w0, .L3321 bl ftl_flush mov x0, x19 bl ftl_alloc_new_data_sblk -.L3187: +.L3321: mov x0, x19 add x20, x21, :lo12:.LANCHOR0 bl ftl_get_new_free_page @@ -20246,14 +21305,14 @@ ftl_write_commit: bl timer_get_time ldr x1, [x29,120] ldrb w2, [x20,2857] - str w0, [x1,1268] + str w0, [x1,1244] cmp w2, 2 adrp x0, .LANCHOR4 - bhi .L3188 + bhi .L3322 ldrh w1, [x19,6] cmp w1, 1 - bne .L3160 -.L3188: + bne .L3294 +.L3322: ldrb w1, [x19,5] mov w4, 2 add x6, x21, :lo12:.LANCHOR0 @@ -20264,22 +21323,22 @@ ftl_write_commit: cmp w1, 1 add x1, x0, :lo12:.LANCHOR4 csel w4, w4, w2, ne - ldrb w5, [x1,1266] + ldrb w5, [x1,1241] mov w1, 0 mov w3, w5 -.L3192: +.L3326: cmp w1, w4 - beq .L3219 + beq .L3353 ubfiz x3, x3, 6, 8 add w1, w1, 1 ldrb w3, [x6,x3] - b .L3192 -.L3219: + b .L3326 +.L3353: add x0, x0, :lo12:.LANCHOR4 uxtb w1, w1 sub w2, w2, w1 ubfiz x5, x5, 6, 8 - strb w3, [x0,1266] + strb w3, [x0,1241] add x0, x21, :lo12:.LANCHOR0 add x0, x0, 784 strb w2, [x0,2073] @@ -20287,20 +21346,20 @@ ftl_write_commit: bl sblk_prog_page ldrh w0, [x19,6] cmp w0, 1 - bne .L3160 + bne .L3294 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 -.L3160: +.L3294: add x21, x21, :lo12:.LANCHOR0 ldrb w19, [x21,2856] - cbnz w19, .L3158 + cbnz w19, .L3292 bl ftl_write_completed mov w0, w19 -.L3216: +.L3350: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -20325,10 +21384,10 @@ gc_do_copy_back: stp x27, x28, [sp,96] ldrb w0, [x21,3273] ldr x22, [x21,608] - cbnz w0, .L3221 + cbnz w0, .L3355 bl buf_alloc mov x20, x0 - cbz x0, .L3220 + cbz x0, .L3354 ldrh w22, [x21,2922] mov w0, w22 add w22, w22, 1 @@ -20341,60 +21400,60 @@ gc_do_copy_back: bl sblk_read_page ldr w0, [x20,52] cmp w0, 512 - beq .L3274 + beq .L3410 cmn w0, #1 - bne .L3223 -.L3274: + bne .L3357 +.L3410: adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 - mov w2, 601 - add x1, x1, 784 + mov w2, 684 + add x1, x1, 816 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L3223: +.L3357: ldr x0, [x20,24] ldr w21, [x0,4] mov w0, w21 bl lpa_hash_get_ppa str w0, [x29,144] cmn w0, #1 - bne .L3225 + bne .L3359 mov w0, w21 add x1, x29, 144 mov w2, 0 bl pm_log2phys -.L3225: +.L3359: ldr w22, [x29,144] cmp w22, w23 - bne .L3226 + bne .L3360 add x1, x19, :lo12:.LANCHOR0 add x0, x1, 784 add x1, x1, 2832 -.L3229: +.L3363: ldr w2, [x0,36] cmp w2, w21 - bne .L3227 + bne .L3361 ldrb w2, [x0,2] - tbz x2, 1, .L3227 + tbz x2, 1, .L3361 mov x0, x20 bl buf_free adrp x0, .LANCHOR2 ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 8, .L3220 + tbz x0, 8, .L3354 add x19, x19, :lo12:.LANCHOR0 - adrp x0, .LC274 + adrp x0, .LC286 mov w1, w21 mov w2, w22 - add x0, x0, :lo12:.LC274 + add x0, x0, :lo12:.LC286 ldrh w3, [x19,2922] bl printk - b .L3220 -.L3227: + b .L3354 +.L3361: add x0, x0, 64 cmp x0, x1 - bne .L3229 + bne .L3363 add x23, x19, :lo12:.LANCHOR0 ldrb w1, [x20,2] str w21, [x20,36] @@ -20409,20 +21468,20 @@ gc_do_copy_back: str w0, [x20,32] adrp x0, .LANCHOR2 ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 8, .L3230 + tbz x0, 8, .L3364 ldr w2, [x29,144] mov w0, w21 str x2, [x29,136] bl lpa_hash_get_ppa mov w3, w0 ldr x2, [x29,136] - adrp x0, .LC275 + adrp x0, .LC287 ldrh w5, [x23,2922] - add x0, x0, :lo12:.LC275 + add x0, x0, :lo12:.LC287 mov w1, w21 mov w4, w22 bl printk -.L3230: +.L3364: add x19, x19, :lo12:.LANCHOR0 mov x0, x20 bl ftl_gc_write_buf @@ -20434,34 +21493,34 @@ gc_do_copy_back: ldrh w0, [x19,2924] add w0, w0, 1 strh w0, [x19,2924] - b .L3220 -.L3226: + b .L3354 +.L3360: adrp x0, .LANCHOR2 ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 8, .L3232 + tbz x0, 8, .L3366 mov w0, w21 add x19, x19, :lo12:.LANCHOR0 bl lpa_hash_get_ppa mov w3, w0 ldrh w5, [x19,2922] - adrp x0, .LC275 - add x0, x0, :lo12:.LC275 + adrp x0, .LC287 + add x0, x0, :lo12:.LC287 mov w1, w21 mov w2, w22 mov w4, w23 bl printk -.L3232: +.L3366: mov x0, x20 bl buf_free - b .L3220 -.L3221: + b .L3354 +.L3355: ldrb w24, [x21,3257] add x0, x21, 2896 add x22, x22, 80 cmp w24, 3 - bne .L3233 + bne .L3367 ldrb w1, [x21,3272] - cbz w1, .L3234 + cbz w1, .L3368 ldrb w20, [x22,9] ldrh w21, [x0,314] str w24, [x29,136] @@ -20470,13 +21529,13 @@ gc_do_copy_back: sdiv w23, w21, w23 madd w20, w23, w20, w21 uxth w20, w20 - b .L3236 -.L3234: + b .L3370 +.L3368: ldrh w20, [x0,314] adrp x0, .LANCHOR2 ldrb w21, [x22,9] add x0, x0, :lo12:.LANCHOR2 - add x0, x0, 1720 + add x0, x0, 1784 str w24, [x29,136] sdiv w1, w20, w21 msub w20, w1, w21, w20 @@ -20488,48 +21547,48 @@ gc_do_copy_back: cmp w25, 1 add w21, w21, w21, lsl 1 uxth w21, w21 - bne .L3237 - b .L3236 -.L3233: + bne .L3371 + b .L3370 +.L3367: ldrb w20, [x22,9] - ldrb w1, [x21,3348] + ldrb w1, [x21,3258] ldrh w21, [x0,314] mov w0, 1 sdiv w23, w21, w20 msub w20, w23, w20, w21 uxth w20, w20 - cbz w1, .L3315 + cbz w1, .L3452 mov w0, 2 -.L3315: +.L3452: str w0, [x29,136] -.L3236: +.L3370: mov w25, 0 add x24, x19, :lo12:.LANCHOR0 adrp x3, .LANCHOR4 -.L3239: +.L3373: ldrb w1, [x22,9] ldr w0, [x29,136] mul w0, w0, w1 cmp w25, w0 - bge .L3272 + bge .L3407 ldrh w0, [x24,3274] add w26, w21, w25 mul w0, w0, w1 sub w0, w0, #1 cmp w26, w0 - beq .L3272 + beq .L3407 add x0, x3, :lo12:.LANCHOR4 sbfiz x26, x26, 2, 32 - ldr x1, [x0,1144] + ldr x1, [x0,1136] ldr w0, [x1,x26] cmn w0, #1 - bne .L3240 + bne .L3374 ldrh w27, [x24,2922] ldrh w0, [x24,2920] str x3, [x29,120] str x1, [x29,128] cmp w0, w27 - bls .L3220 + bls .L3354 mov w0, w27 add w27, w27, 1 bl gc_get_src_ppa_from_index @@ -20537,45 +21596,45 @@ gc_do_copy_back: ldr x1, [x29,128] ldr x3, [x29,120] str w0, [x1,x26] -.L3240: +.L3374: add w25, w25, 1 uxth w25, w25 - b .L3239 -.L3272: + b .L3373 +.L3407: mov w25, 1 -.L3237: +.L3371: adrp x0, .LANCHOR2 str x0, [x29,120] ldr w1, [x0,#:lo12:.LANCHOR2] - tbz x1, 8, .L3242 - adrp x0, .LANCHOR4+1144 + tbz x1, 8, .L3376 + adrp x0, .LANCHOR4+1136 add x4, x19, :lo12:.LANCHOR0 ubfiz x5, x21, 2, 16 mov w1, w23 mov w2, w25 mov w3, w20 - ldr x6, [x0,#:lo12:.LANCHOR4+1144] - adrp x0, .LC276 + ldr x6, [x0,#:lo12:.LANCHOR4+1136] + adrp x0, .LC288 ldrh w4, [x4,3210] - add x0, x0, :lo12:.LC276 + add x0, x0, :lo12:.LC288 ldr w5, [x6,x5] mov w6, w21 bl printk -.L3242: +.L3376: adrp x0, .LC0 mov w27, 0 add x0, x0, :lo12:.LC0 str x0, [x29,112] adrp x0, .LANCHOR3 add x0, x0, :lo12:.LANCHOR3 - add x0, x0, 784 + add x0, x0, 816 str x0, [x29,104] -.L3243: - ldrb w0, [x22,9] - ldr w1, [x29,136] - mul w0, w1, w0 +.L3377: + ldrb w1, [x22,9] + ldr w0, [x29,136] + mul w0, w0, w1 cmp w27, w0 - bge .L3319 + bge .L3456 add w26, w21, w27 sxtw x0, w26 str x0, [x29,128] @@ -20584,11 +21643,11 @@ gc_do_copy_back: ldr x0, [x0,3264] ldrb w0, [x0,x1] cmp w0, 255 - bne .L3244 + bne .L3378 mov w0, 0 bl buf_alloc mov x24, x0 - cbnz x0, .L3245 + cbnz x0, .L3379 bl sblk_wait_write_queue_completed bl ftl_write_completed bl gc_write_completed @@ -20596,8 +21655,8 @@ gc_do_copy_back: mov w0, w24 bl buf_alloc mov x24, x0 - cbz x0, .L3220 -.L3245: + cbz x0, .L3354 +.L3379: add x28, x19, :lo12:.LANCHOR0 ldr x2, [x29,128] ldrb w1, [x24,1] @@ -20614,21 +21673,21 @@ gc_do_copy_back: sub w0, w0, #1 cmp w26, w0 adrp x26, .LANCHOR4 - bne .L3246 + bne .L3380 add x26, x26, :lo12:.LANCHOR4 mov w1, -1 - ldr x0, [x26,1136] + ldr x0, [x26,1128] str w1, [x0,x2,lsl 2] ldrh w0, [x28,3274] ldrb w2, [x28,3276] - ldr x1, [x26,1136] + ldr x1, [x26,1128] mul w2, w0, w2 ldr x0, [x24,8] lsl w2, w2, 2 bl ftl_memcpy ldrh w0, [x28,3274] ldrb w2, [x28,3276] - ldr x1, [x26,1144] + ldr x1, [x26,1136] mul w2, w0, w2 ldr x0, [x24,8] add x0, x0, x2, sxtw 2 @@ -20654,23 +21713,23 @@ gc_do_copy_back: ldr x1, [x28,608] ldr x0, [x24,24] ldr w1, [x1,132] - b .L3316 -.L3246: + b .L3453 +.L3380: ldr x0, [x29,128] mov w1, 1 lsl x28, x0, 2 add x0, x26, :lo12:.LANCHOR4 - ldr x0, [x0,1144] + ldr x0, [x0,1136] ldr w0, [x0,x28] str w0, [x24,40] mov x0, x24 bl sblk_read_page ldr w0, [x24,52] cmp w0, 512 - beq .L3247 + beq .L3381 cmn w0, #1 - bne .L3248 -.L3247: + bne .L3382 +.L3381: add x4, x19, :lo12:.LANCHOR0 mov w2, 21 mov w1, 1 @@ -20687,45 +21746,45 @@ gc_do_copy_back: bl ftl_sblk_dump ldr w0, [x24,52] cmp w0, 512 - beq .L3275 + beq .L3411 cmn w0, #1 - bne .L3248 -.L3275: + bne .L3382 +.L3411: ldr x0, [x24,24] mov w1, -1 str w1, [x0,4] -.L3248: +.L3382: ldr w0, [x24,52] cmp w0, 512 - beq .L3276 + beq .L3412 cmn w0, #1 - bne .L3251 -.L3276: + bne .L3385 +.L3412: ldr x1, [x29,104] - mov w2, 716 + mov w2, 799 ldr x0, [x29,112] bl printk bl dump_stack -.L3251: +.L3385: ldr x1, [x24,24] add x0, x19, :lo12:.LANCHOR0 ldr w2, [x1,4] ldr w0, [x0,2840] cmp w2, w0 - bcc .L3253 + bcc .L3387 mov w0, -1 str w0, [x1,4] -.L3253: +.L3387: ldr x0, [x24,24] add x26, x26, :lo12:.LANCHOR4 ldr w1, [x0,4] - ldr x0, [x26,1136] + ldr x0, [x26,1128] str w1, [x0,x28] ldr x0, [x24,24] ldr w1, [x24,40] -.L3316: +.L3453: str w1, [x0,8] -.L3244: +.L3378: add x3, x19, :lo12:.LANCHOR0 ldr x2, [x29,128] add x1, x3, 784 @@ -20741,9 +21800,9 @@ gc_do_copy_back: cmp w0, 3 strb w25, [x1,61] adrp x2, .LANCHOR4 - bne .L3254 + bne .L3388 udiv w0, w27, w0 - ldrh w3, [x3,3350] + ldrh w3, [x3,3348] add x2, x2, :lo12:.LANCHOR4 add w4, w0, w20 add x4, x22, x4, sxtw 1 @@ -20754,47 +21813,47 @@ gc_do_copy_back: orr w3, w3, w23 sub w0, w27, w0 str w3, [x1,40] - ldr x1, [x2,1152] + ldr x1, [x2,1144] uxth w0, w0 add w0, w0, 1 orr w0, w3, w0, lsl 24 str w0, [x1,x4,lsl 2] - b .L3255 -.L3254: + b .L3389 +.L3388: cmp w0, 2 - bne .L3256 - ldrb w6, [x3,3348] + bne .L3390 + ldrb w6, [x3,3258] add x1, x1, 32 - ldrh w0, [x3,3350] - cbnz w6, .L3257 + ldrh w0, [x3,3348] + cbnz w6, .L3391 add w3, w27, w20 add x3, x22, x3, sxtw 1 ldrh w3, [x3,16] madd w0, w3, w0, w23 - b .L3318 -.L3257: + b .L3455 +.L3391: add w3, w20, w27, lsr 1 add x3, x22, x3, sxtw 1 ldrh w3, [x3,16] madd w0, w3, w0, w23 and w3, w27, 1 add w0, w0, w3 -.L3318: +.L3455: orr w0, w0, 33554432 str w0, [x1,8] -.L3256: +.L3390: add x0, x19, :lo12:.LANCHOR0 add x2, x2, :lo12:.LANCHOR4 add x0, x0, 784 add x0, x0, x4, lsl 6 ldr w3, [x0,40] ldrh w1, [x0,48] - ldr x0, [x2,1152] + ldr x0, [x2,1144] str w3, [x0,x1,lsl 2] -.L3255: +.L3389: ldr x0, [x29,120] ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 8, .L3258 + tbz x0, 8, .L3392 add x0, x29, 144 ldr x1, [x29,128] mov w2, w25 @@ -20813,78 +21872,85 @@ gc_do_copy_back: ldr x0, [x5,24] ldr w0, [x0,4] str w0, [sp,8] - adrp x0, .LC277 - add x0, x0, :lo12:.LC277 + adrp x0, .LC289 + add x0, x0, :lo12:.LC289 ldr w5, [x5,40] bl printk -.L3258: +.L3392: add w8, w27, 1 uxth w27, w8 - b .L3243 -.L3319: - add x2, x19, :lo12:.LANCHOR0 - mov w1, 0 - ldrb w0, [x2,3257] + b .L3377 +.L3456: + add x3, x19, :lo12:.LANCHOR0 + ldrb w0, [x3,3257] cmp w0, 3 add x0, x29, 144 - bne .L3302 - ldrb w1, [x2,3272] - cbz w1, .L3261 -.L3264: + bne .L3394 + ldrb w1, [x3,3272] + cbz w1, .L3395 +.L3398: ldr x1, [x29,144] strb wzr, [x1,60] - b .L3262 -.L3261: + b .L3396 +.L3395: cmp w25, 1 mov w2, 9 - beq .L3317 + beq .L3454 cmp w25, 2 - bne .L3264 + bne .L3398 mov w2, 13 -.L3317: +.L3454: ldr x1, [x29,144] strb w2, [x1,60] -.L3262: +.L3396: ldrb w2, [x22,9] add x1, x0, 24 bl sblk_xlc_prog_pages - b .L3265 -.L3302: - ldrb w2, [x22,9] + b .L3399 +.L3394: + ldrb w2, [x3,3258] + cbz w2, .L3438 + ldrb w3, [x3,3259] + mov w2, 0 + cbz w3, .L3438 + bl sblk_3d_mlc_prog_pages + b .L3399 +.L3438: + ldrb w1, [x22,9] ldr w3, [x29,136] - mul w2, w2, w3 - sub w2, w2, #1 - cmp w1, w2 - bge .L3320 - ldr x2, [x0,w1,sxtw 3] - add w1, w1, 1 - ldr x3, [x0,w1,sxtw 3] - uxth w1, w1 + mul w1, w1, w3 + sub w1, w1, #1 + cmp w2, w1 + bge .L3457 + ldr x1, [x0,w2,sxtw 3] + add w2, w2, 1 + ldr x3, [x0,w2,sxtw 3] + uxth w2, w2 ldrb w3, [x3,1] - strb w3, [x2] - b .L3302 -.L3320: - ldr x0, [x0,w2,sxtw 3] + strb w3, [x1] + b .L3438 +.L3457: + ldr x0, [x0,w1,sxtw 3] mov w1, -1 strb w1, [x0] ldrb w1, [x22,9] ldr x0, [x29,144] mul w1, w3, w1 bl sblk_prog_page -.L3265: +.L3399: add x1, x19, :lo12:.LANCHOR0 ldrb w2, [x22,9] ldrb w3, [x1,3272] - cbz w3, .L3267 + cbz w3, .L3402 add w0, w2, w2, lsl 1 and w2, w0, 1023 - b .L3268 -.L3267: - ldrb w1, [x1,3348] + b .L3403 +.L3402: + ldrb w1, [x1,3258] ubfiz w0, w2, 1, 8 cmp w1, wzr csel w2, w0, w2, ne -.L3268: +.L3403: add x19, x19, :lo12:.LANCHOR0 ldr x1, [x19,2864] ldr w0, [x1,52] @@ -20898,12 +21964,12 @@ gc_do_copy_back: ldrb w2, [x22,9] mul w1, w1, w2 cmp w0, w1 - blt .L3269 + blt .L3404 ldr x0, [x19,608] strh wzr, [x0,86] -.L3269: +.L3404: bl gc_write_completed -.L3220: +.L3354: sub sp, x29, #16 ldp x19, x20, [sp,32] ldp x21, x22, [sp,48] @@ -20932,403 +21998,421 @@ zftl_do_gc: ldrh w20, [x1,2844] cmp w26, 1 ldrh w0, [x1,2848] - ldr x24, [x1,608] + ldr x22, [x1,608] add w20, w0, w20 - ldrh w22, [x1,2846] + ldrh w21, [x1,2846] uxth w20, w20 - bne .L3322 - adrp x21, .LANCHOR7 - add x1, x21, :lo12:.LANCHOR7 - ldr w23, [x1,-80] - cbnz w23, .L3323 - ldr w1, [x1,-76] - cbz w1, .L3322 -.L3323: + bne .L3459 + adrp x23, .LANCHOR7 + add x1, x23, :lo12:.LANCHOR7 + ldr w24, [x1,-64] + cbnz w24, .L3460 + ldr w1, [x1,-60] + cbz w1, .L3459 +.L3460: add x1, x19, :lo12:.LANCHOR0 ldrh w2, [x1,3306] cmp w20, w2, lsr 2 - bls .L3322 + bls .L3459 ldrh w1, [x1,2872] cmp w1, w20 - bcs .L3322 - add w23, w23, 20 + bcs .L3459 + add w24, w24, 20 bl timer_get_time - cmp w23, w0 - bcs .L3324 - add x0, x21, :lo12:.LANCHOR7 - str wzr, [x0,-80] -.L3324: - add x19, x21, :lo12:.LANCHOR7 - ldr w20, [x19,-76] + cmp w24, w0 + bcs .L3461 + add x0, x23, :lo12:.LANCHOR7 + str wzr, [x0,-64] +.L3461: + add x19, x23, :lo12:.LANCHOR7 + ldr w20, [x19,-60] bl timer_get_time add w20, w20, 20 cmp w20, w0 - bcs .L3507 - str wzr, [x19,-76] - b .L3507 -.L3322: + bcs .L3648 + str wzr, [x19,-60] + b .L3648 +.L3459: adrp x23, .LANCHOR4 add x1, x23, :lo12:.LANCHOR4 - ldrb w2, [x1,1130] + ldrb w2, [x1,1122] mov w1, 16 cmp w2, 6 - bhi .L3480 - adrp x1, .L3328 - add x1, x1, :lo12:.L3328 + bhi .L3620 + adrp x1, .L3465 + add x1, x1, :lo12:.L3465 ldrh w1, [x1,w2,uxtw #1] - adr x2, .Lrtx3328 + adr x2, .Lrtx3465 add x1, x2, w1, sxth #2 br x1 -.Lrtx3328: +.Lrtx3465: .section .rodata .align 0 .align 2 -.L3328: - .2byte (.L3327 - .Lrtx3328) / 4 - .2byte (.L3329 - .Lrtx3328) / 4 - .2byte (.L3330 - .Lrtx3328) / 4 - .2byte (.L3331 - .Lrtx3328) / 4 - .2byte (.L3332 - .Lrtx3328) / 4 - .2byte (.L3438 - .Lrtx3328) / 4 - .2byte (.L3334 - .Lrtx3328) / 4 +.L3465: + .2byte (.L3464 - .Lrtx3465) / 4 + .2byte (.L3466 - .Lrtx3465) / 4 + .2byte (.L3467 - .Lrtx3465) / 4 + .2byte (.L3468 - .Lrtx3465) / 4 + .2byte (.L3469 - .Lrtx3465) / 4 + .2byte (.L3576 - .Lrtx3465) / 4 + .2byte (.L3471 - .Lrtx3465) / 4 .text -.L3327: - add x21, x19, :lo12:.LANCHOR0 - add w22, w22, w0 - ldrh w1, [x24,80] - uxth w22, w22 - ldrh w0, [x21,2850] - ldrh w25, [x21,2852] - add w25, w25, w0 - mov w0, 65535 - cmp w1, w0 +.L3464: + add w21, w21, w0 + add x0, x19, :lo12:.LANCHOR0 + ldrh w2, [x22,80] + uxth w21, w21 + ldrh w1, [x0,2850] + ldrh w25, [x0,2852] + add w25, w25, w1 + mov w1, 65535 + cmp w2, w1 uxth w25, w25 - beq .L3335 - cbnz w26, .L3336 - ldrh w0, [x21,2872] + beq .L3472 + cbnz w26, .L3473 + ldrh w0, [x0,2872] cmp w20, w0, lsl 1 - bge .L3507 -.L3336: - add x21, x19, :lo12:.LANCHOR0 + bge .L3648 +.L3473: + add x24, x19, :lo12:.LANCHOR0 mov w1, 5 - ldrh w0, [x21,3304] + ldrh w0, [x24,3304] add w0, w0, 1 uxth w0, w0 - strh w0, [x21,3304] + strh w0, [x24,3304] bl zftl_get_gc_node uxth w2, w0 mov w1, 65535 cmp w2, w1 - beq .L3338 + beq .L3475 add x3, x23, :lo12:.LANCHOR4 ubfiz x2, x2, 1, 16 - ldr w1, [x3,1132] + ldr w1, [x3,1124] add w1, w1, 1 - str w1, [x3,1132] - ldr x3, [x21,600] + str w1, [x3,1124] + ldr x3, [x24,600] ldrh w2, [x3,x2] - ldrh w3, [x21,3300] + ldrh w3, [x24,3300] cmp w3, w2 - bcs .L3339 - ldrh w3, [x21,576] + bcs .L3476 + ldrh w3, [x24,576] cmp w1, w3, lsr 4 - bls .L3338 - ldrh w1, [x21,2874] + bls .L3475 + ldrh w1, [x24,2874] cmp w1, w2 - bls .L3338 -.L3339: + bls .L3475 +.L3476: add x2, x19, :lo12:.LANCHOR0 mov w1, 0 ldrb w2, [x2,3273] bl gc_add_sblk - cbz w0, .L3340 + cbz w0, .L3477 add x23, x23, :lo12:.LANCHOR4 mov w0, 1 - str wzr, [x23,1132] - strb w0, [x23,1130] - b .L3507 -.L3338: + str wzr, [x23,1124] + strb w0, [x23,1122] + b .L3648 +.L3475: add x0, x19, :lo12:.LANCHOR0 strh wzr, [x0,3304] -.L3340: - cmp w22, 15 - mov w21, 2 - bls .L3341 - cbz w25, .L3440 +.L3477: + cmp w21, 15 + mov w24, 2 + bls .L3478 + cbz w25, .L3578 add x0, x19, :lo12:.LANCHOR0 - mov w21, 1 + mov w24, 1 ldrh w1, [x0,2854] ldrh w0, [x0,3308] cmp w1, w0 - bls .L3341 -.L3440: - mov w21, 2 -.L3341: + bls .L3478 +.L3578: + mov w24, 2 +.L3478: adrp x0, .LANCHOR2 ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 8, .L3342 + tbz x0, 8, .L3479 add x1, x19, :lo12:.LANCHOR0 mov w3, w20 - mov w4, w22 + mov w4, w21 ldr x0, [x1,608] ldrb w2, [x1,3273] - mov w1, 1850 + mov w1, 1935 ldrh w5, [x0,124] ldrh w6, [x0,120] ldrh w7, [x0,122] - ldrh w0, [x24,80] + ldrh w0, [x22,80] str w0, [sp] - adrp x0, .LC278 - add x0, x0, :lo12:.LC278 + adrp x0, .LC290 + add x0, x0, :lo12:.LC290 bl printk -.L3342: +.L3479: add x19, x19, :lo12:.LANCHOR0 - mov w1, w21 + mov w1, w24 mov w2, 1 ldrb w0, [x19,3273] bl gc_search_src_blk cmp w0, wzr - ble .L3343 -.L3344: + ble .L3480 +.L3481: add x23, x23, :lo12:.LANCHOR4 mov w0, 1 - b .L3510 -.L3343: + b .L3651 +.L3480: ldrb w0, [x19,3273] mov w1, 3 mov w2, 1 bl gc_search_src_blk cmp w0, wzr - bgt .L3344 - b .L3507 -.L3335: + bgt .L3481 + b .L3648 +.L3472: + adrp x27, .LANCHOR2 + ldr w1, [x27,#:lo12:.LANCHOR2] + tbz x1, 8, .L3482 + ldrb w2, [x0,3273] + adrp x0, .LC290 + ldrh w5, [x22,124] + add x0, x0, :lo12:.LC290 + ldrh w6, [x22,120] + mov w1, 1947 + ldrh w7, [x22,122] + mov w3, w20 + str w26, [sp] + mov w4, w21 + bl printk +.L3482: cmp w26, 1 - bne .L3345 + bne .L3483 + add x22, x19, :lo12:.LANCHOR0 bl gc_scan_static_data - ldr x0, [x21,608] + ldr x0, [x22,608] ldrh w0, [x0,122] - cbz w0, .L3346 -.L3347: + cbz w0, .L3484 +.L3485: add x19, x19, :lo12:.LANCHOR0 mov w0, 1 add x23, x23, :lo12:.LANCHOR4 strb w0, [x19,3273] - b .L3510 -.L3346: + b .L3651 +.L3484: bl gc_static_wearleveling - cbnz w0, .L3347 + cbnz w0, .L3485 bl gc_block_vpn_scan - cbz w22, .L3441 + cbz w21, .L3579 cmp w20, w25 - bcs .L3350 - ldrh w0, [x21,3306] - cmp w20, w0, lsl 1 - blt .L3351 -.L3350: + bcs .L3488 + ldrh w0, [x22,3306] + cmp w0, w20 + bhi .L3489 +.L3488: add x0, x19, :lo12:.LANCHOR0 add w1, w20, w25 ldrh w2, [x0,3306] - cmp w1, w2, lsl 1 - blt .L3351 + cmp w1, w2 + blt .L3489 ldrh w1, [x0,2854] ldrh w0, [x0,3308] cmp w1, w0 - bcc .L3441 -.L3351: - add x21, x19, :lo12:.LANCHOR0 - add x27, x23, :lo12:.LANCHOR4 - mov w28, 1 - ldr w1, [x27,1132] - ldrh w0, [x21,576] + bcc .L3579 +.L3489: + add x22, x19, :lo12:.LANCHOR0 + add x28, x23, :lo12:.LANCHOR4 + mov w2, 1 + ldr w1, [x28,1124] + ldrh w0, [x22,576] add w1, w1, 1 - strb w28, [x21,3273] - str w1, [x27,1132] + strb w2, [x22,3273] + str w1, [x28,1124] cmp w1, w0, lsr 5 - bls .L3353 - ldrh w0, [x21,2854] - cmp w0, w22 - bls .L3353 + bls .L3491 + ldrh w0, [x22,2854] + cmp w0, w21 + bls .L3491 mov w1, 5 mov w0, 0 + str x2, [x29,104] bl zftl_get_gc_node uxth w1, w0 mov w0, 65535 cmp w1, w0 - beq .L3441 + beq .L3579 ubfiz x1, x1, 1, 16 - ldr x0, [x21,600] - ldrb w2, [x21,3276] + ldr x0, [x22,600] + ldrb w3, [x22,3276] mov w24, 16 + ldr x2, [x29,104] ldrh w0, [x0,x1] - ldrh w1, [x21,3300] - mul w1, w1, w2 + ldrh w1, [x22,3300] + mul w1, w1, w3 cmp w0, w1 - bgt .L3349 - str wzr, [x27,1132] - mov w0, w28 + bgt .L3487 + str wzr, [x28,1124] + mov w0, w2 mov w1, 2 - b .L3500 -.L3353: + b .L3641 +.L3491: add x0, x19, :lo12:.LANCHOR0 ldrh w2, [x0,2854] ldrh w1, [x0,3308] cmp w2, w1 - bcc .L3356 + bcc .L3494 mov w0, 1 mov w1, 2 mov w2, w0 - b .L3501 -.L3356: + b .L3642 +.L3494: ldrh w24, [x0,2850] - cbnz w24, .L3357 + cbnz w24, .L3495 ldrh w0, [x0,2852] cmp w0, 8 - bls .L3349 -.L3357: + bls .L3487 +.L3495: mov w0, 1 mov w1, w0 -.L3500: +.L3641: mov w2, 4 -.L3501: +.L3642: bl gc_search_src_blk uxth w0, w0 - cbnz w0, .L3344 - b .L3441 -.L3345: - ldrh w0, [x21,2872] + cbnz w0, .L3481 + b .L3579 +.L3483: + add x0, x19, :lo12:.LANCHOR0 + ldrh w0, [x0,2872] cmp w0, w20 - bcc .L3507 -.L3441: + bcc .L3648 +.L3579: mov w24, 16 -.L3349: - add x21, x19, :lo12:.LANCHOR0 - ldr w0, [x21,2884] - cbz w0, .L3358 +.L3487: + add x22, x19, :lo12:.LANCHOR0 + ldr w0, [x22,2884] + cbz w0, .L3496 mov w0, 1 mov w1, 5 - strb w0, [x21,3273] + strb w0, [x22,3273] mov w0, 0 - str wzr, [x21,2884] + str wzr, [x22,2884] bl zftl_get_gc_node uxth w1, w0 mov w2, 65535 cmp w1, w2 - beq .L3359 + beq .L3497 ubfiz x1, x1, 1, 16 - ldr x2, [x21,600] + ldr x2, [x22,600] ldrh w1, [x2,x1] cmp w1, 8 - bhi .L3359 + bhi .L3497 mov w2, 1 mov w1, 0 - str w2, [x21,2884] + str w2, [x22,2884] bl gc_add_sblk - cbnz w0, .L3344 -.L3359: + cbnz w0, .L3481 +.L3497: mov w1, 4 mov w0, 0 bl zftl_get_gc_node uxth w1, w0 mov w2, 65535 cmp w1, w2 - beq .L3360 + beq .L3498 add x3, x19, :lo12:.LANCHOR0 ubfiz x1, x1, 1, 16 ldr x2, [x3,600] ldrh w1, [x2,x1] cmp w1, 4 - bhi .L3360 + bhi .L3498 mov w2, 1 mov w1, 0 str w2, [x3,2884] bl gc_add_sblk - cbnz w0, .L3344 -.L3360: + cbnz w0, .L3481 +.L3498: mov w0, 0 bl zftl_get_gc_node.part.12 uxth w1, w0 mov w2, 65535 cmp w1, w2 - beq .L3358 + beq .L3496 add x2, x19, :lo12:.LANCHOR0 ubfiz x1, x1, 1, 16 ldr x3, [x2,600] ldrh w1, [x3,x1] cmp w1, 4 - bhi .L3358 + bhi .L3496 mov w1, 1 str w1, [x2,2884] mov w2, 0 bl gc_add_sblk - cbnz w0, .L3344 -.L3358: - add x21, x19, :lo12:.LANCHOR0 + cbnz w0, .L3481 +.L3496: + add x22, x19, :lo12:.LANCHOR0 mov w0, 1 - ldr x7, [x21,608] - strb w0, [x21,3273] + ldr x7, [x22,608] + strb w0, [x22,3273] ldrh w5, [x7,124] - cbz w5, .L3361 + cbz w5, .L3499 add x23, x23, :lo12:.LANCHOR4 - strb wzr, [x21,3273] - strb w0, [x23,1130] - adrp x0, .LANCHOR2 - ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 8, .L3362 + strb wzr, [x22,3273] + strb w0, [x23,1122] + ldr w0, [x27,#:lo12:.LANCHOR2] + tbz x0, 8, .L3500 ldrh w6, [x7,120] - adrp x0, .LC279 + adrp x0, .LC291 ldrh w7, [x7,122] - mov w1, 1948 + mov w1, 2037 mov w2, 0 mov w3, w20 - mov w4, w22 - add x0, x0, :lo12:.LC279 + mov w4, w21 + add x0, x0, :lo12:.LC291 bl printk - b .L3362 -.L3361: - ldrh w2, [x21,2872] + b .L3500 +.L3499: + ldrh w2, [x22,2872] cmp w20, w2 - bcs .L3363 - cbz w22, .L3364 - cmp w22, 16 - bls .L3365 - ldrh w2, [x21,2854] - ldrh w1, [x21,3308] + bcs .L3501 + cbz w21, .L3502 + cmp w21, 16 + bls .L3503 + ldrh w2, [x22,2854] + ldrh w1, [x22,3308] cmp w2, w1 - bhi .L3365 + bhi .L3503 mov w1, w0 mov w2, 4 str x5, [x29,104] bl gc_search_src_blk uxth w0, w0 ldr x5, [x29,104] - cbnz w0, .L3366 - ldrb w0, [x21,3273] - b .L3509 -.L3366: + cbnz w0, .L3504 + ldrb w0, [x22,3273] + b .L3650 +.L3504: mov w1, 5 mov w0, w5 bl zftl_get_gc_node uxth w2, w0 mov w1, 65535 cmp w2, w1 - beq .L3435 + beq .L3573 add x3, x23, :lo12:.LANCHOR4 ubfiz x2, x2, 1, 16 - ldr w1, [x3,1132] + ldr w1, [x3,1124] add w1, w1, 1 - str w1, [x3,1132] - ldr x3, [x21,600] + str w1, [x3,1124] + ldr x3, [x22,600] ldrh w2, [x3,x2] - ldrh w3, [x21,3300] + ldrh w3, [x22,3300] cmp w3, w2 - bcs .L3369 - ldrh w3, [x21,576] + bcs .L3507 + ldrh w3, [x22,576] cmp w1, w3, lsr 4 - bls .L3435 - ldrh w1, [x21,2874] + bls .L3573 + ldrh w1, [x22,2874] cmp w1, w2 - bls .L3435 -.L3369: + bls .L3573 +.L3507: add x19, x19, :lo12:.LANCHOR0 mov w1, 0 ldrb w2, [x19,3273] @@ -21336,181 +22420,180 @@ zftl_do_gc: mov w0, 1 str w0, [x19,2884] add x0, x23, :lo12:.LANCHOR4 - str wzr, [x0,1132] - b .L3435 -.L3365: + str wzr, [x0,1124] + b .L3573 +.L3503: mov w0, 1 mov w1, 2 mov w2, w0 bl gc_search_src_blk uxth w0, w0 - cbnz w0, .L3435 + cbnz w0, .L3573 add x19, x19, :lo12:.LANCHOR0 -.L3506: +.L3647: ldrb w0, [x19,3273] mov w1, 3 mov w2, 2 -.L3503: +.L3644: bl gc_search_src_blk uxth w0, w0 - b .L3367 -.L3364: - adrp x0, .LANCHOR2 - strb w22, [x21,3273] - ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 8, .L3371 - adrp x0, .LC279 + b .L3505 +.L3502: + ldr w0, [x27,#:lo12:.LANCHOR2] + strb w21, [x22,3273] + tbz x0, 8, .L3509 + adrp x0, .LC291 ldrh w6, [x7,120] ldrh w7, [x7,122] - add x0, x0, :lo12:.LC279 - mov w1, 1978 - mov w2, w22 + add x0, x0, :lo12:.LC291 + mov w1, 2067 + mov w2, w21 mov w3, w20 - mov w4, w22 - mov w5, w22 + mov w4, w21 + mov w5, w21 bl printk -.L3371: +.L3509: add x19, x19, :lo12:.LANCHOR0 cmp w20, 16 ldrb w0, [x19,3273] - bls .L3372 -.L3509: + bls .L3510 +.L3650: mov w1, 3 mov w2, 4 - b .L3503 -.L3372: + b .L3644 +.L3510: mov w1, 1 mov w2, w1 bl gc_search_src_blk uxth w0, w0 - cbnz w0, .L3435 - b .L3506 -.L3363: + cbnz w0, .L3573 + b .L3647 +.L3501: cmp w26, 1 mov w1, w24 - bne .L3480 + bne .L3620 cmp w20, w2, lsl 1 - bge .L3373 - cmp w25, w22, lsr 1 - bcs .L3374 - ldrh w2, [x21,2854] - ldrh w0, [x21,3308] + bge .L3511 + cmp w25, w21, lsr 1 + bcs .L3512 + ldrh w2, [x22,2854] + ldrh w0, [x22,3308] cmp w2, w0 - bcs .L3374 - ldrh w0, [x21,3306] + bcs .L3512 + ldrh w0, [x22,3306] lsr w0, w0, 2 - strh w0, [x21,2872] - b .L3480 -.L3374: + strh w0, [x22,2872] + b .L3620 +.L3512: mov w1, 5 mov w0, 0 bl zftl_get_gc_node - uxth w21, w0 + uxth w22, w0 mov w1, 65535 - mov w27, w21 - cmp w21, w1 - bne .L3375 -.L3380: - cmp w22, 1 - bhi .L3376 - b .L3377 -.L3375: + mov w27, w22 + cmp w22, w1 + bne .L3513 +.L3518: + cmp w21, 1 + bhi .L3514 + b .L3515 +.L3513: add x26, x23, :lo12:.LANCHOR4 add x2, x19, :lo12:.LANCHOR0 - uxtw x21, w21 - ldr w1, [x26,1132] + uxtw x22, w22 + ldr w1, [x26,1124] ldrh w3, [x2,576] add w1, w1, 1 - str w1, [x26,1132] + str w1, [x26,1124] cmp w1, w3, lsr 4 - bls .L3378 + bls .L3516 ldr x1, [x2,600] - str wzr, [x26,1132] - ldrh w3, [x1,x21,lsl 1] + str wzr, [x26,1124] + ldrh w3, [x1,x22,lsl 1] ldrh w1, [x2,2874] cmp w3, w1 - bcs .L3378 + bcs .L3516 mov w1, 0 mov w2, 1 bl gc_add_sblk - cbz w0, .L3378 + cbz w0, .L3516 mov w0, 1 - strb w0, [x26,1130] - b .L3362 -.L3378: + strb w0, [x26,1122] + b .L3500 +.L3516: add x1, x19, :lo12:.LANCHOR0 ldr x0, [x1,600] - ldrh w2, [x0,x21,lsl 1] + ldrh w2, [x0,x22,lsl 1] ldrh w0, [x1,3300] cmp w2, w0, lsr 1 - bhi .L3379 + bhi .L3517 mov w0, w27 mov w1, 1 mov w2, 0 bl gc_add_sblk - b .L3435 -.L3379: + b .L3573 +.L3517: ldrh w3, [x1,2850] ldrh w0, [x1,2852] add w0, w3, w0 ldrh w3, [x1,3306] cmp w0, w3, lsl 1 - ble .L3380 + ble .L3518 ldrh w0, [x1,2874] cmp w0, w2 - bcc .L3377 - b .L3380 -.L3376: - add x21, x19, :lo12:.LANCHOR0 + bcc .L3515 + b .L3518 +.L3514: + add x22, x19, :lo12:.LANCHOR0 mov w0, 1 - cmp w22, 16 - strb w0, [x21,3273] - bls .L3381 - ldrh w2, [x21,2854] - ldrh w1, [x21,3308] + cmp w21, 16 + strb w0, [x22,3273] + bls .L3519 + ldrh w2, [x22,2854] + ldrh w1, [x22,3308] cmp w2, w1 - bhi .L3381 + bhi .L3519 mov w1, w0 mov w2, 4 bl gc_search_src_blk uxth w0, w0 - cbnz w0, .L3382 - ldrb w0, [x21,3273] + cbnz w0, .L3520 + ldrb w0, [x22,3273] mov w1, 3 mov w2, 4 - b .L3502 -.L3381: + b .L3643 +.L3519: mov w0, 1 mov w1, 2 mov w2, w0 bl gc_search_src_blk uxth w0, w0 - cbnz w0, .L3382 + cbnz w0, .L3520 add x0, x19, :lo12:.LANCHOR0 mov w1, 3 mov w2, 2 ldrb w0, [x0,3273] -.L3502: +.L3643: bl gc_search_src_blk uxth w0, w0 -.L3382: +.L3520: add x19, x19, :lo12:.LANCHOR0 cmp w20, w25, lsr 1 ldrh w1, [x19,3306] - bls .L3504 + bls .L3645 lsr w1, w1, 2 - b .L3505 -.L3377: + b .L3646 +.L3515: cmp w20, w25 add x19, x19, :lo12:.LANCHOR0 - bcs .L3384 + bcs .L3522 mov w0, 4 strb wzr, [x19,3273] bl zftl_get_gc_node.part.12 uxth w0, w0 mov w1, 65535 cmp w0, w1 - beq .L3384 + beq .L3522 ubfiz x0, x0, 1, 16 ldr x1, [x19,600] ldrb w2, [x19,3276] @@ -21518,134 +22601,134 @@ zftl_do_gc: ldrh w0, [x19,3300] mul w0, w0, w2 cmp w1, w0, lsr 1 - bgt .L3384 + bgt .L3522 mov w1, 3 mov w0, 0 mov w2, 4 bl gc_search_src_blk uxth w0, w0 ldrh w1, [x19,3306] -.L3504: +.L3645: lsr w1, w1, 1 -.L3505: +.L3646: strh w1, [x19,2872] - b .L3367 -.L3384: + b .L3505 +.L3522: ldrh w0, [x19,3306] lsr w0, w0, 2 strh w0, [x19,2872] - b .L3362 -.L3373: - ldrh w0, [x21,3306] + b .L3500 +.L3511: + ldrh w0, [x22,3306] mov w24, w5 lsr w0, w0, 2 - strh w0, [x21,2872] - b .L3362 -.L3367: + strh w0, [x22,2872] + b .L3500 +.L3505: mov w1, w24 - cbz w0, .L3480 -.L3435: + cbz w0, .L3620 +.L3573: add x23, x23, :lo12:.LANCHOR4 mov w0, 1 - strb w0, [x23,1130] - b .L3362 -.L3329: + strb w0, [x23,1122] + b .L3500 +.L3466: add x20, x19, :lo12:.LANCHOR0 mov w0, 65535 ldrh w1, [x20,2896] cmp w1, w0 - bne .L3387 + bne .L3525 bl gc_get_src_blk strh w0, [x20,2896] -.L3387: +.L3525: add x0, x19, :lo12:.LANCHOR0 mov w2, 65535 add x1, x0, 2896 ldrh w3, [x0,2896] cmp w3, w2 - beq .L3508 + beq .L3649 ldrh w5, [x1,56] uxtw x4, w3 ldr x2, [x0,584] add x2, x2, x4, lsl 2 - cbz w5, .L3390 + cbz w5, .L3528 mov x0, 0 -.L3389: +.L3527: cmp w5, w0, uxth - bls .L3390 + bls .L3528 add x0, x0, 1 add x6, x1, x0, lsl 1 ldrh w6, [x6,56] cmp w6, w3 - bne .L3389 -.L3395: + bne .L3527 +.L3533: add x19, x19, :lo12:.LANCHOR0 mov w0, -1 strh w0, [x19,2896] - b .L3507 -.L3390: + b .L3648 +.L3528: ldrb w0, [x2,2] tst w0, 192 - beq .L3448 + beq .L3586 and w0, w0, 224 cmp w0, 224 - bne .L3392 -.L3448: + bne .L3530 +.L3586: add x0, x19, :lo12:.LANCHOR0 ldr x0, [x0,600] ldrh w0, [x0,x4,lsl 1] - cbz w0, .L3395 + cbz w0, .L3533 adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 - mov w2, 2211 - add x1, x1, 800 + mov w2, 2300 + add x1, x1, 832 add x0, x0, :lo12:.LC0 bl printk bl dump_stack - b .L3395 -.L3392: + b .L3533 +.L3530: add x23, x23, :lo12:.LANCHOR4 mov w0, 2 - b .L3510 -.L3330: + b .L3651 +.L3467: bl gc_scan_src_blk cmn w0, #1 - bne .L3396 + bne .L3534 add x23, x23, :lo12:.LANCHOR4 mov w0, 3 -.L3510: - strb w0, [x23,1130] - b .L3507 -.L3396: +.L3651: + strb w0, [x23,1122] + b .L3648 +.L3534: add x1, x19, :lo12:.LANCHOR0 mov w3, 65535 ldrh w0, [x1,2896] cmp w0, w3 - beq .L3344 + beq .L3481 ldrh w3, [x1,2920] add x23, x23, :lo12:.LANCHOR4 - cbz w3, .L3397 + cbz w3, .L3535 mov w0, 4 strh wzr, [x1,2922] - strb w0, [x23,1130] - b .L3507 -.L3397: + strb w0, [x23,1122] + b .L3648 +.L3535: ubfiz x0, x0, 1, 16 ldr x1, [x1,600] mov w2, 1 - strb w2, [x23,1130] + strb w2, [x23,1122] ldrh w0, [x1,x0] - cbz w0, .L3398 + cbz w0, .L3536 adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 - mov w2, 2239 - add x1, x1, 800 + mov w2, 2328 + add x1, x1, 832 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L3398: +.L3536: add x20, x19, :lo12:.LANCHOR0 add x21, x20, 2896 ldrh w0, [x20,2896] @@ -21657,100 +22740,100 @@ zftl_do_gc: add w0, w0, 1 uxth w0, w0 cmp w0, 8 - bhi .L3399 + bhi .L3537 strh w0, [x21,30] - b .L3395 -.L3399: + b .L3533 +.L3537: strh wzr, [x21,30] bl ftl_flush bl pm_flush bl ftl_ext_info_flush mov w0, 0 bl ftl_info_flush - b .L3395 -.L3331: + b .L3533 +.L3468: add x21, x19, :lo12:.LANCHOR0 -.L3481: +.L3621: bl gc_scan_src_blk_one_page ldrh w2, [x21,2898] add x0, x21, 2896 ldrh w1, [x21,3300] cmp w2, w1 - bcs .L3401 + bcs .L3539 cmp w20, 7 - bls .L3481 - b .L3507 -.L3401: + bls .L3621 + b .L3648 +.L3539: ldrh w3, [x0,24] adrp x2, .LANCHOR2 - cbz w3, .L3402 + cbz w3, .L3540 add x23, x23, :lo12:.LANCHOR4 mov w1, 4 strh wzr, [x0,26] - strb w1, [x23,1130] + strb w1, [x23,1122] ldr w1, [x2,#:lo12:.LANCHOR2] - tbz x1, 8, .L3403 + tbz x1, 8, .L3541 ldrh w1, [x0] - adrp x0, .LC280 + adrp x0, .LC292 ldr x4, [x21,600] - add x0, x0, :lo12:.LC280 + add x0, x0, :lo12:.LC292 ubfiz x2, x1, 1, 16 ldrh w2, [x4,x2] bl printk -.L3403: +.L3541: add x0, x19, :lo12:.LANCHOR0 ldrh w2, [x0,2896] ldr x1, [x0,600] ldrh w0, [x0,2920] ldrh w1, [x1,x2,lsl 1] cmp w1, w0 - beq .L3404 + beq .L3542 adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 - mov w2, 2273 - add x1, x1, 800 + mov w2, 2362 + add x1, x1, 832 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L3404: +.L3542: add x19, x19, :lo12:.LANCHOR0 ldrh w1, [x19,2896] ldr x0, [x19,600] ldrh w2, [x19,2920] strh w2, [x0,x1,lsl 1] - b .L3507 -.L3402: + b .L3648 +.L3540: add x23, x23, :lo12:.LANCHOR4 ldrh w1, [x0] mov w0, 1 ldr x20, [x21,584] add x20, x20, x1, uxth 2 - strb w0, [x23,1130] + strb w0, [x23,1122] ldr w0, [x2,#:lo12:.LANCHOR2] - tbz x0, 8, .L3405 + tbz x0, 8, .L3543 ldrb w2, [x20,2] - adrp x0, .LC281 - add x0, x0, :lo12:.LC281 + adrp x0, .LC293 + add x0, x0, :lo12:.LC293 ubfx x2, x2, 5, 3 bl printk -.L3405: +.L3543: ldrb w0, [x20,2] tst w0, 192 - beq .L3449 + beq .L3587 and w0, w0, 224 cmp w0, 224 - bne .L3406 -.L3449: + bne .L3544 +.L3587: adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 - mov w2, 2283 - add x1, x1, 800 + mov w2, 2372 + add x1, x1, 832 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L3406: +.L3544: add x19, x19, :lo12:.LANCHOR0 add x20, x19, 2896 ldrh w0, [x19,2896] @@ -21761,90 +22844,90 @@ zftl_do_gc: add w0, w0, 1 uxth w0, w0 cmp w0, 8 - bhi .L3408 + bhi .L3546 strh w0, [x20,30] - b .L3507 -.L3408: + b .L3648 +.L3546: strh wzr, [x20,30] - b .L3511 -.L3332: - cbnz w26, .L3409 + b .L3652 +.L3469: + cbnz w26, .L3547 add x0, x19, :lo12:.LANCHOR0 ldrh w0, [x0,2872] cmp w0, w20 - bcc .L3507 -.L3409: - ldrh w1, [x24,80] + bcc .L3648 +.L3547: + ldrh w1, [x22,80] mov w0, 65535 cmp w1, w0 - bne .L3410 - add x22, x19, :lo12:.LANCHOR0 - ldrb w21, [x22,3273] + bne .L3548 + add x24, x19, :lo12:.LANCHOR0 + ldrb w21, [x24,3273] cmp w21, 1 - bne .L3410 + bne .L3548 bl ftl_flush - ldrh w0, [x22,3214] - cbz w0, .L3411 + ldrh w0, [x24,3214] + cbz w0, .L3549 mov w0, w21 -.L3411: +.L3549: mov w1, 5 bl zftl_gc_get_free_sblk uxth w20, w0 mov w0, 65535 cmp w20, w0 - beq .L3413 + beq .L3551 add x0, x19, :lo12:.LANCHOR0 ldr x21, [x0,584] add x21, x21, x20, uxth 2 ldrb w0, [x21,2] tst w0, 224 - beq .L3414 + beq .L3552 adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 - mov w2, 2312 - add x1, x1, 800 + mov w2, 2401 + add x1, x1, 832 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L3414: +.L3552: ldrb w0, [x21,2] mov w1, 5 bfi w0, w1, 5, 3 orr w0, w0, 16 strb w0, [x21,2] -.L3436: +.L3574: mov w0, w20 mov w1, 1 add x19, x19, :lo12:.LANCHOR0 add x23, x23, :lo12:.LANCHOR4 bl ftl_erase_sblk mov w0, 5 - add x1, x24, 96 - strb w0, [x24,84] + add x1, x22, 96 + strb w0, [x22,84] mov w0, w20 bl ftl_get_blk_list_in_sblk uxtb w0, w0 ldrh w1, [x19,3300] - strb w0, [x24,89] + strb w0, [x22,89] ldrb w2, [x19,3276] mul w0, w0, w1 - strh w0, [x24,86] + strh w0, [x22,86] mov w1, 255 ldrh w0, [x19,3274] - strh w20, [x24,80] - strh wzr, [x24,82] + strh w20, [x22,80] + strh wzr, [x22,82] mul w2, w0, w2 - ldr x0, [x23,1136] - strb wzr, [x24,85] + ldr x0, [x23,1128] + strb wzr, [x22,85] lsl w2, w2, 2 - strh wzr, [x24,90] + strh wzr, [x22,90] bl ftl_memset ldrh w0, [x19,3274] mov w1, 255 ldrb w2, [x19,3276] mul w2, w0, w2 - ldr x0, [x23,1144] + ldr x0, [x23,1136] lsl w2, w2, 2 bl ftl_memset ldrh w3, [x19,3274] @@ -21870,77 +22953,77 @@ zftl_do_gc: strh wzr, [x19,3212] strh wzr, [x19,3216] bl ftl_info_flush - b .L3507 -.L3410: + b .L3648 +.L3548: cmp w26, 1 mov w21, 4 csinc w21, w21, wzr, eq cmp w20, 15 add w0, w21, 4 - add x22, x19, :lo12:.LANCHOR0 + add x24, x19, :lo12:.LANCHOR0 csel w21, w0, w21, ls -.L3417: +.L3555: sub w21, w21, #1 uxtb w21, w21 cmp w21, 255 - beq .L3507 + beq .L3648 bl gc_do_copy_back - ldrb w0, [x22,3273] - cbnz w0, .L3418 - ldrb w0, [x22,2834] + ldrb w0, [x24,3273] + cbnz w0, .L3556 + ldrb w0, [x24,2834] cmp w0, 3 - bhi .L3419 + bhi .L3557 bl ftl_write_commit -.L3419: - ldrh w1, [x22,2922] - ldrh w0, [x22,2920] +.L3557: + ldrh w1, [x24,2922] + ldrh w0, [x24,2920] cmp w1, w0 - bcc .L3417 + bcc .L3555 add x23, x23, :lo12:.LANCHOR4 mov w0, 1 - strb w0, [x23,1130] + strb w0, [x23,1122] bl ftl_write_commit bl ftl_flush - ldrh w1, [x22,2896] - ldr x0, [x22,600] + ldrh w1, [x24,2896] + ldr x0, [x24,600] ldrh w0, [x0,x1,lsl 1] - cbz w0, .L3421 + cbz w0, .L3559 adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 - mov w2, 2387 - add x1, x1, 800 + mov w2, 2476 + add x1, x1, 832 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L3421: +.L3559: add x1, x19, :lo12:.LANCHOR0 ldrh w0, [x1,2896] ldr x3, [x1,600] ubfiz x2, x0, 1, 16 ldrh w4, [x3,x2] - cbnz w4, .L3422 + cbnz w4, .L3560 strh w4, [x3,x2] ldrh w0, [x1,2896] bl ftl_free_sblk - b .L3395 -.L3422: + b .L3533 +.L3560: mov w1, 0 mov w2, 1 bl gc_add_sblk - b .L3395 -.L3418: - add x20, x22, 2896 + b .L3533 +.L3556: + add x20, x24, 2896 ldrh w0, [x20,320] - cbz w0, .L3423 + cbz w0, .L3561 strh wzr, [x20,320] bl sblk_wait_write_queue_completed bl gc_write_completed ldr w0, [x20,324] cmn w0, #1 - beq .L3424 + beq .L3562 bl ftl_mask_bad_block -.L3424: +.L3562: add x20, x19, :lo12:.LANCHOR0 ldr x0, [x20,608] str wzr, [x20,3220] @@ -21954,9 +23037,9 @@ zftl_do_gc: strh w0, [x2,126] strh w0, [x1,130] ldr x0, [x20,2904] - cbz x0, .L3425 + cbz x0, .L3563 bl buf_free -.L3425: +.L3563: add x19, x19, :lo12:.LANCHOR0 add x23, x23, :lo12:.LANCHOR4 str xzr, [x19,2904] @@ -21964,24 +23047,24 @@ zftl_do_gc: adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 - mov w2, 2425 - add x1, x1, 800 + mov w2, 2514 + add x1, x1, 832 add x0, x0, :lo12:.LC0 - strb wzr, [x23,1130] + strb wzr, [x23,1122] bl printk bl dump_stack - b .L3507 -.L3423: - ldrh w0, [x24,86] + b .L3648 +.L3561: + ldrh w0, [x22,86] cmp w0, 1 - bls .L3426 + bls .L3564 ldrh w1, [x20,26] ldrh w0, [x20,24] cmp w1, w0 - bcc .L3417 + bcc .L3555 add x23, x23, :lo12:.LANCHOR4 mov w0, 1 - strb w0, [x23,1130] + strb w0, [x23,1122] ldrh w0, [x20,56] add w1, w0, 1 add x0, x20, x0, sxtw 1 @@ -21990,15 +23073,15 @@ zftl_do_gc: strh w1, [x0,58] mov w0, -1 strh w0, [x20] - b .L3507 -.L3426: + b .L3648 +.L3564: add x23, x23, :lo12:.LANCHOR4 mov w0, 5 ldrh w1, [x20,26] - strb w0, [x23,1130] + strb w0, [x23,1122] ldrh w0, [x20,24] cmp w1, w0 - bcc .L3427 + bcc .L3565 ldrh w0, [x20,56] add w1, w0, 1 add x0, x20, x0, sxtw 1 @@ -22007,13 +23090,13 @@ zftl_do_gc: strh w1, [x0,58] mov w0, -1 strh w0, [x20] -.L3427: +.L3565: add x20, x19, :lo12:.LANCHOR0 bl ftl_flush bl sblk_wait_write_queue_completed bl gc_write_completed ldr x0, [x20,608] - ldrh w1, [x24,80] + ldrh w1, [x22,80] strh w1, [x0,128] bl pm_flush bl ftl_ext_info_flush @@ -22023,23 +23106,23 @@ zftl_do_gc: strh w1, [x20,2914] cmp w2, 2 strh w2, [x20,2916] - bne .L3429 + bne .L3567 lsl w1, w1, 1 strh w1, [x20,2914] - ldrb w1, [x20,3348] - cbnz w1, .L3429 + ldrb w1, [x20,3258] + cbnz w1, .L3567 mov w1, 1 strh w1, [x20,2916] -.L3429: +.L3567: add x19, x19, :lo12:.LANCHOR0 strh wzr, [x19,2918] - b .L3507 -.L3438: + b .L3648 +.L3576: mov w21, 0 add x24, x19, :lo12:.LANCHOR0 -.L3333: +.L3470: bl gc_check_data_one_wl - cbz w0, .L3432 + cbz w0, .L3570 add x19, x19, :lo12:.LANCHOR0 add x23, x23, :lo12:.LANCHOR4 ldr x0, [x19,608] @@ -22055,65 +23138,65 @@ zftl_do_gc: ldr x0, [x19,2904] bl buf_free str xzr, [x19,2904] - strb wzr, [x23,1130] -.L3511: + strb wzr, [x23,1122] +.L3652: bl flt_sys_flush - b .L3507 -.L3432: + b .L3648 +.L3570: ldrh w1, [x24,2912] ldrh w0, [x24,2914] cmp w1, w0 - bcc .L3433 + bcc .L3571 add x23, x23, :lo12:.LANCHOR4 mov w0, 6 - strb w0, [x23,1130] + strb w0, [x23,1122] ldr x0, [x24,2904] bl buf_free str xzr, [x24,2904] - b .L3507 -.L3433: + b .L3648 +.L3571: cmp w20, 15 - bls .L3333 + bls .L3470 cmp w26, 1 - bne .L3507 + bne .L3648 add w21, w21, 1 uxtb w21, w21 cmp w21, 4 - bls .L3333 - b .L3507 -.L3334: + bls .L3470 + b .L3648 +.L3471: bl gc_update_l2p_map_new mov w20, -1 bl gc_free_src_blk add x19, x19, :lo12:.LANCHOR0 bl ftl_flush bl pm_flush - strh w20, [x24,80] + strh w20, [x22,80] bl ftl_ext_info_flush ldr x0, [x19,2864] strh w20, [x0,126] mov w0, 0 bl ftl_info_flush -.L3508: +.L3649: add x23, x23, :lo12:.LANCHOR4 - strb wzr, [x23,1130] -.L3507: + strb wzr, [x23,1122] +.L3648: mov w1, 16 - b .L3480 -.L3362: + b .L3620 +.L3500: mov w1, w24 - b .L3480 -.L3413: + b .L3620 +.L3551: adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 - mov w2, 2318 - add x1, x1, 800 + mov w2, 2407 + add x1, x1, 832 add x0, x0, :lo12:.LC0 bl printk bl dump_stack - b .L3436 -.L3480: + b .L3574 +.L3620: sub sp, x29, #16 mov w0, w1 ldp x19, x20, [sp,32] @@ -22135,37 +23218,38 @@ zftl_write: mov w19, w0 adrp x0, .LANCHOR2 stp x23, x24, [sp,48] - stp x25, x26, [sp,64] - ldr w0, [x0,#:lo12:.LANCHOR2] - mov w23, w2 stp x27, x28, [sp,80] - stp x21, x22, [sp,32] + ldr w0, [x0,#:lo12:.LANCHOR2] mov w28, w1 - mov x25, x3 - tbz x0, 12, .L3513 - adrp x0, .LC282 + stp x21, x22, [sp,32] + stp x25, x26, [sp,64] + mov w23, w2 + mov x24, x3 + tbz x0, 12, .L3654 + adrp x0, .LC294 + ldr w4, [x24] + add x0, x0, :lo12:.LC294 mov w1, w19 - add x0, x0, :lo12:.LC282 mov w2, w28 mov w3, w23 bl printk -.L3513: - cbnz w19, .L3514 +.L3654: + cbnz w19, .L3655 adrp x0, .LANCHOR0+520 mov w19, 24576 ldr w2, [x0,#:lo12:.LANCHOR0+520] - b .L3515 -.L3514: + b .L3656 +.L3655: cmp w19, 3 mov w0, -1 - bhi .L3516 + bhi .L3657 lsl w19, w19, 13 mov w2, 8192 -.L3515: +.L3656: add w1, w28, w23 mov w0, -1 cmp w1, w2 - bhi .L3516 + bhi .L3657 add w28, w19, w28 adrp x19, .LANCHOR0 add x0, x19, :lo12:.LANCHOR0 @@ -22173,33 +23257,33 @@ zftl_write: add w22, w22, w28 add w26, w28, w23 ldrb w0, [x0,2832] - udiv w24, w28, w0 - mov w21, w24 + udiv w25, w28, w0 + mov w21, w25 udiv w22, w22, w0 - sub w20, w22, w24 + sub w20, w22, w25 add w20, w20, 1 -.L3517: - cbz w20, .L3536 +.L3658: + cbz w20, .L3677 mov w0, 0 bl buf_alloc mov x27, x0 - cbnz x0, .L3518 + cbnz x0, .L3659 bl ftl_write_commit - b .L3517 -.L3518: + b .L3658 +.L3659: strb wzr, [x0,57] add x0, x19, :lo12:.LANCHOR0 - cmp w21, w24 + cmp w21, w25 ldrb w4, [x0,2832] cset w0, eq strb w4, [x27,56] cmp w21, w22 - beq .L3520 - cbz w0, .L3521 - b .L3530 -.L3520: - cbz w0, .L3522 -.L3530: + beq .L3661 + cbz w0, .L3662 + b .L3671 +.L3661: + cbz w0, .L3663 +.L3671: udiv w0, w28, w4 msub w0, w0, w4, w28 uxtb w0, w0 @@ -22208,18 +23292,18 @@ zftl_write: uxtb w4, w4 cmp w4, w23 csel w4, w23, w4, hi - b .L3534 -.L3522: + b .L3675 +.L3663: msub w4, w4, w21, w26 -.L3534: +.L3675: strb w4, [x27,56] -.L3521: +.L3662: ldrb w1, [x27,57] sub w20, w20, #1 ldr x0, [x27,8] ldrb w2, [x27,56] add x0, x0, x1, lsl 9 - mov x1, x25 + mov x1, x24 lsl w2, w2, 9 bl ftl_memcpy str w21, [x27,36] @@ -22233,12 +23317,12 @@ zftl_write: mov x0, x27 bl ftl_write_buf ldrb w0, [x27,56] - add x25, x25, x0, lsl 9 - b .L3517 -.L3536: + add x24, x24, x0, lsl 9 + b .L3658 +.L3677: bl ftl_write_commit mov w0, w20 -.L3535: +.L3676: mov w1, 1 bl zftl_do_gc add x1, x19, :lo12:.LANCHOR0 @@ -22246,15 +23330,15 @@ zftl_write: ldrh w0, [x1,2848] add w0, w2, w0 cmp w0, 7 - bgt .L3537 + bgt .L3678 mov w0, 0 - b .L3535 -.L3537: + b .L3676 +.L3678: bl timer_get_time - adrp x1, .LANCHOR7-76 - str w0, [x1,#:lo12:.LANCHOR7-76] + adrp x1, .LANCHOR7-60 + str w0, [x1,#:lo12:.LANCHOR7-60] mov w0, 0 -.L3516: +.L3657: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -22312,23 +23396,23 @@ zftl_discard: stp x27, x28, [sp,80] ldr w1, [x1,520] cmp w2, w1 - bhi .L3541 + bhi .L3682 adrp x23, .LANCHOR7 add w24, w0, 24576 add x0, x23, :lo12:.LANCHOR7 adrp x25, .LANCHOR2 - ldr w1, [x0,-72] + ldr w1, [x0,-56] add w1, w19, w1 - str w1, [x0,-72] + str w1, [x0,-56] ldr w0, [x25,#:lo12:.LANCHOR2] - tbz x0, 12, .L3542 - adrp x0, .LC283 + tbz x0, 12, .L3683 + adrp x0, .LC295 mov w2, w24 - add x0, x0, :lo12:.LC283 + add x0, x0, :lo12:.LC295 mov w3, w19 mov w4, 0 bl printk -.L3542: +.L3683: add x20, x21, :lo12:.LANCHOR0 ldr x0, [x20,2864] ldr w26, [x0,8] @@ -22339,7 +23423,7 @@ zftl_discard: ldrb w22, [x20,2832] udiv w20, w24, w22 msub w27, w20, w22, w24 - cbz w27, .L3543 + cbz w27, .L3684 sub w22, w22, w27 mov w0, w20 cmp w22, w19 @@ -22347,20 +23431,20 @@ zftl_discard: bl lpa_hash_get_ppa str w0, [x29,120] cmn w0, #1 - bne .L3544 + bne .L3685 mov w0, w20 add x1, x29, 120 mov w2, 0 bl pm_log2phys -.L3544: +.L3685: ldr w0, [x29,120] and w28, w22, 65535 cmn w0, #1 - beq .L3546 + beq .L3687 mov w0, 0 bl buf_alloc mov x3, x0 - cbz x0, .L3546 + cbz x0, .L3687 strb w27, [x0,57] ubfiz x27, x27, 9, 25 str w20, [x0,36] @@ -22381,31 +23465,31 @@ zftl_discard: ldr w0, [x1,76] add w0, w0, 1 str w0, [x1,76] -.L3546: +.L3687: add w20, w20, 1 sub w19, w19, w28 -.L3543: - cbz w19, .L3548 +.L3684: + cbz w19, .L3689 bl ftl_flush -.L3548: +.L3689: mov w0, -1 mov w27, 1 str w0, [x29,124] mov w28, 21 -.L3549: +.L3690: add x22, x21, :lo12:.LANCHOR0 ldrb w0, [x22,2832] cmp w19, w0 - bcc .L3588 + bcc .L3729 mov w0, w20 bl lpa_hash_get_ppa str w0, [x29,120] cmn w0, #1 - beq .L3550 + beq .L3691 mov w0, 0 bl buf_alloc mov x3, x0 - cbz x0, .L3552 + cbz x0, .L3693 ldrb w2, [x22,2832] mov w1, 0 str w20, [x0,36] @@ -22420,15 +23504,15 @@ zftl_discard: mov x0, x3 bl ftl_write_buf bl ftl_write_commit - b .L3587 -.L3550: + b .L3728 +.L3691: mov w0, w20 add x1, x29, 120 mov w2, 0 bl pm_log2phys ldr w0, [x29,120] cmn w0, #1 - beq .L3552 + beq .L3693 add x1, x29, 124 mov w2, 1 mov w0, w20 @@ -22443,36 +23527,36 @@ zftl_discard: and w0, w2, w0 udiv w0, w0, w1 bl ftl_vpn_decrement -.L3587: +.L3728: ldr x1, [x22,2864] ldr w0, [x1,76] add w0, w0, 1 str w0, [x1,76] -.L3552: +.L3693: add x0, x21, :lo12:.LANCHOR0 add w20, w20, 1 ldrb w0, [x0,2832] sub w19, w19, w0 - b .L3549 -.L3588: - cbz w19, .L3556 + b .L3690 +.L3729: + cbz w19, .L3697 mov w0, w20 bl lpa_hash_get_ppa str w0, [x29,120] cmn w0, #1 - bne .L3557 + bne .L3698 mov w0, w20 add x1, x29, 120 mov w2, 0 bl pm_log2phys -.L3557: +.L3698: ldr w0, [x29,120] cmn w0, #1 - beq .L3556 + beq .L3697 mov w0, 0 bl buf_alloc mov x22, x0 - cbz x0, .L3556 + cbz x0, .L3697 str w20, [x0,36] strb wzr, [x0,57] strb w19, [x0,56] @@ -22480,16 +23564,16 @@ zftl_discard: add x0, x21, :lo12:.LANCHOR0 ldrb w0, [x0,2832] cmp w19, w0 - bcc .L3559 + bcc .L3700 adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 - mov w2, 1236 - add x1, x1, 816 + mov w2, 1241 + add x1, x1, 848 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L3559: +.L3700: ldr x0, [x22,8] mov w1, 0 lsl w2, w19, 9 @@ -22502,28 +23586,28 @@ zftl_discard: ldr w0, [x1,76] add w0, w0, 1 str w0, [x1,76] -.L3556: +.L3697: add x0, x23, :lo12:.LANCHOR7 mov w4, 0 - ldr w1, [x0,-72] + ldr w1, [x0,-56] cmp w1, 8192 - bls .L3541 + bls .L3682 ldr w0, [x25,#:lo12:.LANCHOR2] - tbz x0, 12, .L3560 - adrp x0, .LC283 + tbz x0, 12, .L3701 + adrp x0, .LC295 mov w2, w24 - add x0, x0, :lo12:.LC283 + add x0, x0, :lo12:.LC295 mov w3, w19 bl printk -.L3560: +.L3701: add x23, x23, :lo12:.LANCHOR7 add x21, x21, :lo12:.LANCHOR0 - str wzr, [x23,-72] + str wzr, [x23,-56] bl flt_sys_flush mov w0, 1 mov w4, 0 str w0, [x21,2884] -.L3541: +.L3682: mov w0, w4 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -22547,36 +23631,35 @@ id_block_prog_msb_ff_data: stp x19, x20, [sp,16] stp x25, x26, [sp,64] stp x27, x28, [sp,80] - adrp x20, .LANCHOR4 uxth w19, w2 - ldr x0, [x0,624] - ldrb w2, [x0,19] - add x0, x20, :lo12:.LANCHOR4 - ldrb w0, [x0,1264] - cbnz w0, .L3589 + ldr x2, [x0,624] + ldrb w0, [x0,782] + ldrb w2, [x2,19] + cbnz w0, .L3730 sub w0, w2, #5 uxtb w0, w0 cmp w0, 2 - bls .L3591 + bls .L3732 cmp w2, 68 - beq .L3591 + beq .L3732 sub w2, w2, #19 and w2, w2, -17 uxtb w2, w2 - cbnz w2, .L3589 -.L3591: - adrp x24, .LC284 + cbnz w2, .L3730 +.L3732: + adrp x24, .LC296 + adrp x20, .LANCHOR4 mov w25, w1 - add x24, x24, :lo12:.LC284 + add x24, x24, :lo12:.LC296 add x20, x20, :lo12:.LANCHOR4 mov w27, 65535 -.L3593: +.L3734: add x28, x21, :lo12:.LANCHOR0 ldr x0, [x28,624] ldrh w0, [x0,10] cmp w0, w19 - bls .L3589 - add x22, x20, 68 + bls .L3730 + add x22, x20, 60 add w26, w19, w25 mov x0, x24 mov w1, w19 @@ -22585,8 +23668,8 @@ id_block_prog_msb_ff_data: bl printk ldrh w0, [x22,w19,sxtw 1] cmp w0, w27 - bne .L3589 - ldr x0, [x20,1192] + bne .L3730 + ldr x0, [x20,1184] mov w1, 255 mov w2, 16384 add w19, w19, 1 @@ -22594,13 +23677,13 @@ id_block_prog_msb_ff_data: uxth w19, w19 ldr x4, [x28,624] mov w0, w23 - ldr x2, [x20,1192] + ldr x2, [x20,1184] mov w1, w26 ldrb w4, [x4,9] mov x3, x2 bl flash_prog_page - b .L3593 -.L3589: + b .L3734 +.L3730: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -22616,56 +23699,58 @@ write_idblock: stp x29, x30, [sp, -224]! add x29, sp, 0 stp x21, x22, [sp,32] - adrp x22, .LANCHOR0 + adrp x21, .LANCHOR0 stp x19, x20, [sp,16] mov w19, w0 - add x0, x22, :lo12:.LANCHOR0 + add x0, x21, :lo12:.LANCHOR0 stp x23, x24, [sp,48] stp x25, x26, [sp,64] stp x27, x28, [sp,80] + adrp x20, .LANCHOR2 mov x25, x1 - str x2, [x29,128] ldr x0, [x0,624] - ldrb w21, [x0,9] - ldrh w20, [x0,10] + str x2, [x29,128] + ldrb w22, [x0,9] + ldrh w26, [x0,10] + add x0, x20, :lo12:.LANCHOR2 + ldrh w24, [x0,34] mov w0, 59392 movk w0, 0x3, lsl 16 bl ftl_malloc mov x23, x0 mov w0, -1 - cbz x23, .L3641 + cbz x23, .L3785 add w19, w19, 511 lsr w19, w19, 9 cmp w19, 8 - bls .L3626 + bls .L3768 cmp w19, 500 - bhi .L3641 - b .L3597 -.L3626: + bhi .L3785 + b .L3738 +.L3768: mov w19, 8 -.L3597: +.L3738: ldr w2, [x25] mov w1, 35899 movk w1, 0xfcdc, lsl 16 mov w0, -1 cmp w2, w1 - bne .L3641 - mul w20, w20, w21 + bne .L3785 + uxth w22, w22 add x3, x25, 253952 - mov w2, 63999 add x3, x3, 2044 + mov w2, 63999 + mul w0, w22, w26 mov w4, 4097 - uxth w0, w20 - str w0, [x29,156] - sub w0, w0, #1 - ldr w1, [x29,156] - add w0, w0, w19 - udiv w0, w0, w1 + uxth w0, w0 + sub w1, w0, #1 + add w1, w1, w19 + udiv w0, w1, w0 str w0, [x29,120] mov w0, 0 -.L3601: +.L3742: ldr w1, [x3] - cbnz w1, .L3598 + cbnz w1, .L3739 ldr w1, [x25,w0,uxtw 2] add w0, w0, 1 cmp w0, w4 @@ -22673,81 +23758,91 @@ write_idblock: csel w0, w0, wzr, cc str w1, [x3],-4 cmp w2, 4096 - bne .L3601 - b .L3600 -.L3598: - adrp x0, .LC285 - add x0, x0, :lo12:.LC285 + bne .L3742 + b .L3741 +.L3739: + adrp x0, .LC297 + add x0, x0, :lo12:.LC297 bl printk -.L3600: +.L3741: + mul w22, w22, w24 ldr x1, [x29,128] - adrp x0, .LC286 - add x0, x0, :lo12:.LC286 mov w2, 4 mov w3, 5 - mov x21, 0 - mov w28, w21 + uxth w0, w22 + str w0, [x29,152] + adrp x0, .LC298 + mov x22, 0 + add x0, x0, :lo12:.LC298 + mov w28, w22 bl rknand_print_hex - adrp x0, .LC287 + adrp x0, .LC299 mov w1, w19 - add x0, x0, :lo12:.LC287 + add x0, x0, :lo12:.LC299 mov w2, w19 bl printk -.L3623: + add x0, x20, :lo12:.LANCHOR2 + str x0, [x29,104] +.L3765: adrp x1, .LANCHOR7 add x1, x1, :lo12:.LANCHOR7 - ldrb w1, [x1,-102] - cbnz w1, .L3602 + ldrb w1, [x1,-82] + cbnz w1, .L3743 ldr x1, [x29,128] - ldr w2, [x29,156] - ldr w1, [x1,x21,lsl 2] + ldr w2, [x29,152] + ldr w1, [x1,x22,lsl 2] mul w20, w1, w2 - cbz w21, .L3603 + cbz w22, .L3744 ldr w2, [x29,120] cmp w2, 1 - bls .L3603 - sub w0, w21, #1 + bls .L3744 + sub w0, w22, #1 ldr x2, [x29,128] ldr w0, [x2,x0,lsl 2] add w0, w0, 1 cmp w1, w0 - bne .L3603 - b .L3604 -.L3602: - add x0, x22, :lo12:.LANCHOR0 + bne .L3744 + b .L3745 +.L3743: + add x0, x21, :lo12:.LANCHOR0 ldr x0, [x0,728] - add x0, x0, x21, uxtw + add x0, x0, x22, uxtw ldrb w20, [x0,32] cmp w20, 255 - beq .L3604 - ldr w0, [x29,156] + beq .L3745 + ldr w0, [x29,152] mul w20, w20, w0 -.L3603: - mov w2, 512 +.L3744: mov w1, 0 + mov w2, 512 mov x0, x23 bl ftl_memset - add x0, x22, :lo12:.LANCHOR0 - ldr x1, [x0,624] - ldrb w26, [x1,9] - ldrh w24, [x1,10] - ldrb w1, [x0,720] - str w1, [x29,116] + add x1, x21, :lo12:.LANCHOR0 + ldr x2, [x1,624] + ldrb w26, [x2,9] + ldrh w27, [x2,10] + ldr x2, [x29,104] + uxth w0, w26 + ldrh w24, [x2,34] + mul w27, w0, w27 + mul w24, w0, w24 + ldrb w0, [x1,720] + uxth w27, w27 + strb wzr, [x1,720] udiv w1, w20, w26 - strb wzr, [x0,720] - mul w24, w26, w24 + str w0, [x29,116] mov w0, 0 uxth w24, w24 bl flash_erase_block - cmp w19, w24 + cmp w19, w27 mov w2, 1 - bls .L3605 + bls .L3746 mov w0, 0 add w1, w20, w24 bl flash_erase_block mov w2, 2 -.L3605: - add x27, x22, :lo12:.LANCHOR0 +.L3746: + add x27, x21, :lo12:.LANCHOR0 ldr x1, [x27,624] ldrh w0, [x1,10] ldrb w1, [x1,12] @@ -22759,42 +23854,49 @@ write_idblock: msub w0, w0, w24, w20 str w0, [x29,124] sub w0, w20, w0 - str w0, [x29,152] + str w0, [x29,156] cmp w20, w0 - bne .L3631 + bne .L3773 ldrb w0, [x27,516] cmp w0, 9 - bne .L3631 - adrp x0, .LANCHOR4 + bne .L3773 + adrp x0, .LANCHOR4+1224 mov w1, 0 - add x0, x0, :lo12:.LANCHOR4 mov w2, 1024 - ldr x3, [x0,1248] + ldr x3, [x0,#:lo12:.LANCHOR4+1224] str x3, [x29,144] mov x0, x3 bl ftl_memset ldr x3, [x29,144] mov w0, 18766 movk w0, 0x464e, lsl 16 - mov w1, 12 - cmp w26, 8 str w0, [x3] - str w1, [x3,4] + mov w0, 12 + str w0, [x3,4] + ldrb w0, [x27,782] str wzr, [x3,12] - ldr x2, [x27,624] - ldrb w0, [x2,29] + strb wzr, [x3,16] + cbz w0, .L3748 + ldr x0, [x27,624] + ldrb w0, [x0,29] strb w0, [x3,16] +.L3748: mov w0, 4 strb w0, [x3,17] - ldrh w0, [x2,10] - ldrb w2, [x2,12] + add x0, x21, :lo12:.LANCHOR0 + cmp w26, 8 + str x3, [x29,144] + ldr x1, [x0,624] + ldrh w0, [x1,10] + ldrb w1, [x1,12] strb wzr, [x3,20] strh wzr, [x3,22] - sdiv w0, w0, w2 - mov w2, 16 + sdiv w0, w0, w1 + mov w1, 16 strh w0, [x3,18] mov w0, 70 - csel w0, w0, w2, hi + csel w0, w0, w1, hi + mov w1, 12 strb w0, [x3,21] add x0, x3, 12 bl js_hash @@ -22802,106 +23904,102 @@ write_idblock: str w0, [x3,8] sub w0, w19, #4 str w0, [x29,144] - b .L3606 -.L3631: + b .L3747 +.L3773: str w19, [x29,144] mov x3, 0 -.L3606: +.L3747: str x25, [x29,136] mov w24, 0 - add x27, x22, :lo12:.LANCHOR0 -.L3608: + add x27, x21, :lo12:.LANCHOR0 +.L3750: ldr w0, [x29,112] cmp w24, w0 - bcs .L3650 + bcs .L3795 ldr w0, [x29,124] - adrp x2, .LANCHOR4 - add x2, x2, :lo12:.LANCHOR4 + ldrb w2, [x27,782] add w4, w24, w0 add x0, x27, 4 ubfx x4, x4, 2, 16 add w1, w4, 1 - ldrb w2, [x2,1264] ldrh w0, [x0,w1,sxtw 1] - cbz w2, .L3610 + cbz w2, .L3752 ldrb w6, [x27,1] lsl w0, w1, 1 cmp w6, wzr csel w0, w0, w1, ne -.L3610: +.L3752: ldrb w1, [x27,516] cmp w1, 9 - beq .L3649 + beq .L3794 sub w0, w0, #1 lsl w0, w0, 2 -.L3649: +.L3794: str w0, [x29,160] mov w0, 61424 str w0, [x29,164] add x0, x27, 4 ldrh w0, [x0,w4,sxtw 1] - cbnz w2, .L3614 + cbnz w2, .L3756 mov w4, w0 - b .L3615 -.L3614: + b .L3757 +.L3756: ldrb w1, [x27,1] lsl w0, w4, 1 cmp w1, wzr csel w4, w0, w4, ne -.L3615: +.L3757: mul w0, w4, w26 - cbnz x3, .L3616 - ldr w1, [x29,152] + cbnz x3, .L3758 + ldr w1, [x29,156] add x2, x29, 160 - str x4, [x29,104] + str x4, [x29,96] add w0, w0, w1 ldr x1, [x29,136] - bl fw_flash_page_prog.constprop.30 - adrp x0, .LANCHOR4 - ldr x4, [x29,104] - add x0, x0, :lo12:.LANCHOR4 - ldrb w0, [x0,1264] - cbnz w0, .L3617 - ldr w1, [x29,152] + bl fw_flash_page_prog.constprop.31 + ldrb w0, [x27,782] + ldr x4, [x29,96] + cbnz w0, .L3759 + ldr w1, [x29,156] add w2, w4, 1 udiv w1, w1, w26 bl id_block_prog_msb_ff_data -.L3617: +.L3759: ldr x0, [x29,136] add x0, x0, 2048 str x0, [x29,136] - b .L3618 -.L3616: - ldr w1, [x29,152] + b .L3760 +.L3758: + ldr w1, [x29,156] add x2, x29, 160 add w0, w0, w1 mov x1, x3 - bl fw_flash_page_prog.constprop.30 -.L3618: + bl fw_flash_page_prog.constprop.31 +.L3760: add w24, w24, 4 mov x3, 0 uxth w24, w24 - b .L3608 -.L3650: - add x0, x22, :lo12:.LANCHOR0 + b .L3750 +.L3795: + add x0, x21, :lo12:.LANCHOR0 ldrb w1, [x29,116] mov x2, x23 strb w1, [x0,720] mov w0, w20 ldr w1, [x29,144] - bl id_block_read_data.constprop.31 + bl id_block_read_data.constprop.32 ldr w0, [x29,144] mov x1, 0 lsl w0, w0, 7 -.L3620: +.L3762: cmp w0, w1 - bls .L3651 + bls .L3796 ldr w3, [x23,x1,lsl 2] add x1, x1, 1 add x2, x25, x1, lsl 2 ldr w2, [x2,-4] cmp w3, w2 - beq .L3620 + beq .L3762 mov x0, x23 mov w1, 0 mov w2, 512 @@ -22909,21 +24007,21 @@ write_idblock: mov w1, w20 mov w0, 0 bl flash_erase_block - b .L3604 -.L3651: + b .L3745 +.L3796: add w28, w28, 1 cmp w28, 5 - bhi .L3624 -.L3604: - add x21, x21, 1 - cmp x21, 4 - bne .L3623 -.L3624: + bhi .L3766 +.L3745: + add x22, x22, 1 + cmp x22, 4 + bne .L3765 +.L3766: mov x0, x23 bl ftl_free cmp w28, wzr csetm w0, eq -.L3641: +.L3785: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -22941,17 +24039,17 @@ CRC_32: mov x5, x0 add x3, x3, :lo12:.LANCHOR2 mov w0, w2 -.L3653: +.L3798: cmp w1, w2 - bls .L3655 + bls .L3800 ldrb w4, [x5,x2] - add x6, x3, 2488 + add x6, x3, 2552 add x2, x2, 1 eor w4, w4, w0, lsr 24 ldr w4, [x6,w4,uxtw 2] eor w0, w4, w0, lsl 8 - b .L3653 -.L3655: + b .L3798 +.L3800: ret .size CRC_32, .-CRC_32 .align 2 @@ -22968,32 +24066,32 @@ write_loader_lba: mov w21, w1 mov x23, x2 adrp x20, .LANCHOR7 - bne .L3657 + bne .L3802 ldr w1, [x2] mov w0, 35899 movk w0, 0xfcdc, lsl 16 cmp w1, w0 - bne .L3657 + bne .L3802 add x22, x20, :lo12:.LANCHOR7 mov w0, 1 - strb w0, [x22,-68] + strb w0, [x22,-52] mov w0, 59392 movk w0, 0x3, lsl 16 bl ftl_malloc - str x0, [x22,-64] + str x0, [x22,-48] mov w2, 59392 mov w1, 0 movk w2, 0x3, lsl 16 bl ftl_memset - str w19, [x22,-56] -.L3657: + str w19, [x22,-40] +.L3802: add x3, x20, :lo12:.LANCHOR7 - ldrb w0, [x3,-68] - cbz w0, .L3656 + ldrb w0, [x3,-52] + cbz w0, .L3801 sub w0, w19, #64 - ldr x22, [x3,-64] + ldr x22, [x3,-48] cmp w0, 499 - bhi .L3659 + bhi .L3804 mov w3, 564 ubfiz x0, x0, 9, 25 sub w3, w3, w19 @@ -23003,29 +24101,29 @@ write_loader_lba: csel w2, w3, w21, ls lsl w2, w2, 9 bl ftl_memcpy - b .L3660 -.L3659: + b .L3805 +.L3804: cmp w19, 563 - bhi .L3670 -.L3660: + bhi .L3815 +.L3805: add x0, x20, :lo12:.LANCHOR7 - ldr w1, [x0,-56] + ldr w1, [x0,-40] cmp w1, w19 - beq .L3668 - strb wzr, [x0,-68] - cbz x22, .L3669 + beq .L3813 + strb wzr, [x0,-52] + cbz x22, .L3814 mov x0, x22 bl ftl_free -.L3669: +.L3814: add x0, x20, :lo12:.LANCHOR7 - str xzr, [x0,-64] -.L3668: + str xzr, [x0,-48] +.L3813: add x20, x20, :lo12:.LANCHOR7 add w19, w19, w21 - str w19, [x20,-56] - b .L3656 -.L3670: - ldr w2, [x3,-56] + str w19, [x20,-40] + b .L3801 +.L3815: + ldr w2, [x3,-40] mov w0, 500 sub w2, w2, #64 cmp w2, 500 @@ -23034,7 +24132,7 @@ write_loader_lba: ldr x0, [x0,#:lo12:.LANCHOR0+624] ldrb w0, [x0,9] cmp w0, 4 - beq .L3671 + beq .L3816 mov w0, 2 str w0, [x29,64] mov w0, 3 @@ -23045,51 +24143,51 @@ write_loader_lba: str w0, [x29,76] mov w0, 6 str w0, [x29,80] - b .L3662 -.L3671: + b .L3807 +.L3816: mov x3, 0 -.L3661: +.L3806: cmp w2, 256 add x0, x29, 64 - bls .L3663 + bls .L3808 lsl w1, w3, 1 str w1, [x0,x3,lsl 2] - b .L3664 -.L3663: + b .L3809 +.L3808: str w3, [x0,x3,lsl 2] -.L3664: +.L3809: add x3, x3, 1 cmp x3, 5 - bne .L3661 -.L3662: + bne .L3806 +.L3807: add x0, x20, :lo12:.LANCHOR7 mov w4, 63999 - ldr x3, [x0,-48] + ldr x3, [x0,-32] add x3, x3, 61440 add x3, x3, 2559 -.L3667: +.L3812: ldrb w0, [x3] - cbz w0, .L3665 + cbz w0, .L3810 add w2, w4, 1 lsl w0, w2, 2 - b .L3666 -.L3665: + b .L3811 +.L3810: sub w4, w4, #1 sub x3, x3, #1 cmp w4, 4096 - bne .L3667 + bne .L3812 lsl w0, w2, 9 -.L3666: +.L3811: mov x1, x22 add x2, x29, 64 add x22, x20, :lo12:.LANCHOR7 bl write_idblock - ldr x0, [x22,-64] - strb wzr, [x22,-68] + ldr x0, [x22,-48] + strb wzr, [x22,-52] bl ftl_free - str xzr, [x22,-64] - b .L3668 -.L3656: + str xzr, [x22,-48] + b .L3813 +.L3801: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldr x23, [sp,48] @@ -23109,19 +24207,19 @@ FtlWrite: cmp w0, 1983 mov w19, w1 mov w20, w2 - bhi .L3681 - cbnz w21, .L3681 + bhi .L3826 + cbnz w21, .L3826 mov w0, w1 mov w1, w2 mov x2, x3 str x3, [x29,56] bl write_loader_lba ldr x3, [x29,56] -.L3681: - adrp x0, .LANCHOR4+1176 +.L3826: + adrp x0, .LANCHOR4+1168 mov w1, w19 mov w2, w20 - ldr x0, [x0,#:lo12:.LANCHOR4+1176] + ldr x0, [x0,#:lo12:.LANCHOR4+1168] ldr x4, [x0,48] mov w0, w21 blr x4 @@ -23144,319 +24242,319 @@ rknand_sys_storage_ioctl: stp x21, x22, [sp,32] mov w19, w1 mov x20, x2 - beq .L3690 + beq .L3835 mov w0, 29187 movk w0, 0x4004, lsl 16 cmp w1, w0 - bhi .L3691 + bhi .L3836 mov w0, 25726 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L3692 + beq .L3837 mov w0, 25726 movk w0, 0x4004, lsl 16 cmp w1, w0 - bhi .L3693 + bhi .L3838 mov w0, 25601 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L3694 + beq .L3839 mov w0, 25601 movk w0, 0x4004, lsl 16 cmp w1, w0 - bhi .L3695 + bhi .L3840 mov w0, 25364 movk w0, 0x4004, lsl 16 cmp w1, w0 - bne .L3752 + bne .L3897 bl rknand_dev_flush - b .L3786 -.L3695: + b .L3931 +.L3840: mov w0, 25602 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L3697 + beq .L3842 mov w0, 25603 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L3698 - b .L3752 -.L3693: + beq .L3843 + b .L3897 +.L3838: mov w0, 27688 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L3699 + beq .L3844 mov w0, 27688 movk w0, 0x4004, lsl 16 cmp w1, w0 - bhi .L3700 + bhi .L3845 mov w0, 25727 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L3701 - b .L3752 -.L3700: + beq .L3846 + b .L3897 +.L3845: mov w0, 27698 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L3699 + beq .L3844 mov w0, 27708 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L3699 - b .L3752 -.L3691: + beq .L3844 + b .L3897 +.L3836: mov w0, 29267 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L3702 + beq .L3847 mov w0, 29267 movk w0, 0x4004, lsl 16 cmp w1, w0 - bhi .L3703 + bhi .L3848 mov w0, 29189 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L3704 + beq .L3849 mov w0, 29189 movk w0, 0x4004, lsl 16 cmp w1, w0 - bcc .L3705 + bcc .L3850 mov w0, 29210 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L3706 + beq .L3851 mov w0, 29266 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L3707 - b .L3752 -.L3703: + beq .L3852 + b .L3897 +.L3848: mov w0, 30225 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L3708 + beq .L3853 mov w0, 30225 movk w0, 0x4004, lsl 16 cmp w1, w0 - bhi .L3709 + bhi .L3854 mov w0, 29268 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L3710 + beq .L3855 mov w0, 30224 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L3711 - b .L3752 -.L3709: + beq .L3856 + b .L3897 +.L3854: mov w0, 30226 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L3711 + beq .L3856 mov w0, 30227 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L3708 - b .L3752 -.L3705: - adrp x0, .LC288 - add x0, x0, :lo12:.LC288 + beq .L3853 + b .L3897 +.L3850: + adrp x0, .LC300 + add x0, x0, :lo12:.LC300 bl printk mov w0, 4096 bl ftl_malloc mov x19, x0 - cbnz x0, .L3712 -.L3717: + cbnz x0, .L3857 +.L3862: mov x0, -12 - b .L3689 -.L3712: + b .L3834 +.L3857: mov x1, x20 mov x2, 512 bl rk_copy_from_user - cbnz x0, .L3793 - adrp x0, .LC290 + cbnz x0, .L3938 + adrp x0, .LC302 ldr w1, [x19] ldr w2, [x19,4] - add x0, x0, :lo12:.LC290 + add x0, x0, :lo12:.LC302 bl printk ldr w0, [x19,4] str w0, [x29,52] cmp w0, 8 - bhi .L3790 + bhi .L3935 bl rknand_device_lock ldr w1, [x29,52] mov x2, x19 ldr w0, [x19] - bl id_block_read_data.constprop.31 + bl id_block_read_data.constprop.32 bl rknand_device_unlock ldr w2, [x29,52] mov x0, x20 mov x1, x19 ubfiz x2, x2, 9, 23 bl rk_copy_to_user - cbz x0, .L3796 - adrp x0, .LC291 - add x0, x0, :lo12:.LC291 -.L3788: + cbz x0, .L3941 + adrp x0, .LC303 + add x0, x0, :lo12:.LC303 +.L3933: bl printk -.L3790: +.L3935: mov x0, x19 -.L3791: +.L3936: bl ftl_free -.L3789: +.L3934: mov x0, -14 - b .L3689 -.L3704: - adrp x0, .LC292 - add x0, x0, :lo12:.LC292 + b .L3834 +.L3849: + adrp x0, .LC304 + add x0, x0, :lo12:.LC304 bl printk mov w0, 4096 bl ftl_malloc mov x19, x0 - cbz x0, .L3717 + cbz x0, .L3862 mov x1, x20 mov x2, 4096 bl rk_copy_from_user - cbnz x0, .L3793 - adrp x0, .LC293 + cbnz x0, .L3938 + adrp x0, .LC305 ldr w1, [x19] ldr w2, [x19,4] - add x0, x0, :lo12:.LC293 + add x0, x0, :lo12:.LC305 bl printk adrp x0, .LANCHOR7 add x22, x0, :lo12:.LANCHOR7 mov x20, x0 - ldr x21, [x22,-48] - cbnz x21, .L3719 + ldr x21, [x22,-32] + cbnz x21, .L3864 mov w0, 260096 bl ftl_malloc - str x0, [x22,-48] - cbz x0, .L3790 + str x0, [x22,-32] + cbz x0, .L3935 mov w1, w21 mov x2, 260096 bl memset -.L3719: +.L3864: ldr w2, [x19,4] cmp w2, 4088 - bhi .L3790 + bhi .L3935 ldr w0, [x19] mov w1, 55296 movk w1, 0x3, lsl 16 cmp w0, w1 - bhi .L3790 + bhi .L3935 add x20, x20, :lo12:.LANCHOR7 uxtw x2, w2 - ldr x1, [x20,-48] + ldr x1, [x20,-32] add x0, x1, x0, uxtw add x1, x19, 8 bl memcpy -.L3796: +.L3941: mov x0, x19 bl ftl_free - b .L3786 -.L3707: - adrp x0, .LC294 - add x0, x0, :lo12:.LC294 + b .L3931 +.L3852: + adrp x0, .LC306 + add x0, x0, :lo12:.LC306 bl printk mov w0, 4096 bl ftl_malloc mov x19, x0 - cbz x0, .L3717 + cbz x0, .L3862 mov x1, x20 mov x2, 28 bl rk_copy_from_user - cbz x0, .L3722 -.L3793: - adrp x0, .LC289 - add x0, x0, :lo12:.LC289 - b .L3788 -.L3722: + cbz x0, .L3867 +.L3938: + adrp x0, .LC301 + add x0, x0, :lo12:.LC301 + b .L3933 +.L3867: ldr w1, [x19] - adrp x0, .LC295 + adrp x0, .LC307 ldr w2, [x19,4] - add x0, x0, :lo12:.LC295 + add x0, x0, :lo12:.LC307 bl printk ldr w1, [x19] mov w0, 59392 movk w0, 0x3, lsl 16 cmp w1, w0 - bhi .L3790 + bhi .L3935 adrp x20, .LANCHOR7 add x20, x20, :lo12:.LANCHOR7 - ldr x0, [x20,-48] - cbz x0, .L3790 + ldr x0, [x20,-32] + cbz x0, .L3935 bl CRC_32 ldr w1, [x19,4] cmp w1, w0 - beq .L3725 + beq .L3870 mov x0, x19 bl ftl_free mov x0, -2 - b .L3689 -.L3725: + b .L3834 +.L3870: bl rknand_device_lock - ldr x1, [x20,-48] + ldr x1, [x20,-32] add x2, x19, 8 ldr w0, [x19] bl write_idblock bl rknand_device_unlock - ldr x0, [x20,-48] + ldr x0, [x20,-32] bl ftl_free - str xzr, [x20,-48] - b .L3796 -.L3706: - adrp x0, .LC296 - add x0, x0, :lo12:.LC296 + str xzr, [x20,-32] + b .L3941 +.L3851: + adrp x0, .LC308 + add x0, x0, :lo12:.LC308 bl printk mov w0, 4096 bl ftl_malloc mov x21, x0 - cbz x0, .L3717 + cbz x0, .L3862 bl ReadFlashInfo mov x0, x20 mov x1, x21 mov x2, 11 - b .L3798 -.L3690: - adrp x0, .LC297 - add x0, x0, :lo12:.LC297 + b .L3943 +.L3835: + adrp x0, .LC309 + add x0, x0, :lo12:.LC309 bl printk bl nand_blk_add_whole_disk mov w0, 4096 bl ftl_malloc mov x21, x0 - cbz x0, .L3717 + cbz x0, .L3862 mov w1, 0 mov w2, 64 bl ftl_memset mov x0, x20 mov x1, x21 mov x2, 64 - b .L3798 -.L3702: - adrp x0, .LC298 - add x0, x0, :lo12:.LC298 + b .L3943 +.L3847: + adrp x0, .LC310 + add x0, x0, :lo12:.LC310 bl printk - adrp x0, .LANCHOR7-40 + adrp x0, .LANCHOR7-24 add x1, x29, 52 mov x2, 4 - ldr x0, [x0,#:lo12:.LANCHOR7-40] + ldr x0, [x0,#:lo12:.LANCHOR7-24] ldr w0, [x0,20] str w0, [x29,52] mov x0, x20 -.L3781: +.L3926: bl rk_copy_to_user - cbnz x0, .L3789 - b .L3786 -.L3710: - adrp x0, .LC299 - add x0, x0, :lo12:.LC299 + cbnz x0, .L3934 + b .L3931 +.L3855: + adrp x0, .LC311 + add x0, x0, :lo12:.LC311 bl printk mov w0, 4096 bl ftl_malloc mov x21, x0 - cbz x0, .L3717 + cbz x0, .L3862 bl rknand_device_lock mov w1, 264 mov w2, 2 @@ -23467,96 +24565,96 @@ rknand_sys_storage_ioctl: mov x0, x20 mov x1, x21 mov x2, 1024 -.L3798: +.L3943: bl rk_copy_to_user mov x19, x0 mov x0, x21 - cbnz x19, .L3791 + cbnz x19, .L3936 bl ftl_free - b .L3716 -.L3694: - adrp x0, .LC300 - add x0, x0, :lo12:.LC300 + b .L3861 +.L3839: + adrp x0, .LC312 + add x0, x0, :lo12:.LC312 bl printk add x0, x29, 56 mov x1, x20 mov x2, 520 bl rk_copy_from_user mov x19, x0 - cbz x0, .L3730 -.L3735: - adrp x0, .LC289 - add x0, x0, :lo12:.LC289 + cbz x0, .L3875 +.L3880: + adrp x0, .LC301 + add x0, x0, :lo12:.LC301 bl printk - b .L3789 -.L3730: + b .L3934 +.L3875: ldr w1, [x29,56] mov w0, 21060 movk w0, 0x4b4d, lsl 16 cmp w1, w0 - beq .L3731 -.L3732: + beq .L3876 +.L3877: mov x19, -1 - b .L3716 -.L3731: + b .L3861 +.L3876: ldr w0, [x29,60] cmp w0, 512 - bhi .L3732 + bhi .L3877 adrp x21, .LANCHOR7 add x0, x29, 56 add x21, x21, :lo12:.LANCHOR7 mov x2, 512 - ldr x1, [x21,-40] + ldr x1, [x21,-24] bl memcpy - ldr w1, [x21,-32] + ldr w1, [x21,-16] mov w0, 5161 movk w0, 0xc059, lsl 16 cmp w1, w0 - beq .L3733 + beq .L3878 add x0, x29, 120 mov w1, w19 mov x2, 128 str w19, [x29,64] str w19, [x29,68] bl memset -.L3733: +.L3878: add x0, x29, 312 mov w1, 0 mov x2, 256 str wzr, [x29,72] bl memset - b .L3795 -.L3697: - adrp x0, .LC301 - add x0, x0, :lo12:.LC301 + b .L3940 +.L3842: + adrp x0, .LC313 + add x0, x0, :lo12:.LC313 bl printk add x0, x29, 56 mov x1, x20 mov x2, 520 bl rk_copy_from_user - cbnz x0, .L3735 + cbnz x0, .L3880 ldr w1, [x29,56] mov w0, 21060 movk w0, 0x4b4d, lsl 16 cmp w1, w0 - bne .L3732 + bne .L3877 ldr w0, [x29,60] cmp w0, 512 - bhi .L3732 + bhi .L3877 adrp x1, .LANCHOR7 mov w2, 5161 add x1, x1, :lo12:.LANCHOR7 movk w2, 0xc059, lsl 16 mov x0, -2 - ldr w3, [x1,-32] + ldr w3, [x1,-16] cmp w3, w2 - bne .L3689 + bne .L3834 ldr w2, [x29,68] mov x0, -3 sub w3, w2, #1 cmp w3, 127 - bhi .L3689 - ldr x19, [x1,-40] + bhi .L3834 + ldr x19, [x1,-24] add x1, x29, 120 add x0, x19, 64 str w2, [x19,12] @@ -23564,144 +24662,144 @@ rknand_sys_storage_ioctl: bl memcpy mov w0, 1 mov x1, x19 - b .L3787 -.L3701: - adrp x0, .LC302 - add x0, x0, :lo12:.LC302 + b .L3932 +.L3846: + adrp x0, .LC314 + add x0, x0, :lo12:.LC314 bl printk add x0, x29, 56 mov x1, x20 mov x2, 520 bl rk_copy_from_user - cbnz x0, .L3735 + cbnz x0, .L3880 ldr w1, [x29,56] mov w0, 17476 movk w0, 0x4253, lsl 16 cmp w1, w0 - bne .L3732 + bne .L3877 ldr w0, [x29,60] cmp w0, 512 - bhi .L3732 + bhi .L3877 adrp x19, .LANCHOR7 add x0, x19, :lo12:.LANCHOR7 - ldr w1, [x0,-28] - cbnz w1, .L3736 -.L3739: + ldr w1, [x0,-12] + cbnz w1, .L3881 +.L3884: mov x0, 0 - b .L3689 -.L3736: - ldr x1, [x0,-24] + b .L3834 +.L3881: + ldr x1, [x0,-8] mov w2, 22867 movk w2, 0x4453, lsl 16 ldr w3, [x1] cmp w3, w2 - beq .L3737 + beq .L3882 mov w2, 22867 movk w2, 0x4453, lsl 16 str w2, [x1] mov w2, 504 - ldr x1, [x0,-24] + ldr x1, [x0,-8] str w2, [x1,4] - ldr x0, [x0,-24] + ldr x0, [x0,-8] str wzr, [x0,8] str wzr, [x0,12] -.L3737: +.L3882: add x20, x19, :lo12:.LANCHOR7 mov w0, 0 - ldr x1, [x20,-24] + ldr x1, [x20,-8] str wzr, [x1,16] bl StorageSysDataStore - ldr x0, [x20,-40] + ldr x0, [x20,-24] mov w1, 21060 movk w1, 0x4b4d, lsl 16 ldr w2, [x0] cmp w2, w1 - beq .L3738 + beq .L3883 mov w1, 21060 movk w1, 0x4b4d, lsl 16 str w1, [x0] mov w1, 504 - ldr x0, [x20,-40] + ldr x0, [x20,-24] str w1, [x0,4] - ldr x0, [x20,-40] + ldr x0, [x20,-24] str wzr, [x0,8] -.L3738: +.L3883: add x19, x19, :lo12:.LANCHOR7 mov w1, 0 mov x2, 128 - ldr x20, [x19,-40] + ldr x20, [x19,-24] add x0, x20, 64 str wzr, [x20,12] bl memset mov w0, 1 mov x1, x20 bl StorageSysDataStore - str wzr, [x19,-28] - str wzr, [x19,-32] - b .L3786 -.L3692: - adrp x0, .LC303 - add x0, x0, :lo12:.LC303 + str wzr, [x19,-12] + str wzr, [x19,-16] + b .L3931 +.L3837: + adrp x0, .LC315 + add x0, x0, :lo12:.LC315 bl printk add x0, x29, 56 mov x1, x20 mov x2, 520 bl rk_copy_from_user - cbnz x0, .L3735 + cbnz x0, .L3880 ldr w2, [x29,56] mov w1, 20037 movk w1, 0x4253, lsl 16 cmp w2, w1 - bne .L3732 + bne .L3877 ldr w1, [x29,60] cmp w1, 512 - bhi .L3732 + bhi .L3877 adrp x19, .LANCHOR7 add x1, x19, :lo12:.LANCHOR7 - ldr w2, [x1,-28] + ldr w2, [x1,-12] cmp w2, 1 - beq .L3739 - ldr x2, [x1,-24] + beq .L3884 + ldr x2, [x1,-8] mov w3, 22867 movk w3, 0x4453, lsl 16 ldr w4, [x2] cmp w4, w3 - beq .L3740 + beq .L3885 mov w3, 22867 movk w3, 0x4453, lsl 16 str w3, [x2] mov w3, 504 - ldr x2, [x1,-24] + ldr x2, [x1,-8] str w3, [x2,4] - ldr x1, [x1,-24] + ldr x1, [x1,-8] str w0, [x1,8] str w0, [x1,12] -.L3740: +.L3885: add x20, x19, :lo12:.LANCHOR7 mov w0, 1 - ldr x1, [x20,-24] + ldr x1, [x20,-8] str w0, [x1,16] mov w0, 0 bl StorageSysDataStore - ldr x0, [x20,-40] + ldr x0, [x20,-24] mov w1, 21060 movk w1, 0x4b4d, lsl 16 ldr w2, [x0] cmp w2, w1 - beq .L3741 + beq .L3886 mov w1, 21060 movk w1, 0x4b4d, lsl 16 str w1, [x0] mov w1, 504 - ldr x0, [x20,-40] + ldr x0, [x20,-24] str w1, [x0,4] - ldr x0, [x20,-40] + ldr x0, [x20,-24] str wzr, [x0,8] -.L3741: +.L3886: add x19, x19, :lo12:.LANCHOR7 mov w1, 0 mov x2, 128 - ldr x20, [x19,-40] + ldr x20, [x19,-24] add x0, x20, 64 str wzr, [x20,12] bl memset @@ -23709,135 +24807,134 @@ rknand_sys_storage_ioctl: mov x1, x20 bl StorageSysDataStore mov w0, 1 - str w0, [x19,-28] - b .L3786 -.L3698: - adrp x0, .LC304 - add x0, x0, :lo12:.LC304 + str w0, [x19,-12] + b .L3931 +.L3843: + adrp x0, .LC316 + add x0, x0, :lo12:.LC316 bl printk add x0, x29, 56 mov x1, x20 mov x2, 520 bl rk_copy_from_user - cbnz x0, .L3735 + cbnz x0, .L3880 ldr w1, [x29,56] mov w0, 20051 movk w0, 0x4144, lsl 16 cmp w1, w0 - bne .L3732 + bne .L3877 ldr w2, [x29,60] cmp w2, 512 - bhi .L3732 + bhi .L3877 adrp x1, .LANCHOR7 add x0, x29, 64 add x1, x1, :lo12:.LANCHOR7 uxtw x2, w2 - sub x1, x1, #16 - b .L3794 -.L3699: + b .L3939 +.L3844: mov w0, 27698 movk w0, 0x4004, lsl 16 cmp w19, w0 - bne .L3742 - adrp x0, .LC305 - add x0, x0, :lo12:.LC305 - b .L3784 -.L3742: + bne .L3887 + adrp x0, .LC317 + add x0, x0, :lo12:.LC317 + b .L3929 +.L3887: mov w0, 27708 movk w0, 0x4004, lsl 16 cmp w19, w0 - bne .L3744 - adrp x0, .LC306 - add x0, x0, :lo12:.LC306 - b .L3784 -.L3744: - adrp x0, .LC307 - add x0, x0, :lo12:.LC307 -.L3784: + bne .L3889 + adrp x0, .LC318 + add x0, x0, :lo12:.LC318 + b .L3929 +.L3889: + adrp x0, .LC319 + add x0, x0, :lo12:.LC319 +.L3929: bl printk add x0, x29, 56 mov x1, x20 mov x2, 520 bl rk_copy_from_user - cbnz x0, .L3735 + cbnz x0, .L3880 ldr w1, [x29,56] mov w0, 17227 movk w0, 0x4c4f, lsl 16 cmp w1, w0 - bne .L3789 + bne .L3934 mov w0, 27708 movk w0, 0x4004, lsl 16 cmp w19, w0 adrp x0, .LANCHOR7 - bne .L3745 + bne .L3890 add x0, x0, :lo12:.LANCHOR7 add x1, x29, 56 mov x2, 16 - ldr x0, [x0,-40] + ldr x0, [x0,-24] ldr w0, [x0,20] str w0, [x29,60] strb w0, [x29,64] mov x0, x20 bl rk_copy_to_user - cbz x0, .L3689 - b .L3789 -.L3745: + cbz x0, .L3834 + b .L3934 +.L3890: add x20, x0, :lo12:.LANCHOR7 - ldr w1, [x20,496] + ldr w1, [x20,512] cmp w1, 10 - bhi .L3789 - ldr x1, [x20,-40] + bhi .L3934 + ldr x1, [x20,-24] ldr w2, [x29,60] ldr w3, [x1,24] cmp w3, w2 - beq .L3746 - cbz w3, .L3746 - adrp x0, .LC308 + beq .L3891 + cbz w3, .L3891 + adrp x0, .LC320 mov w1, w2 - add x0, x0, :lo12:.LC308 + add x0, x0, :lo12:.LC320 bl printk - ldr w0, [x20,496] + ldr w0, [x20,512] add w0, w0, 1 - str w0, [x20,496] - b .L3789 -.L3746: + str w0, [x20,512] + b .L3934 +.L3891: add x0, x0, :lo12:.LANCHOR7 - str wzr, [x0,496] + str wzr, [x0,512] mov w0, 27698 movk w0, 0x4004, lsl 16 cmp w19, w0 - bne .L3747 + bne .L3892 str wzr, [x1,20] str wzr, [x1,24] - b .L3748 -.L3747: + b .L3893 +.L3892: mov w0, 1 str w2, [x1,24] str w0, [x1,20] -.L3748: +.L3893: mov w0, 1 mov x19, -2 bl StorageSysDataStore cmn w0, #1 - bne .L3786 - b .L3716 -.L3711: - adrp x0, .LC309 - add x0, x0, :lo12:.LC309 + bne .L3931 + b .L3861 +.L3856: + adrp x0, .LC321 + add x0, x0, :lo12:.LC321 bl printk add x0, x29, 56 mov x1, x20 mov x2, 520 bl rk_copy_from_user - cbnz x0, .L3735 + cbnz x0, .L3880 ldr w1, [x29,56] mov w0, 17750 movk w0, 0x444e, lsl 16 cmp w1, w0 - bne .L3732 + bne .L3877 ldr w2, [x29,60] cmp w2, 504 - bhi .L3732 + bhi .L3877 mov w0, 30224 adrp x1, .LANCHOR7 movk w0, 0x4004, lsl 16 @@ -23845,72 +24942,72 @@ rknand_sys_storage_ioctl: cmp w19, w0 add x1, x1, :lo12:.LANCHOR7 add x0, x29, 64 - bne .L3749 - ldr x1, [x1,504] - b .L3785 -.L3749: - ldr x1, [x1,512] -.L3785: + bne .L3894 + ldr x1, [x1,520] + b .L3930 +.L3894: + ldr x1, [x1,528] +.L3930: add x1, x1, 8 -.L3794: +.L3939: bl memcpy -.L3795: +.L3940: mov x0, x20 add x1, x29, 56 mov x2, 520 - b .L3781 -.L3708: - adrp x0, .LC310 - add x0, x0, :lo12:.LC310 + b .L3926 +.L3853: + adrp x0, .LC322 + add x0, x0, :lo12:.LC322 bl printk add x0, x29, 56 mov x1, x20 mov x2, 520 bl rk_copy_from_user - cbnz x0, .L3735 + cbnz x0, .L3880 ldr w1, [x29,56] mov w0, 17750 movk w0, 0x444e, lsl 16 cmp w1, w0 - bne .L3732 + bne .L3877 ldr w2, [x29,60] cmp w2, 504 - bhi .L3732 + bhi .L3877 mov w0, 30225 add w2, w2, 8 movk w0, 0x4004, lsl 16 cmp w19, w0 adrp x19, .LANCHOR7 add x19, x19, :lo12:.LANCHOR7 - bne .L3751 - ldr x0, [x19,504] + bne .L3896 + ldr x0, [x19,520] add x1, x29, 56 bl memcpy mov w0, 2 - ldr x1, [x19,504] - b .L3787 -.L3751: - ldr x0, [x19,512] + ldr x1, [x19,520] + b .L3932 +.L3896: + ldr x0, [x19,528] add x1, x29, 56 bl memcpy - ldr x1, [x19,512] + ldr x1, [x19,528] mov w0, 3 -.L3787: +.L3932: bl StorageSysDataStore uxtw x19, w0 - b .L3716 -.L3786: + b .L3861 +.L3931: mov x19, 0 -.L3716: - adrp x0, .LC311 +.L3861: + adrp x0, .LC323 mov x1, x19 - add x0, x0, :lo12:.LC311 + add x0, x0, :lo12:.LC323 bl printk mov x0, x19 - b .L3689 -.L3752: + b .L3834 +.L3897: mov x0, -22 -.L3689: +.L3834: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x29, x30, [sp], 48 @@ -23927,57 +25024,57 @@ rk_ftl_storage_sys_init: add x29, sp, 0 stp x19, x20, [sp,16] adrp x20, .LANCHOR7 + str x21, [sp,32] add x19, x20, :lo12:.LANCHOR7 - stp x21, x22, [sp,32] - ldr x1, [x19,-96] - str w0, [x19,-56] + ldr x1, [x19,-80] + str w0, [x19,-40] add x0, x1, 512 - str x0, [x19,-40] + str x0, [x19,-24] add x0, x1, 1024 - str x1, [x19,-24] - str x0, [x19,504] + str x1, [x19,-8] + str x0, [x19,520] add x1, x1, 1536 - sub x0, x19, #16 - strb wzr, [x19,-68] - str xzr, [x19,-64] + mov x0, x19 + str x1, [x19,528] + strb wzr, [x19,-52] str xzr, [x19,-48] - str x1, [x19,512] + str xzr, [x19,-32] bl ftl_memcpy - ldr x21, [x19,-24] - str wzr, [x19,-32] - str wzr, [x19,496] - ldr w0, [x21,16] - ldr w22, [x21,508] - str w0, [x19,-28] - cbz w22, .L3801 - mov x0, x21 + ldr x0, [x19,-8] + str wzr, [x19,-16] + str wzr, [x19,512] + ldr w1, [x0,16] + ldr w21, [x0,508] + str w1, [x19,-12] + cbz w21, .L3947 mov w1, 508 bl js_hash - cmp w22, w0 - beq .L3801 - adrp x0, .LC312 - str wzr, [x21,16] - add x0, x0, :lo12:.LC312 - str wzr, [x19,-28] - bl printk -.L3801: + cmp w21, w0 + beq .L3947 + ldr x0, [x19,-8] + str wzr, [x19,-12] + str wzr, [x0,16] + adrp x0, .LC324 + add x0, x0, :lo12:.LC324 + bl printk +.L3947: add x0, x20, :lo12:.LANCHOR7 - ldr w1, [x0,-28] - cbz w1, .L3802 + ldr w1, [x0,-12] + cbz w1, .L3949 mov w1, 5161 movk w1, 0xc059, lsl 16 - str w1, [x0,-32] -.L3802: + str w1, [x0,-16] +.L3949: add x20, x20, :lo12:.LANCHOR7 mov w0, 2 - ldr x1, [x20,504] + ldr x1, [x20,520] bl StorageSysDataLoad - ldr x1, [x20,512] + ldr x1, [x20,528] mov w0, 3 bl StorageSysDataLoad bl rknand_sys_storage_init + ldr x21, [sp,32] ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] ldp x29, x30, [sp], 48 ret .size rk_ftl_storage_sys_init, .-rk_ftl_storage_sys_init @@ -24002,55 +25099,55 @@ rk_ftl_vendor_storage_init: bl ftl_malloc add x1, x21, :lo12:.LANCHOR7 mov w19, -12 - str x0, [x1,520] - cbz x0, .L3811 + str x0, [x1,536] + cbz x0, .L3955 mov w23, 0 - adrp x24, .LC313 + adrp x24, .LC325 mov w19, w23 mov w22, w23 - add x24, x24, :lo12:.LC313 -.L3815: + add x24, x24, :lo12:.LC325 +.L3959: add x20, x21, :lo12:.LANCHOR7 lsl w0, w22, 7 mov w1, 128 - ldr x2, [x20,520] + ldr x2, [x20,536] bl FlashBootVendorRead - cbnz w0, .L3812 - ldr x3, [x20,520] + cbnz w0, .L3956 + ldr x3, [x20,536] mov x0, x24 add x2, x3, 61440 ldr w1, [x3] ldr w3, [x3,4] ldr w2, [x2,4092] bl printk - ldr x20, [x20,520] + ldr x20, [x20,536] mov w0, 22084 movk w0, 0x524b, lsl 16 ldr w1, [x20] cmp w1, w0 - bne .L3813 + bne .L3957 ldr w0, [x20,4] cmp w19, w0 - bcs .L3813 + bcs .L3957 add x1, x20, 61440 ldr w1, [x1,4092] cmp w1, w0 csel w23, w23, w22, ne csel w19, w19, w0, ne -.L3813: - cbnz w22, .L3823 +.L3957: + cbnz w22, .L3967 mov w22, 1 - b .L3815 -.L3823: - cbz w19, .L3816 + b .L3959 +.L3967: + cbz w19, .L3960 lsl w0, w23, 7 mov w1, 128 mov x2, x20 bl FlashBootVendorRead mov w19, w0 - cbz w0, .L3811 - b .L3812 -.L3816: + cbz w0, .L3955 + b .L3956 +.L3960: mov x0, x20 mov w1, w19 mov x2, 65536 @@ -24064,14 +25161,14 @@ rk_ftl_vendor_storage_init: mov w0, -1032 strh w19, [x20,12] strh w0, [x20,14] - b .L3811 -.L3812: + b .L3955 +.L3956: add x21, x21, :lo12:.LANCHOR7 mov w19, -1 - ldr x0, [x21,520] + ldr x0, [x21,536] bl kfree - str xzr, [x21,520] -.L3811: + str xzr, [x21,536] +.L3955: mov w0, w19 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -24083,24 +25180,24 @@ rk_ftl_vendor_storage_init: .global rk_ftl_vendor_read .type rk_ftl_vendor_read, %function rk_ftl_vendor_read: - adrp x3, .LANCHOR7+520 + adrp x3, .LANCHOR7+536 stp x29, x30, [sp, -32]! add x29, sp, 0 - ldr x5, [x3,#:lo12:.LANCHOR7+520] + ldr x5, [x3,#:lo12:.LANCHOR7+536] mov w3, -1 str x19, [sp,16] - cbz x5, .L3825 + cbz x5, .L3969 ldrh w3, [x5,10] mov x4, 0 -.L3826: +.L3970: cmp w4, w3 mov w6, w4 - bcs .L3830 + bcs .L3974 add x7, x5, x4, lsl 3 add x4, x4, 1 ldrh w7, [x7,16] cmp w7, w0 - bne .L3826 + bne .L3970 add x6, x5, x6, uxtw 3 ldrh w4, [x6,20] mov x0, x1 @@ -24112,10 +25209,10 @@ rk_ftl_vendor_read: uxtw x2, w19 bl memcpy mov w3, w19 - b .L3825 -.L3830: + b .L3969 +.L3974: mov w3, -1 -.L3825: +.L3969: mov w0, w3 ldr x19, [sp,16] ldp x29, x30, [sp], 32 @@ -24127,10 +25224,10 @@ rk_ftl_vendor_read: rk_ftl_vendor_write: stp x29, x30, [sp, -112]! mov w6, w0 - adrp x0, .LANCHOR7+520 + adrp x0, .LANCHOR7+536 add x29, sp, 0 stp x19, x20, [sp,16] - ldr x19, [x0,#:lo12:.LANCHOR7+520] + ldr x19, [x0,#:lo12:.LANCHOR7+536] stp x25, x26, [sp,64] stp x27, x28, [sp,80] stp x21, x22, [sp,32] @@ -24138,38 +25235,38 @@ rk_ftl_vendor_write: mov w26, w2 mov x28, x1 mov w2, -1 - cbz x19, .L3832 + cbz x19, .L3976 add w20, w26, 63 ldrh w3, [x19,10] ldrh w23, [x19,8] and w20, w20, -64 mov x2, 0 -.L3833: +.L3977: cmp w2, w3 mov w4, w2 - bcs .L3848 + bcs .L3992 add x0, x19, x2, lsl 3 add x2, x2, 1 ldrh w0, [x0,16] cmp w0, w6 - bne .L3833 + bne .L3977 add x21, x19, x4, uxtw 3 ldrh w24, [x21,20] add x5, x19, 1024 add w24, w24, 63 and w24, w24, -64 cmp w26, w24 - bls .L3834 + bls .L3978 ldrh w0, [x19,14] mov w2, -1 cmp w0, w20 - bcc .L3832 + bcc .L3976 ldrh w21, [x21,18] add w22, w3, w2 -.L3835: +.L3979: cmp w4, w22 uxtw x3, w4 - bcs .L3849 + bcs .L3993 add x3, x19, x3, lsl 3 add w25, w4, 1 add x1, x19, x25, uxtw 3 @@ -24192,8 +25289,8 @@ rk_ftl_vendor_write: mov w4, w25 ldr x6, [x29,96] ldr x5, [x29,104] - b .L3835 -.L3849: + b .L3979 +.L3993: add x3, x19, x3, lsl 3 uxth w21, w21 mov x1, x28 @@ -24210,20 +25307,20 @@ rk_ftl_vendor_write: add w24, w24, w0 sub w24, w24, w20 strh w24, [x19,14] - b .L3847 -.L3834: + b .L3991 +.L3978: ldrh w0, [x21,18] mov x1, x28 uxtw x2, w26 add x0, x5, x0 bl memcpy strh w26, [x21,20] - b .L3847 -.L3848: + b .L3991 +.L3992: ldrh w4, [x19,14] mov w2, -1 cmp w4, w20 - bcc .L3832 + bcc .L3976 add x3, x19, x3, uxth 3 strh w6, [x3,16] uxth w20, w20 @@ -24243,7 +25340,7 @@ rk_ftl_vendor_write: ldrh w0, [x19,10] add w0, w0, 1 strh w0, [x19,10] -.L3847: +.L3991: ldr w0, [x19,4] add x1, x19, 61440 mov x2, x19 @@ -24260,7 +25357,7 @@ rk_ftl_vendor_write: lsl w0, w23, 7 bl FlashBootVendorWrite mov w2, 0 -.L3832: +.L3976: mov w0, w2 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -24284,37 +25381,37 @@ rk_ftl_vendor_storage_ioctl: mov x21, x2 bl ftl_malloc mov x19, x0 - cbz x0, .L3851 + cbz x0, .L3995 mov w2, 30209 ldr x1, [x29,56] movk w2, 0x4004, lsl 16 cmp w1, w2 - beq .L3853 + beq .L3997 mov w2, 30210 movk w2, 0x4004, lsl 16 cmp w1, w2 - beq .L3854 - b .L3865 -.L3853: + beq .L3998 + b .L4009 +.L3997: mov x1, x21 mov x2, 8 bl rk_copy_from_user - cbnz x0, .L3865 + cbnz x0, .L4009 ldr w1, [x19] mov w0, 17745 movk w0, 0x5652, lsl 16 cmp w1, w0 - beq .L3856 -.L3857: + beq .L4000 +.L4001: mov x20, -1 - b .L3852 -.L3856: + b .L3996 +.L4000: ldrh w0, [x19,4] add x1, x19, 8 ldrh w2, [x19,6] bl rk_ftl_vendor_read cmn w0, #1 - beq .L3857 + beq .L4001 uxth x2, w0 strh w0, [x19,6] mov x1, x19 @@ -24324,38 +25421,38 @@ rk_ftl_vendor_storage_ioctl: bl rk_copy_to_user cmp x0, xzr csel x20, xzr, x20, eq - b .L3852 -.L3854: + b .L3996 +.L3998: mov x1, x21 mov x2, 8 bl rk_copy_from_user - cbnz x0, .L3865 + cbnz x0, .L4009 ldr w1, [x19] mov w0, 17745 movk w0, 0x5652, lsl 16 cmp w1, w0 - bne .L3857 + bne .L4001 ldrh w3, [x19,6] cmp w3, 4087 - bhi .L3857 + bhi .L4001 add w2, w3, 8 mov x0, x19 mov x1, x21 sxtw x2, w2 bl rk_copy_from_user - cbnz x0, .L3865 + cbnz x0, .L4009 ldrh w0, [x19,4] add x1, x19, 8 ldrh w2, [x19,6] bl rk_ftl_vendor_write sxtw x20, w0 - b .L3852 -.L3865: + b .L3996 +.L4009: mov x20, -14 -.L3852: +.L3996: mov x0, x19 bl kfree -.L3851: +.L3995: mov x0, x20 ldr x21, [sp,32] ldp x19, x20, [sp,16] @@ -24517,6 +25614,7 @@ rk_ftl_vendor_storage_ioctl: .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 @@ -24534,24 +25632,24 @@ rk_ftl_vendor_storage_ioctl: .section .rodata .align 3 .LANCHOR1 = . + 0 - .type __func__.34004, %object - .size __func__.34004, 18 -__func__.34004: + .type __func__.34106, %object + .size __func__.34106, 18 +__func__.34106: .string "_list_remove_node" .zero 6 - .type __func__.34029, %object - .size __func__.34029, 23 -__func__.34029: + .type __func__.34131, %object + .size __func__.34131, 23 +__func__.34131: .string "_list_update_data_list" .zero 1 - .type __func__.19018, %object - .size __func__.19018, 22 -__func__.19018: + .type __func__.19084, %object + .size __func__.19084, 22 +__func__.19084: .string "nand_flash_print_info" .zero 2 - .type __func__.19104, %object - .size __func__.19104, 11 -__func__.19104: + .type __func__.19170, %object + .size __func__.19170, 11 +__func__.19170: .string "nandc_init" .zero 5 .type toshiba_A19ref_value, %object @@ -24713,14 +25811,14 @@ toshiba_ref_value: .byte 8 .byte 12 .byte 112 - .type __func__.18606, %object - .size __func__.18606, 28 -__func__.18606: + .type __func__.18640, %object + .size __func__.18640, 28 +__func__.18640: .string "flash_wait_device_ready_raw" .zero 4 - .type __func__.18659, %object - .size __func__.18659, 22 -__func__.18659: + .type __func__.18704, %object + .size __func__.18704, 22 +__func__.18704: .string "flash_start_page_read" .zero 2 .type toshiba_3D_tlc_value, %object @@ -25141,19 +26239,19 @@ toshiba_3D_slc_value: .byte -56 .byte 56 .zero 5 - .type __func__.18684, %object - .size __func__.18684, 23 -__func__.18684: + .type __func__.18729, %object + .size __func__.18729, 23 +__func__.18729: .string "flash_start_plane_read" .zero 1 - .type __func__.18581, %object - .size __func__.18581, 26 -__func__.18581: + .type __func__.18615, %object + .size __func__.18615, 26 +__func__.18615: .string "flash_erase_duplane_block" .zero 6 - .type __func__.18592, %object - .size __func__.18592, 21 -__func__.18592: + .type __func__.18626, %object + .size __func__.18626, 21 +__func__.18626: .string "flash_erase_block_en" .zero 3 .type random_seed, %object @@ -25287,19 +26385,19 @@ random_seed: .hword 28406 .hword 17598 .hword 28087 - .type __func__.19283, %object - .size __func__.19283, 13 -__func__.19283: + .type __func__.19349, %object + .size __func__.19349, 13 +__func__.19349: .string "buf_add_tail" .zero 3 - .type __func__.19296, %object - .size __func__.19296, 10 -__func__.19296: + .type __func__.19362, %object + .size __func__.19362, 10 +__func__.19362: .string "buf_alloc" .zero 6 - .type __func__.19310, %object - .size __func__.19310, 16 -__func__.19310: + .type __func__.19376, %object + .size __func__.19376, 16 +__func__.19376: .string "buf_remove_free" .type zftl_debug_proc_fops, %object .size zftl_debug_proc_fops, 216 @@ -25313,249 +26411,254 @@ zftl_debug_proc_fops: .zero 8 .xword single_release .zero 104 - .type __func__.33599, %object - .size __func__.33599, 12 -__func__.33599: + .type __func__.33701, %object + .size __func__.33701, 12 +__func__.33701: .string "gc_add_sblk" .zero 4 - .type __func__.33667, %object - .size __func__.33667, 19 -__func__.33667: + .type __func__.33769, %object + .size __func__.33769, 19 +__func__.33769: .string "gc_write_completed" .zero 5 - .type __func__.33718, %object - .size __func__.33718, 16 -__func__.33718: + .type __func__.33820, %object + .size __func__.33820, 16 +__func__.33820: .string "gc_free_src_blk" - .type __func__.34210, %object - .size __func__.34210, 18 -__func__.34210: + .type __func__.34312, %object + .size __func__.34312, 18 +__func__.34312: .string "ftl_alloc_sys_blk" .zero 6 - .type __func__.34220, %object - .size __func__.34220, 17 -__func__.34220: + .type __func__.34322, %object + .size __func__.34322, 17 +__func__.34322: .string "ftl_free_sys_blk" .zero 7 - .type __func__.34324, %object - .size __func__.34324, 23 -__func__.34324: + .type __func__.34433, %object + .size __func__.34433, 23 +__func__.34433: .string "ftl_get_ppa_from_index" .zero 1 - .type __func__.34363, %object - .size __func__.34363, 22 -__func__.34363: + .type __func__.34472, %object + .size __func__.34472, 22 +__func__.34472: .string "ftl_get_new_free_page" .zero 2 - .type __func__.34374, %object - .size __func__.34374, 22 -__func__.34374: + .type __func__.34483, %object + .size __func__.34483, 22 +__func__.34483: .string "ftl_ext_alloc_new_blk" .zero 2 - .type __func__.33381, %object - .size __func__.33381, 14 -__func__.33381: + .type __func__.33455, %object + .size __func__.33455, 14 +__func__.33455: .string "ftl_write_buf" .zero 2 - .type __func__.33425, %object - .size __func__.33425, 18 -__func__.33425: + .type __func__.33499, %object + .size __func__.33499, 18 +__func__.33499: .string "zftl_add_read_buf" .zero 6 - .type __func__.34169, %object - .size __func__.34169, 15 -__func__.34169: + .type __func__.34271, %object + .size __func__.34271, 15 +__func__.34271: .string "ftl_alloc_sblk" .align 3 .LANCHOR3 = . + 0 - .type __func__.34721, %object - .size __func__.34721, 17 -__func__.34721: + .type __func__.34857, %object + .size __func__.34857, 17 +__func__.34857: .string "pm_alloc_new_blk" .zero 7 - .type __func__.34749, %object - .size __func__.34749, 21 -__func__.34749: + .type __func__.34885, %object + .size __func__.34885, 21 +__func__.34885: .string "pm_select_ram_region" .zero 3 - .type __func__.19008, %object - .size __func__.19008, 20 -__func__.19008: + .type __func__.19074, %object + .size __func__.19074, 20 +__func__.19074: .string "flash_die_info_init" .zero 4 - .type __func__.33316, %object - .size __func__.33316, 17 -__func__.33316: + .type __func__.33390, %object + .size __func__.33390, 17 +__func__.33390: .string "lpa_rebuild_hash" .zero 7 - .type __func__.34685, %object - .size __func__.34685, 13 -__func__.34685: + .type __func__.34821, %object + .size __func__.34821, 13 +__func__.34821: .string "pm_free_sblk" .zero 3 - .type __func__.19333, %object - .size __func__.19333, 21 -__func__.19333: + .type __func__.19400, %object + .size __func__.19400, 21 +__func__.19400: .string "flash_info_data_init" .zero 3 - .type __func__.18537, %object - .size __func__.18537, 19 -__func__.18537: + .type __func__.18557, %object + .size __func__.18557, 19 +__func__.18557: .string "flash_read_page_en" .zero 5 - .type __func__.19322, %object - .size __func__.19322, 20 -__func__.19322: - .string "flash_info_blk_init" - .zero 4 - .type __func__.18672, %object - .size __func__.18672, 31 -__func__.18672: + .type __func__.18717, %object + .size __func__.18717, 31 +__func__.18717: .string "flash_complete_plane_page_read" .zero 1 - .type __func__.18697, %object - .size __func__.18697, 25 -__func__.18697: + .type __func__.18742, %object + .size __func__.18742, 25 +__func__.18742: .string "flash_complete_page_read" .zero 7 - .type __func__.34552, %object - .size __func__.34552, 31 -__func__.34552: + .type __func__.34666, %object + .size __func__.34666, 31 +__func__.34666: .string "queue_wait_first_req_completed" .zero 1 - .type __func__.34632, %object - .size __func__.34632, 15 -__func__.34632: + .type __func__.34747, %object + .size __func__.34747, 15 +__func__.34747: .string "sblk_read_page" .zero 1 - .type __func__.18648, %object - .size __func__.18648, 22 -__func__.18648: + .type __func__.18664, %object + .size __func__.18664, 26 +__func__.18664: + .string "flash_start_tlc_page_prog" + .zero 6 + .type __func__.18675, %object + .size __func__.18675, 29 +__func__.18675: + .string "flash_start_3d_mlc_page_prog" + .zero 3 + .type __func__.18693, %object + .size __func__.18693, 22 +__func__.18693: .string "flash_start_page_prog" .zero 2 - .type __func__.34605, %object - .size __func__.34605, 15 -__func__.34605: + .type __func__.34720, %object + .size __func__.34720, 15 +__func__.34720: .string "sblk_prog_page" .zero 1 - .type __func__.18630, %object - .size __func__.18630, 26 -__func__.18630: - .string "flash_start_tlc_page_prog" - .zero 6 - .type __func__.18566, %object - .size __func__.18566, 19 -__func__.18566: + .type __func__.18599, %object + .size __func__.18599, 19 +__func__.18599: .string "flash_prog_page_en" .zero 5 - .type __func__.34435, %object - .size __func__.34435, 14 -__func__.34435: + .type __func__.34544, %object + .size __func__.34544, 14 +__func__.34544: .string "ftl_prog_page" .zero 2 - .type __func__.34137, %object - .size __func__.34137, 15 -__func__.34137: + .type __func__.34239, %object + .size __func__.34239, 15 +__func__.34239: .string "ftl_info_flush" .zero 1 - .type __func__.34399, %object - .size __func__.34399, 19 -__func__.34399: + .type __func__.34508, %object + .size __func__.34508, 19 +__func__.34508: .string "ftl_ext_info_flush" .zero 5 - .type __func__.34411, %object - .size __func__.34411, 18 -__func__.34411: + .type __func__.34520, %object + .size __func__.34520, 18 +__func__.34520: .string "ftl_ext_info_init" .zero 6 - .type __func__.34298, %object - .size __func__.34298, 23 -__func__.34298: + .type __func__.34403, %object + .size __func__.34403, 23 +__func__.34403: .string "ftl_open_sblk_recovery" .zero 1 - .type __func__.34731, %object - .size __func__.34731, 14 -__func__.34731: + .type __func__.34867, %object + .size __func__.34867, 14 +__func__.34867: .string "pm_write_page" .zero 2 - .type __func__.19355, %object - .size __func__.19355, 17 -__func__.19355: + .type __func__.19422, %object + .size __func__.19422, 17 +__func__.19422: .string "flash_info_flush" .zero 7 - .type __func__.19063, %object - .size __func__.19063, 16 -__func__.19063: + .type __func__.19389, %object + .size __func__.19389, 20 +__func__.19389: + .string "flash_info_blk_init" + .zero 4 + .type __func__.19129, %object + .size __func__.19129, 16 +__func__.19129: .string "nand_flash_init" - .type __func__.34279, %object - .size __func__.34279, 16 -__func__.34279: + .type __func__.34381, %object + .size __func__.34381, 16 +__func__.34381: .string "ftl_sysblk_dump" - .type __func__.34671, %object - .size __func__.34671, 16 -__func__.34671: + .type __func__.34807, %object + .size __func__.34807, 16 +__func__.34807: .string "load_l2p_region" - .type __func__.34705, %object - .size __func__.34705, 6 -__func__.34705: + .type __func__.34841, %object + .size __func__.34841, 6 +__func__.34841: .string "pm_gc" .zero 2 - .type __func__.33654, %object - .size __func__.33654, 22 -__func__.33654: + .type __func__.33756, %object + .size __func__.33756, 22 +__func__.33756: .string "gc_update_l2p_map_new" .zero 2 - .type __func__.33762, %object - .size __func__.33762, 16 -__func__.33762: + .type __func__.33864, %object + .size __func__.33864, 16 +__func__.33864: .string "gc_scan_src_blk" - .type __func__.33820, %object - .size __func__.33820, 20 -__func__.33820: + .type __func__.33922, %object + .size __func__.33922, 20 +__func__.33922: .string "gc_scan_static_data" .zero 4 - .type __func__.33883, %object - .size __func__.33883, 18 -__func__.33883: + .type __func__.33985, %object + .size __func__.33985, 18 +__func__.33985: .string "gc_block_vpn_scan" .zero 6 - .type __func__.34255, %object - .size __func__.34255, 14 -__func__.34255: + .type __func__.34357, %object + .size __func__.34357, 14 +__func__.34357: .string "ftl_sblk_dump" .zero 2 - .type __func__.33458, %object - .size __func__.33458, 10 -__func__.33458: + .type __func__.33532, %object + .size __func__.33532, 10 +__func__.33532: .string "zftl_read" .zero 6 - .type __func__.33620, %object - .size __func__.33620, 21 -__func__.33620: + .type __func__.33722, %object + .size __func__.33722, 21 +__func__.33722: .string "gc_check_data_one_wl" .zero 3 - .type __func__.34345, %object - .size __func__.34345, 19 -__func__.34345: + .type __func__.34454, %object + .size __func__.34454, 19 +__func__.34454: .string "ftl_update_l2p_map" .zero 5 - .type __func__.33363, %object - .size __func__.33363, 17 -__func__.33363: + .type __func__.33437, %object + .size __func__.33437, 17 +__func__.33437: .string "ftl_write_commit" .zero 7 - .type __func__.33696, %object - .size __func__.33696, 16 -__func__.33696: + .type __func__.33798, %object + .size __func__.33798, 16 +__func__.33798: .string "gc_do_copy_back" - .type __func__.33911, %object - .size __func__.33911, 11 -__func__.33911: + .type __func__.34013, %object + .size __func__.34013, 11 +__func__.34013: .string "zftl_do_gc" .zero 5 - .type __func__.33489, %object - .size __func__.33489, 13 -__func__.33489: + .type __func__.33563, %object + .size __func__.33563, 13 +__func__.33563: .string "_ftl_discard" .section .rodata.str1.1,"aMS",%progbits,1 .LC0: @@ -25563,7 +26666,7 @@ __func__.33489: .LC1: .string "%s\n" .LC2: - .string "FTL version: 6.0.14 20181108" + .string "FTL version: 6.0.14 20181128" .LC3: .string "zftl_debug:0x%x\n" .LC4: @@ -25639,552 +26742,576 @@ __func__.33489: .LC39: .string "No.%d FLASH ID:%x %x %x %x %x %x\n" .LC40: - .string "bad block test:%x %x\n" + .string "otp:%x %x %x %x\n" .LC41: - .string "flash_erase_duplane_block %x %x %x\n" + .string "bad block test:%x %x\n" .LC42: - .string "flash_erase_duplane_block pageadd = %x status = %x\n" + .string "flash_erase_duplane_block %x %x %x\n" .LC43: - .string "flash_erase_block %x %x %x\n" + .string "flash_erase_duplane_block pageadd = %x status = %x\n" .LC44: - .string "flash_erase_block %d block = %x status = %x\n" + .string "flash_erase_block %x %x %x\n" .LC45: - .string "erase done: %x\n" + .string "flash_erase_block %d block = %x status = %x\n" .LC46: - .string "flash_mask_bad_block %d %d\n" + .string "erase done: %x\n" .LC47: - .string "zftl_debug" + .string "flash_mask_bad_block %d %d\n" .LC48: - .string "FLASH ID: %x %x %x %x %x %x\n" + .string "zftl_debug" .LC49: - .string "density: %d MB\n" + .string "FLASH ID: %x %x %x %x %x %x\n" .LC50: - .string "device density: %d MB\n" + .string "density: %d MB\n" .LC51: - .string "FTL INFO:\n" + .string "device density: %d MB\n" .LC52: - .string "max_lpn = 0x%x\n" + .string "FTL INFO:\n" .LC53: - .string "density = 0x%x\n" + .string "max_lpn = 0x%x\n" .LC54: - .string "slc vpn = 0x%x\n" + .string "density = 0x%x\n" .LC55: - .string "xlc vpn = 0x%x\n" + .string "slc vpn = 0x%x\n" .LC56: - .string "free slc blk = 0x%x\n" + .string "xlc vpn = 0x%x\n" .LC57: - .string "free xlc blk = 0x%x\n" + .string "free slc blk = 0x%x\n" .LC58: - .string "free mix blk = 0x%x\n" + .string "free xlc blk = 0x%x\n" .LC59: - .string "slc data blk = 0x%x\n" + .string "free mix blk = 0x%x\n" .LC60: - .string "slc cache blk = 0x%x\n" + .string "slc data blk = 0x%x\n" .LC61: - .string "xlc data blk = 0x%x\n" + .string "slc cache blk = 0x%x\n" .LC62: - .string "free buf = %d, %d, %d\n" + .string "xlc data blk = 0x%x\n" .LC63: - .string "bad blk = %d %d\n" + .string "free buf = %d, %d, %d\n" .LC64: - .string "TBW = %d MB\n" + .string "bad blk = %d %d\n" .LC65: - .string "TBR = %d MB\n" + .string "TBW = %d MB\n" .LC66: - .string "POC = %d\n" + .string "TBR = %d MB\n" .LC67: - .string "PLC = %d\n" + .string "POC = %d\n" .LC68: - .string "sys run time = %d S\n" + .string "PLC = %d\n" .LC69: - .string "slc mode = %d\n" + .string "sys run time = %d S\n" .LC70: - .string "prog err = %d\n" + .string "slc mode = %d\n" .LC71: - .string "read err = %d\n" + .string "prog err = %d\n" .LC72: - .string "GC XLC page = %d\n" + .string "read err = %d\n" .LC73: - .string "GC SLC page = %d\n" + .string "GC XLC page = %d\n" .LC74: - .string "discard page = 0x%x\n" + .string "GC SLC page = %d\n" .LC75: - .string "version = %d\n" + .string "discard page = 0x%x\n" .LC76: - .string "acblk = 0x%x %d %d\n" + .string "version = %d\n" .LC77: - .string "tmblk = 0x%x %d %d\n" + .string "acblk = 0x%x %d %d\n" .LC78: - .string "gcblk = 0x%x %d %d\n" + .string "tmblk = 0x%x %d %d\n" .LC79: - .string "slc ec = %d, %d, %d, %d, %d\n" + .string "gcblk = 0x%x %d %d\n" .LC80: - .string "xlc ec = %d, %d, %d, %d, %d\n" + .string "slc ec = %d, %d, %d, %d, %d\n" .LC81: - .string "gc free blk th = %d\n" + .string "xlc ec = %d, %d, %d, %d, %d\n" .LC82: - .string "gc vpn th = %d %d %d %d %d\n" + .string "gc free blk th = %d\n" .LC83: - .string "swl blk = %x %x %x %x\n" + .string "gc vpn th = %d %d %d %d %d\n" .LC84: - .string "gc_add_sblk = %d, %d, %d, %d, %d, %d\n" + .string "swl blk = %x %x %x %x\n" .LC85: - .string "gc_add_sblk = %d, %d, %d,last update:%d, %d\n" + .string "rf info = %x %x %x %x %x\n" .LC86: - .string "status: %x, ppa: %x\n" + .string "gc_add_sblk = %d, %d, %d, %d, %d, %d\n" .LC87: - .string "gc_write_completed: %x %x %x %x\n" + .string "gc_add_sblk = %d, %d, %d,last update:%d, %d\n" .LC88: - .string "%d gc_free_temp_buf buf id= %x\n" + .string "status: %x, ppa: %x\n" .LC89: - .string "gc: b:%x,p:%x,i:%x; free buf=%d %d free slc th: %d\n" + .string "gc_write_completed: %x %x %x %x\n" .LC90: - .string "zftl_get_gc_node cache = %x index = %d vpn = %x\n" + .string "%d gc_free_temp_buf buf id= %x\n" .LC91: - .string "gc_search_src_blk mode = %x, src mode = %x, count= %d %d\n" + .string "gc: b:%x,p:%x,i:%x; free buf=%d %d free slc th: %d\n" .LC92: - .string "swl_tlc_free_mini_ec_blk alloc sblk %x\n" + .string "zftl_get_gc_node cache = %x index = %d vpn = %x\n" .LC93: - .string "zftl_get_free_sblk %x %d, %p %d %d\n" + .string "gc_search_src_blk mode = %x, src mode = %x, count= %d %d\n" .LC94: - .string "zftl_gc_get_free_sblk %x %x %x, %d %d %d\n" + .string "swl_tlc_free_mini_ec_blk alloc sblk %x\n" .LC95: - .string "swl_slc_free_mini_ec_blk alloc sblk %x\n" + .string "zftl_get_free_sblk %x %d, %p %d %d\n" .LC96: - .string "list count:%p %d\n" + .string "zftl_gc_get_free_sblk %x %x %x, %d %d %d\n" .LC97: - .string "%d: node:%x %x %x %x, %d %d %d %d %d\n" + .string "swl_slc_free_mini_ec_blk alloc sblk %x\n" .LC98: - .string "swl_tlc_free_mini_ec_blk sblk %x\n" + .string "list count:%p %d\n" .LC99: - .string "swl_slc_free_mini_ec_blk sblk %x\n" + .string "%d: node:%x %x %x %x, %d %d %d %d %d\n" .LC100: - .string "gc_free_src_blk = %x, vpn = %d\n" + .string "swl_tlc_free_mini_ec_blk sblk %x\n" .LC101: - .string "gc_free_src_blk %x, %d\n" + .string "swl_slc_free_mini_ec_blk sblk %x\n" .LC102: - .string "ftl_vpn_decrement %x = %d, %d\n" + .string "gc_free_src_blk = %x, vpn = %d\n" .LC103: - .string "mask bad block:cs %x block: %x\n" + .string "gc_free_src_blk %x, %d\n" .LC104: - .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" + .string "ftl_vpn_decrement %x = %d, %d\n" .LC105: - .string "totle w: %d MB,r: %d MB %d dv:0x%X,poc:%d\n" + .string "mask bad block:cs %x block: %x\n" .LC106: - .string "gc xlc page: %d,gc slc page: %d, tmp w: %d MB\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" .LC107: - .string "slc ec: %d,%d,%d,%d,%d,tlc ec: %d,%d,%d,%d,%d\n" + .string "totle w: %d MB,r: %d MB %d dv:0x%X,poc:%d\n" .LC108: - .string "gc th: tlc_tlc: %d tlc_slc: %d slc_slc: %d slc_tlc:%d free_th: %d\n" + .string "gc xlc page: %d,gc slc page: %d, tmp w: %d MB\n" .LC109: - .string "ftl prog error =%x, lpa = %x, ppa= %x\n" + .string "slc ec: %d,%d,%d,%d,%d,tlc ec: %d,%d,%d,%d,%d\n" .LC110: - .string "alloc sblk %x %d\n" + .string "gc th: tlc_tlc: %d tlc_slc: %d slc_slc: %d slc_tlc:%d free_th: %d\n" .LC111: - .string "dump_sblk_queue: %d\n" + .string "swl : %x %x %x %x\n" .LC112: - .string "buf id= %d state = %d ppa = %x\n" + .string "ftl prog error =%x, lpa = %x, ppa= %x\n" .LC113: - .string "blk %x is bad block\n" + .string "alloc sblk %x %d\n" .LC114: - .string "pm_alloc_new_blk: %x %x %x %x\n" + .string "dump_sblk_queue: %d\n" .LC115: - .string "%s %d %d\n" + .string "buf id= %d state = %d ppa = %x\n" .LC116: - .string "gc_static_wearleveling: min blk: %x,sec=%d,xec = %d ,mode=%d, func=%x, bbt=%x vpn = %d\n" + .string "blk %x is bad block\n" .LC117: - .string "gc_static_wearleveling: min slc blk: %x,sec=%d,xec = %d ,mode=%d, func=%x, bbt=%x vpn = %d\n" + .string "pm_alloc_new_blk: %x %x %x %x\n" .LC118: - .string "gc_static_wearleveling: min tlc blk: %x,sec=%d,xec = %d ,mode=%d, func=%x, bbt=%x vpn = %d\n" + .string "%s %d %d\n" .LC119: - .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 blk: %x,sec=%d,xec = %d ,mode=%d, func=%x, bbt=%x vpn = %d\n" .LC120: - .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 slc blk: %x,sec=%d,xec = %d ,mode=%d, func=%x, bbt=%x vpn = %d\n" .LC121: - .string "gc_static_wearleveling: slc blk: %x, tlc blk: %d avg slc ec: %d, avg tlc ec: %d \n" + .string "gc_static_wearleveling: min tlc blk: %x,sec=%d,xec = %d ,mode=%d, func=%x, bbt=%x vpn = %d\n" .LC122: - .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 slc blk: %x,sec=%d,xec = %d ,mode=%d, func=%x, bbt=%x vpn = %d\n" .LC123: - .string "swl add tlc gc = %x, %d, %d, %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" .LC124: - .string "swl add slc 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" .LC125: - .string "free blk vpn error: %x %x\n" + .string "gc_static_wearleveling: min slc ec: %x, min tlc ec: %d max slc ec: %d, max tlc ec: %d; %d %d\n" .LC126: - .string "ftl_free_no_use_map_blk %x %x %x %d\n" + .string "swl add tlc gc = %x, %d, %d, %d, %d, %d\n" .LC127: - .string "...%d @ %s\n" + .string "swl add slc gc = %x, %d, %d, %d, %d, %d\n" .LC128: - .string "rk_ftl_de_init %x\n" + .string "free blk vpn error: %x %x\n" .LC129: - .string "%s %p:0x%x:" + .string "ftl_free_no_use_map_blk %x %x %x %d\n" .LC130: - .string "%x " + .string "...%d @ %s\n" .LC131: - .string "" + .string "rk_ftl_de_init %x\n" .LC132: - .string "otp error! %d" + .string "%s %p:0x%x:" .LC133: - .string "rr" + .string "%x " .LC134: - .string "flash_abort_clear = %d\n" + .string "" .LC135: - .string "%d mtrans_cnt = %d page_num = %d\n" + .string "otp error! %d" .LC136: - .string "nandc:" + .string "rr" .LC137: - .string "%d flReg.d32=%x %x\n" + .string "flash_abort_clear = %d\n" .LC138: - .string "nandc_xfer_done read error %x\n" + .string "%d mtrans_cnt = %d page_num = %d\n" .LC139: - .string "dqs data abort %x\n" + .string "nandc:" .LC140: - .string "dqs data timeout %x\n" + .string "%d flReg.d32=%x %x\n" .LC141: - .string "xfer error %x\n" + .string "nandc_xfer_done read error %x\n" .LC142: - .string "flash_read_page %x %x %x\n" + .string "dqs data abort %x\n" .LC143: - .string "micron %d row=%x,last status %d,status = %d\n" + .string "dqs data timeout %x\n" .LC144: - .string "micron RR %d row=%x,count %d,status=%d\n" + .string "xfer error %x\n" .LC145: - .string "toshiba SRR %d row=%x, status=%d\n" + .string "flash_read_page %x %x %x\n" .LC146: - .string "toshiba TRR %d row=%x, status=%d\n" + .string "micron %d row=%x,last status %d,status = %d\n" .LC147: - .string "toshiba RR %d row=%x,count %d,status=%d\n" + .string "micron RR %d row=%x,count %d,status=%d\n" .LC148: - .string "hynix RR %d row=%x, count %d, status=%d\n" + .string "toshiba SRR %d row=%x, status=%d\n" .LC149: - .string "%d flash_ddr_tuning_read %x ecc=%d\n" + .string "toshiba TRR %d row=%x, status=%d\n" .LC150: - .string "sync para %d\n" + .string "toshiba RR %d row=%x,count %d,status=%d\n" .LC151: - .string "DDR mode Read error %x %x\n" + .string "hynix RR %d row=%x, count %d, status=%d\n" .LC152: - .string "SDR mode Read %x %x ecc:%x\n" + .string "%d flash_ddr_tuning_read %x ecc=%d\n" .LC153: - .string "flash_read_page_en %x %x %x\n" + .string "sync para %d\n" .LC154: - .string "flash_read_page_en %x %x error_ecc %d %d\n" + .string "DDR mode Read error %x %x\n" .LC155: - .string "flash_get_last_written_page: %x %x %x\n" + .string "SDR mode Read %x %x ecc:%x\n" .LC156: - .string "...%d @ %s %d %p\n" + .string "flash_read_page_en %x %x %x\n" .LC157: - .string "no sys info %x\n" + .string "flash_read_page_en %x %x error_ecc %d %d\n" .LC158: - .string "read page: %x %x %x %x\n" + .string "flash_get_last_written_page: %x %x %x\n" .LC159: - .string "flash_complete_page_read %x %x error_ecc %d %d\n" + .string "read page: %x %x %x %x\n" .LC160: - .string "read: %x %x %x %x\n" + .string "flash_complete_page_read %x %x error_ecc %d %d\n" .LC161: - .string "0set buf %d,status = %x, ppa = %x lun state = %d\n" + .string "read: %x %x %x %x\n" .LC162: - .string "1set buf %d,status = %x, ppa = %x lun state = %d\n" + .string "0set buf %d,status = %x, ppa = %x lun state = %d\n" .LC163: - .string "flash_prog_page %x %x %x\n" + .string "1set buf %d,status = %x, ppa = %x lun state = %d\n" .LC164: - .string "flash_prog_page page_addr = %x status = %x\n" + .string "flash_prog_page %x %x %x\n" .LC165: - .string "sblk_prog_page ppa = %x, count = %d\n" + .string "flash_prog_page page_addr = %x status = %x\n" .LC166: - .string "flash_prog_page_en:%x %x\n" + .string "sblk_3d_tlc_dump_prog wl_addr= %x ppa = %x ppa = %x\n" .LC167: - .string "w d:" + .string "sblk_mlc_dump_prog wl_addr= %x ppa = %x ppa = %x\n" .LC168: - .string "w s:" + .string "sblk_prog_page ppa = %x, count = %d\n" .LC169: - .string "spare" + .string "flash_prog_page_en:%x %x %x\n" .LC170: - .string "data" + .string "w d:" .LC171: - .string "write error: %x\n" + .string "w s:" .LC172: - .string "g_ftl_info_blk blk = %x, page = %x version = %d\n" + .string "spare" .LC173: - .string "%d %x @%d %x\n" + .string "data" .LC174: - .string "ftl_info_blk_init %d %d %x\n" + .string "write error: %x\n" .LC175: - .string "%s %d %d %x %x\n" + .string "g_ftl_info_blk blk = %x, page = %x version = %d\n" .LC176: - .string "saved_active_page = %x\n" + .string "%d %x @%d %x\n" .LC177: - .string "saved_active_plane = %x\n" + .string "ftl_info_blk_init %d %d %x\n" .LC178: - .string "sblk = %x\n" + .string "%s %d %d %x %x\n" .LC179: - .string "phy_blk = %x %x\n" + .string "saved_active_page = %x\n" .LC180: - .string "sblk = %x, vpn0 = %d, vpn1 = %d\n" + .string "saved_active_plane = %x\n" .LC181: - .string "dump write = %x\n" + .string "sblk = %x\n" .LC182: - .string "pm_write_page write error: %x\n" + .string "phy_blk = %x %x\n" .LC183: - .string "finfo:" + .string "sblk = %x, vpn0 = %d, vpn1 = %d\n" .LC184: - .string "flash_info_flush id = %x, page = %x\n" + .string "dump_write_lpa = %x %x %x %x\n" .LC185: - .string "sys_info_flush error:%x\n" + .string "dump write new ppa = %x, last ppa = %x lpa = %x\n" .LC186: - .string "blk= %x, page=%x, ppa = %x, status = %x, data:%x %x %x %x, spare: %x %x %x %x\n" + .string "dump write = %x %x\n" .LC187: - .string "l2p:" + .string "dump write hash update = %x %x %x\n" .LC188: - .string "free_buf_count: %d\n" + .string "pm_write_page write error: %x\n" .LC189: - .string "g_ftl_info_blk blk:0x%x, index:0x%x, page:0x%x\n" + .string "ftl_sblk_dump_write = %x %d %d %d %d\n" .LC190: - .string "ftl_ext_info_blk blk:0x%x, page:0x%x\n" + .string "blk= %x, page=%x, ppa = %x, status = %x, data:%x %x %x %x, spare: %x %x %x %x\n" .LC191: - .string "ac_blk:0x%x, page:0x%x, index:0x%x, free:0x%x, page_index:0x%x\n" + .string "ftl_sblk_dump_write2 = %x %d %d %d\n" .LC192: - .string "tmp_blk:0x%x, page:0x%x, index:0x%x, free:0x%x, page_index:0x%x\n" + .string "ftl_sblk_dump_write = %x %x\n" .LC193: - .string "gc_blk:0x%x, page:0x%x, index:0x%x, free:0x%x, page_index:0x%x\n" + .string "ftl_sblk_dump_write done = %x\n" .LC194: - .string "lpa:" + .string "finfo:" .LC195: - .string "vpn:" + .string "flash_info_flush id = %x, page = %x\n" .LC196: - .string "sblk:" + .string "sys_info_flush error:%x\n" .LC197: - .string "lpa_hash:" + .string "...%d @ %s %d %p\n" .LC198: - .string "lpa_hash_index:" + .string "no sys info %x\n" .LC199: - .string "%s w error lpn = %x, max ppa = %d\n" + .string "l2p:" .LC200: - .string "region_id = %d, pm_max_region = %d\n" + .string "free_buf_count: %d\n" .LC201: - .string "load_l2p_region no ppa = %x , %x, all setting 0xff....\n" + .string "g_ftl_info_blk blk:0x%x, index:0x%x, page:0x%x\n" .LC202: - .string "load_l2p_region = %x,%x,%x, %x\n" + .string "ftl_ext_info_blk blk:0x%x, page:0x%x\n" .LC203: - .string "pm_ppa:" + .string "ac_blk:0x%x, page:0x%x, index:0x%x, free:0x%x, page_index:0x%x\n" .LC204: - .string "data:" + .string "tmp_blk:0x%x, page:0x%x, index:0x%x, free:0x%x, page_index:0x%x\n" .LC205: - .string "spare:" + .string "gc_blk:0x%x, page:0x%x, index:0x%x, free:0x%x, page_index:0x%x\n" .LC206: - .string "pm_init posr %x %x %x\n" + .string "lpa:" .LC207: - .string "pm_init recovery %x %x %x\n" + .string "vpn:" .LC208: - .string "pm_log2phys lpn = %d, max lpn = %d\n" + .string "sblk:" .LC209: - .string "ppa = %x, status = %x, data:%x %x %x %x, spare: %x %x %x %x\n" + .string "lpa_hash:" .LC210: - .string "ppa = %x, status = %x, %x %x spare: %x %x %x %x\n" + .string "lpa_hash_index:" .LC211: - .string "gc_recovery: %x vpn = %x\n" + .string "%s w error lpn = %x, max ppa = %d\n" .LC212: - .string "_c_user_data_density := %d\n" + .string "region_id = %d, pm_max_region = %d\n" .LC213: - .string "_c_totle_phy_density := %d\n" + .string "load_l2p_region no ppa = %x , %x, all setting 0xff....\n" .LC214: - .string "_c_totle_log_page := %d\n" + .string "load_l2p_region = %x,%x,%x, %x\n" .LC215: - .string "_c_totle_data_density := %d\n" + .string "pm_ppa:" .LC216: - .string "_c_ftl_pm_page_num := %d\n" + .string "data:" .LC217: - .string "_c_ftl_byte_pre_page := %d\n" + .string "spare:" .LC218: - .string "_c_max_pm_sblk := %d\n" + .string "pm_init posr %x %x %x\n" .LC219: - .string "_min_slc_super_block := %d\n" + .string "pm_init recovery %x %x %x\n" .LC220: - .string "_max_xlc_super_block := %d\n" + .string "pm_log2phys lpn = %d, max lpn = %d\n" .LC221: - .string "gp_ftl_ext_info %p %p %p\n" + .string "ppa = %x, status = %x, data:%x %x %x %x, spare: %x %x %x %x\n" .LC222: - .string "flash info size: %d %d %d\n" + .string "ppa = %x, status = %x, %x %x spare: %x %x %x %x\n" .LC223: - .string "ftl_init %x\n" + .string "gc_recovery: %x vpn = %x\n" .LC224: - .string "gc_update_l2p_map_new sblk %x\n" + .string "_c_user_data_density := %d\n" .LC225: - .string "gc_update_l2p_map_new: %x %x %x\n" + .string "_c_totle_phy_density := %d\n" .LC226: - .string "lpa: %x %x %x\n" + .string "_c_totle_log_page := %d\n" .LC227: - .string "gc_update_l2p_map_new: %x vpn = %x vpn1 = %x done\n" + .string "_c_totle_data_density := %d\n" .LC228: - .string "gc_scan_src_blk = %x, vpn = %d\n" + .string "_c_ftl_pm_page_num := %d\n" .LC229: - .string "gc_scan_src_blk = %x, s vpn0 = %d, c vpn1 = %d\n" + .string "_c_ftl_byte_pre_page := %d\n" .LC230: - .string "gc_block_vpn_scan = %x, s vpn0 = %d, c vpn1 = %d f:%d\n" + .string "_c_max_pm_sblk := %d\n" .LC231: - .string "ftl_sblk_dump = %x %d %d %d %d\n" + .string "_min_slc_super_block := %d\n" .LC232: - .string "ftl_sblk_dump = %x %x %x %x\n" + .string "_max_xlc_super_block := %d\n" .LC233: - .string "page_addr = %x, lpa=%x vpn = %d\n" + .string "gp_ftl_ext_info %p %p %p\n" .LC234: - .string "index= %x, lpa=%x\n" + .string "flash info size: %d %d %d\n" .LC235: - .string "block = %x, vpn=%x check vpn = %d\n" + .string "ftl_init %x\n" .LC236: - .string "ftl_read %x %x %x\n" + .string "gc_update_l2p_map_new sblk %x\n" .LC237: - .string "ftl_read refresh =%x, lpa = %x, ppa= %x\n" + .string "gc_update_l2p_map_new: %x %x %x\n" .LC238: - .string "id=%d, lpa = %x, ppa = %x spare = %x %x %x %x\n" + .string "lpa: %x %x %x\n" .LC239: - .string "zftl debug cmd: %s\n" + .string "gc_update_l2p_map_new: %x vpn = %x vpn1 = %x done\n" .LC240: - .string "cmd:" + .string "gc_scan_src_blk = %x, vpn = %d\n" .LC241: - .string "dumpl2p" + .string "gc_scan_src_blk = %x, s vpn0 = %d, c vpn1 = %d\n" .LC242: - .string "pm l2p:" + .string "gc_block_vpn_scan = %x, s vpn0 = %d, c vpn1 = %d f:%d\n" .LC243: - .string "pm blk:" + .string "ftl_sblk_dump = %x %d %d %d %d\n" .LC244: - .string "dumppm:" + .string "ftl_sblk_dump = %x %x %x %x\n" .LC245: - .string "p_cmd: %s\n" + .string "page_addr = %x, lpa=%x vpn = %d\n" .LC246: - .string "pm ram = %x, %x\n" + .string "index= %x, lpa=%x\n" .LC247: - .string "ram:" + .string "block = %x, vpn=%x check vpn = %d\n" .LC248: - .string "pm:" + .string "ftl_read %x %x %x\n" .LC249: - .string "dumpsys" + .string "ftl_read refresh =%x, lpa = %x, ppa= %x\n" .LC250: - .string "dumplist:" + .string "id=%d, status = %x, lpa = %x, ppa = %x spare = %x %x %x %x\n" .LC251: - .string "vpncheck" + .string "zftl debug cmd: %s\n" .LC252: - .string "dumpppa:" + .string "cmd:" .LC253: - .string "dumpblk:" + .string "dumpl2p" .LC254: - .string "setzdebug:" + .string "pm l2p:" .LC255: - .string "lpa2ppa:" + .string "pm blk:" .LC256: - .string "lpa: %x--> ppa: %x\n" + .string "dumppm:" .LC257: - .string "help:\n" + .string "p_cmd: %s\n" .LC258: - .string "1. echo dumpl2p > /proc/zftl_debug\n" + .string "pm ram = %x, %x\n" .LC259: - .string "2. echo dumppm:x > /proc/zftl_debug\n" + .string "ram:" .LC260: - .string "3. echo dumpsys > /proc/zftl_debug\n" + .string "pm:" .LC261: - .string "4. echo dumpppa:x > /proc/zftl_debug\n" + .string "dumpsys" .LC262: - .string "5. echo vpncheck > /proc/zftl_debug\n" + .string "dumplist:" .LC263: - .string "6. echo setzdebug:x > /proc/zftl_debug\n" + .string "vpncheck" .LC264: - .string "7. echo dumplist > /proc/zftl_debug\n" + .string "dumpppa:" .LC265: - .string "8. echo lpa2ppa:x> /proc/zftl_debug\n" + .string "dumpblk:" .LC266: - .string "gc_lpa:" + .string "setzdebug:" .LC267: - .string "gc_ppa:" + .string "lpa2ppa:" .LC268: - .string "err: ppa = %x, status = %x, %x %x spare: %x %x %x %x\n" + .string "lpa: %x--> ppa: %x\n" .LC269: - .string "ftl_update_l2p_map: %x %x %x\n" + .string "help:\n" .LC270: - .string "ftl_update_l2p_map" + .string "1. echo dumpl2p > /proc/zftl_debug\n" .LC271: - .string "lpa_tbl:" + .string "2. echo dumppm:x > /proc/zftl_debug\n" .LC272: - .string "sblk %x vpn: %d %d\n" + .string "3. echo dumpsys > /proc/zftl_debug\n" .LC273: - .string "%d read error: ppa:%x, lpa:%x, status:%x\n" + .string "4. echo dumpppa:x > /proc/zftl_debug\n" .LC274: - .string "gc page in buf: lpa %x ppa = %x pageindex= %x\n" + .string "5. echo vpncheck > /proc/zftl_debug\n" .LC275: - .string "gc_do_copy_back: lpa %x des_ppa = %x %x gc_ppa= %x page_index= %d\n" + .string "6. echo setzdebug:x > /proc/zftl_debug\n" .LC276: - .string "gc_do_copy_back: %x %x %x %x gc_ppa:%x %x\n" + .string "7. echo dumplist > /proc/zftl_debug\n" .LC277: - .string "%d prog_step: %x %x buf id= %x ppa = %x hash=%x id = %x plane = %x lpa=%x\n" + .string "8. echo lpa2ppa:x> /proc/zftl_debug\n" .LC278: - .string "gc %d: %d %d %d %d %d %d %d\n" + .string "gc_lpa:" .LC279: - .string "gc %d: %d %d %d %d %d %d\n" + .string "gc_ppa:" .LC280: - .string "GC_STATE_SCAN_ALL_PAGE = %x, vpn0 = %d, vpn1 = %d\n" + .string "err: ppa = %x, status = %x, %x %x spare: %x %x %x %x\n" .LC281: - .string "gc free %x, %d\n" + .string "ftl_update_l2p_map: %x %x %x\n" .LC282: - .string "ftlwrite %x %x %x\n" + .string "ftl_update_l2p_map" .LC283: - .string "ftl_discard:(%x, %x, %x, %x)\n" + .string "lpa_tbl:" .LC284: - .string "id_block_prog_msb_ff_data slc page = %d pageadd=%x %x\n" + .string "sblk %x vpn: %d %d\n" .LC285: - .string "write_idblock fix data %x %x\n" + .string "%d read error: ppa:%x, lpa:%x, status:%x\n" .LC286: - .string "idblk:" + .string "gc page in buf: lpa %x ppa = %x pageindex= %x\n" .LC287: - .string "write_idblock totle_sec %x %x\n" + .string "gc_do_copy_back: lpa %x des_ppa = %x %x gc_ppa= %x page_index= %d\n" .LC288: - .string "READ_SECTOR_IO\n" + .string "gc_do_copy_back: %x %x %x %x gc_ppa:%x %x\n" .LC289: - .string "rk_copy_from_user error\n" + .string "%d prog_step: %x %x buf id= %x ppa = %x hash=%x id = %x plane = %x lpa=%x\n" .LC290: - .string "READ_SECTOR_IO %x %x\n" + .string "gc %d: %d %d %d %d %d %d %d\n" .LC291: - .string "rk_copy_to_user error\n" + .string "gc %d: %d %d %d %d %d %d\n" .LC292: - .string "WRITE_SECTOR_IO\n" + .string "GC_STATE_SCAN_ALL_PAGE = %x, vpn0 = %d, vpn1 = %d\n" .LC293: - .string "WRITE_SECTOR_IO %x %x\n" + .string "gc free %x, %d\n" .LC294: - .string "END_WRITE_SECTOR_IO\n" + .string "ftlwrite %x %x %x %x\n" .LC295: - .string "END_WRITE_SECTOR_IO %x %x\n" + .string "ftl_discard:(%x, %x, %x, %x)\n" .LC296: - .string "GET_FLASH_INFO_IO\n" + .string "id_block_prog_msb_ff_data slc page = %d pageadd=%x %x\n" .LC297: - .string "GET_BAD_BLOCK_IO\n" + .string "write_idblock fix data %x %x\n" .LC298: - .string "GET_LOCK_FLAG_IO\n" + .string "idblk:" .LC299: - .string "GET_PUBLIC_KEY_IO\n" + .string "write_idblock totle_sec %x %x\n" .LC300: - .string "RKNAND_GET_DRM_KEY\n" + .string "READ_SECTOR_IO\n" .LC301: - .string "RKNAND_STORE_DRM_KEY\n" + .string "rk_copy_from_user error\n" .LC302: - .string "RKNAND_DIASBLE_SECURE_BOOT\n" + .string "READ_SECTOR_IO %x %x\n" .LC303: - .string "RKNAND_ENASBLE_SECURE_BOOT\n" + .string "rk_copy_to_user error\n" .LC304: - .string "RKNAND_GET_SN_SECTOR\n" + .string "WRITE_SECTOR_IO\n" .LC305: - .string "RKNAND_LOADER_UNLOCK\n" + .string "WRITE_SECTOR_IO %x %x\n" .LC306: - .string "RKNAND_LOADER_STATUS\n" + .string "END_WRITE_SECTOR_IO\n" .LC307: - .string "RKNAND_LOADER_LOCK\n" + .string "END_WRITE_SECTOR_IO %x %x\n" .LC308: - .string "LockKey not match %d\n" + .string "GET_FLASH_INFO_IO\n" .LC309: - .string "RKNAND_GET_VENDOR_SECTOR\n" + .string "GET_BAD_BLOCK_IO\n" .LC310: - .string "RKNAND_STORE_VENDOR_SECTOR\n" + .string "GET_LOCK_FLAG_IO\n" .LC311: - .string "return ret = %lx\n" + .string "GET_PUBLIC_KEY_IO\n" .LC312: - .string "secureBootEn check error\n" + .string "RKNAND_GET_DRM_KEY\n" .LC313: + .string "RKNAND_STORE_DRM_KEY\n" +.LC314: + .string "RKNAND_DIASBLE_SECURE_BOOT\n" +.LC315: + .string "RKNAND_ENASBLE_SECURE_BOOT\n" +.LC316: + .string "RKNAND_GET_SN_SECTOR\n" +.LC317: + .string "RKNAND_LOADER_UNLOCK\n" +.LC318: + .string "RKNAND_LOADER_STATUS\n" +.LC319: + .string "RKNAND_LOADER_LOCK\n" +.LC320: + .string "LockKey not match %d\n" +.LC321: + .string "RKNAND_GET_VENDOR_SECTOR\n" +.LC322: + .string "RKNAND_STORE_VENDOR_SECTOR\n" +.LC323: + .string "return ret = %lx\n" +.LC324: + .string "secureBootEn check error\n" +.LC325: .string "\0013vendor storage %x,%x,%x\n" .data .align 3 @@ -26620,7 +27747,7 @@ hy_f26_ref_value: .byte -37 .zero 4 .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 @@ -27339,7 +28466,7 @@ zftl_nand_flash_para_tbl: .hword 9671 .byte 5 .byte 19 - .byte 60 + .byte 70 .byte 32 .byte 1 .byte 0 @@ -27367,7 +28494,7 @@ zftl_nand_flash_para_tbl: .hword 9671 .byte 5 .byte 19 - .byte 60 + .byte 70 .byte 32 .byte 1 .byte 0 @@ -27407,6 +28534,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 @@ -27574,6 +28729,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 @@ -27589,7 +28772,7 @@ zftl_nand_flash_para_tbl: .byte 1 .hword 1024 .hword 455 - .byte 3 + .byte 4 .byte 17 .byte 40 .byte 32 @@ -27617,7 +28800,7 @@ zftl_nand_flash_para_tbl: .byte 2 .hword 1024 .hword 455 - .byte 3 + .byte 4 .byte 17 .byte 40 .byte 32 @@ -28530,7 +29713,11 @@ g_flash_interface_mode: .size g_flash_multi_page_prog_en, 1 g_flash_multi_page_prog_en: .zero 1 - .zero 2 + .type g_idb_slc_mode_enable, %object + .size g_idb_slc_mode_enable, 1 +g_idb_slc_mode_enable: + .zero 1 + .zero 1 .type g_buf, %object .size g_buf, 2048 g_buf: @@ -28651,7 +29838,15 @@ sblk_gc_write_completed_queue_head: .size _c_ftl_nand_type, 1 _c_ftl_nand_type: .zero 1 - .zero 6 + .type g_flash_3d_mlc_flag, %object + .size g_flash_3d_mlc_flag, 1 +g_flash_3d_mlc_flag: + .zero 1 + .type g_one_pass_program, %object + .size g_one_pass_program, 1 +g_one_pass_program: + .zero 1 + .zero 4 .type gc_page_buf_id, %object .size gc_page_buf_id, 8 gc_page_buf_id: @@ -28747,11 +29942,6 @@ _max_slc_super_block: .size _c_mix_max_slc_ec_count, 2 _c_mix_max_slc_ec_count: .zero 2 - .type g_flash_3d_mlc_flag, %object - .size g_flash_3d_mlc_flag, 1 -g_flash_3d_mlc_flag: - .zero 1 - .zero 1 .type _c_ftl_block_align_addr, %object .size _c_ftl_block_align_addr, 2 _c_ftl_block_align_addr: @@ -28760,7 +29950,7 @@ _c_ftl_block_align_addr: .size _c_ftl_nand_die_num, 1 _c_ftl_nand_die_num: .zero 1 - .zero 7 + .zero 1 .type lpa_hash, %object .size lpa_hash, 512 lpa_hash: @@ -28900,15 +30090,6 @@ flash_ddr_tuning_sdr_read_count: .size flash_read_retry, 8 flash_read_retry: .zero 8 - .type g_flash_sys_spare_buffer, %object - .size g_flash_sys_spare_buffer, 8 -g_flash_sys_spare_buffer: - .zero 8 - .type g_flash_blk_info, %object - .size g_flash_blk_info, 4 -g_flash_blk_info: - .zero 4 - .zero 4 .type g_flash_page_buffer, %object .size g_flash_page_buffer, 8 g_flash_page_buffer: @@ -28917,10 +30098,6 @@ g_flash_page_buffer: .size g_flash_spare_buffer, 8 g_flash_spare_buffer: .zero 8 - .type g_idb_slc_mode_enable, %object - .size g_idb_slc_mode_enable, 1 -g_idb_slc_mode_enable: - .zero 1 .type g_flash_multi_page_read_en, %object .size g_flash_multi_page_read_en, 1 g_flash_multi_page_read_en: @@ -28929,12 +30106,12 @@ g_flash_multi_page_read_en: .size write_commit_head, 1 write_commit_head: .zero 1 - .zero 1 + .zero 2 .type ftl_flush_jiffies, %object .size ftl_flush_jiffies, 4 ftl_flush_jiffies: .zero 4 - .zero 8 + .zero 32 .type ftl_info_spare, %object .size ftl_info_spare, 256 ftl_info_spare: @@ -28977,10 +30154,20 @@ g_pm_spare: .size pm_first_write, 1 pm_first_write: .zero 1 + .zero 7 + .type g_flash_sys_spare_buffer, %object + .size g_flash_sys_spare_buffer, 8 +g_flash_sys_spare_buffer: + .zero 8 + .type g_flash_blk_info, %object + .size g_flash_blk_info, 4 +g_flash_blk_info: + .zero 4 .type g_flash_reversd_blks, %object .size g_flash_reversd_blks, 1 g_flash_reversd_blks: .zero 1 + .zero 1 .type _c_ftl_byte_pre_page, %object .size _c_ftl_byte_pre_page, 2 _c_ftl_byte_pre_page: @@ -29006,7 +30193,7 @@ _c_ftl_pm_page_num: .size rk_zftl_enable, 1 rk_zftl_enable: .zero 1 - .zero 5 + .zero 1 .type gLoaderBootInfo, %object .size gLoaderBootInfo, 8 gLoaderBootInfo: @@ -29086,7 +30273,7 @@ g_vendor: .size ftl_low_format_cur_blk, 2 ftl_low_format_cur_blk: .zero 2 - .zero 46 + .zero 30 .type ftl_tmp_buffer, %object .size ftl_tmp_buffer, 16384 ftl_tmp_buffer: |